MADNESS
version 0.9
|
optimized effective potentials for DFT More...
#include <chem/mp2.h>
#include <madness/mra/operator.h>
#include <madness/mra/mra.h>
#include <madness/mra/lbdeux.h>
Typedefs | |
typedef Tensor< double > | tensorT |
Functions | |
template<size_t NDIM> | |
void | draw_line (World &world, Function< double, NDIM > &pair, const std::string restart_name) |
template<size_t NDIM> | |
void | save_function (World &world, Function< double, NDIM > &pair, const std::string name) |
template<size_t NDIM> | |
void | load_function (World &world, Function< double, NDIM > &pair, const std::string name) |
template<size_t NDIM> | |
void | draw_plane (World &world, Function< double, NDIM > &function, const std::string restart_name) |
void | plot (const real_function_3d &f, const std::string filename, const long k) |
void | plot_radial_density (const real_function_3d &rho, const std::string filename, const tensorT &grid) |
void | plot_radial_function (const real_function_3d &rho, const std::string filename, const tensorT &grid) |
void | compute_energy (World &world, const real_function_3d &psi, const real_function_3d &pot, double &ke, double &pe) |
double | iterate (World &world, const real_function_3d &VV, real_function_3d &psi, double &eps) |
apply the Green's function on V*psi, update psi and the energy More... | |
void | orthogonalize (std::vector< real_function_3d > &orbitals, const int ii) |
orthogonalize orbital i against all other orbitals More... | |
void | solve (World &world, const real_function_3d &potential, const double thresh, tensorT &eps, std::vector< real_function_3d > &orbitals) |
solve the residual equations More... | |
void | update_potential (World &world, real_function_3d &potential, const real_function_3d &density, const real_function_3d &refdens, const HartreeFock &hf) |
given the density and the trial potential, update the potential to yield the density More... | |
int | main (int argc, char **argv) |
optimized effective potentials for DFT
The source is here.
typedef Tensor<double> tensorT |
void compute_energy | ( | World & | world, |
const real_function_3d & | psi, | ||
const real_function_3d & | pot, | ||
double & | ke, | ||
double & | pe | ||
) |
References madness::inner(), madness::World::rank(), and madness::wall_time().
void draw_line | ( | World & | world, |
Function< double, NDIM > & | pair, | ||
const std::string | restart_name | ||
) |
References madness::trajectory< NDIM >::line2().
double iterate | ( | World & | world, |
const real_function_3d & | VV, | ||
real_function_3d & | psi, | ||
double & | eps | ||
) |
apply the Green's function on V*psi, update psi and the energy
References madness::FunctionDefaults< NDIM >::get_thresh(), madness::inner(), madness::norm(), madness::Function< T, NDIM >::norm2(), op(), madness::print(), psi(), madness::World::rank(), madness::Function< T, NDIM >::scale(), sqrt(), thresh, and madness::Function< T, NDIM >::truncate().
Referenced by solve().
void load_function | ( | World & | world, |
Function< double, NDIM > & | pair, | ||
const std::string | name | ||
) |
References madness::print(), madness::Function< T, NDIM >::print_size(), and madness::World::rank().
Referenced by main().
int main | ( | int | argc, |
char ** | argv | ||
) |
References madness::abs(), madness::SCF::aeps, madness::SCF::amo, madness::SCF::aocc, SafeMPI::COMM_WORLD, madness::copy(), madness::error(), madness::finalize(), madness::HartreeFock< T, NDIM >::get_calc(), madness::Function< T, NDIM >::get_impl(), madness::FunctionDefaults< NDIM >::get_thresh(), madness::initialize(), load_function(), MADNESS_EXCEPTION, madness::SCF::make_density(), madness::matrix_inner(), madness::SCF::molecule, madness::norm2(), madness::Molecule::nuclear_repulsion_energy(), plot_radial_density(), plot_radial_function(), madness::SCF::potentialmanager, prefix, madness::print(), madness::World::rank(), save_function(), madness::FunctionDefaults< NDIM >::set_max_refine_level(), solve(), madness::startup(), thresh, madness::Function< T, NDIM >::trace(), madness::Function< T, NDIM >::truncate(), update_potential(), madness::HartreeFock< T, NDIM >::value(), and madness::wall_time().
void orthogonalize | ( | std::vector< real_function_3d > & | orbitals, |
const int | ii | ||
) |
orthogonalize orbital i against all other orbitals
References madness::inner(), and madness::Function< T, NDIM >::norm2().
Referenced by solve().
void plot | ( | const real_function_3d & | f, |
const std::string | filename, | ||
const long | k | ||
) |
References madness::f, and madness::vec().
void plot_radial_density | ( | const real_function_3d & | rho, |
const std::string | filename, | ||
const tensorT & | grid | ||
) |
References madness::vec().
Referenced by main().
void plot_radial_function | ( | const real_function_3d & | rho, |
const std::string | filename, | ||
const tensorT & | grid | ||
) |
References madness::vec().
Referenced by main().
void save_function | ( | World & | world, |
Function< double, NDIM > & | pair, | ||
const std::string | name | ||
) |
References madness::Function< T, NDIM >::print_size().
void solve | ( | World & | world, |
const real_function_3d & | potential, | ||
const double | thresh, | ||
tensorT & | eps, | ||
std::vector< real_function_3d > & | orbitals | ||
) |
solve the residual equations
[in] | potential | the effective potential |
[in] | thresh | the threshold for the error in the orbitals |
[in,out] | eps | guesses for the orbital energies |
[in,out] | orbitals | the first n roots of the equation |
References madness::error(), iterate(), orthogonalize(), madness::print(), madness::World::rank(), and save_function().
Referenced by main().
void update_potential | ( | World & | world, |
real_function_3d & | potential, | ||
const real_function_3d & | density, | ||
const real_function_3d & | refdens, | ||
const HartreeFock & | hf | ||
) |
given the density and the trial potential, update the potential to yield the density
[in] | world | the world |
in/out] | potential the potential to be updated | |
[in] | density | the density |
[in] | refdens | the reference density, or target densiy |
References madness::truncate().
Referenced by main().