MADNESS
0.10.1
|
#include <MolecularOrbitals.h>
Public Member Functions | |
MolecularOrbitals ()=default | |
MolecularOrbitals (const MolecularOrbitals< T, NDIM > &other)=default | |
MolecularOrbitals (const std::vector< Function< T, NDIM > > &mo) | |
MolecularOrbitals (const std::vector< Function< T, NDIM > > &mo, const Tensor< double > &eps) | |
MolecularOrbitals (const std::vector< Function< T, NDIM > > &mo, const Tensor< double > &eps, const std::vector< std::string > &irrep, const Tensor< double > &occ, const std::vector< int > &set) | |
std::vector< Vector< typename Tensor< T >::scalar_type, 3 > > | compute_center (const Function< typename Tensor< T >::scalar_type, NDIM > metric2=Function< typename Tensor< T >::scalar_type, NDIM >()) const |
Tensor< double > | get_eps () const |
std::vector< std::string > | get_irreps () const |
std::vector< int > | get_localize_sets () const |
std::vector< Function< T, NDIM > > | get_mos () const |
Tensor< double > | get_occ () const |
MolecularOrbitals | get_subset (const int iset) const |
void | invalidate_all () |
void | invalidate_eps () |
void | invalidate_irreps () |
void | invalidate_localize_sets () |
void | invalidate_mos () |
void | invalidate_occ () |
void | load_mos (archive::ParallelInputArchive<> &ar, const Molecule &molecule, const std::size_t nmo_from_input) |
legacy code More... | |
void | post_process_mos (World &world, const double thresh, const int k) |
void | pretty_print (std::string message, std::vector< std::string > flags=std::vector< std::string >()) const |
void | print_cubefiles (const std::string name, const std::vector< std::string > cubefile_header) const |
void | print_frozen_orbitals (const long freeze) const |
void | project_ao (World &world, const Tensor< T > &Saomo, const std::vector< Function< double, 3 > > &aos) |
MolecularOrbitals & | recompute_irreps (const std::string pointgroup, const Function< typename Tensor< T >::scalar_type, NDIM > &metric) |
MolecularOrbitals & | recompute_localize_sets (const double bandwidth=1.5) |
group orbitals into sets of similar orbital energies for localization More... | |
void | save_mos (archive::ParallelOutputArchive<> &ar, const Molecule &molecule) const |
legacy code More... | |
template<typename Archive > | |
void | serialize (Archive &ar) |
MolecularOrbitals & | set_all_orbitals_occupied () |
MolecularOrbitals & | set_mos (const std::vector< Function< T, NDIM > > &mo_new) |
setters will always invalidate all other member variables More... | |
std::size_t | size () const |
MolecularOrbitals & | update_localize_set (const std::vector< int > &set) |
updates will keep other member variables More... | |
MolecularOrbitals & | update_mos (const std::vector< Function< T, NDIM > > &mo_new) |
updates will keep other member variables More... | |
MolecularOrbitals & | update_mos_and_eps (const std::vector< Function< T, NDIM > > &mo_new, const Tensor< double > &eps_new) |
updates will keep other member variables More... | |
MolecularOrbitals & | update_occ (const Tensor< double > &occ_new) |
void | write_to (std::vector< Function< T, NDIM > > &mo_out, Tensor< double > &eps_out, std::vector< std::string > &irrep_out, Tensor< double > &occ_out, std::vector< int > &set_out) const |
Static Public Member Functions | |
static std::vector< Slice > | convert_set_to_slice (const std::vector< int > &localized_set) |
static std::pair< MolecularOrbitals< T, NDIM >, MolecularOrbitals< T, NDIM > > | read_restartaodata (World &world, const Molecule &molecule, const bool have_beta) |
uses AO-projection as a restart guess More... | |
static std::pair< MolecularOrbitals< T, NDIM >, MolecularOrbitals< T, NDIM > > | read_restartdata (World &world, const std::string filename, const Molecule &molecule, const std::size_t nmo_alpha, const std::size_t nmo_beta) |
reads amo and bmo from the restartdata file More... | |
static void | save_restartaodata (World &world, const Molecule &molecule, const MolecularOrbitals< T, NDIM > &amo, const MolecularOrbitals< T, NDIM > &bmo, const AtomicBasisSet &aobasis) |
save MOs in the AO projection for geometry restart More... | |
static void | save_restartdata (World &world, const std::string filename, const Molecule &molecule, const MolecularOrbitals< T, NDIM > &amo, const MolecularOrbitals< T, NDIM > &bmo) |
reads amo and bmo from the restartdata file More... | |
Private Attributes | |
Tensor< double > | eps |
std::vector< std::string > | irreps |
std::vector< int > | localize_sets |
std::vector< Function< T, NDIM > > | mo |
Tensor< double > | occ |
Friends | |
bool | similar (const MolecularOrbitals &mo1, const MolecularOrbitals &mo2, const double thresh=1.e-6) |
|
default |
|
default |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
Referenced by madness::MP2::check_core_valence_separation(), madness::Localizer::check_core_valence_separation(), madness::Localizer::check_frozen_consistency(), madness::Localizer::determine_frozen_orbitals(), madness::MolecularOrbitals< T, NDIM >::get_subset(), madness::Localizer::localize(), and madness::Localizer::undo_rotations_within_sets().
|
inline |
|
inline |
References madness::MolecularOrbitals< T, NDIM >::irreps.
Referenced by madness::MolecularOrbitals< T, NDIM >::pretty_print().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::localize_sets.
Referenced by madness::MP2::check_core_valence_separation(), madness::CC2::check_core_valence_separation(), compare_calc_and_mos(), madness::Localizer::compute_core_valence_separation_transformation_matrix(), madness::Localizer::compute_localization_matrix(), madness::Localizer::determine_frozen_orbitals(), madness::TDHF::enforce_core_valence_separation(), madness::OEP::load_restartdata(), madness::Localizer::localize(), madness::MolecularOrbitals< T, NDIM >::pretty_print(), madness::MolecularOrbitals< T, NDIM >::save_restartaodata(), and madness::Localizer::separate_core_valence().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::mo.
Referenced by compare_calc_and_mos(), madness::Localizer::compute_localization_matrix(), madness::Localizer::determine_frozen_orbitals(), madness::TDHF::enforce_core_valence_separation(), madness::OEP::load_restartdata(), madness::Localizer::localize(), madness::BSHApply< T, NDIM >::operator()(), madness::MolecularOrbitals< T, NDIM >::print_frozen_orbitals(), madness::HartreeFock< T, NDIM >::reset_orbitals(), madness::MolecularOrbitals< T, NDIM >::save_restartaodata(), madness::Localizer::separate_core_valence(), test_ethylene(), and test_ne_boys().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::occ.
Referenced by compare_calc_and_mos(), madness::OEP::load_restartdata(), madness::MolecularOrbitals< T, NDIM >::pretty_print(), madness::MolecularOrbitals< T, NDIM >::recompute_localize_sets(), madness::MolecularOrbitals< T, NDIM >::save_restartaodata(), test_ethylene(), and test_ne_boys().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::convert_set_to_slice(), madness::copy(), madness::MolecularOrbitals< T, NDIM >::eps, madness::MolecularOrbitals< T, NDIM >::irreps, madness::MolecularOrbitals< T, NDIM >::localize_sets, MADNESS_CHECK, madness::MolecularOrbitals< T, NDIM >::mo, madness::MolecularOrbitals< T, NDIM >::occ, and madness::BaseTensor::size().
Referenced by madness::Localizer::localize().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::invalidate_eps(), madness::MolecularOrbitals< T, NDIM >::invalidate_irreps(), madness::MolecularOrbitals< T, NDIM >::invalidate_localize_sets(), madness::MolecularOrbitals< T, NDIM >::invalidate_mos(), and madness::MolecularOrbitals< T, NDIM >::invalidate_occ().
Referenced by madness::MolecularOrbitals< T, NDIM >::set_mos().
|
inline |
References madness::Tensor< T >::clear(), and madness::MolecularOrbitals< T, NDIM >::eps.
Referenced by madness::MolecularOrbitals< T, NDIM >::invalidate_all().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::irreps.
Referenced by madness::MolecularOrbitals< T, NDIM >::invalidate_all().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::localize_sets.
Referenced by madness::MolecularOrbitals< T, NDIM >::invalidate_all().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::mo.
Referenced by madness::MolecularOrbitals< T, NDIM >::invalidate_all().
|
inline |
References madness::Tensor< T >::clear(), and madness::MolecularOrbitals< T, NDIM >::occ.
Referenced by madness::MolecularOrbitals< T, NDIM >::invalidate_all().
|
inline |
legacy code
References madness::copy(), madness::MolecularOrbitals< T, NDIM >::eps, madness::MolecularOrbitals< T, NDIM >::localize_sets, MADNESS_ASSERT, madness::MolecularOrbitals< T, NDIM >::mo, molecule, and madness::MolecularOrbitals< T, NDIM >::occ.
Referenced by madness::MolecularOrbitals< T, NDIM >::read_restartdata().
void madness::MolecularOrbitals< T, NDIM >::post_process_mos | ( | World & | world, |
const double | thresh, | ||
const int | k | ||
) |
|
inline |
References bufsize, madness::MolecularOrbitals< T, NDIM >::get_eps(), madness::MolecularOrbitals< T, NDIM >::get_irreps(), madness::MolecularOrbitals< T, NDIM >::get_localize_sets(), madness::MolecularOrbitals< T, NDIM >::get_occ(), madness::MolecularOrbitals< T, NDIM >::irreps, madness::MolecularOrbitals< T, NDIM >::mo, and madness::print().
Referenced by madness::MP2::check_core_valence_separation(), madness::Localizer::determine_frozen_orbitals(), madness::OEP::load_restartdata(), madness::MolecularOrbitals< T, NDIM >::print_frozen_orbitals(), test_ethylene(), and test_ne_boys().
void madness::MolecularOrbitals< T, NDIM >::print_cubefiles | ( | const std::string | name, |
const std::vector< std::string > | cubefile_header | ||
) | const |
[in] | cubefile_header | header of the cube file, from molecule::cubefile_header() |
References madness::cubefile_header(), madness::filename, and madness::name().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::get_mos(), madness::MolecularOrbitals< T, NDIM >::mo, madness::MolecularOrbitals< T, NDIM >::pretty_print(), madness::print(), madness::World::rank(), and madness::MolecularOrbitals< T, NDIM >::recompute_localize_sets().
Referenced by madness::TDHF::print_frozen_orbitals(), and madness::CC2::solve().
|
static |
uses AO-projection as a restart guess
References aobasis, madness::AtomicBasisSet::get_name(), molecule, madness::print(), madness::MolecularOrbitals< T, NDIM >::project_ao(), and madness::SCF::project_ao_basis_only().
Referenced by madness::Znemo::read_restartaodata(), and test_read_restartaodata().
|
inlinestatic |
reads amo and bmo from the restartdata file
References madness::filename, k1, L, madness::MolecularOrbitals< T, NDIM >::load_mos(), molecule, madness::info::version(), and xc.
Referenced by madness::Znemo::read_complex_guess(), madness::Znemo::read_real_guess(), test_read_restartaodata(), and test_read_restartdata().
MolecularOrbitals< T, NDIM > & madness::MolecularOrbitals< T, NDIM >::recompute_irreps | ( | const std::string | pointgroup, |
const Function< typename Tensor< T >::scalar_type, NDIM > & | metric | ||
) |
References madness::print().
Referenced by madness::OEP::save_restartdata().
|
inline |
group orbitals into sets of similar orbital energies for localization
References madness::MolecularOrbitals< T, NDIM >::eps, madness::MolecularOrbitals< T, NDIM >::get_occ(), madness::MolecularOrbitals< T, NDIM >::mo, madness::MolecularOrbitals< T, NDIM >::set_all_orbitals_occupied(), and madness::MolecularOrbitals< T, NDIM >::update_localize_set().
Referenced by madness::MP2::check_core_valence_separation(), madness::CC2::check_core_valence_separation(), madness::Localizer::determine_frozen_orbitals(), madness::MP2::enforce_core_valence_separation(), madness::CC2::enforce_core_valence_separation(), madness::TDHF::enforce_core_valence_separation(), madness::MolecularOrbitals< T, NDIM >::print_frozen_orbitals(), test_ethylene(), and test_ne_boys().
|
inline |
|
static |
save MOs in the AO projection for geometry restart
compute the aos in MRA projection as:
compute the aos in MRA projection as: std::vector<Function<double,3> > aos=SCF::project_ao_basis_only(world, calc.aobasis, calc.molecule);
References aobasis, madness::MolecularOrbitals< T, NDIM >::get_eps(), madness::MolecularOrbitals< T, NDIM >::get_localize_sets(), madness::MolecularOrbitals< T, NDIM >::get_mos(), madness::MolecularOrbitals< T, NDIM >::get_occ(), madness::matrix_inner(), molecule, madness::SCF::project_ao_basis_only(), madness::World::rank(), and madness::BaseTensor::size().
Referenced by madness::Znemo::save_orbitals(), and test_read_restartaodata().
|
inlinestatic |
reads amo and bmo from the restartdata file
References madness::filename, k1, L, molecule, madness::MolecularOrbitals< T, NDIM >::save_mos(), madness::info::version(), and xc.
|
inline |
|
inline |
|
inline |
setters will always invalidate all other member variables
References madness::MolecularOrbitals< T, NDIM >::invalidate_all(), and madness::MolecularOrbitals< T, NDIM >::mo.
Referenced by madness::Znemo::custom_guess(), and madness::Znemo::read_explicit_guess_functions().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::mo.
|
inline |
updates will keep other member variables
References madness::MolecularOrbitals< T, NDIM >::localize_sets.
Referenced by madness::MolecularOrbitals< T, NDIM >::recompute_localize_sets().
|
inline |
updates will keep other member variables
References madness::MolecularOrbitals< T, NDIM >::mo.
Referenced by madness::Localizer::localize().
|
inline |
updates will keep other member variables
References madness::copy(), madness::MolecularOrbitals< T, NDIM >::eps, and madness::MolecularOrbitals< T, NDIM >::mo.
Referenced by madness::Znemo::save_orbitals(), madness::OEP::save_restartdata(), test_ethylene(), and test_ne_boys().
|
inline |
References madness::MolecularOrbitals< T, NDIM >::occ.
Referenced by madness::OEP::save_restartdata().
void madness::MolecularOrbitals< T, NDIM >::write_to | ( | std::vector< Function< T, NDIM > > & | mo_out, |
Tensor< double > & | eps_out, | ||
std::vector< std::string > & | irrep_out, | ||
Tensor< double > & | occ_out, | ||
std::vector< int > & | set_out | ||
) | const |
References madness::Tensor< T >::clear(), and madness::copy().
|
friend |
|
private |
Referenced by madness::MolecularOrbitals< T, NDIM >::get_eps(), madness::MolecularOrbitals< T, NDIM >::get_subset(), madness::MolecularOrbitals< T, NDIM >::invalidate_eps(), madness::MolecularOrbitals< T, NDIM >::load_mos(), madness::MolecularOrbitals< T, NDIM >::recompute_localize_sets(), madness::MolecularOrbitals< T, NDIM >::save_mos(), madness::MolecularOrbitals< T, NDIM >::serialize(), and madness::MolecularOrbitals< T, NDIM >::update_mos_and_eps().
|
private |
|
private |
Referenced by madness::MolecularOrbitals< T, NDIM >::get_localize_sets(), madness::MolecularOrbitals< T, NDIM >::get_subset(), madness::MolecularOrbitals< T, NDIM >::invalidate_localize_sets(), madness::MolecularOrbitals< T, NDIM >::load_mos(), madness::MolecularOrbitals< T, NDIM >::save_mos(), madness::MolecularOrbitals< T, NDIM >::serialize(), and madness::MolecularOrbitals< T, NDIM >::update_localize_set().
|
private |
Referenced by madness::MolecularOrbitals< T, NDIM >::get_mos(), madness::MolecularOrbitals< T, NDIM >::get_subset(), madness::MolecularOrbitals< T, NDIM >::invalidate_mos(), madness::MolecularOrbitals< T, NDIM >::load_mos(), madness::MolecularOrbitals< T, NDIM >::pretty_print(), madness::MolecularOrbitals< T, NDIM >::print_frozen_orbitals(), madness::MolecularOrbitals< T, NDIM >::recompute_localize_sets(), madness::MolecularOrbitals< T, NDIM >::save_mos(), madness::MolecularOrbitals< T, NDIM >::serialize(), madness::MolecularOrbitals< T, NDIM >::set_all_orbitals_occupied(), madness::MolecularOrbitals< T, NDIM >::set_mos(), madness::MolecularOrbitals< T, NDIM >::size(), madness::MolecularOrbitals< T, NDIM >::update_mos(), and madness::MolecularOrbitals< T, NDIM >::update_mos_and_eps().
|
private |
Referenced by madness::MolecularOrbitals< T, NDIM >::get_occ(), madness::MolecularOrbitals< T, NDIM >::get_subset(), madness::MolecularOrbitals< T, NDIM >::invalidate_occ(), madness::MolecularOrbitals< T, NDIM >::load_mos(), madness::MolecularOrbitals< T, NDIM >::save_mos(), madness::MolecularOrbitals< T, NDIM >::serialize(), madness::MolecularOrbitals< T, NDIM >::set_all_orbitals_occupied(), and madness::MolecularOrbitals< T, NDIM >::update_occ().