MADNESS 0.10.1
|
Given a molecule and nonrelativistic ground state orbitals, solve the Dirac-Hartree-Fock equations. More...
#include <DF.h>
Public Member Functions | |
DF (World &world, const char *input_file) | |
DF (World &world, std::shared_ptr< std::istream > input) | |
void | DF_load_balance (World &world, real_function_3d &Vnuc) |
void | diagonalize (World &world, real_function_3d &myV, real_convolution_3d &op, std::vector< Fcwf > &Kpsis) |
Tensor< double > | end_timer (World &world) |
void | exchange (World &world, real_convolution_3d &op, std::vector< Fcwf > &Kpsis) |
Tensor< double > | get_times (World &world) |
bool | iterate (World &world, real_function_3d &V, real_convolution_3d &op, real_function_3d &JandV, std::vector< Fcwf > &Kpsis, XNonlinearSolver< std::vector< Fcwf >, std::complex< double >, Fcwf_vector_allocator > &kainsolver, double &tolerance, int &iteration_number, double &nuclear_repulsion_energy) |
void | make_component_lineplots (World &world, const char *filename1, const char *filename2, int npt, double endpnt) |
void | make_component_logplots (World &world, const char *filename1, const char *filename2, int npt, int startpnt, int endpnt) |
void | make_density_lineplots (World &world, const char *filename, int npt, double endpnt) |
void | make_fermi_potential (World &world, real_convolution_3d &op, real_function_3d &potential) |
void | make_fermi_potential (World &world, real_convolution_3d &op, real_function_3d &potential, double &nuclear_repulsion_energy) |
void | make_gaussian_potential (World &world, real_function_3d &potential) |
void | make_gaussian_potential (World &world, real_function_3d &potential, double &nuclear_repulsion_energy) |
void | orthogonalize_inplace (World &world) |
double | pop (std::vector< double > &v) |
void | print_molecule (World &world) |
void | print_sizes (World &world, bool individual) |
double | rele (World &world, Fcwf &psi) |
void | saveDF (World &world) |
void | solve (World &world) |
void | solve_occupied (World &world) |
void | start_timer (World &world) |
Static Public Member Functions | |
static void | help () |
static void | print_parameters () |
Private Attributes | |
bool | closed_shell |
DFParameters | DFparams |
Tensor< double > | energies |
InitParameters | Init_params |
std::vector< Fcwf > | occupieds |
std::vector< double > | sss |
double | total_energy |
std::vector< double > | ttt |
Given a molecule and nonrelativistic ground state orbitals, solve the Dirac-Hartree-Fock equations.
DF::DF | ( | World & | world, |
const char * | input_file | ||
) |
DF::DF | ( | World & | world, |
std::shared_ptr< std::istream > | input | ||
) |
References madness::DFParameters::archive, madness::WorldGopInterface::broadcast_serializable(), closed_shell, madness::InitParameters::closed_shell, DFparams, end_timer(), energies, madness::InitParameters::energies, madness::WorldGopInterface::fence(), madness::World::gop, Init_params, madness::InitParameters::Init_total_energy, madness::DFParameters::k, madness::DFParameters::Krestricted, MADNESS_EXCEPTION, madness::InitParameters::num_occupied, madness::DFParameters::nwchem, occupieds, madness::InitParameters::orbitals, madness::InitParameters::order, madness::print(), print_molecule(), madness::DFParameters::print_params(), madness::InitParameters::print_params(), madness::project(), madness::World::rank(), madness::DFParameters::read(), madness::InitParameters::read(), madness::InitParameters::readnw(), madness::DFParameters::restart, madness::FunctionDefaults< NDIM >::set_k(), madness::FunctionDefaults< NDIM >::set_thresh(), madness::FunctionDefaults< NDIM >::set_truncate_mode(), start_timer(), madness::DFParameters::thresh, and total_energy.
void DF::DF_load_balance | ( | World & | world, |
real_function_3d & | Vnuc | ||
) |
References madness::LoadBalanceDeux< NDIM >::add_tree(), end_timer(), Init_params, madness::LoadBalanceDeux< NDIM >::load_balance(), madness::InitParameters::num_occupied, occupieds, madness::print(), madness::World::rank(), madness::FunctionDefaults< NDIM >::redistribute(), and start_timer().
Referenced by solve_occupied().
void DF::diagonalize | ( | World & | world, |
real_function_3d & | myV, | ||
real_convolution_3d & | op, | ||
std::vector< Fcwf > & | Kpsis | ||
) |
References madness::_(), std::abs(), madness::apply(), apply_T(), closed_shell, madness::conj(), madness::conj_transpose(), madness::copy(), DFparams, end_timer(), energies, Init_params, madness::inner(), madness::DFParameters::Krestricted, m, madness::matrix_inner(), np, madness::InitParameters::num_occupied, occupieds, op(), P, potential(), madness::print(), q(), madness::World::rank(), madness::Tensor< T >::scale(), sigma, squaremod(), start_timer(), madness::svd(), madness::sygv(), madness::DFParameters::thresh, madness::transform(), and madness::transpose().
Referenced by iterate().
References madness::cpu_time(), pop(), sss, ttt, and madness::wall_time().
Referenced by DF(), DF_load_balance(), diagonalize(), exchange(), iterate(), saveDF(), solve(), and solve_occupied().
void DF::exchange | ( | World & | world, |
real_convolution_3d & | op, | ||
std::vector< Fcwf > & | Kpsis | ||
) |
References madness::apply(), closed_shell, madness::compress(), madness::conj(), DFparams, end_timer(), madness::gaxpy(), Init_params, madness::DFParameters::Krestricted, madness::mul(), madness::InitParameters::num_occupied, occupieds, op(), madness::print(), madness::World::rank(), start_timer(), sum, and madness::truncate().
Referenced by iterate(), and solve_occupied().
References madness::cpu_time(), sss, ttt, and madness::wall_time().
|
inlinestatic |
References madness::print(), and madness::print_header2().
Referenced by main().
bool DF::iterate | ( | World & | world, |
real_function_3d & | V, | ||
real_convolution_3d & | op, | ||
real_function_3d & | JandV, | ||
std::vector< Fcwf > & | Kpsis, | ||
XNonlinearSolver< std::vector< Fcwf >, std::complex< double >, Fcwf_vector_allocator > & | kainsolver, | ||
double & | tolerance, | ||
int & | iteration_number, | ||
double & | nuclear_repulsion_energy | ||
) |
References madness::apply(), apply_BSH_new(), closed_shell, DFparams, diagonalize(), end_timer(), energies, exchange(), get_times(), Init_params, madness::inner(), madness::DFParameters::kain, madness::DFParameters::Krestricted, madness::DFParameters::maxrotn, madness::mul(), myr(), madness::norm2(), madness::InitParameters::num_occupied, occupieds, op(), orthogonalize_inplace(), madness::print(), madness::World::rank(), madness::real(), rele(), Fcwf::scale(), madness::DFParameters::small, squaremod(), start_timer(), madness::Tensor< T >::sum(), madness::DFParameters::thresh, total_energy, Fcwf::truncate(), madness::Function< T, NDIM >::truncate(), madness::truncate(), and V().
Referenced by solve_occupied().
void DF::make_component_lineplots | ( | World & | world, |
const char * | filename1, | ||
const char * | filename2, | ||
int | npt, | ||
double | endpnt | ||
) |
void DF::make_component_logplots | ( | World & | world, |
const char * | filename1, | ||
const char * | filename2, | ||
int | npt, | ||
int | startpnt, | ||
int | endpnt | ||
) |
void DF::make_density_lineplots | ( | World & | world, |
const char * | filename, | ||
int | npt, | ||
double | endpnt | ||
) |
void DF::make_fermi_potential | ( | World & | world, |
real_convolution_3d & | op, | ||
real_function_3d & | potential | ||
) |
Referenced by solve_occupied().
void DF::make_fermi_potential | ( | World & | world, |
real_convolution_3d & | op, | ||
real_function_3d & | potential, | ||
double & | nuclear_repulsion_energy | ||
) |
References madness::apply(), madness::DFParameters::bohr_rad, DFparams, dist(), madness::Molecule::get_all_coords_vec(), madness::Molecule::get_atomic_number(), Init_params, m, madness::InitParameters::molecule, op(), potential(), madness::print(), madness::World::rank(), madness::Function< T, NDIM >::scale(), and madness::Function< T, NDIM >::trace().
void DF::make_gaussian_potential | ( | World & | world, |
real_function_3d & | potential | ||
) |
References madness::DFParameters::bohr_rad, DFparams, Init_params, madness::InitParameters::molecule, potential(), madness::print(), and madness::World::rank().
Referenced by solve_occupied().
void DF::make_gaussian_potential | ( | World & | world, |
real_function_3d & | potential, | ||
double & | nuclear_repulsion_energy | ||
) |
void DF::orthogonalize_inplace | ( | World & | world | ) |
References std::abs(), madness::matrix_inner(), occupieds, Q(), madness::Q2(), and madness::transform().
Referenced by iterate().
double DF::pop | ( | std::vector< double > & | v | ) |
References v.
Referenced by end_timer().
void DF::print_molecule | ( | World & | world | ) |
References madness::atomic_number_to_symbol(), madness::Molecule::get_atoms(), Init_params, madness::InitParameters::molecule, madness::print(), and madness::World::rank().
Referenced by DF().
|
inlinestatic |
References madness::print().
Referenced by main().
void DF::print_sizes | ( | World & | world, |
bool | individual = false |
||
) |
References a, Init_params, madness::InitParameters::num_occupied, occupieds, madness::print(), and madness::World::rank().
References apply_T(), energy, madness::inner(), and psi().
Referenced by iterate().
void DF::saveDF | ( | World & | world | ) |
References closed_shell, DFparams, end_timer(), energies, get_times(), Init_params, madness::DFParameters::Krestricted, madness::InitParameters::L, madness::InitParameters::molecule, madness::InitParameters::num_occupied, occupieds, madness::InitParameters::order, madness::print(), madness::World::rank(), madness::DFParameters::savefile, start_timer(), and total_energy.
Referenced by solve_occupied().
void DF::solve | ( | World & | world | ) |
void DF::solve_occupied | ( | World & | world | ) |
References madness::apply(), closed_shell, madness::CoulombOperator(), DF_load_balance(), DFparams, madness::DFParameters::do_save, end_timer(), exchange(), Init_params, iterate(), madness::DFParameters::Krestricted, madness::DFParameters::lb_iter, make_fermi_potential(), make_gaussian_potential(), madness::DFParameters::max_iter, madness::DFParameters::maxsub, madness::DFParameters::min_iter, madness::DFParameters::nucleus, madness::InitParameters::num_occupied, occupieds, op(), madness::print(), madness::World::rank(), saveDF(), madness::XNonlinearSolver< T, C, Alloc >::set_maxsub(), madness::DFParameters::small, squaremod(), start_timer(), madness::DFParameters::thresh, and madness::Function< T, NDIM >::truncate().
Referenced by solve().
void DF::start_timer | ( | World & | world | ) |
References madness::cpu_time(), madness::WorldGopInterface::fence(), madness::World::gop, sss, ttt, and madness::wall_time().
Referenced by DF(), DF_load_balance(), diagonalize(), exchange(), iterate(), saveDF(), solve(), and solve_occupied().
|
private |
Referenced by DF(), diagonalize(), exchange(), iterate(), saveDF(), and solve_occupied().
|
private |
Referenced by DF(), diagonalize(), exchange(), iterate(), make_fermi_potential(), make_gaussian_potential(), make_gaussian_potential(), saveDF(), solve(), and solve_occupied().
|
private |
Referenced by DF(), diagonalize(), iterate(), and saveDF().
|
private |
Referenced by DF(), DF_load_balance(), diagonalize(), exchange(), iterate(), make_component_lineplots(), make_component_logplots(), make_density_lineplots(), make_fermi_potential(), make_gaussian_potential(), make_gaussian_potential(), print_molecule(), print_sizes(), saveDF(), and solve_occupied().
|
private |
|
private |
Referenced by end_timer(), get_times(), and start_timer().
|
private |
Referenced by end_timer(), get_times(), and start_timer().