Classes

struct  AttributeTag
 
class  EROrbitalSpreadMinimizer
 finds a stationary point of the Edmiston-Ruedenberg objective function More...
 
class  FBOrbitalSpreadMinimizer
 finds a stationary point of the Foster-Boys objective function More...
 
struct  Mp2Amp
 
struct  Mp2Energy
 
struct  OrbitalSpreadMinimizer
 Abstract orbital spread minimizer. More...
 
class  PMOrbitalSpreadMinimizer
 finds a stationary point of the Pipek-Mezey objective function More...
 
struct  ScfCorrection
 

Typedefs

using CanonicalAttributeTag = AttributeTag< 0 >
 
using PopulatedAttributeTag = AttributeTag< 1 >
 

Functions

bool if_all_lcao (const Formula &formula)
 check if all index in formula are in LCAO More...
 
bool if_all_ao (const Formula &formula)
 check if all index in formula are in AO More...
 
template<typename Array >
Formula lcao_to_ao (const Formula &formula, const OrbitalSpaceRegistry< Array > &orbital_registry)
 
std::shared_ptr< const gaussian::Basisby_center_basis (gaussian::Basis const &in)
 
void print_shape (TA::Tensor< float > const &t, std::string const &file_name)
 
TA::TiledRange cadf_trange (gaussian::Basis const &obs_by_atom, gaussian::Basis const &dfbs_by_atom)
 
TA::TiledRange cadf_trange (gaussian::Basis const &bs0_by_atom, gaussian::Basis const &bs1_by_atom, gaussian::Basis const &dfbs_by_atom)
 
TA::SparseShape< float > cadf_shape (madness::World &world, TA::TiledRange const &trange)
 
std::shared_ptr< gaussian::SchwarzScreencadf_by_atom_screener (madness::World &world, gaussian::Basis const &obs, gaussian::Basis const &dfbs, double threshold)
 Function to compute the by atom (Schwarz) screener for CADF ERI3 (X | μ ν) More...
 
std::shared_ptr< gaussian::SchwarzScreencadf_by_atom_screener (madness::World &world, gaussian::Basis const &bs0, gaussian::Basis const &bs1, gaussian::Basis const &dfbs, double threshold)
 Function to compute the by atom (Schwarz) screener for CADF ERI3 (X | μ ν) when μ and ν are different basis sets. More...
 
template<typename DistArray >
TA::SparseShape< float > cadf_shape_cluster (DistArray const &C_atom, TA::TiledRange const &trange, std::unordered_map< int64_t, std::vector< int64_t >> &c2a)
 
template<typename Array , typename DirectArray >
Array cadf_by_atom_array (Array const &, DirectArray const &, TA::TiledRange const &)
 
template<typename Array , typename MArray , typename DirectArray >
Array cadf_by_atom_array (MArray &&M, DirectArray const &eri3, TA::TiledRange const &trange, size_t const &natoms_per_uc, Vector3i const &lattice_range0=Vector3i({0, 0, 0}), Vector3i const &lattice_range1=Vector3i({0, 0, 0}), Vector3i const &lattice_range_df=Vector3i({0, 0, 0}), Vector3i const &lattice_center0=Vector3i({0, 0, 0}), Vector3i const &lattice_center1=Vector3i({0, 0, 0}), Vector3i const &lattice_center_df=Vector3i({0, 0, 0}))
 This computes the CADF coefficients C(X_Rx, μ_R0, ν_R1) in periodic calculations in a by-atom fashion. More...
 
template<typename DistArray >
DistArray cadf_by_atom_coeffs (madness::World &world, gaussian::Basis const &by_cluster_obs, gaussian::Basis const &by_cluster_dfbs)
 
