|
MADNESS 0.10.1
|
the population analysis of the population keys, for orbitals given in real space More...
#include <population.h>

Public Member Functions | |
| PopulationAnalysis (World &world, const Molecule &molecule, const CalculationParameters ¶m) | |
| the schemes and basis sets of the population keys; nothing is projected yet | |
| nlohmann::json | analyze (const std::vector< Function< double, 3 > > &amo, const Tensor< double > &aocc, const std::vector< Function< double, 3 > > &bmo, const Tensor< double > &bocc) const |
| open shell | |
| nlohmann::json | analyze (const std::vector< Function< double, 3 > > &mo, const Tensor< double > &occ) const |
| bool | requested () const |
false for population none | |
Private Member Functions | |
| nlohmann::json | run (const std::vector< Function< double, 3 > > &amo, const Tensor< double > &aocc, const std::vector< Function< double, 3 > > &bmo, const Tensor< double > &bocc, bool restricted) const |
Private Attributes | |
| std::string | basis_ |
| std::string | minbasis_ |
| population_basis, population_minbasis | |
| std::shared_ptr< const Molecule > | molecule_ |
| a copy: the results refer to this geometry | |
| int | print_level_ = 0 |
| std::vector< std::string > | schemes_ |
| the population key | |
| World & | world_ |
the population analysis of the population keys, for orbitals given in real space
For each scheme of the population key: reads the basis set by name (population_basis for mulliken and lowdin, population_minbasis for iao), projects it at the current FunctionDefaults, forms S and X, and prints a table per scheme on rank 0 at print_level > 0. The occupied orbitals are those with a nonzero occupation, so explicit holes count, and the total charge is the nuclear charge minus their sum. The schemes assume orthonormal orbitals; after an SCF they are so only to its screening and truncation, so they are orthonormalized first (Loewdin, orthonormalize_symmetric). A failing scheme only warns: its entry in the result holds the error. moldft (SCF::population_analysis) and nemo (Nemo::population_analysis) call it after the final rung.
| madness::population::PopulationAnalysis::PopulationAnalysis | ( | World & | world, |
| const Molecule & | molecule, | ||
| const CalculationParameters & | param | ||
| ) |
the schemes and basis sets of the population keys; nothing is projected yet
| nlohmann::json madness::population::PopulationAnalysis::analyze | ( | const std::vector< Function< double, 3 > > & | amo, |
| const Tensor< double > & | aocc, | ||
| const std::vector< Function< double, 3 > > & | bmo, | ||
| const Tensor< double > & | bocc | ||
| ) | const |
open shell
| nlohmann::json madness::population::PopulationAnalysis::analyze | ( | const std::vector< Function< double, 3 > > & | mo, |
| const Tensor< double > & | occ | ||
| ) | const |
closed shell: both spins have the orbitals mo with the occupations occ
Referenced by madness::Nemo::population_analysis(), and madness::SCF::population_analysis().
| bool madness::population::PopulationAnalysis::requested | ( | ) | const |
false for population none
References schemes_.
Referenced by madness::Nemo::population_analysis(), and run().
|
private |
References a, madness::population::atomic_populations(), basis_, madness::AtomicBasisSet::basisfn_to_atom(), madness::cpu_time(), e(), madness::population::SpinPopulation::electrons, madness::WorldGopInterface::fence(), madness::get_atomic_data(), madness::FunctionDefaults< NDIM >::get_k(), madness::FunctionDefaults< NDIM >::get_thresh(), madness::World::gop, madness::AtomicBasisSet::is_supported(), MADNESS_CHECK_THROW, madness::matrix_inner(), minbasis_, madness::mo, molecule, molecule_, mu, madness::none, madness::orthonormalize_symmetric(), madness::print(), madness::population::AtomicPopulations::print(), print_level_, madness::SCF::project_ao_basis_only(), madness::World::rank(), madness::AtomicBasisSet::read_file(), requested(), schemes_, madness::population::spin_population(), madness::AtomicData::symbol, madness::population::AtomicPopulations::to_json(), madness::transpose(), madness::wall_time(), world_, and Z.
|
private |
Referenced by run().
|
private |
population_basis, population_minbasis
Referenced by run().
|
private |
a copy: the results refer to this geometry
Referenced by run().
|
private |
Referenced by run().
|
private |
the population key
Referenced by requested(), and run().