mpqc::lcao::MullikenPopulationAnalysis< Tile, Policy > Class Template Reference

Documentation

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

Implements Mulliken population analysis.

Public Types

using base_type = PopulationAnalysis< Tile, Policy >
 
using array_type = typename base_type::array_type
 
using TileZ = typename PopulationAnalysis< Tile, Policy >::TileZ
 

Public Member Functions

virtual ~MullikenPopulationAnalysis () noexcept
 
 MullikenPopulationAnalysis (const KeyVal &kv)
 
std::vector< double > atomic_charges (array_type const &C) const final
 
std::vector< double > atomic_charges_pbc (std::vector< MatrixZ > const &C, const int nocc, Vector3i const nk) const final
 

Member Typedef Documentation

◆ array_type

template<typename Tile , typename Policy >
using mpqc::lcao::MullikenPopulationAnalysis< Tile, Policy >::array_type = typename base_type::array_type

◆ base_type

template<typename Tile , typename Policy >
using mpqc::lcao::MullikenPopulationAnalysis< Tile, Policy >::base_type = PopulationAnalysis<Tile, Policy>

◆ TileZ

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

Constructor & Destructor Documentation

◆ ~MullikenPopulationAnalysis()

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

◆ MullikenPopulationAnalysis()

template<typename Tile , typename Policy >
mpqc::lcao::MullikenPopulationAnalysis< Tile, Policy >::MullikenPopulationAnalysis ( 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
use_minbs int 2 Perform Mulliken population analysis in the orbital (0) basis (CAUTION: the results will depend strongly on the basis), or project rows (1) or rows and columns (2) of the density to the minimal basis. For periodic systems only minbs=1 is supported.

Member Function Documentation

◆ atomic_charges()

template<typename Tile , typename Policy >
std::vector< double > mpqc::lcao::MullikenPopulationAnalysis< Tile, Policy >::atomic_charges ( array_type const &  C) const
final

Computes Mulliken atomic charges for a nonperiodic system, optionally (use_minbs>0) using the minimal basis to partition the density into atomic contributions.

Parameters
[in]C(occupied) input LCAOs
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

◆ atomic_charges_pbc()

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

Computes Mulliken atomic charges for a periodic system using the minimal basis for one of the coefficient matrices in the density (minbs=1 )

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

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