occ
Loading...
Searching...
No Matches
occ::gto Namespace Reference

evaluation Gaussian-type orbitals, their derivatives etc. More...

Namespaces

namespace  io
namespace  basis_sets

Classes

struct  GTOValues
struct  Momenta
struct  MomentaSpherical
struct  Shell
class  AOBasis
struct  Atom
 Class representing and holding data for an Atom in 3D space. More...

Enumerations

enum  ShellOrder { Default , Gaussian , Molden }

Functions

std::string component_label (int i, int j, int k, int l)
template<bool Cartesian = true>
std::vector< std::string > shell_component_labels (int l)
constexpr unsigned int num_subshells (bool cartesian, unsigned int l)
double cartesian_normalization_factor (int l, int m, int n)
std::vector< Momenta > cartesian_subshell_ordering (int l)
std::vector< MomentaSpherical > spherical_subshell_ordering (int l)
void evaluate_basis (const gto::AOBasis &basis, Mat3NConstRef grid_pts, GTOValues &gto_values, int max_derivative)
GTOValues evaluate_basis (const gto::AOBasis &basis, Mat3NConstRef grid_pts, int max_derivative)
void evaluate_basis_for_shells (const gto::AOBasis &basis, Mat3NConstRef grid_pts, GTOValues &gto_values, int max_derivative, const std::vector< size_t > &shell_indices)
 Evaluate basis functions for a subset of shells only shell_indices: list of shell indices to evaluate Output gto_values will have full nbf columns but only the specified shells populated.
GTOValues evaluate_basis_subset (const gto::AOBasis &basis, Mat3NConstRef grid_pts, int max_derivative, const std::vector< int > &shell_indices)
 Evaluate basis functions for a subset of shells, PACKED into a compact GTOValues whose columns span only those shells: phi is (npts x nbf_local) with nbf_local = sum of the subset's shell sizes, laid out in the order of shell_indices.
Vec evaluate_decay_cutoff (const gto::AOBasis &basis, double threshold=1e-12)
template<int angular_momentum>
std::vector< std::array< int, angular_momentum > > cartesian_gaussian_power_index_arrays ()
Mat cartesian_to_spherical_transformation_matrix (int l)
Mat spherical_to_cartesian_transformation_matrix (int l)
Mat transform_density_matrix_spherical_to_cartesian (const gto::AOBasis &basis_sph, const Mat &D_sph)
Mat transform_density_matrix_cartesian_to_spherical (const gto::AOBasis &basis_cart, const Mat &D_cart)
void to_json (nlohmann::json &J, const Shell &shell)
void from_json (const nlohmann::json &J, Shell &shell)
std::vector< Mat > cartesian_gaussian_rotation_matrices (int lmax, const Mat3 &rotation)
std::vector< Mat > spherical_gaussian_rotation_matrices (int lmax, const Mat3 &rotation)
double gto_norm (int l, double alpha)
template<bool cartesian, ShellOrder order = Default, typename F>
void iterate_over_shell (F &&f, int l)
template<ShellOrder order = Default>
int shell_index_cartesian (int i, int j, int k, int l)=delete
template<>
int shell_index_cartesian< ShellOrder::Default > (int i, int j, int k, int l)
template<>
int shell_index_cartesian< ShellOrder::Gaussian > (int i, int j, int k, int l)
template<>
int shell_index_cartesian< ShellOrder::Molden > (int i, int j, int k, int l)
template<ShellOrder order = Default>
int shell_index_spherical (int l, int m)=delete
template<>
int shell_index_spherical< ShellOrder::Default > (int l, int m)
template<>
int shell_index_spherical< ShellOrder::Gaussian > (int l, int m)
template<>
int shell_index_spherical< ShellOrder::Molden > (int l, int m)
template<bool cartesian, occ::gto::ShellOrder order = occ::gto::ShellOrder::Default, typename F>
void iterate_over_shell_pair (F &&f, int l_i, int l_j)

Variables

constexpr char shell_labels [] = "SPDFGHIKMNOQRTUVWXYZ"
constexpr auto OCC_MINIMAL_BASIS = "sto-3g"

Detailed Description

evaluation Gaussian-type orbitals, their derivatives etc.

Enumeration Type Documentation

◆ ShellOrder

Enumerator
Default 
Gaussian 
Molden 

Function Documentation

◆ cartesian_gaussian_power_index_arrays()

template<int angular_momentum>
std::vector< std::array< int, angular_momentum > > occ::gto::cartesian_gaussian_power_index_arrays ( )

◆ cartesian_gaussian_rotation_matrices()

std::vector< Mat > occ::gto::cartesian_gaussian_rotation_matrices ( int lmax,
const Mat3 & rotation )

◆ cartesian_normalization_factor()

double occ::gto::cartesian_normalization_factor ( int l,
int m,
int n )
inline

◆ cartesian_subshell_ordering()

std::vector< Momenta > occ::gto::cartesian_subshell_ordering ( int l)
inline

◆ cartesian_to_spherical_transformation_matrix()

Mat occ::gto::cartesian_to_spherical_transformation_matrix ( int l)

◆ component_label()

std::string occ::gto::component_label ( int i,
int j,
int k,
int l )
inline

