mpqc::lcao::PopulationAnalysis< Tile, Policy > Class Template Referenceabstract

Documentation

template<typename Tile, typename Policy>
class mpqc::lcao::PopulationAnalysis< Tile, Policy >

Performs population analysis on a set of LCAOs.

Public Types

using array_type = TiledArray::DistArray< Tile, Policy >
 
using arrayvec_type = TiledArray::DistArrayVector< Tile, Policy >
 
using TileZ = TA::TensorZ
 

Public Member Functions

 PopulationAnalysis (const KeyVal &kv)
 
virtual ~PopulationAnalysis () noexcept
 
const std::shared_ptr< WavefunctionWorld > & wfn_world () const
 
virtual std::vector< double > atomic_charges (array_type const &C) const =0
 
std::vector< std::vector< double > > atomic_charges (arrayvec_type const &C) const
 
virtual std::vector< double > atomic_charges_pbc (std::vector< MatrixZ > const &C, const int nocc, Vector3i nk) const =0
 

Member Typedef Documentation

◆ array_type

template<typename Tile , typename Policy >
using mpqc::lcao::PopulationAnalysis< Tile, Policy >::array_type = TiledArray::DistArray<Tile, Policy>

◆ arrayvec_type

template<typename Tile , typename Policy >
using mpqc::lcao::PopulationAnalysis< Tile, Policy >::arrayvec_type = TiledArray::DistArrayVector<Tile, Policy>

◆ TileZ

template<typename Tile , typename Policy >
using mpqc::lcao::PopulationAnalysis< Tile, Policy >::TileZ = TA::TensorZ

Constructor & Destructor Documentation

◆ PopulationAnalysis()

template<typename Tile , typename Policy >
mpqc::lcao::PopulationAnalysis< Tile, Policy >::PopulationAnalysis ( const KeyVal kv)
explicit

KeyVal constructor for MullikenPopulationAnalysis

Parameters
kvthe KeyVal object; it will be queried for all keywords of PopulationAnalysis , as well as the following additional keywords:
Keyword Type Default Description
wfn_world class none the WavefunctionWorld

◆ ~PopulationAnalysis()

template<typename Tile , typename Policy >
mpqc::lcao::PopulationAnalysis< Tile, Policy >::~PopulationAnalysis ( )
virtualdefaultnoexcept

Member Function Documentation

◆ atomic_charges() [1/2]

template<typename Tile , typename Policy >
virtual std::vector<double> mpqc::lcao::PopulationAnalysis< Tile, Policy >::atomic_charges ( array_type const &  C) const
pure virtual
Parameters
[in]C(occupied) input LCAOs
Returns
the atomic charges

◆ atomic_charges() [2/2]

template<typename Tile , typename Policy >
std::vector< std::vector< double > > mpqc::lcao::PopulationAnalysis< Tile, Policy >::atomic_charges ( arrayvec_type const &  C) const
Parameters
[in]C(occupied) input LCAOs
Returns
the atomic charges

◆ atomic_charges_pbc()

template<typename Tile , typename Policy >
virtual std::vector<double> mpqc::lcao::PopulationAnalysis< Tile, Policy >::atomic_charges_pbc ( std::vector< MatrixZ > const &  C,
const int  nocc,
Vector3i  nk 
) const
pure virtual

computes charges of the atoms in a unit cell

Parameters
[in]C"canonical" LCAOs
[in]noccnumber of doubly occupied bands (partially occupied bands are not yet supported)
[in]nkthe k point grid size in each dimension
Returns
the atomic charges
Warning
these are electronic charges, i.e. you want to multiply by occupancy factor (e.g. 2 for closed-shell orbitals) and account for the nuclear charges

◆ wfn_world()

template<typename Tile , typename Policy >
const std::shared_ptr< WavefunctionWorld > & mpqc::lcao::PopulationAnalysis< Tile, Policy >::wfn_world

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