mpqc::lcao::pbc Namespace Reference

import the gaussian::utility namespace into the pbc::gaussian namespace More...

Namespaces

 detail
 
 gaussian
 

Classes

class  AOFactory
 implementation base for AOFactory More...
 
class  CadfKBuilder
 
class  CadfKzRHF
 CadfKzRHF uses four-center-J for coulomb and CADF-K for exchange. More...
 
class  DfJBuilder
 Computes Coulomb matrix using multipole-conserved DF-J approach. More...
 
class  DfJCadfKzRHF
 DfJCadfKzRHF uses DF-J for coulomb and CADF-K for exchange. More...
 
class  DfJzRHF
 DfJzRHF class uses multipole-conserving density fitting for Coulomb and 4-center-K for exchange. More...
 
class  DirectFockBuilder
 
class  FockBuilder
 
class  FockBuilderImpl
 pbc::MaJFockBuilder is an implementation of pbc::FockBuilder with multipole-accelerated 4-center Coulomb and 4-center exchange. For Coulomb, multipole approximation is used in Crystal Far Field. The builders for near-field Coulomb and exchange are customizable. More...
 
class  GammaLCAOFactory
 LCAO Integral Factory specialized for gamma-point PBC. More...
 
class  MaDfJCadfKzRHF
 MaDfJCadfKzRHF uses MA-DF-J for coulomb and CADF-K for exchange. More...
 
class  MaDfJzRHF
 MaDfJzRHF uses MA-DF-J for coulomb and four-center-K for exchange. More...
 
class  MaJCadfKzRHF
 MAJCADFK uses four-center-J (CNF) and MA (CFF) for Coulomb and CADF-K for exchange. More...
 
class  MaJzRHF
 MaJzRHF uses MA for Coulomb CFF and four-center-JK for Coulomb and exchange CNF. More...
 
class  NonLinearConjGradient
 Implements non-linear conjugate gradient for a given gradient expression. More...
 
class  PMzLocalizer
 Performs Pipek-Mezey localization. More...
 
class  ReferenceFockBuilder
 
class  SD
 Abstract single-determinant wavefunction under open and periodic boundary conditions. More...
 
class  ThreeCenterContractionBuilder
 
class  TwoCenterBuilder
 
class  zRHF
 zRHF class uses reference Fock builder. More...
 

Typedefs

template<typename Tile , typename Policy >
using MaJFockBuilder = FockBuilderImpl< Tile, Policy >
 
template<typename Tile , typename Policy >
using MaDfJFockBuilder = FockBuilderImpl< Tile, Policy, DfJBuilder< Tile, Policy, pbc::gaussian::AOFactory< Tile, Policy > >, DirectFockBuilder< Tile, Policy > >
 
template<typename Tile , typename Policy >
using MaDfJCadfKFockBuilder = FockBuilderImpl< Tile, Policy, DfJBuilder< Tile, Policy, pbc::gaussian::AOFactory< Tile, Policy > >, CadfKBuilder< Tile, Policy, pbc::gaussian::AOFactory< Tile, Policy > >>
 
template<typename Tile , typename Policy >
using DfJFockBuilder = FockBuilderImpl< Tile, Policy, DfJBuilder< Tile, Policy, pbc::gaussian::AOFactory< Tile, Policy > >, DirectFockBuilder< Tile, Policy >, void >
 
template<typename Tile , typename Policy >
using DfJCadfKFockBuilder = FockBuilderImpl< Tile, Policy, DfJBuilder< Tile, Policy, pbc::gaussian::AOFactory< Tile, Policy > >, CadfKBuilder< Tile, Policy, pbc::gaussian::AOFactory< Tile, Policy > >, void >
 
template<typename Tile , typename Policy >
using CadfKFockBuilder = FockBuilderImpl< Tile, Policy, DirectFockBuilder< Tile, Policy >, CadfKBuilder< Tile, Policy, pbc::gaussian::AOFactory< Tile, Policy > >, void >
 
using TileD = TA::TensorD
 
using MatrixzVec = std::vector< MatrixZ >
 
using MatrixdVec = std::vector< RowMatrixXd >
 
using VectorzVec = std::vector< VectorZ >
 
using VectordVec = std::vector< VectorD >
 

Functions

template<typename AOFactory_ >
std::shared_ptr< AOFactory_ > ao_factory_from_keyval (const KeyVal &kv)
 
template std::shared_ptr< AOFactory<> > ao_factory_from_keyval< AOFactory<> > (const KeyVal &kv)
 
template<typename LCAOFactory_ >
std::shared_ptr< LCAOFactory_ > gamma_lcao_factory_from_keyval (const KeyVal &kv)
 
template std::shared_ptr< GammaLCAOFactory<> > gamma_lcao_factory_from_keyval< GammaLCAOFactory<> > (const KeyVal &kv)
 
auto basis_registry (const SD &sd)
 
template<typename... Args>
auto initial_guess (const KeyVal &kv, pbc::gaussian::AOFactory< Args... > &ao_factory)
 
void chop_phase (MatrixZ &mat, double tolerance=std::numeric_limits< double >::epsilon())
 
template<typename TileZ , typename Tile , typename Policy >
TA::DistArray< TileZ, Policy > transform_real2recip (const TA::DistArray< Tile, Policy > &matrix, Vector3d vec_k, const UnitCell &unitcell, const Supercell &supercell)
 
template<typename Tile , typename Policy , typename MatrixZ >
std::vector< std::pair< MatrixZ, MatrixZ > > pseudoinverse_projection (std::vector< MatrixZ > const &C, std::pair< long, long > orbs, Vector3i K, const std::shared_ptr< pbc::gaussian::AOFactory< Tile, Policy >> &ao_factory)
 

