40template <
typename _Shell>
66 shell_set {shell_set} {}
77 template <
typename Z = Shell>
79 typename std::enable_if<std::is_same<Z, GTOShell>::value>::type* = 0) :
94 template <
typename Z = Shell>
96 typename std::enable_if<std::is_same<Z, GTOShell>::value>::type* = 0) :
97 ScalarBasis(molecule.nuclearFramework(), basisset_name) {}
109 template <
typename Z = Shell>
111 typename std::enable_if<std::is_same<Z, LondonGTOShell>::value>::type* = 0) :
127 template <
typename Z = Shell>
129 typename std::enable_if<std::is_same<Z, LondonGTOShell>::value>::type* = 0) :
130 ScalarBasis(molecule.nuclearFramework(), basisset_name, B) {}
169 std::vector<size_t> ao_indices;
171 for (
size_t shell_index = 0; shell_index < shells.size(); shell_index++) {
172 const auto& shell = shells[shell_index];
175 const auto number_of_bf_in_shell = shell.numberOfBasisFunctions();
176 if (selector(shell)) {
177 for (
size_t i = 0; i < number_of_bf_in_shell; i++) {
178 ao_indices.push_back(bf_index);
183 bf_index += number_of_bf_in_shell;
203 std::vector<size_t> ao_indices;
204 for (
size_t i = 0; i < basis_functions.size(); i++) {
205 const auto& basis_function = basis_functions[i];
207 if (selector(basis_function)) {
208 ao_indices.push_back(i);
Definition: GTOBasisSet.hpp:35
Definition: HomogeneousMagneticField.hpp:30
Definition: Molecule.hpp:34
Definition: NuclearFramework.hpp:35
Definition: ScalarBasis.hpp:41
std::vector< BasisFunction > basisFunctions() const
Definition: ScalarBasis.hpp:150
ScalarBasis(const Molecule &molecule, const std::string &basisset_name, typename std::enable_if< std::is_same< Z, GTOShell >::value >::type *=0)
Definition: ScalarBasis.hpp:95
ScalarBasis(const ShellSet< Shell > &shell_set)
Definition: ScalarBasis.hpp:65
_Shell Shell
Definition: ScalarBasis.hpp:44
size_t numberOfBasisFunctions() const
Definition: ScalarBasis.hpp:155
ScalarBasis(const Molecule &molecule, const std::string &basisset_name, const HomogeneousMagneticField &B, typename std::enable_if< std::is_same< Z, LondonGTOShell >::value >::type *=0)
Definition: ScalarBasis.hpp:128
typename Shell::Primitive Primitive
Definition: ScalarBasis.hpp:47
std::vector< size_t > basisFunctionIndices(const std::function< bool(const Shell &)> &selector) const
Definition: ScalarBasis.hpp:164
ScalarBasis(const NuclearFramework &nuclear_framework, const std::string &basisset_name, typename std::enable_if< std::is_same< Z, GTOShell >::value >::type *=0)
Definition: ScalarBasis.hpp:78
const ShellSet< Shell > & shellSet() const
Definition: ScalarBasis.hpp:140
std::vector< size_t > basisFunctionIndices(const std::function< bool(const BasisFunction &)> &selector) const
Definition: ScalarBasis.hpp:198
typename Shell::BasisFunction BasisFunction
Definition: ScalarBasis.hpp:50
ScalarBasis(const NuclearFramework &nuclear_framework, const std::string &basisset_name, const HomogeneousMagneticField &B, typename std::enable_if< std::is_same< Z, LondonGTOShell >::value >::type *=0)
Definition: ScalarBasis.hpp:110
Definition: ShellSet.hpp:41
const std::vector< Shell > & asVector() const
Definition: ShellSet.hpp:180
std::vector< BasisFunction > basisFunctions() const
Definition: ShellSet.hpp:141
size_t numberOfBasisFunctions() const
Definition: ShellSet.hpp:127
void embedNormalizationFactorsOfPrimitives()
Definition: ShellSet.hpp:99
Definition: BaseOneElectronIntegralBuffer.hpp:25