MADNESS
version 0.9
|
Evolves the 1D hydrogen atom in imaginary and also real time. More...
#include <madness/mra/mra.h>
#include <madness/mra/qmprop.h>
#include <madness/mra/operator.h>
#include <madness/constants.h>
Classes | |
struct | InputParameters |
class | LevelPmap |
Typedefs | |
typedef Vector< double, NDIM > | coordT |
typedef std::shared_ptr < FunctionFunctorInterface < double, NDIM > > | functorT |
typedef Function< double, NDIM > | functionT |
typedef FunctionFactory < double, NDIM > | factoryT |
typedef SeparatedConvolution < double, NDIM > | operatorT |
typedef std::shared_ptr < FunctionFunctorInterface < double_complex, NDIM > > | complex_functorT |
typedef Function < double_complex, NDIM > | complex_functionT |
typedef FunctionFactory < double_complex, NDIM > | complex_factoryT |
typedef SeparatedConvolution < double_complex, NDIM > | complex_operatorT |
typedef std::shared_ptr < WorldDCPmapInterface< Key < NDIM > > > | pmapT |
Functions | |
ostream & | operator<< (ostream &s, const InputParameters &p) |
double | xdipole (const coordT &r) |
double | ydipole (const coordT &r) |
double | zdipole (const coordT &r) |
double | laser (double t) |
double | myreal (double t) |
double | myreal (const double_complex &t) |
double | energy (World &world, const complex_functionT &psi, const functionT &potn) |
void | converge (World &world, functionT &potn, complex_functionT &psi, double &eps) |
complex_functionT | chin_chen (const complex_functionT &expV_0, const complex_functionT &expV_tilde, const complex_functionT &expV_1, const complex_operatorT &G, const complex_functionT &psi0) |
complex_functionT | trotter (World &world, const complex_functionT &expV, const complex_operatorT &G, const complex_functionT &psi0) |
complex_functionT | make_exp (double t, const functionT &v) |
void | print_stats_header (World &world) |
void | print_stats (World &world, int step, double t, const functionT &v, const functionT &x, const functionT &y, const functionT &z, const functionT &dV_dz, const complex_functionT &psi0, const complex_functionT &psi) |
const char * | wave_function_filename (int step) |
const char * | wave_function_small_plot_filename (int step) |
const char * | wave_function_large_plot_filename (int step) |
complex_functionT | wave_function_load (World &world, int step) |
void | wave_function_store (World &world, int step, const complex_functionT &psi) |
bool | wave_function_exists (World &world, int step) |
void | doplot (World &world, int step, const complex_functionT &psi, double Lplot, long numpt, const char *fname) |
void | line_plot (World &world, int step, complex_functionT &psi) |
void | propagate (World &world, int step0) |
void | doit (World &world) |
int | main (int argc, char **argv) |
Variables | |
const int | NDIM = 1 |
const bool | debug = false |
InputParameters | param |
Evolves the 1D hydrogen atom in imaginary and also real time.
typedef Function<double_complex,NDIM> complex_functionT |
typedef FunctionFactory<double,NDIM> factoryT |
typedef std::shared_ptr< FunctionFunctorInterface<double,NDIM> > functorT |
typedef SeparatedConvolution<double,NDIM> operatorT |
typedef std::shared_ptr< WorldDCPmapInterface< Key<NDIM> > > pmapT |
complex_functionT chin_chen | ( | const complex_functionT & | expV_0, |
const complex_functionT & | expV_tilde, | ||
const complex_functionT & | expV_1, | ||
const complex_operatorT & | G, | ||
const complex_functionT & | psi0 | ||
) |
References madness::apply(), PROFILE_FUNC, InputParameters::thresh, and madness::Function< T, NDIM >::truncate().
Referenced by propagate().
void converge | ( | World & | world, |
functionT & | potn, | ||
complex_functionT & | psi, | ||
double & | eps | ||
) |
References madness::apply(), InputParameters::cut, madness::inner(), InputParameters::k, max, myreal(), madness::norm(), madness::Function< T, NDIM >::norm2(), op(), madness::print(), PROFILE_FUNC, psi(), madness::World::rank(), madness::Function< T, NDIM >::scale(), sqrt(), InputParameters::thresh, and madness::wall_time().
Referenced by doit().
void doit | ( | World & | world | ) |
References madness::WorldGopInterface::broadcast(), madness::WorldGopInterface::broadcast_serializable(), converge(), debug, energy(), madness::error(), madness::WorldGopInterface::fence(), madness::World::gop, guess(), InputParameters::k, InputParameters::L, madness::Function< T, NDIM >::norm2(), madness::print(), propagate(), psi(), madness::World::rank(), InputParameters::read(), InputParameters::safety, madness::Function< T, NDIM >::scale(), madness::FunctionDefaults< NDIM >::set_apply_randomize(), madness::FunctionDefaults< NDIM >::set_autorefine(), madness::FunctionDefaults< NDIM >::set_cubic_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(), InputParameters::thresh, madness::Function< T, NDIM >::truncate(), madness::wall_time(), wave_function_exists(), and wave_function_store().
Referenced by madness::LocalizeBoys< T >::kernel(), SCF::localize_boys(), and main().
void doplot | ( | World & | world, |
int | step, | ||
const complex_functionT & | psi, | ||
double | Lplot, | ||
long | numpt, | ||
const char * | fname | ||
) |
References madness::print(), madness::World::rank(), and madness::wall_time().
Referenced by propagate().
double energy | ( | World & | world, |
const complex_functionT & | psi, | ||
const functionT & | potn | ||
) |
References madness::Function< T, NDIM >::clear(), madness::Function< T, NDIM >::compress(), debug, madness::WorldGopInterface::fence(), madness::World::gop, madness::inner(), myreal(), NDIM, PROFILE_FUNC, madness::World::rank(), and madness::Function< T, NDIM >::reconstruct().
Referenced by doit(), and print_stats().
double laser | ( | double | t | ) |
References InputParameters::F, InputParameters::ncycle, InputParameters::omega, madness::constants::pi, and mpfr::sin().
Referenced by print_stats(), and propagate().
void line_plot | ( | World & | world, |
int | step, | ||
complex_functionT & | psi | ||
) |
int main | ( | int | argc, |
char ** | argv | ||
) |
References madness::World::am, SafeMPI::Intracomm::Barrier(), madness::RMI::begin(), madness::ThreadPool::begin(), SafeMPI::COMM_WORLD, debug, doit(), madness::error(), madness::WorldGopInterface::fence(), SafeMPI::Finalize(), madness::World::gop, SafeMPI::Init(), madness::WorldMemInfo::print(), madness::print(), madness::WorldProfile::print(), madness::World::rank(), madness::startup(), madness::World::taskq, and madness::world_mem_info().
complex_functionT make_exp | ( | double | t, |
const functionT & | v | ||
) |
double myreal | ( | double | t | ) |
Referenced by converge(), and energy().
double myreal | ( | const double_complex & | t | ) |
References madness::real().
ostream& operator<< | ( | ostream & | s, |
const InputParameters & | p | ||
) |
References InputParameters::cut, InputParameters::F, InputParameters::k, InputParameters::L, InputParameters::Llarge, InputParameters::Lsmall, InputParameters::ncycle, InputParameters::ndump, InputParameters::nio, InputParameters::nplot, InputParameters::omega, InputParameters::prefix, InputParameters::R, InputParameters::thresh, and InputParameters::Z.
void print_stats | ( | World & | world, |
int | step, | ||
double | t, | ||
const functionT & | v, | ||
const functionT & | x, | ||
const functionT & | y, | ||
const functionT & | z, | ||
const functionT & | dV_dz, | ||
const complex_functionT & | psi0, | ||
const complex_functionT & | psi | ||
) |
void print_stats_header | ( | World & | world | ) |
References madness::World::rank().
Referenced by propagate().
void propagate | ( | World & | world, |
int | step0 | ||
) |
References madness::Function< T, NDIM >::add_scalar(), madness::WorldGopInterface::broadcast(), c, chin_chen(), madness::Function< T, NDIM >::clear(), madness::copy(), InputParameters::cut, debug, doplot(), expV(), G, madness::Function< T, NDIM >::gaxpy(), madness::World::gop, InputParameters::k, InputParameters::L, laser(), line_plot(), InputParameters::Llarge, InputParameters::Lsmall, make_exp(), madness::Function< T, NDIM >::max_depth(), InputParameters::ndump, InputParameters::nplot, madness::constants::pi, madness::print(), madness::print_stats(), print_stats_header(), PROFILE_BLOCK, PROFILE_FUNC, psi(), madness::World::rank(), madness::Function< T, NDIM >::size(), InputParameters::target_time, trotter(), madness::Function< T, NDIM >::truncate(), V(), madness::wall_time(), wave_function_large_plot_filename(), wave_function_load(), wave_function_small_plot_filename(), wave_function_store(), xdipole(), ydipole(), and zdipole().
Referenced by doit().
complex_functionT trotter | ( | World & | world, |
const complex_functionT & | expV, | ||
const complex_operatorT & | G, | ||
const complex_functionT & | psi0 | ||
) |
References madness::apply(), madness::print(), madness::World::rank(), madness::Function< T, NDIM >::size(), InputParameters::thresh, and madness::Function< T, NDIM >::truncate().
Referenced by propagate().
bool wave_function_exists | ( | World & | world, |
int | step | ||
) |
References wave_function_filename().
Referenced by doit().
const char* wave_function_filename | ( | int | step | ) |
References InputParameters::prefix.
Referenced by line_plot(), wave_function_exists(), wave_function_load(), and wave_function_store().
const char* wave_function_large_plot_filename | ( | int | step | ) |
References InputParameters::prefix.
Referenced by propagate().
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 InputParameters::prefix.
Referenced by propagate().
void wave_function_store | ( | World & | world, |
int | step, | ||
const complex_functionT & | psi | ||
) |
References InputParameters::nio, 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().
const bool debug = false |
Referenced by madness::GTHPseudopotential< double >::apply_potential(), madness::GTHPseudopotential< double >::apply_potential_simple(), doit(), energy(), madness::get_charge_from_file(), madness::TDA_TIMER::info(), madness::GTHPseudopotential< double >::load_pseudo_from_file(), main(), propagate(), AtomicBasisSet::read_file(), madness::AtomicBasisSet::read_file(), and madness::FunctionDefaults< NDIM >::set_defaults().
const int NDIM = 1 |
Referenced by madness::FunctionImpl< T, NDIM >::add_scalar_inplace(), madness::SeparatedConvolution< T, NDIM >::apply(), madness::SeparatedConvolution< T, NDIM >::apply2(), madness::Displacements< NDIM >::bmax_default(), madness::BoundaryConditions< 6 >::BoundaryConditions(), madness::Key< OPDIM >::break_apart(), madness::FunctionImpl< T, NDIM >::broaden(), madness::GFit< T, NDIM >::BSHFit(), madness::FunctionImpl< T, NDIM >::child_patch(), madness::FunctionImpl< Q, NDIM >::coeffs2values(), madness::FunctionImpl< T, NDIM >::coeffs_for_jun(), madness::FunctionImpl< T, NDIM >::compress_spawn(), madness::Derivative< T, NDIM >::Derivative(), madness::Key< OPDIM >::distsq(), madness::FunctionImpl< Q, NDIM >::do_apply(), madness::FunctionImpl< Q, NDIM >::do_apply_directed_screening(), madness::FunctionImpl< Q, NDIM >::do_apply_kernel3(), madness::FunctionImpl< Q, NDIM >::do_binary_op(), madness::DerivativeBase< T, NDIM >::do_diff1(), madness::FunctionImpl< Q, NDIM >::do_mul(), madness::FunctionImpl< T, NDIM >::do_print_grid(), madness::FunctionImpl< T, NDIM >::do_print_tree_graphviz(), madness::FunctionImpl< T, NDIM >::downsample(), energy(), madness::FunctionImpl< Q, NDIM >::err_box(), madness::Function< double, 6 >::eval(), madness::FunctionImpl< T, NDIM >::eval(), madness::Function< double, 6 >::eval_cube(), madness::FunctionImpl< T, NDIM >::eval_cube(), madness::Function< double, 6 >::eval_local_only(), madness::FunctionImpl< T, NDIM >::eval_local_only(), madness::FunctionImpl< T, NDIM >::eval_plot_cube(), madness::Function< double, 6 >::evaldepthpt(), madness::FunctionImpl< T, NDIM >::evaldepthpt(), madness::Function< double, 6 >::evalR(), madness::FunctionImpl< T, NDIM >::evalR(), Expikr::Expikr(), madness::fcube(), madness::FunctionImpl< Q, NDIM >::fcube_for_mul(), madness::FGFactory< T, NDIM >::FGFactory(), madness::VectorSpace< T, NDIM >::gaxpy(), madness::gradient_operator(), madness::FunctionImpl< T, NDIM >::hartree_op< LDIM, leaf_opT >::hartree_op(), madness::VectorSpace< T, NDIM >::inner(), madness::FunctionImpl< Q, NDIM >::inner_ext_recursive(), madness::Key< OPDIM >::is_farther_out_than(), madness::Key< OPDIM >::is_neighbor_of(), madness::BoundaryConditions< 6 >::is_periodic(), madness::Key< OPDIM >::Key(), kinetic_energy_matrix(), kinetic_energy_matrix2(), kinetic_energy_matrix_slow(), madness::Function< double, 6 >::load(), main(), madness::Function< double, 6 >::mapdim(), madness::EigSolver< T, NDIM >::matrix_element(), madness::Key< OPDIM >::merge_with(), madness::FunctionImpl< Q, NDIM >::mul(), madness::multiply(), madness::FunctionImpl< T, NDIM >::neighbor(), madness::VectorSpace< T, NDIM >::norm(), madness::FunctionImpl< T, NDIM >::norm_tree_spawn(), madness::FunctionImpl< Q, NDIM >::NS_fcube_for_mul(), madness::FunctionImpl< Q, NDIM >::NScoeffs2values(), ParserHandler< T, NDIM >::operator()(), madness::ComplexExp< NDIM >::operator()(), BoundWF::operator()(), Expikr::operator()(), Gaussian::operator()(), madness::Function< double, 6 >::operator()(), madness::hartree_leaf_op< T, NDIM >::operator()(), madness::FunctionImpl< T, NDIM >::do_check_symmetry_local::operator()(), madness::FunctionImpl< T, NDIM >::do_mapdim::operator()(), madness::FunctionImpl< T, NDIM >::do_unary_op_value_inplace< opT >::operator()(), madness::FunctionImpl< T, NDIM >::Vphi_op_NS< opT, LDIM >::operator()(), madness::operator+(), madness::KeyChildIterator< NDIM >::operator++(), madness::Function< double, 6 >::operator+=(), madness::operator-(), madness::Function< double, 6 >::operator-=(), madness::BoundaryConditions< 6 >::operator=(), madness::Key< OPDIM >::parent(), madness::FunctionImpl< T, NDIM >::parent_to_child(), ParserHandler< T, NDIM >::ParserHandler(), madness::PeriodicBSHOp(), madness::PeriodicBSHOpPtr(), madness::PeriodicCoulombOp(), madness::PeriodicCoulombOpPtr(), madness::FunctionImpl< T, NDIM >::plot_cube_kernel(), madness::plot_line(), madness::plotdx(), plotvtk(), madness::plotvtk_begin(), madness::plotvtk_data(), madness::plotvtk_end(), madness::FunctionImpl< T, NDIM >::print_stats(), madness::FunctionImpl< T, NDIM >::project(), madness::Function< double, 6 >::project_out(), madness::FunctionImpl< Q, NDIM >::read_grid(), madness::FunctionImpl< Q, NDIM >::read_grid2(), madness::FunctionImpl< T, NDIM >::recursive_apply_op< opT, LDIM >::recursive_apply_op(), madness::SeparatedConvolution< T, NDIM >::SeparatedConvolution(), InputParameters::serialize(), madness::FunctionDefaults< NDIM >::set_defaults(), madness::SCF::set_protocol(), simpt2key(), madness::FunctionImpl< T, NDIM >::simpt2key(), madness::FunctionImpl< T, NDIM >::size(), madness::Function< double, 6 >::store(), madness::symmetrize(), madness::Key< OPDIM >::thisKeyContains(), madness::FunctionImpl< T, NDIM >::trace_local(), madness::FunctionImpl< T, NDIM >::truncate_op(), madness::FunctionImpl< T, NDIM >::truncate_reconstructed_spawn(), madness::FunctionImpl< T, NDIM >::truncate_spawn(), madness::FunctionImpl< T, NDIM >::truncate_tol(), madness::FunctionImpl< T, NDIM >::upsample(), madness::FunctionImpl< Q, NDIM >::values2coeffs(), and madness::FunctionImpl< Q, NDIM >::values2NScoeffs().
InputParameters param |