template<typename DistArray , typename MDistArray >
DistArray cadf_by_atom_coeffs (MDistArray &&M, gaussian::Basis const &by_cluster_bs0, gaussian::Basis const &by_cluster_bs1, gaussian::Basis const &by_cluster_dfbs, size_t const &natoms_per_uc, Vector3i const &lattice_range0=Vector3i({0, 0, 0}), Vector3i const &lattice_range1=Vector3i({0, 0, 0}), Vector3i const &lattice_range_df=Vector3i({0, 0, 0}), Vector3i const &lattice_center0=Vector3i({0, 0, 0}), Vector3i const &lattice_center1=Vector3i({0, 0, 0}), Vector3i const &lattice_center_df=Vector3i({0, 0, 0}))
 This computes the CADF coefficients C(X_Rx, μ_R0, ν_R1) in periodic calculations in a by-atom fashion. More...
 
template<typename Array >
Array reblock_atom_to_clusters (Array const &C_atom, gaussian::Basis const &obs, gaussian::Basis const &dfbs)
 Function to convert a by-atom array C(X, μ, ν) to a by-cluster array. More...
 
template<typename Array >
Array reblock_atom_to_clusters (Array const &C_atom, gaussian::Basis const &bs0, gaussian::Basis const &bs1, gaussian::Basis const &dfbs)
 Function to convert a by-atom array C(X, μ, ν) to a by-cluster array when μ and ν are different basis sets. More...
 
template<typename CTile , typename ERI3Tile , typename MTile >
void create_ii_tile (TA::DistArray< CTile, TA::SparsePolicy > *C, ERI3Tile const direct_eri3_iii, MTile M_tile, unsigned long ord)
 
template<typename CTile , typename ERI3Tile , typename MTile >
void create_ij_tile (TA::DistArray< CTile, TA::SparsePolicy > *C, ERI3Tile direct_eri3_iij, ERI3Tile direct_eri3_jij, MTile M_ii, MTile M_tile_ij, MTile M_jj, unsigned long ord_iij, unsigned long ord_jij)
 
template<typename Tile , typename DirectTile , typename MTile >
void create_ii_tile (TA::DistArray< Tile, TA::SparsePolicy > *C, DirectTile eri3_iii, MTile M_ii, unsigned long ord)
 
template<typename Tile , typename DirectTile , typename MTile >
void create_ij_tile (TA::DistArray< Tile, TA::SparsePolicy > *C, DirectTile direct_eri3_iij, DirectTile direct_eri3_jij, MTile M_ii, MTile M_ij, MTile M_jj, unsigned long ord_iij, unsigned long ord_jij)
 
template<typename DistArray >
DistArray reblock_atom_to_clusters (DistArray const &C_atom, gaussian::Basis const &obs, gaussian::Basis const &dfbs)
 
template<typename DistArray >
DistArray reblock_atom_to_clusters (DistArray const &C_atom, gaussian::Basis const &bs0, gaussian::Basis const &bs1, gaussian::Basis const &dfbs)
 
template<typename Tile , typename Policy >
std::shared_ptr<::mpqc::utility::TRange1Engineclosed_shell_dual_basis_mo_build_steele (lcao::LCAOFactory< Tile, Policy > &lcao_factory, Eigen::VectorXd &ens, const Molecule &mols, bool frozen_core, std::size_t occ_blocksize, std::size_t vir_blocksize)
 
template<typename Tile , typename Policy >
std::shared_ptr<::mpqc::utility::TRange1Engineclosed_shell_dual_basis_mo_build_steele (LCAOFactory< Tile, Policy > &lcao_factory, Eigen::VectorXd &ens, std::size_t nocc, const Molecule &mols, bool frozen_core, std::size_t occ_blocksize, std::size_t vir_blocksize)
 
template<typename Tile , typename Policy >
void d_abij_inplace (TA::Array< double, 4, Tile, Policy > &abij, const EigenVector< typename Tile::numeric_type > &ens, std::size_t n_occ, std::size_t n_frozen, typename Tile::numeric_type shift=0.0)
 
