MADNESS
version 0.9
|
Evolves the hydrogen atom in imaginary and also real time. More...
#include <madness/mra/lbdeux.h>
#include <madness/mra/mra.h>
#include <madness/mra/qmprop.h>
#include <madness/mra/operator.h>
#include <madness/constants.h>
Typedefs | |
typedef Vector< double, 3 > | coordT |
typedef std::shared_ptr < FunctionFunctorInterface < double, 3 > > | functorT |
typedef Function< double, 3 > | functionT |
typedef FunctionFactory < double, 3 > | factoryT |
typedef SeparatedConvolution < double, 3 > | operatorT |
typedef std::shared_ptr < FunctionFunctorInterface < double_complex, 3 > > | complex_functorT |
typedef Function < double_complex, 3 > | complex_functionT |
typedef FunctionFactory < double_complex, 3 > | complex_factoryT |
typedef SeparatedConvolution < double_complex, 3 > | complex_operatorT |
Functions | |
double | zdipole (const coordT &r) |
z-dipole More... | |
double | laser (double t) |
Strength of the laser field at time t ... 1 full cycle. More... | |
template<typename T > | |
double | energy (World &world, const Function< T, 3 > &psi, const functionT &potn) |
Given psi and V evaluate the energy. More... | |
template<typename T , int NDIM> | |
double | lbcost (const Key< NDIM > &key, const FunctionNode< T, NDIM > &node) |
template<typename T , std::size_t NDIM> | |
void | load_balance (World &world, const madness::Function< T, NDIM > &psi) |
void | converge (World &world, functionT &potn, functionT &psi, double &eps) |
Evolve the wave function in imaginary time to converge to ground state. More... | |
void | propagate (World &world, functionT &potn, functionT &psi0, double &eps) |
Evolve the wave function in real time. More... | |
int | main (int argc, char **argv) |
Evolves the hydrogen atom in imaginary and also real time.
typedef FunctionFactory<double_complex,3> complex_factoryT |
typedef Function<double_complex,3> complex_functionT |
typedef SeparatedConvolution<double_complex,3> complex_operatorT |
typedef FunctionFactory<double,3> factoryT |
typedef std::shared_ptr< FunctionFunctorInterface<double,3> > functorT |
typedef SeparatedConvolution<double,3> operatorT |
Evolve the wave function in imaginary time to converge to ground state.
References energy(), expV(), madness::load_balance(), madness::norm(), op(), madness::constants::pi, madness::print(), psi(), madness::World::rank(), sqrt(), madness::Function< T, NDIM >::truncate(), madness::Function< T, NDIM >::unaryop(), and V().
Referenced by main().
double energy | ( | World & | world, |
const Function< T, 3 > & | psi, | ||
const functionT & | potn | ||
) |
Given psi and V evaluate the energy.
References madness::inner(), madness::print(), madness::World::rank(), and std::tr1::T().
Referenced by converge(), main(), and propagate().
double laser | ( | double | t | ) |
Strength of the laser field at time t ... 1 full cycle.
References madness::constants::pi, and mpfr::sin().
Referenced by propagate().
double lbcost | ( | const Key< NDIM > & | key, |
const FunctionNode< T, NDIM > & | node | ||
) |
void load_balance | ( | World & | world, |
const madness::Function< T, NDIM > & | psi | ||
) |
int main | ( | int | argc, |
char ** | argv | ||
) |
References SafeMPI::COMM_WORLD, converge(), energy(), madness::WorldGopInterface::fence(), madness::finalize(), madness::World::gop, guess(), madness::initialize(), k, L, madness::Function< T, NDIM >::norm2(), madness::print(), propagate(), psi(), madness::World::rank(), madness::Function< T, NDIM >::scale(), madness::FunctionDefaults< NDIM >::set_cubic_cell(), madness::FunctionDefaults< NDIM >::set_initial_level(), madness::FunctionDefaults< NDIM >::set_k(), madness::FunctionDefaults< NDIM >::set_refine(), madness::FunctionDefaults< NDIM >::set_thresh(), madness::startup(), thresh, madness::Function< T, NDIM >::truncate(), and V().
Evolve the wave function in real time.
References madness::Function< T, NDIM >::add_scalar(), c, energy(), expV(), G, madness::inner(), k, laser(), madness::load_balance(), madness::norm(), madness::Function< T, NDIM >::norm2(), madness::constants::pi, madness::print(), psi(), madness::World::rank(), madness::Function< T, NDIM >::reconstruct(), madness::Function< T, NDIM >::scale(), madness::Function< T, NDIM >::truncate(), madness::Function< T, NDIM >::unaryop(), and zdipole().
Referenced by main().
double zdipole | ( | const coordT & | r | ) |
z-dipole
Referenced by propagate().