mpqc::lcao::WavefunctionWorld Class Reference
Collaboration diagram for mpqc::lcao::WavefunctionWorld:

Documentation

specialization of mpqc::WavefunctionWorld to the LCAO case

Public Member Functions

 WavefunctionWorld (KeyVal const &kv)
 The KeyVal constructor. More...
 
 WavefunctionWorld (KeyVal &&kv)
 
 ~WavefunctionWorld () override=default
 
const std::shared_ptr< gaussian::OrbitalBasisRegistry > & basis_registry () const
 Return a reference to the basis registry. More...
 
template<typename F = AOFactory<MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr< F > ao_factory () const
 
template<typename F = LCAOFactory<MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr< F > lcao_factory () const
 
template<typename F = pbc::gaussian::AOFactory< MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr< F > pbc_ao_factory () const
 
template<typename F = pbc::GammaLCAOFactory<MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr< F > pbc_gamma_lcao_factory () const
 
template<typename Tile = MPQC_DEFAULT_REAL_TA_TILE_CLASS, typename Policy = MPQC_DEFAULT_TA_POLICY_CLASS>
std::shared_ptr< OrbitalSpaceRegistry< TA::DistArray< Tile, Policy > > > orbital_registry () const
 
template<typename Tile , typename Policy >
std::shared_ptr< OrbitalSpaceRegistry< DistArray< Tile, Policy > > > orbital_registry () const
 
template<typename Factory >
std::shared_ptr< Factoryao_factory () const
 
template<typename Factory >
std::shared_ptr< Factorylcao_factory () const
 
template<typename Factory >
std::shared_ptr< Factorypbc_ao_factory () const
 
template<typename Factory >
std::shared_ptr< Factorypbc_gamma_lcao_factory () const
 
- Public Member Functions inherited from mpqc::WavefunctionWorld
 WavefunctionWorld (KeyVal const &kv)
 The KeyVal constructor. More...
 
 WavefunctionWorld (KeyVal &&kv)
 
madness::World & world () const
 Return a reference to the MADNESS world object. More...
 
const std::shared_ptr< const Molecule > & atoms () const
 Return a reference to the molecule in the world. More...
 
const KeyValkv () const noexcept
 
- Public Member Functions inherited from mpqc::DescribedClass
 DescribedClass ()=default
 
virtual ~DescribedClass ()
 
std::string class_key () const
 
- Public Member Functions inherited from mpqc::enable_shared_from_this< DescribedClass >
virtual ~enable_shared_from_this ()=default
 
std::shared_ptr< DescribedClassshared_from_this ()
 returns the pointer to this object More...
 
std::shared_ptr< std::add_const_t< DescribedClass > > shared_from_this () const
 returns the pointer to this object More...
 
- Public Member Functions inherited from mpqc::detail::virt_base_of_enable_shared_from_this
virtual ~virt_base_of_enable_shared_from_this ()=default
 
bool shared_from_this_possible () const
 
template<typename Target , typename = std::enable_if_t<!std::is_const_v<Target>>>
std::shared_ptr< Target > cast_shared_from_this_to ()
 returns the pointer to this cast to a particular type More...
 
template<typename Target >
std::shared_ptr< std::add_const_t< Target > > cast_shared_from_this_to () const
 returns the pointer to this cast to a particular type More...
 

Additional Inherited Members

- Public Types inherited from mpqc::DescribedClass
typedef std::shared_ptr< DescribedClass >(* keyval_ctor_wrapper_type) (const KeyVal &)
 
- Static Public Member Functions inherited from mpqc::DescribedClass
static keyval_ctor_wrapper_type type_to_keyval_ctor (const std::string &type_name)
 
template<typename T >
static void register_keyval_ctor ()
 
template<typename T >
static bool is_registered ()
 
template<typename T >
static std::string class_key ()
 
static const keyval_ctor_registry_type & keyval_ctor_registry ()
 returns const ref to the keyval ctor registry More...
 

Constructor & Destructor Documentation

◆ WavefunctionWorld() [1/2]

mpqc::lcao::WavefunctionWorld::WavefunctionWorld ( KeyVal const &  kv)
explicit

The KeyVal constructor.

Parameters
kvThe KeyVal object; it will be queried for all keywords of OrbitalBasisRegistry, and the following keywords:
Keyword Type Default Description
atoms Molecule or UnitCell none
molecule Molecule none This will be queried only if atoms is

not given. This keyword is deprecated and may be removed in the future |

◆ WavefunctionWorld() [2/2]

mpqc::lcao::WavefunctionWorld::WavefunctionWorld ( KeyVal &&  kv)
explicit

Same as the ctor taking by lvalue ref, but useful if constructing KeyVal objects in-place, this will then need to register bare pointer to self in kv to be discoverable