template<typename Tile , typename Policy , typename EigenVectorX = Eigen::Matrix<typename Tile::element_type, Eigen::Dynamic, 1>>
TA::DistArray< Tile, Policy > d_abcijk (TA::DistArray< Tile, Policy > &abcijk, const EigenVectorX &ens, std::size_t n_occ, std::size_t n_frozen)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > d_abij (const TA::DistArray< Tile, Policy > &abij, const EigenVector< typename Tile::numeric_type > &ens, std::size_t n_occ, std::size_t n_frozen, typename Tile::numeric_type shift=0.0)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, typename std::enable_if< std::is_same< Policy, TA::SparsePolicy >::value, TA::SparsePolicy >::type > create_d_ai (madness::World &world, const TA::TiledRange &trange, const EigenVector< typename Tile::numeric_type > ens, std::size_t n_occ, std::size_t n_frozen)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, typename std::enable_if< std::is_same< Policy, TA::DensePolicy >::value, TA::DensePolicy >::type > create_d_ai (madness::World &world, const TA::TiledRange &trange, const Eigen::VectorXd &ens, std::size_t n_occ, std::size_t n_frozen)
 
template<typename Tile , typename Policy >
double evaluate_energy (lcao::LCAOFactory< Tile, Policy > &lcao_factory, gaussian::AOFactory< Tile, Policy > &ao_factory, std::shared_ptr< Eigen::VectorXd > orbital_energy, const TA::DistArray< Tile, Policy > &U, std::shared_ptr< OrbitalLocalizer< Tile, Policy >> localizer, int num_laplace_points, bool cluster_coeffs)
 
template<typename Tile , typename Policy >
double compute_mp2 (LCAOFactory< Tile, Policy > &lcao_factory, const std::shared_ptr< const Eigen::VectorXd > &orbital_energy, const std::shared_ptr< const ::mpqc::utility::TRange1Engine > &tr1_engine, bool df)
 
template<typename Tile , typename Policy >
double compute_mp2_coarse_grained (LCAOFactory< Tile, Policy > &lcao_factory, const std::shared_ptr< const Eigen::VectorXd > &orbital_energy, const std::shared_ptr< const ::mpqc::utility::TRange1Engine > &tr1_engine, bool df)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > compute_mp2_t2 (LCAOFactoryBase< Tile, Policy > &lcao_factory, const std::shared_ptr< const Eigen::VectorXd > &orbital_energy, const std::shared_ptr< const ::mpqc::utility::TRange1Engine > &trange1_engine, bool df)
 compute MP1 T2 amplitudes More...
 
void print_ccsd (int iter, double dE, double error, double error_r1, double error_r2, double E1, double time)
 print out details of CCSD iterations More...
 
template<typename Mat >
double fb_objective_function (const std::array< Mat, 3 > &xyz, int spread_exponent)
 Foster-Boys maximizes this function. More...
 
std::vector< int > atom_to_ao (std::vector< Atom > const &atoms, std::vector< gaussian::Shell > const &shells)
 
template<typename Mat >
double pm_objective_function (const Mat &Cm_prime, const Mat &Cm_double_prime, size_t natoms, const std::vector< int > &atom_to_bf_ranges, int spread_exponent)
 Pipek-Mezey maximizes this function. More...
 
double compute_jacobi_angle (double Aij, double Bij, double epsilon)
 
template<typename Tile , typename Policy >
TA::DistArray< Tile, Policy > to_spincase (const TA::DistArrayVector< Tile, Policy > &arrayvec, SpinCase1 spin)
 

Typedef Documentation

◆ CanonicalAttributeTag

◆ PopulatedAttributeTag

Function Documentation

◆ atom_to_ao()

std::vector<int> mpqc::lcao::detail::atom_to_ao ( std::vector< Atom > const &  atoms,
std::vector< gaussian::Shell > const &  shells 
)

◆ by_center_basis()

std::shared_ptr< const gaussian::Basis > mpqc::lcao::detail::by_center_basis ( gaussian::Basis const &  in)

