MADNESS  0.10.1
Classes | Macros | Typedefs | Functions | Variables
tdse.cc File Reference

Evolves the 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>
#include <madness/tensor/vmath.h>
#include <complex>
#include <madness/mra/funcimpl.h>
#include <madness/mra/lbdeux.h>
Include dependency graph for tdse.cc:

Classes

struct  InputParameters
 
struct  lbcost< T, NDIM >
 
struct  refop
 
struct  unaryexp< T, NDIM >
 
struct  unaryexp< double_complex, NDIM >
 

Macros

#define MAKE_PROPAGATOR(world, t)
 

Typedefs

typedef FunctionFactory< double_complex, 3 > complex_factoryT
 
typedef Function< double_complex, 3 > complex_functionT
 
typedef std::shared_ptr< FunctionFunctorInterface< double_complex, 3 > > complex_functorT
 
typedef Convolution1D< double_complexcomplex_operatorT
 
typedef Vector< double, 3 > coordT
 
typedef FunctionFactory< double, 3 > factoryT
 
typedef Function< double, 3 > functionT
 
typedef std::shared_ptr< FunctionFunctorInterface< double, 3 > > functorT
 
typedef SeparatedConvolution< double, 3 > operatorT
 
typedef std::shared_ptr< WorldDCPmapInterface< Key< 3 > > > pmapT
 

Functions

complex_functionT APPLY (const complex_operatorT *q1d, const complex_functionT &psi)
 
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)
 
void converge (World &world, functionT &potn, functionT &psi, double &eps)
 
void converge2s (World &world, functionT &potn, functionT &psi, double &eps)
 
static double d_smoothed_potential (double r)
 
void doit (World &world)
 
void doplot (World &world, int step, const complex_functionT &psi, double Lplot, long numpt, const char *fname)
 
static double dVdx (const coordT &r)
 
static double dVdy (const coordT &r)
 
static double dVdz (const coordT &r)
 
template<typename T >
double energy (World &world, const Function< T, 3 > &psi, const functionT &potn)
 
static double guess1s (const coordT &r)
 
static double guess2s (const coordT &r)
 
double laser (double t)
 
void line_plot (World &world, int step, complex_functionT &psi)
 
void loadbal (World &world, functionT &potn, complex_functionT &psi)
 
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 preloadbal (World &world, functionT &potn, complex_functionT &psi)
 
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)
 
void propagate (World &world, int step0)
 
static double smoothed_potential (double r)
 
complex_functionT trotter (World &world, const complex_functionT &expV, const complex_operatorT *G, const complex_functionT &psi0)
 
static double V (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 double zero_field_time
 

Detailed Description

Evolves the hydrogen atom in imaginary and also real time.

Macro Definition Documentation

◆ MAKE_PROPAGATOR

#define MAKE_PROPAGATOR (   world,
 
)

Typedef Documentation

◆ complex_factoryT

◆ complex_functionT

◆ complex_functorT

◆ complex_operatorT

◆ coordT

typedef Vector<double,3> coordT

◆ factoryT

typedef FunctionFactory<double,3> factoryT

◆ functionT

typedef Function<double,3> functionT

◆ functorT

typedef std::shared_ptr< FunctionFunctorInterface<double,3> > functorT

◆ operatorT

typedef SeparatedConvolution<double,3> operatorT

◆ pmapT

typedef std::shared_ptr< WorldDCPmapInterface< Key<3> > > pmapT

Function Documentation

◆ APPLY()

complex_functionT APPLY ( const complex_operatorT q1d,
const complex_functionT psi 
)

◆ chin_chen()

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 
)

◆ converge()

void converge ( World world,
functionT potn,
functionT psi,
double &  eps 
)

◆ converge2s()

void converge2s ( World world,
functionT potn,
functionT psi,
double &  eps 
)

◆ d_smoothed_potential()

static double d_smoothed_potential ( double  r)
static

References e(), and madness::r2().

Referenced by dVdx(), dVdy(), and dVdz().

◆ doit()

void doit ( World world)

References madness::LoadBalanceDeux< NDIM >::add_tree(), madness::apply(), madness::WorldGopInterface::broadcast(), madness::WorldGopInterface::broadcast_serializable(), madness::BSHOperator3D(), converge(), madness::copy(), InputParameters::cut, e(), energy(), madness::error(), madness::WorldGopInterface::fence(), madness::World::gop, guess1s(), guess2s(), madness::inner(), InputParameters::iState, InputParameters::k, InputParameters::L, madness::LoadBalanceDeux< NDIM >::load_balance(), max, myreal(), madness::detail::norm(), madness::Function< T, NDIM >::norm2(), op(), param, potn(), madness::print(), propagate(), 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(), madness::FunctionDefaults< NDIM >::set_truncate_on_project(), InputParameters::thresh, madness::Function< T, NDIM >::truncate(), V(), madness::wall_time(), wave_function_exists(), wave_function_store(), ydipole(), and zdipole().

Referenced by madness::SeparatedConvolution< Q, NDIM >::apply_transformation(), madness::SeparatedConvolution< Q, NDIM >::apply_transformation2(), main(), and BoysLocalization::operator()().

