MADNESS  0.10.1
Classes | Typedefs | Functions | Variables
tdse4.cc File Reference

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>
Include dependency graph for tdse4.cc:

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_complexcomplex_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
 

Detailed Description

Evolves the hydrogen molecular ion in 4D ... 3 electron + 1 nuclear degree of freedom.

Typedef Documentation

◆ complex_factoryT

◆ complex_functionT

◆ complex_functorT

◆ complex_operatorT

◆ coordT

typedef Vector<double,4> coordT

◆ factoryT

typedef FunctionFactory<double,4> factoryT

◆ functionT

typedef Function<double,4> functionT

◆ functorT

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

◆ operatorT

typedef SeparatedConvolution<double,4> operatorT

◆ pmapT

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

Function Documentation

◆ APPLY()

complex_functionT APPLY ( const complex_operatorT Ge,
const complex_operatorT Gn,
const complex_functionT psi 
)

◆ bond_length()

double bond_length ( const coordT r)

References R0, and sqrtmu.

Referenced by propagate().

◆ converge()

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

◆ delsqfred()

double delsqfred ( const coordT r)

References a.

Referenced by testbsh().

◆ doit()

void doit ( World world)

◆ energy()

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

◆ fred()

double fred ( const coordT r)

◆ guess()

static double guess ( const coordT r)
static

References a, alpha, beta, R, R0, R2, sqrtmu, and Z.

Referenced by doit().

◆ initial_loadbal()

template<typename T >
void initial_loadbal ( World world,
functionT pote,
functionT potn,
functionT pot,
Function< T, 4 > &  psi 
)

◆ laser()

double laser ( double  t)

◆ loadbal()

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 
)

◆ 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 energy().

◆ operator<<()

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

References p().

◆ print_stats()

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 
)

◆ print_stats_header()

void print_stats_header ( World world)

References madness::World::rank().

Referenced by propagate().

◆ propagate()

void propagate ( World world,
functionT pote,
functionT potn,
functionT pot,
int  step0 
)

◆ real()

double real ( double  a)

References a.

◆ smoothed_potential()

static double smoothed_potential ( double  r)
static

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

◆ testbsh()

void testbsh ( World world)

◆ trotter()

complex_functionT trotter ( World world,
const complex_functionT expV,
const complex_operatorT Ge,
const complex_operatorT Gn,
const complex_functionT psi0 
)

◆ Ve()

static double Ve ( const coordT r)
static

References InputParameters::cut, param, R, R0, madness::smoothed_potential(), sqrtmu, and Z.

Referenced by doit(), and main().

◆ Vn()

static double Vn ( const coordT r)
static

References cut, R, R0, madness::smoothed_potential(), and sqrtmu.

Referenced by doit().

◆ 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.

◆ 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.

◆ 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 propagate().

◆ zdipole()

double zdipole ( const coordT r)

Referenced by propagate().

Variable Documentation

◆ param

◆ R0

const double R0 = 2.04
static

◆ reduced_mass

const double reduced_mass = 0.5*constants::proton_electron_mass_ratio
static

Referenced by InputParameters::read().

◆ s0

const double s0 = sqrtmu*R0
static

◆ sqrtmu

const double sqrtmu = sqrt(reduced_mass)
static

◆ Z

const double Z =1.0
static

Referenced by guess(), InputParameters::read(), and Ve().

◆ zero_field_time

double zero_field_time
static

Referenced by propagate().