◆ cadf_by_atom_array() [1/2]

template<typename Array , typename DirectArray >
Array mpqc::lcao::detail::cadf_by_atom_array ( Array const &  M,
DirectArray const &  eri3,
TA::TiledRange const &  trange 
)

◆ cadf_by_atom_array() [2/2]

template<typename Array , typename MArray , typename DirectArray >
Array mpqc::lcao::detail::cadf_by_atom_array ( MArray &&  M,
DirectArray const &  eri3,
TA::TiledRange const &  trange,
size_t const &  natoms_per_uc,
Vector3i const &  lattice_range0 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_range1 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_range_df = Vector3i({0, 0, 0}),
Vector3i const &  lattice_center0 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_center1 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_center_df = Vector3i({0, 0,                                                                       0}) 
)

This computes the CADF coefficients C(X_Rx, μ_R0, ν_R1) in periodic calculations in a by-atom fashion.

Template Parameters
Arraythe type of result DistArray type (a conventional DistArray)
MArraythe type of M (a conventional or direct DistArray)
DirectArraythe type of eri3 (a direct DistArray)
Parameters
M2-e 2-center integrals
eri32-e 3-center integrals
trangetile range of the CADF coefficients
natoms_per_ucnumber of atoms in a unit cell
lattice_range0lattice range of index μ
lattice_range1lattice range of index ν
lattice_range_dflattice range of index Χ
lattice_center0origin of the lattice range of index μ
lattice_center1origin of the lattice range of index ν
lattice_center_dforigin of the lattice range of index X
Returns
the by-atom CADF coefficients

◆ cadf_by_atom_coeffs() [1/2]

template<typename DistArray >
DistArray mpqc::lcao::detail::cadf_by_atom_coeffs ( madness::World &  world,
gaussian::Basis const &  by_cluster_obs,
gaussian::Basis const &  by_cluster_dfbs 
)

◆ cadf_by_atom_coeffs() [2/2]

template<typename DistArray , typename MDistArray >
DistArray mpqc::lcao::detail::cadf_by_atom_coeffs ( MDistArray &&  M,
gaussian::Basis const &  by_cluster_bs0,
gaussian::Basis const &  by_cluster_bs1,
gaussian::Basis const &  by_cluster_dfbs,
size_t const &  natoms_per_uc,
Vector3i const &  lattice_range0 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_range1 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_range_df = Vector3i({0, 0, 0}),
Vector3i const &  lattice_center0 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_center1 = Vector3i({0, 0, 0}),
Vector3i const &  lattice_center_df = Vector3i({0, 0, 0}) 
)

This computes the CADF coefficients C(X_Rx, μ_R0, ν_R1) in periodic calculations in a by-atom fashion.

Note that this function simply constructs a direct array for 3-center ERIs and passes it to the cadf_by_atom_array function along with 2-e 2-center integrals, by-atom trange of the CADF coefficients, and lattice range information.

Parameters
M2-e 2-center integrals
by_cluster_bs0by-cluster basis for index μ
by_cluster_bs1by-cluster basis for index ν
by_cluster_dfbsby-cluster basis for index Χ
natoms_per_ucnumber of atoms in a unit cell
lattice_range0lattice range of index μ
lattice_range1lattice range of index ν
lattice_range_dflattice range of index Χ
lattice_center0origin of the lattice range of index μ
lattice_center1origin of the lattice range of index ν
lattice_center_dforigin of the lattice range of index X
Returns
the by-atom CADF coefficients

◆ cadf_by_atom_screener() [1/2]

std::shared_ptr< gaussian::SchwarzScreen > mpqc::lcao::detail::cadf_by_atom_screener ( madness::World &  world,
gaussian::Basis const &  bs0,
gaussian::Basis const &  bs1,
gaussian::Basis const &  dfbs,
double  threshold 
)

Function to compute the by atom (Schwarz) screener for CADF ERI3 (X | μ ν) when μ and ν are different basis sets.

Parameters
worldis a reference to the madness world
bs0basis for index μ
bs1basis for index ν
dfbsbasis for index X
thresholdgives the threshold for Schwarz screening
Returns
a shared pointer to the Schwarz screener

◆ cadf_by_atom_screener() [2/2]

std::shared_ptr< gaussian::SchwarzScreen > mpqc::lcao::detail::cadf_by_atom_screener ( madness::World &  world,
gaussian::Basis const &  obs,
gaussian::Basis const &  dfbs,
double  threshold 
)

Function to compute the by atom (Schwarz) screener for CADF ERI3 (X | μ ν)

Parameters
worldis a reference to the madness world
obsbasis for indices μ and ν
dfbsbasis for index X
thresholdgives the threshold for Schwarz screening
Returns
a shared pointer to the Schwarz screener

◆ cadf_shape()

TA::SparseShape< float > mpqc::lcao::detail::cadf_shape ( madness::World &  world,
TA::TiledRange const &  trange 
)

◆ cadf_shape_cluster()

template<typename DistArray >
TA::SparseShape<float> mpqc::lcao::detail::cadf_shape_cluster ( DistArray const &  C_atom,
TA::TiledRange const &  trange,
std::unordered_map< int64_t, std::vector< int64_t >> &  c2a 
)

◆ cadf_trange() [1/2]

TA::TiledRange mpqc::lcao::detail::cadf_trange ( gaussian::Basis const &  bs0_by_atom,
gaussian::Basis const &  bs1_by_atom,
gaussian::Basis const &  dfbs_by_atom 
)

◆ cadf_trange() [2/2]

TA::TiledRange mpqc::lcao::detail::cadf_trange ( gaussian::Basis const &  obs_by_atom,
gaussian::Basis const &  dfbs_by_atom 
)

◆ closed_shell_dual_basis_mo_build_steele() [1/2]

template<typename Tile , typename Policy >
std::shared_ptr<::mpqc::utility::TRange1Engine> mpqc::lcao::detail::closed_shell_dual_basis_mo_build_steele ( lcao::LCAOFactory< Tile, Policy > &  lcao_factory,
Eigen::VectorXd &  ens,
const Molecule mols,
bool  frozen_core,
std::size_t  occ_blocksize,
std::size_t  vir_blocksize 
)

◆ closed_shell_dual_basis_mo_build_steele() [2/2]

template<typename Tile , typename Policy >
std::shared_ptr<::mpqc::utility::TRange1Engine> mpqc::lcao::detail::closed_shell_dual_basis_mo_build_steele ( LCAOFactory< Tile, Policy > &  lcao_factory,
Eigen::VectorXd &  ens,
std::size_t  nocc,
const Molecule mols,
bool  frozen_core,
std::size_t  occ_blocksize,
std::size_t  vir_blocksize 
)

◆ compute_jacobi_angle()

double mpqc::lcao::detail::compute_jacobi_angle ( double  Aij,
double  Bij,
double  epsilon 
)
inline

◆ compute_mp2()

template<typename Tile , typename Policy >
double mpqc::lcao::detail::compute_mp2 ( LCAOFactory< Tile, Policy > &  lcao_factory,
const std::shared_ptr< const Eigen::VectorXd > &  orbital_energy,
const std::shared_ptr< const ::mpqc::utility::TRange1Engine > &  tr1_engine,
bool  df 
)

◆ compute_mp2_coarse_grained()

template<typename Tile , typename Policy >
double mpqc::lcao::detail::compute_mp2_coarse_grained ( LCAOFactory< Tile, Policy > &  lcao_factory,
const std::shared_ptr< const Eigen::VectorXd > &  orbital_energy,
const std::shared_ptr< const ::mpqc::utility::TRange1Engine > &  tr1_engine,
bool  df 
)

◆ compute_mp2_t2()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::detail::compute_mp2_t2 ( LCAOFactoryBase< Tile, Policy > &  lcao_factory,
const std::shared_ptr< const Eigen::VectorXd > &  orbital_energy,
const std::shared_ptr< const ::mpqc::utility::TRange1Engine > &  trange1_engine,
bool  df 
)

compute MP1 T2 amplitudes

◆ create_d_ai() [1/2]

template<typename Tile , typename Policy >
TA::DistArray< Tile, typename std::enable_if<std::is_same<Policy, TA::DensePolicy>::value, TA::DensePolicy>::type> mpqc::lcao::detail::create_d_ai ( madness::World &  world,
const TA::TiledRange &  trange,
const Eigen::VectorXd &  ens,
std::size_t  n_occ,
std::size_t  n_frozen 
)

◆ create_d_ai() [2/2]

template<typename Tile , typename Policy >
TA::DistArray< Tile, typename std::enable_if<std::is_same<Policy, TA::SparsePolicy>::value, TA::SparsePolicy>::type> mpqc::lcao::detail::create_d_ai ( madness::World &  world,
const TA::TiledRange &  trange,
const EigenVector< typename Tile::numeric_type >  ens,
std::size_t  n_occ,
std::size_t  n_frozen 
)

◆ create_ii_tile() [1/2]

template<typename CTile , typename ERI3Tile , typename MTile >
void mpqc::lcao::detail::create_ii_tile ( TA::DistArray< CTile, TA::SparsePolicy > *  C,
ERI3Tile const  direct_eri3_iii,
MTile  M_tile,
unsigned long  ord 
)

◆ create_ii_tile() [2/2]

template<typename Tile , typename DirectTile , typename MTile >
void mpqc::lcao::detail::create_ii_tile ( TA::DistArray< Tile, TA::SparsePolicy > *  C,
DirectTile  eri3_iii,
MTile  M_ii,
unsigned long  ord 
)

◆ create_ij_tile() [1/2]

template<typename CTile , typename ERI3Tile , typename MTile >
void mpqc::lcao::detail::create_ij_tile ( TA::DistArray< CTile, TA::SparsePolicy > *  C,
ERI3Tile  direct_eri3_iij,
ERI3Tile  direct_eri3_jij,
MTile  M_ii,
MTile  M_tile_ij,
MTile  M_jj,
unsigned long  ord_iij,
unsigned long  ord_jij 
)

◆ create_ij_tile() [2/2]

template<typename Tile , typename DirectTile , typename MTile >
void mpqc::lcao::detail::create_ij_tile ( TA::DistArray< Tile, TA::SparsePolicy > *  C,
DirectTile  direct_eri3_iij,
DirectTile  direct_eri3_jij,
MTile  M_ii,
MTile  M_ij,
MTile  M_jj,
unsigned long  ord_iij,
unsigned long  ord_jij 
)

◆ d_abcijk()

template<typename Tile , typename Policy , typename EigenVectorX = Eigen::Matrix<typename Tile::element_type, Eigen::Dynamic, 1>>
TA::DistArray<Tile, Policy> mpqc::lcao::detail::d_abcijk ( TA::DistArray< Tile, Policy > &  abcijk,
const EigenVectorX &  ens,
std::size_t  n_occ,
std::size_t  n_frozen 
)

◆ d_abij()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::detail::d_abij ( const TA::DistArray< Tile, Policy > &  abij,
const EigenVector< typename Tile::numeric_type > &  ens,
std::size_t  n_occ,
std::size_t  n_frozen,
typename Tile::numeric_type  shift = 0.0 
)

◆ d_abij_inplace()

template<typename Tile , typename Policy >
void mpqc::lcao::detail::d_abij_inplace ( TA::Array< double, 4, Tile, Policy > &  abij,
const EigenVector< typename Tile::numeric_type > &  ens,
std::size_t  n_occ,
std::size_t  n_frozen,
typename Tile::numeric_type  shift = 0.0 
)

◆ evaluate_energy()

template<typename Tile , typename Policy >
double mpqc::lcao::detail::evaluate_energy ( lcao::LCAOFactory< Tile, Policy > &  lcao_factory,
gaussian::AOFactory< Tile, Policy > &  ao_factory,
std::shared_ptr< Eigen::VectorXd >  orbital_energy,
const TA::DistArray< Tile, Policy > &  U,
std::shared_ptr< OrbitalLocalizer< Tile, Policy >>  localizer,
int  num_laplace_points,
bool  cluster_coeffs 
)

◆ fb_objective_function()

template<typename Mat >
double mpqc::lcao::detail::fb_objective_function ( const std::array< Mat, 3 > &  xyz,
int  spread_exponent 
)

Foster-Boys maximizes this function.

◆ if_all_ao()

bool mpqc::lcao::detail::if_all_ao ( const Formula formula)

check if all index in formula are in AO

◆ if_all_lcao()

bool mpqc::lcao::detail::if_all_lcao ( const Formula formula)

check if all index in formula are in LCAO

◆ lcao_to_ao()

template<typename Array >
Formula mpqc::lcao::detail::lcao_to_ao ( const Formula formula,
const OrbitalSpaceRegistry< Array > &  orbital_registry 
)

find the corresponding AO formula, if index is already AO, it will be ignored

◆ pm_objective_function()

template<typename Mat >
double mpqc::lcao::detail::pm_objective_function ( const Mat &  Cm_prime,
const Mat &  Cm_double_prime,
size_t  natoms,
const std::vector< int > &  atom_to_bf_ranges,
int  spread_exponent 
)

Pipek-Mezey maximizes this function.

◆ print_ccsd()

void mpqc::lcao::detail::print_ccsd ( int  iter,
double  dE,
double  error,
double  error_r1,
double  error_r2,
double  E1,
double  time 
)
inline

print out details of CCSD iterations

◆ print_shape()

void mpqc::lcao::detail::print_shape ( TA::Tensor< float > const &  t,
std::string const &  file_name 
)

◆ reblock_atom_to_clusters() [1/4]

template<typename Array >
Array mpqc::lcao::detail::reblock_atom_to_clusters ( Array const &  C_atom,
gaussian::Basis const &  bs0,
gaussian::Basis const &  bs1,
gaussian::Basis const &  dfbs 
)

Function to convert a by-atom array C(X, μ, ν) to a by-cluster array when μ and ν are different basis sets.

Parameters
C_atomby-atom array
bs0basis for index μ
bs1basis for index ν
dfbsbasis for index X
Returns
by-cluster array

◆ reblock_atom_to_clusters() [2/4]

template<typename Array >
Array mpqc::lcao::detail::reblock_atom_to_clusters ( Array const &  C_atom,
gaussian::Basis const &  obs,
gaussian::Basis const &  dfbs 
)

Function to convert a by-atom array C(X, μ, ν) to a by-cluster array.

Parameters
C_atomby-atom array
obsbasis for indices μ and ν
dfbsbasis for index X
Returns
by-cluster array

◆ reblock_atom_to_clusters() [3/4]

template<typename DistArray >
DistArray mpqc::lcao::detail::reblock_atom_to_clusters ( DistArray const &  C_atom,
gaussian::Basis const &  bs0,
gaussian::Basis const &  bs1,
gaussian::Basis const &  dfbs 
)

◆ reblock_atom_to_clusters() [4/4]

template<typename DistArray >
DistArray mpqc::lcao::detail::reblock_atom_to_clusters ( DistArray const &  C_atom,
gaussian::Basis const &  obs,
gaussian::Basis const &  dfbs 
)

◆ to_spincase()

template<typename Tile , typename Policy >
TA::DistArray<Tile, Policy> mpqc::lcao::detail::to_spincase ( const TA::DistArrayVector< Tile, Policy > &  arrayvec,
SpinCase1  spin 
)