◆ doplot()

void doplot ( World world,
int  step,
const complex_functionT psi,
double  Lplot,
long  numpt,
const char *  fname 
)

◆ dVdx()

static double dVdx ( const coordT r)
static

◆ dVdy()

static double dVdy ( const coordT r)
static

◆ dVdz()

static double dVdz ( const coordT r)
static

◆ energy()

template<typename T >
double energy ( World world,
const Function< T, 3 > &  psi,
const functionT potn 
)

◆ guess1s()

static double guess1s ( const coordT r)
static

◆ guess2s()

static double guess2s ( const coordT r)
static

◆ laser()

double laser ( double  t)

◆ line_plot()

void line_plot ( World world,
int  step,
complex_functionT psi 
)

◆ loadbal()

void loadbal ( World world,
functionT potn,
complex_functionT psi 
)

◆ main()

int main ( int  argc,
char **  argv 
)

◆ make_exp()

complex_functionT make_exp ( double  t,
const functionT v 
)

◆ myreal() [1/2]

double myreal ( const double_complex t)

References madness::real().

◆ myreal() [2/2]

double myreal ( double  t)

Referenced by doit(), and energy().

◆ operator<<()

std::ostream& operator<< ( std::ostream &  s,
const InputParameters p 
)

References p().

◆ preloadbal()

void preloadbal ( World world,
functionT potn,
complex_functionT psi 
)

◆ print_stats()

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 
)

◆ print_stats_header()

void print_stats_header ( World world)

References madness::World::rank().

Referenced by propagate().

◆ propagate()

void propagate ( World world,
int  step0 
)

◆ smoothed_potential()

static double smoothed_potential ( double  r)
static

References e(), and madness::r2().

◆ trotter()

complex_functionT trotter ( World world,
const complex_functionT expV,
const complex_operatorT G,
const complex_functionT psi0 
)

◆ V()

static double V ( const coordT r)
static

◆ wave_function_exists()

bool wave_function_exists ( World world,
int  step 
)

◆ wave_function_filename()

const char* wave_function_filename ( int  step)

◆ wave_function_large_plot_filename()

const char* wave_function_large_plot_filename ( int  step)

References param, and InputParameters::prefix.

Referenced by propagate().

◆ wave_function_load()

complex_functionT wave_function_load ( World world,
int  step 
)

References psi(), and wave_function_filename().

Referenced by propagate().

◆ wave_function_small_plot_filename()

const char* wave_function_small_plot_filename ( int  step)

References param, and InputParameters::prefix.

Referenced by propagate().

◆ wave_function_store()

void wave_function_store ( World world,
int  step,
const complex_functionT psi 
)

◆ xdipole()

double xdipole ( const coordT r)

Referenced by propagate().

◆ ydipole()

double ydipole ( const coordT r)

Referenced by doit(), and propagate().

◆ zdipole()

double zdipole ( const coordT r)

Referenced by doit(), and propagate().

Variable Documentation

◆ param

Referenced by Calculation::Calculation(), madness::Diamagnetic_potential_factor::Diamagnetic_potential_factor(), madness::SCFProtocol::SCFProtocol(), molresponse::write_response_input::write_response_input(), molresponse::write_test_input::write_test_input(), madness::write_test_input::write_test_input(), write_test_input::write_test_input(), madness::TDHF::analyze(), Calculation::calc_deriv(), madness::CCConvolutionOperator< T, NDIM >::CCConvolutionOperatorPtr(), madness::CCConvolutionOperatorPtr(), madness::NemoBase::check_convergence(), chin_chen(), Calculation::compute_residuals(), converge(), converge2s(), dnuclear_anchor_test(), doit(), dVdx(), dVdy(), dVdz(), guess1s(), guess2s(), laser(), line_plot(), madness::archive::ArchiveLoadImpl< ParallelInputArchive< archiveT >, CCPairFunction< T, NDIM > >::load(), main(), Calculation::make_reference(), nuclear_anchor_test(), madness::MolecularEnergy::output_calc_info_schema(), madness::SCF::output_calc_info_schema(), madness::plot_plane(), madness::CC2::print_parameters(), madness::Molecule::print_parameters(), madness::TDHF::print_parameters(), madness::Zcis::print_parameters(), madness::QCCalculationParametersBase::print_to_string(), propagate(), Calculation::set_protocol(), test_capitalization(), test_comment_lines(), test_derived(), test_empty_lines(), test_fock(), test_nemo(), test_not_allowed(), test_read_restartaodata(), test_read_restartdata(), test_serialize(), test_trailing_characters(), test_type_conversion1(), test_type_conversion2(), test_type_conversion3(), test_type_conversion4(), test_type_conversion5(), test_type_conversion6(), test_type_conversion7(), test_type_conversion8(), trotter(), Calculation::update(), V(), wave_function_filename(), wave_function_large_plot_filename(), wave_function_small_plot_filename(), wave_function_store(), molresponse::write_test_input::write_to_test_input(), molresponse::write_response_input::write_to_test_input(), and madness::write_test_input::write_to_test_input().

◆ zero_field_time

double zero_field_time
static

Referenced by propagate().