◆ ~WavefunctionWorld()

mpqc::lcao::WavefunctionWorld::~WavefunctionWorld ( )
overridevirtualdefault

Reimplemented from mpqc::WavefunctionWorld.

Member Function Documentation

◆ ao_factory() [1/2]

template<typename F = AOFactory<MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr<F> mpqc::lcao::WavefunctionWorld::ao_factory ( ) const

Create (if needed) and return an AO factory. For now, each world object can be associated with one AO factory associated with particular type F . The first call to ao_factory will create a particular AO factory, hence all subsequent calls must be invoked with exactly the same F type.

Template Parameters
Fan instance of Factory class template
Exceptions
ProgrammingErrorif stored AOFactory uses different F type

◆ ao_factory() [2/2]

template<typename Factory >
std::shared_ptr<Factory> mpqc::lcao::WavefunctionWorld::ao_factory ( ) const

◆ basis_registry()

const std::shared_ptr<gaussian::OrbitalBasisRegistry>& mpqc::lcao::WavefunctionWorld::basis_registry ( ) const
inline

Return a reference to the basis registry.

◆ lcao_factory() [1/2]

template<typename F = LCAOFactory<MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr<F> mpqc::lcao::WavefunctionWorld::lcao_factory ( ) const

Create (if needed) and return LCAOFactory. For now, each world object can be associated with one LCAO factory associated with particular type F . The first call to lcao_factory() will create a particular LCAO factory, hence all subsequent calls must be invoked with exactly the same F type.

Template Parameters
Fan instance of Factory class template
Exceptions
ProgrammingErrorif stored LCAOFactory uses different F type
Note
upon first invocation will also invoke orbital_registry()

◆ lcao_factory() [2/2]

template<typename Factory >
std::shared_ptr<Factory> mpqc::lcao::WavefunctionWorld::lcao_factory ( ) const

◆ orbital_registry() [1/2]

template<typename Tile = MPQC_DEFAULT_REAL_TA_TILE_CLASS, typename Policy = MPQC_DEFAULT_TA_POLICY_CLASS>
std::shared_ptr<OrbitalSpaceRegistry<TA::DistArray<Tile, Policy> > > mpqc::lcao::WavefunctionWorld::orbital_registry ( ) const

Create (if needed) and return OrbitalSpaceRegistry. For now, each world object can be associated with one OrbitalSpaceRegistry associated with particular {Tile,Policy}. The first call to orbital_registry or lcao_factory will create a particular OrbitalSpaceRegistry, hence all subsequent calls must be invoked with exactly the same {Tile,Policy} types.

Exceptions
ProgrammingErrorif stored OrbitalSpaceRegistry uses different {Tile,Policy} types

◆ orbital_registry() [2/2]

template<typename Tile , typename Policy >
std::shared_ptr<OrbitalSpaceRegistry<DistArray<Tile, Policy> > > mpqc::lcao::WavefunctionWorld::orbital_registry ( ) const

◆ pbc_ao_factory() [1/2]

template<typename F = pbc::gaussian::AOFactory< MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr<F> mpqc::lcao::WavefunctionWorld::pbc_ao_factory ( ) const

Create (if needed) and return pbc::AOFactory. For now, each world object can be associated with one AO factory associated with particular type F . The first call to ao_factory will create a particular AO factory, hence all subsequent calls must be invoked with exactly the same F type.

Template Parameters
Fan instance of Factory class template
Exceptions
ProgrammingErrorif stored AOFactory uses different F type

◆ pbc_ao_factory() [2/2]

template<typename Factory >
std::shared_ptr<Factory> mpqc::lcao::WavefunctionWorld::pbc_ao_factory ( ) const

◆ pbc_gamma_lcao_factory() [1/2]

template<typename F = pbc::GammaLCAOFactory<MPQC_DEFAULT_REAL_TA_TILE_CLASS, MPQC_DEFAULT_TA_POLICY_CLASS>>
std::shared_ptr<F> mpqc::lcao::WavefunctionWorld::pbc_gamma_lcao_factory ( ) const

Create (if needed) and return pbc::GammaLCAOFactory. For now, each world object can be associated with one LCAO factory associated with particular type F . The first call to lcao_factory() will create a particular LCAO factory, hence all subsequent calls must be invoked with exactly the same F type.

Template Parameters
Fan instance of Factory class template
Exceptions
ProgrammingErrorif stored LCAOFactory uses different F type
Note
upon first invocation will also invoke orbital_registry()

◆ pbc_gamma_lcao_factory() [2/2]

template<typename Factory >
std::shared_ptr<Factory> mpqc::lcao::WavefunctionWorld::pbc_gamma_lcao_factory ( ) const

The documentation for this class was generated from the following files: