MADNESS
0.10.1
|
Evolves the hydrogen molecular ion in 4D ... 3 electron + 1 nuclear degree of freedom. More...
#include <madness/mra/mra.h>
#include <madness/mra/funcimpl.h>
#include <madness/mra/qmprop.h>
#include <madness/mra/operator.h>
#include <madness/constants.h>
#include <madness/tensor/vmath.h>
#include <madness/mra/lbdeux.h>
Classes | |
struct | InputParameters |
struct | lbcost< T, NDIM > |
struct | unaryexp< T, NDIM > |
struct | unaryexp< double_complex, NDIM > |
Typedefs | |
typedef FunctionFactory< double_complex, 4 > | complex_factoryT |
typedef Function< double_complex, 4 > | complex_functionT |
typedef std::shared_ptr< FunctionFunctorInterface< double_complex, 4 > > | complex_functorT |
typedef Convolution1D< double_complex > | complex_operatorT |
typedef Vector< double, 4 > | coordT |
typedef FunctionFactory< double, 4 > | factoryT |
typedef Function< double, 4 > | functionT |
typedef std::shared_ptr< FunctionFunctorInterface< double, 4 > > | functorT |
typedef SeparatedConvolution< double, 4 > | operatorT |
typedef std::shared_ptr< WorldDCPmapInterface< Key< 4 > > > | pmapT |
Functions | |
complex_functionT | APPLY (const complex_operatorT *Ge, const complex_operatorT *Gn, const complex_functionT &psi) |
double | bond_length (const coordT &r) |
void | converge (World &world, functionT &potn, functionT &pote, functionT &pot, functionT &psi, double &eps) |
double | delsqfred (const coordT &r) |
void | doit (World &world) |
template<typename T > | |
double | energy (World &world, const Function< T, 4 > &psi, const functionT &pote, const functionT &potn, const functionT &potf) |
double | fred (const coordT &r) |
static double | guess (const coordT &r) |
template<typename T > | |
void | initial_loadbal (World &world, functionT &pote, functionT &potn, functionT &pot, Function< T, 4 > &psi) |
double | laser (double t) |
void | loadbal (World &world, functionT &pote, functionT &potn, functionT &pot, functionT &vt, complex_functionT &psi, complex_functionT &psi0, functionT &x, functionT &y, functionT &z, functionT &R) |
int | main (int argc, char **argv) |
complex_functionT | make_exp (double t, const functionT &v) |
double | myreal (const double_complex &t) |
double | myreal (double t) |
std::ostream & | operator<< (std::ostream &s, const InputParameters &p) |
void | print_stats (World &world, int step, double t, const functionT &pote, const functionT &potn, const functionT &potf, const functionT &x, const functionT &y, const functionT &z, const functionT &R, const complex_functionT &psi0, const complex_functionT &psi) |
void | print_stats_header (World &world) |
void | propagate (World &world, functionT &pote, functionT &potn, functionT &pot, int step0) |
double | real (double a) |
static double | smoothed_potential (double r) |
void | testbsh (World &world) |
complex_functionT | trotter (World &world, const complex_functionT &expV, const complex_operatorT *Ge, const complex_operatorT *Gn, const complex_functionT &psi0) |
static double | Ve (const coordT &r) |
static double | Vn (const coordT &r) |
bool | wave_function_exists (World &world, int step) |
const char * | wave_function_filename (int step) |
const char * | wave_function_large_plot_filename (int step) |
complex_functionT | wave_function_load (World &world, int step) |
const char * | wave_function_small_plot_filename (int step) |
void | wave_function_store (World &world, int step, const complex_functionT &psi) |
double | xdipole (const coordT &r) |
double | ydipole (const coordT &r) |
double | zdipole (const coordT &r) |
Variables | |
InputParameters | param |
static const double | R0 = 2.04 |
static const double | reduced_mass = 0.5*constants::proton_electron_mass_ratio |
static const double | s0 = sqrtmu*R0 |
static const double | sqrtmu = sqrt(reduced_mass) |
static const double | Z =1.0 |
static double | zero_field_time |
Evolves the hydrogen molecular ion in 4D ... 3 electron + 1 nuclear degree of freedom.
typedef FunctionFactory<double_complex,4> complex_factoryT |
typedef Function<double_complex,4> complex_functionT |
typedef std::shared_ptr< FunctionFunctorInterface<double_complex,4> > complex_functorT |
typedef Convolution1D<double_complex> complex_operatorT |
typedef FunctionFactory<double,4> factoryT |
typedef std::shared_ptr< FunctionFunctorInterface<double,4> > functorT |
typedef SeparatedConvolution<double,4> operatorT |
typedef std::shared_ptr< WorldDCPmapInterface< Key<4> > > pmapT |
complex_functionT APPLY | ( | const complex_operatorT * | Ge, |
const complex_operatorT * | Gn, | ||
const complex_functionT & | psi | ||
) |
double bond_length | ( | const coordT & | r | ) |
Referenced by propagate().
void converge | ( | World & | world, |
functionT & | potn, | ||
functionT & | pote, | ||
functionT & | pot, | ||
functionT & | psi, | ||
double & | eps | ||
) |
References madness::apply(), InputParameters::cut, d(), e(), energy(), madness::inner(), max, madness::detail::norm(), madness::Function< T, NDIM >::norm2(), op(), param, potn(), madness::print(), psi(), madness::World::rank(), madness::Function< T, NDIM >::scale(), InputParameters::thresh, madness::Function< T, NDIM >::truncate(), and madness::wall_time().
Referenced by doit().
void doit | ( | World & | world | ) |
References madness::WorldGopInterface::broadcast(), madness::WorldGopInterface::broadcast_serializable(), converge(), energy(), madness::error(), madness::WorldGopInterface::fence(), madness::World::gop, guess(), initial_loadbal(), InputParameters::k, InputParameters::L, param, potn(), madness::print(), propagate(), psi(), madness::World::rank(), InputParameters::read(), s0, InputParameters::safety, madness::FunctionDefaults< NDIM >::set_apply_randomize(), madness::FunctionDefaults< NDIM >::set_autorefine(), madness::FunctionDefaults< NDIM >::set_cell(), madness::FunctionDefaults< NDIM >::set_initial_level(), madness::FunctionDefaults< NDIM >::set_k(), madness::FunctionDefaults< NDIM >::set_pmap(), madness::FunctionDefaults< NDIM >::set_thresh(), madness::FunctionDefaults< NDIM >::set_truncate_mode(), madness::FunctionDefaults< NDIM >::set_truncate_on_project(), InputParameters::thresh, madness::Function< T, NDIM >::truncate(), Ve(), Vn(), madness::wall_time(), wave_function_exists(), and wave_function_store().
Referenced by main().
double energy | ( | World & | world, |
const Function< T, 4 > & | psi, | ||
const functionT & | pote, | ||
const functionT & | potn, | ||
const functionT & | potf | ||
) |
References madness::Function< T, NDIM >::clear(), madness::Function< T, NDIM >::compress(), madness::WorldGopInterface::fence(), madness::World::gop, madness::inner(), myreal(), potn(), psi(), madness::World::rank(), and madness::real().
Referenced by converge(), doit(), and print_stats().
double fred | ( | const coordT & | r | ) |
References a.
Referenced by madness::WorldAmInterface::WorldAmInterface(), madness::WorldProfile::clear(), main(), madness::FutureImpl< T >::register_callback(), madness::WorldProfile::register_id(), madness::SCF::restart_aos(), madness::Future< T >::set(), madness::FutureImpl< T >::set(), madness::FutureImpl< T >::set_handler(), test6a(), Test7(), and testbsh().
|
static |
void initial_loadbal | ( | World & | world, |
functionT & | pote, | ||
functionT & | potn, | ||
functionT & | pot, | ||
Function< T, 4 > & | psi | ||
) |
References madness::LoadBalanceDeux< NDIM >::add_tree(), madness::WorldGopInterface::fence(), madness::World::gop, madness::LoadBalanceDeux< NDIM >::load_balance(), potn(), madness::print(), psi(), madness::World::rank(), madness::FunctionDefaults< NDIM >::redistribute(), and madness::World::size().
Referenced by doit(), and propagate().
double laser | ( | double | t | ) |
References InputParameters::F, InputParameters::ncycle, InputParameters::omega, param, and madness::constants::pi.
Referenced by print_stats(), and propagate().
void loadbal | ( | World & | world, |
functionT & | pote, | ||
functionT & | potn, | ||
functionT & | pot, | ||
functionT & | vt, | ||
complex_functionT & | psi, | ||
complex_functionT & | psi0, | ||
functionT & | x, | ||
functionT & | y, | ||
functionT & | z, | ||
functionT & | R | ||
) |
References madness::LoadBalanceDeux< NDIM >::add_tree(), madness::WorldGopInterface::fence(), madness::World::gop, madness::LoadBalanceDeux< NDIM >::load_balance(), madness::print(), psi(), madness::World::rank(), madness::FunctionDefaults< NDIM >::redistribute(), and madness::World::size().
Referenced by propagate().
int main | ( | int | argc, |
char ** | argv | ||
) |
complex_functionT make_exp | ( | double | t, |
const functionT & | v | ||
) |
References expV(), madness::Function< T, NDIM >::unaryop(), and v.
double myreal | ( | const double_complex & | t | ) |
References madness::real().
double myreal | ( | double | t | ) |
Referenced by energy().
std::ostream& operator<< | ( | std::ostream & | s, |
const InputParameters & | p | ||
) |
References p().
void print_stats | ( | World & | world, |
int | step, | ||
double | t, | ||
const functionT & | pote, | ||
const functionT & | potn, | ||
const functionT & | potf, | ||
const functionT & | x, | ||
const functionT & | y, | ||
const functionT & | z, | ||
const functionT & | R, | ||
const complex_functionT & | psi0, | ||
const complex_functionT & | psi | ||
) |
References std::abs(), energy(), madness::inner(), laser(), madness::detail::norm(), potn(), psi(), psi0(), R, madness::World::rank(), madness::real(), and madness::wall_time().
void print_stats_header | ( | World & | world | ) |
References madness::World::rank().
Referenced by propagate().
References bond_length(), madness::WorldGopInterface::broadcast(), c, ctarget, InputParameters::cut, expV(), madness::WorldGopInterface::fence(), madness::World::gop, initial_loadbal(), InputParameters::k, InputParameters::L, laser(), loadbal(), madness::make_exp(), InputParameters::ndump, InputParameters::nloadbal, InputParameters::nprint, param, madness::constants::pi, potn(), madness::print(), madness::print_stats(), print_stats_header(), psi(), psi0(), madness::qm_1d_free_particle_propagator(), R, madness::World::rank(), s0, InputParameters::target_time, tcrit, trotter(), InputParameters::tScale, madness::wall_time(), wave_function_load(), wave_function_store(), xdipole(), ydipole(), zdipole(), and zero_field_time.
Referenced by doit().
double real | ( | double | a | ) |
References a.
|
static |
References e(), and madness::r2().
void testbsh | ( | World & | world | ) |
complex_functionT trotter | ( | World & | world, |
const complex_functionT & | expV, | ||
const complex_operatorT * | Ge, | ||
const complex_operatorT * | Gn, | ||
const complex_functionT & | psi0 | ||
) |
References madness::LoadBalanceDeux< NDIM >::add_tree(), madness::APPLY(), madness::copy(), expV(), madness::FunctionDefaults< NDIM >::get_pmap(), madness::LoadBalanceDeux< NDIM >::load_balance(), param, madness::print(), psi0(), madness::World::rank(), madness::FunctionDefaults< NDIM >::set_pmap(), madness::Function< T, NDIM >::size(), InputParameters::thresh, and madness::Function< T, NDIM >::truncate().
Referenced by propagate().
|
static |
References InputParameters::cut, param, R, R0, madness::smoothed_potential(), sqrtmu, and Z.
|
static |
bool wave_function_exists | ( | World & | world, |
int | step | ||
) |
References madness::archive::BaseParallelArchive< BinaryFstreamInputArchive >::exists(), and wave_function_filename().
Referenced by doit().
const char* wave_function_filename | ( | int | step | ) |
References param, and InputParameters::prefix.
Referenced by wave_function_exists(), wave_function_load(), and wave_function_store().
const char* wave_function_large_plot_filename | ( | int | step | ) |
References param, and InputParameters::prefix.
complex_functionT wave_function_load | ( | World & | world, |
int | step | ||
) |
References psi(), and wave_function_filename().
Referenced by propagate().
const char* wave_function_small_plot_filename | ( | int | step | ) |
References param, and InputParameters::prefix.
void wave_function_store | ( | World & | world, |
int | step, | ||
const complex_functionT & | psi | ||
) |
References InputParameters::nio, param, psi(), and wave_function_filename().
Referenced by doit(), and propagate().
double xdipole | ( | const coordT & | r | ) |
Referenced by propagate().
double ydipole | ( | const coordT & | r | ) |
Referenced by propagate().
double zdipole | ( | const coordT & | r | ) |
Referenced by propagate().
InputParameters param |
|
static |
Referenced by bond_length(), guess(), InputParameters::read(), Ve(), and Vn().
|
static |
Referenced by InputParameters::read().
Referenced by doit(), madness::GenTensor< T >::gaxpy(), madness::inner_result(), madness::Convolution1D< Q >::mod_nonstandard(), madness::Convolution1D< Q >::nonstandard(), madness::FunctionImpl< T, NDIM >::recursive_apply_op< opT, LDIM >::operator()(), madness::hartree_leaf_op< T, NDIM >::operator()(), madness::Tensor< T >::operator()(), madness::GenTensor< T >::operator+(), madness::GenTensor< T >::operator+=(), madness::GenTensor< T >::operator-=(), madness::ortho5(), madness::FunctionImpl< T, NDIM >::partial_inner_contract(), madness::FunctionImpl< T, NDIM >::project_refine_op(), propagate(), test(), and test_sliced_assignment().
|
static |
Referenced by bond_length(), guess(), InputParameters::read(), Ve(), and Vn().
|
static |
Referenced by guess(), InputParameters::read(), and Ve().
|
static |
Referenced by propagate().