◆ evaluate_basis() [1/2]

void occ::gto::evaluate_basis ( const gto::AOBasis & basis,
Mat3NConstRef grid_pts,
GTOValues & gto_values,
int max_derivative )

◆ evaluate_basis() [2/2]

GTOValues occ::gto::evaluate_basis ( const gto::AOBasis & basis,
Mat3NConstRef grid_pts,
int max_derivative )
inline

◆ evaluate_basis_for_shells()

void occ::gto::evaluate_basis_for_shells ( const gto::AOBasis & basis,
Mat3NConstRef grid_pts,
GTOValues & gto_values,
int max_derivative,
const std::vector< size_t > & shell_indices )

Evaluate basis functions for a subset of shells only shell_indices: list of shell indices to evaluate Output gto_values will have full nbf columns but only the specified shells populated.

◆ evaluate_basis_subset()

GTOValues occ::gto::evaluate_basis_subset ( const gto::AOBasis & basis,
Mat3NConstRef grid_pts,
int max_derivative,
const std::vector< int > & shell_indices )

Evaluate basis functions for a subset of shells, PACKED into a compact GTOValues whose columns span only those shells: phi is (npts x nbf_local) with nbf_local = sum of the subset's shell sizes, laid out in the order of shell_indices.

Pass shell_indices ascending so the local bf layout matches ascending global bf order (makes gather/scatter contiguous). Used for block-sparse DFT XC integration where most basis functions are negligible over a spatially-localized grid batch.

◆ evaluate_decay_cutoff()

Vec occ::gto::evaluate_decay_cutoff ( const gto::AOBasis & basis,
double threshold = 1e-12 )

◆ from_json()

void occ::gto::from_json ( const nlohmann::json & J,
Shell & shell )

◆ gto_norm()

double occ::gto::gto_norm ( int l,
double alpha )

◆ iterate_over_shell()

template<bool cartesian, ShellOrder order = Default, typename F>
void occ::gto::iterate_over_shell ( F && f,
int l )
inline

◆ iterate_over_shell_pair()

template<bool cartesian, occ::gto::ShellOrder order = occ::gto::ShellOrder::Default, typename F>
void occ::gto::iterate_over_shell_pair ( F && f,
int l_i,
int l_j )
inline

◆ num_subshells()

unsigned int occ::gto::num_subshells ( bool cartesian,
unsigned int l )
constexpr

◆ shell_component_labels()

template<bool Cartesian = true>
std::vector< std::string > occ::gto::shell_component_labels ( int l)
inline

◆ shell_index_cartesian()

template<ShellOrder order = Default>
int occ::gto::shell_index_cartesian ( int i,
int j,
int k,
int l )
inlinedelete

◆ shell_index_cartesian< ShellOrder::Default >()

template<>
int occ::gto::shell_index_cartesian< ShellOrder::Default > ( int i,
int j,
int k,
int l )
inline

◆ shell_index_cartesian< ShellOrder::Gaussian >()

template<>
int occ::gto::shell_index_cartesian< ShellOrder::Gaussian > ( int i,
int j,
int k,
int l )
inline

◆ shell_index_cartesian< ShellOrder::Molden >()

template<>
int occ::gto::shell_index_cartesian< ShellOrder::Molden > ( int i,
int j,
int k,
int l )
inline

◆ shell_index_spherical()

template<ShellOrder order = Default>
int occ::gto::shell_index_spherical ( int l,
int m )
inlinedelete

◆ shell_index_spherical< ShellOrder::Default >()

template<>
int occ::gto::shell_index_spherical< ShellOrder::Default > ( int l,
int m )
inline

◆ shell_index_spherical< ShellOrder::Gaussian >()

template<>
int occ::gto::shell_index_spherical< ShellOrder::Gaussian > ( int l,
int m )
inline

◆ shell_index_spherical< ShellOrder::Molden >()

template<>
int occ::gto::shell_index_spherical< ShellOrder::Molden > ( int l,
int m )
inline

◆ spherical_gaussian_rotation_matrices()

std::vector< Mat > occ::gto::spherical_gaussian_rotation_matrices ( int lmax,
const Mat3 & rotation )

◆ spherical_subshell_ordering()

std::vector< MomentaSpherical > occ::gto::spherical_subshell_ordering ( int l)
inline

◆ spherical_to_cartesian_transformation_matrix()

Mat occ::gto::spherical_to_cartesian_transformation_matrix ( int l)

◆ to_json()

void occ::gto::to_json ( nlohmann::json & J,
const Shell & shell )

◆ transform_density_matrix_cartesian_to_spherical()

Mat occ::gto::transform_density_matrix_cartesian_to_spherical ( const gto::AOBasis & basis_cart,
const Mat & D_cart )

◆ transform_density_matrix_spherical_to_cartesian()

Mat occ::gto::transform_density_matrix_spherical_to_cartesian ( const gto::AOBasis & basis_sph,
const Mat & D_sph )

Variable Documentation

◆ OCC_MINIMAL_BASIS

auto occ::gto::OCC_MINIMAL_BASIS = "sto-3g"
constexpr

◆ shell_labels

char occ::gto::shell_labels[] = "SPDFGHIKMNOQRTUVWXYZ"
inlineconstexpr