Typedef Documentation

◆ CadfKFockBuilder

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::CadfKFockBuilder = typedef FockBuilderImpl< Tile, Policy, DirectFockBuilder<Tile, Policy>, CadfKBuilder<Tile, Policy, pbc::gaussian::AOFactory<Tile, Policy> >, void>

◆ DfJCadfKFockBuilder

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::DfJCadfKFockBuilder = typedef FockBuilderImpl< Tile, Policy, DfJBuilder<Tile, Policy, pbc::gaussian::AOFactory<Tile, Policy> >, CadfKBuilder<Tile, Policy, pbc::gaussian::AOFactory<Tile, Policy> >, void>

◆ DfJFockBuilder

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::DfJFockBuilder = typedef FockBuilderImpl< Tile, Policy, DfJBuilder<Tile, Policy, pbc::gaussian::AOFactory<Tile, Policy> >, DirectFockBuilder<Tile, Policy>, void>

◆ MaDfJCadfKFockBuilder

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::MaDfJCadfKFockBuilder = typedef FockBuilderImpl< Tile, Policy, DfJBuilder<Tile, Policy, pbc::gaussian::AOFactory<Tile, Policy> >, CadfKBuilder<Tile, Policy, pbc::gaussian::AOFactory<Tile, Policy> >>

◆ MaDfJFockBuilder

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::MaDfJFockBuilder = typedef FockBuilderImpl< Tile, Policy, DfJBuilder<Tile, Policy, pbc::gaussian::AOFactory<Tile, Policy> >, DirectFockBuilder<Tile, Policy> >

◆ MaJFockBuilder

template<typename Tile , typename Policy >
using mpqc::lcao::pbc::MaJFockBuilder = typedef FockBuilderImpl<Tile, Policy>

◆ MatrixdVec

using mpqc::lcao::pbc::MatrixdVec = typedef std::vector<RowMatrixXd>

◆ MatrixzVec

using mpqc::lcao::pbc::MatrixzVec = typedef std::vector<MatrixZ>

◆ TileD

using mpqc::lcao::pbc::TileD = typedef TA::TensorD

◆ VectordVec

using mpqc::lcao::pbc::VectordVec = typedef std::vector<VectorD>

◆ VectorzVec

using mpqc::lcao::pbc::VectorzVec = typedef std::vector<VectorZ>

Function Documentation

◆ ao_factory_from_keyval()

template<typename AOFactory_ >
std::shared_ptr< AOFactory_ > mpqc::lcao::pbc::ao_factory_from_keyval ( const KeyVal kv)

utility obtains a PBC AOFactory from the WavefunctionWorld associated with KeyVal object's "wfn_world" keyword

◆ ao_factory_from_keyval< AOFactory<> >()

template std::shared_ptr< AOFactory<> > mpqc::lcao::pbc::ao_factory_from_keyval< AOFactory<> > ( const KeyVal kv)

◆ basis_registry()

auto mpqc::lcao::pbc::basis_registry ( const SD sd)
inline

◆ chop_phase()

void mpqc::lcao::pbc::chop_phase ( MatrixZ mat,
double  tolerance = std::numeric_limits<double>::epsilon() 
)

◆ gamma_lcao_factory_from_keyval()

template<typename LCAOFactory_ >
std::shared_ptr< LCAOFactory_ > mpqc::lcao::pbc::gamma_lcao_factory_from_keyval ( const KeyVal kv)

utility obtains the PeriodicLCAO factory from the WavefunctionWorld associated with KeyVal object's "wfn_world" keyword

◆ gamma_lcao_factory_from_keyval< GammaLCAOFactory<> >()

◆ initial_guess()

template<typename... Args>
auto mpqc::lcao::pbc::initial_guess ( const KeyVal kv,
pbc::gaussian::AOFactory< Args... > &  ao_factory 
)

◆ pseudoinverse_projection()

template<typename Tile , typename Policy , typename MatrixZ >
std::vector<std::pair<MatrixZ, MatrixZ> > mpqc::lcao::pbc::pseudoinverse_projection ( std::vector< MatrixZ > const &  C,
std::pair< long, long >  orbs,
Vector3i  K,
const std::shared_ptr< pbc::gaussian::AOFactory< Tile, Policy >> &  ao_factory 
)
Template Parameters
Tilethe TA tile type
Policythe TA policy type
MatrixZa complex Eigen::Matrix type
Parameters
[in]Cthe orbitals in Bloch-AO basis for each k point
[in]orbsthe orbital window for selecting orbitals to be projected
[in]Kthe k point grid size
[in]ao_factorythe pbc::AOFactory object for interpreting C
Returns
vector of {C projected on the minbs, overlap of minbs AO with with C} for each k point

◆ transform_real2recip()

template<typename TileZ , typename Tile , typename Policy >
TA::DistArray<TileZ, Policy> mpqc::lcao::pbc::transform_real2recip ( const TA::DistArray< Tile, Policy > &  matrix,
Vector3d  vec_k,
const UnitCell unitcell,
const Supercell supercell 
)

Transform operator matrix from AO basis to Bloch-AO basis

Template Parameters
Tilethe TA tile type
Tilethe TA tile type
Policythe TA policy type
Parameters
[in]matrixan operator matrix expressed in terms of AOs in a supercell
[in]vec_kthe target k vector for the Bloch AOs
[in]unitcellthe (direct) unit cell
[in]supercellthe supercell used to express Bloch AOs
Returns
matrix in the Bloch-AO basis