MADNESS
0.10.1
|
Solves the two-particle system exactly. More...
#include <madness/misc/info.h>
#include <madness/mra/mra.h>
#include <madness/mra/operator.h>
#include <madness/mra/funcplot.h>
#include <madness/mra/lbdeux.h>
#include <iostream>
#include <madness/chem/SCF.h>
#include <madness/chem/nemo.h>
#include <madness/chem/correlationfactor.h>
#include <madness/chem/electronic_correlation_factor.h>
#include "madness/mra/commandlineparser.h"
Macros | |
#define | WITH_G12 |
Typedefs | |
typedef std::shared_ptr< NuclearCorrelationFactor > | ncf_ptr |
Functions | |
real_function_6d | apply_U_ecf (World &world, const real_function_6d &psi, const CorrelationFactor2 &ecf) |
real_function_6d | apply_U_mix (World &world, const real_function_6d &psi, const CorrelationFactor2 &ecf, const ncf_ptr &ncf) |
real_function_6d | apply_U_ncf (World &world, const real_function_6d &psi, const ncf_ptr &ncf) |
real_function_6d | apply_V (World &world, const real_function_6d &psi, const SCF &calc) |
double | compute_energy (World &world, const real_function_6d &psi, const CorrelationFactor2 &ecf, const ncf_ptr &ncf, const real_function_3d &vnuc) |
compute the energy using the reconstructed wave function More... | |
double | compute_energy_with_U (World &world, const real_function_6d &psi, const CorrelationFactor2 &ecf, const ncf_ptr &ncf, const real_function_6d &twoVpsi) |
compute the energy using the regularization More... | |
real_function_6d | compute_R2f2_psi (World &world, const real_function_6d &psi, const CorrelationFactor2 &ecf, const ncf_ptr &ncf) |
compute R_12^2f_12^2|psi> More... | |
void | load (World &world, real_function_6d &f, std::string filename) |
int | main (int argc, char **argv) |
real_function_6d | reconstruct_psi (World &world, const real_function_6d &psi, const CorrelationFactor2 &ecf, const ncf_ptr &ncf) |
reconstruct the full wave function More... | |
void | save (World &world, const real_function_6d &f, std::string filename) |
void | test_U_el (World &world, const real_function_6d &psi, const CorrelationFactor2 &ecf) |
the electronic U potential is U -1/r12 = f^-1 [T, f] = f^-1 T f - T More... | |
Variables | |
static double | bsh_eps = 1.e-8 |
static double | lo = 1.e-8 |
Solves the two-particle system exactly.
#define WITH_G12 |
typedef std::shared_ptr<NuclearCorrelationFactor> ncf_ptr |
real_function_6d apply_U_ecf | ( | World & | world, |
const real_function_6d & | psi, | ||
const CorrelationFactor2 & | ecf | ||
) |
References psi().
Referenced by main(), and test_U_el().
real_function_6d apply_U_mix | ( | World & | world, |
const real_function_6d & | psi, | ||
const CorrelationFactor2 & | ecf, | ||
const ncf_ptr & | ncf | ||
) |
References axis, bsh_eps, madness::copy(), madness::Function< T, NDIM >::fill_tree(), madness::CompositeFactory< T, NDIM, MDIM >::g12(), madness::CompositeFactory< T, NDIM, MDIM >::ket(), lo, madness::SeparatedConvolution< Q, NDIM >::modified(), madness::print(), psi(), madness::World::rank(), v, madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle1(), and madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle2().
Referenced by main().
real_function_6d apply_U_ncf | ( | World & | world, |
const real_function_6d & | psi, | ||
const ncf_ptr & | ncf | ||
) |
References axis, bsh_eps, madness::copy(), madness::Function< T, NDIM >::fill_tree(), madness::CompositeFactory< T, NDIM, MDIM >::ket(), lo, madness::SeparatedConvolution< Q, NDIM >::modified(), madness::print(), psi(), madness::r2(), madness::World::rank(), madness::Function< T, NDIM >::reduce_rank(), madness::Function< T, NDIM >::truncate(), madness::truncate(), madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle1(), and madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle2().
Referenced by main().
real_function_6d apply_V | ( | World & | world, |
const real_function_6d & | psi, | ||
const SCF & | calc | ||
) |
References bsh_eps, madness::copy(), madness::CompositeFactory< T, NDIM, MDIM >::ket(), lo, madness::SeparatedConvolution< Q, NDIM >::modified(), madness::SCF::potentialmanager, psi(), madness::r2(), madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle1(), madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle2(), and vnuc().
double compute_energy | ( | World & | world, |
const real_function_6d & | psi, | ||
const CorrelationFactor2 & | ecf, | ||
const ncf_ptr & | ncf, | ||
const real_function_3d & | vnuc | ||
) |
compute the energy using the reconstructed wave function
References bsh_eps, madness::copy(), madness::TwoElectronFactory< T, NDIM >::dcut(), madness::Function< T, NDIM >::fill_tree(), madness::CompositeFactory< T, NDIM, MDIM >::g12(), madness::inner(), madness::CompositeFactory< T, NDIM, MDIM >::ket(), lo, madness::SeparatedConvolution< Q, NDIM >::modified(), madness::detail::norm(), madness::Function< T, NDIM >::norm2(), madness::CompositeFactory< T, NDIM, MDIM >::particle1(), madness::CompositeFactory< T, NDIM, MDIM >::particle2(), madness::print(), psi(), R2, madness::World::rank(), reconstruct_psi(), madness::truncate(), madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle1(), madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle2(), and vnuc().
Referenced by main().
double compute_energy_with_U | ( | World & | world, |
const real_function_6d & | psi, | ||
const CorrelationFactor2 & | ecf, | ||
const ncf_ptr & | ncf, | ||
const real_function_6d & | twoVpsi | ||
) |
compute the energy using the regularization
References compute_R2f2_psi(), energy, madness::inner(), madness::detail::norm(), madness::print(), psi(), and madness::World::rank().
Referenced by main().
real_function_6d compute_R2f2_psi | ( | World & | world, |
const real_function_6d & | psi, | ||
const CorrelationFactor2 & | ecf, | ||
const ncf_ptr & | ncf | ||
) |
compute R_12^2f_12^2|psi>
References bsh_eps, madness::copy(), madness::Function< T, NDIM >::fill_tree(), madness::CompositeFactory< T, NDIM, MDIM >::g12(), madness::inner(), madness::CompositeFactory< T, NDIM, MDIM >::ket(), lo, madness::SeparatedConvolution< Q, NDIM >::modified(), madness::print(), psi(), madness::World::rank(), madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle1(), and madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle2().
Referenced by compute_energy_with_U().
void load | ( | World & | world, |
real_function_6d & | f, | ||
std::string | filename | ||
) |
References madness::f, and madness::filename.
int main | ( | int | argc, |
char ** | argv | ||
) |
References apply_U_ecf(), apply_U_mix(), apply_U_ncf(), madness::arg(), bsh_eps, madness::Function< T, NDIM >::clear(), SafeMPI::COMM_WORLD, compute_energy(), compute_energy_with_U(), madness::copy(), madness::SeparatedConvolution< Q, NDIM >::destructive(), energy, madness::archive::BaseParallelArchive< BinaryFstreamInputArchive >::exists(), madness::WorldGopInterface::fence(), madness::filename, madness::finalize(), madness::Nemo::get_calc(), madness::FunctionDefaults< NDIM >::get_thresh(), madness::info::git_source_description(), madness::World::gop, madness::hartree_product(), madness::initialize(), madness::inner(), lo, madness::load(), madness::NemoBase::ncf, madness::detail::norm(), madness::Function< T, NDIM >::norm2(), param, madness::print(), madness::Function< T, NDIM >::print_size(), psi(), madness::World::rank(), madness::save(), madness::Function< T, NDIM >::scale(), madness::FunctionDefaults< NDIM >::set_cubic_cell(), madness::FunctionDefaults< NDIM >::set_k(), madness::commandlineparser::set_keyval(), madness::FunctionDefaults< NDIM >::set_tensor_type(), madness::FunctionDefaults< NDIM >::set_thresh(), madness::World::size(), madness::startup(), test_U_el(), madness::Function< T, NDIM >::truncate(), madness::TT_2D, madness::Nemo::value(), vnuc(), and madness::wall_time().
real_function_6d reconstruct_psi | ( | World & | world, |
const real_function_6d & | psi, | ||
const CorrelationFactor2 & | ecf, | ||
const ncf_ptr & | ncf | ||
) |
reconstruct the full wave function
Psi from the regularized wave function and the correlation factors
References bsh_eps, madness::copy(), madness::Function< T, NDIM >::fill_tree(), madness::CompositeFactory< T, NDIM, MDIM >::g12(), madness::inner(), madness::CompositeFactory< T, NDIM, MDIM >::ket(), lo, madness::SeparatedConvolution< Q, NDIM >::modified(), madness::print(), psi(), madness::World::rank(), madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle1(), and madness::CompositeFactory< T, NDIM, MDIM >::V_for_particle2().
Referenced by compute_energy().
void save | ( | World & | world, |
const real_function_6d & | f, | ||
std::string | filename | ||
) |
References madness::f, and madness::filename.
void test_U_el | ( | World & | world, |
const real_function_6d & | psi, | ||
const CorrelationFactor2 & | ecf | ||
) |
the electronic U potential is U -1/r12 = f^-1 [T, f] = f^-1 T f - T
References apply_U_ecf(), bsh_eps, madness::copy(), madness::TwoElectronFactory< T, NDIM >::dcut(), madness::Function< T, NDIM >::fill_tree(), madness::g, madness::CompositeFactory< T, NDIM, MDIM >::g12(), madness::inner(), madness::CompositeFactory< T, NDIM, MDIM >::ket(), lo, madness::SeparatedConvolution< Q, NDIM >::modified(), madness::Function< T, NDIM >::norm2(), madness::print(), psi(), madness::World::rank(), and u().
Referenced by main().
|
static |
|
static |
Referenced by apply_U_mix(), apply_U_ncf(), apply_V(), compute_energy(), compute_R2f2_psi(), main(), reconstruct_psi(), and test_U_el().