|
| | EcpEvaluator (std::vector< EcpBasisShell > shells, std::vector< EcpCentre > centres, int max_deriv=2) |
| | EcpEvaluator (const occ::gto::AOBasis &basis, int max_deriv=2) |
| | ~EcpEvaluator () |
| | EcpEvaluator (EcpEvaluator &&) noexcept |
| EcpEvaluator & | operator= (EcpEvaluator &&) noexcept |
| const std::vector< EcpCentre > & | centres () const |
| const std::vector< EcpBasisShell > & | shells () const |
| int | max_basis_l () const |
| int | max_deriv () const |
| Settings & | settings () |
| const Settings & | settings () const |
| std::shared_ptr< const CentreData > | prepare (int centre, int deriv) const |
| std::shared_ptr< Workspace > | make_workspace () const |
| bool | significant (const CentreData &, int sa, int sb) const |
| | Can the pair (sa, sb) see the centre at all?
|
| void | compute (const CentreData &, int sa, int sb, Workspace &, Eigen::Ref< MatRM > out) const |
| | V block, row-major ncart(la) x ncart(lb).
|
| void | compute_first_derivatives (const CentreData &, int sa, int sb, bool want_a, bool want_b, Workspace &, std::array< MatRM, 6 > &out) const |
| | First derivatives with respect to the basis centres, C held fixed.
|
| void | compute_second_derivatives (const CentreData &, int sa, int sb, bool want_aa, bool want_ab, bool want_bb, Workspace &, std::array< MatRM, 6 > &aa, std::array< MatRM, 9 > &ab, std::array< MatRM, 6 > &bb) const |
| | Second derivatives with respect to the basis centres, C held fixed.
|
| MatRM | shell_pair (int centre, int sa, int sb) const |
| | Convenience wrappers (prepare + workspace per call): for tests.
|
| std::array< MatRM, 9 > | shell_pair_first_derivatives (int centre, int sa, int sb) const |
| | Layout [Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz], with the C blocks from translational invariance.
|
| void | shell_pair_second_derivatives (int centre, int sa, int sb, std::array< MatRM, 6 > &aa, std::array< MatRM, 9 > &ab, std::array< MatRM, 6 > &bb) const |
| | AA (6), AB (9), BB (6).
|
| void | compute_variants (const CentreData &, int sa, int sb, const std::vector< Variant > &variants, Workspace &, std::vector< MatRM > &out) const |
| void occ::ints::EcpEvaluator::compute_first_derivatives |
( |
const CentreData & | , |
|
|
int | sa, |
|
|
int | sb, |
|
|
bool | want_a, |
|
|
bool | want_b, |
|
|
Workspace & | , |
|
|
std::array< MatRM, 6 > & | out ) const |
First derivatives with respect to the basis centres, C held fixed.
out[0..2] = d/dA_{x,y,z}, out[3..5] = d/dB_{x,y,z}; each block row-major ncart(la) x ncart(lb). Blocks not requested are left untouched.
| void occ::ints::EcpEvaluator::compute_second_derivatives |
( |
const CentreData & | , |
|
|
int | sa, |
|
|
int | sb, |
|
|
bool | want_aa, |
|
|
bool | want_ab, |
|
|
bool | want_bb, |
|
|
Workspace & | , |
|
|
std::array< MatRM, 6 > & | aa, |
|
|
std::array< MatRM, 9 > & | ab, |
|
|
std::array< MatRM, 6 > & | bb ) const |
Second derivatives with respect to the basis centres, C held fixed.
aa: xx,xy,xz,yy,yz,zz on A; ab: 3*i + j with i on A and j on B; bb: as aa on B. Blocks not requested are left untouched.
| std::array< MatRM, 9 > occ::ints::EcpEvaluator::shell_pair_first_derivatives |
( |
int | centre, |
|
|
int | sa, |
|
|
int | sb ) const |
Layout [Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz], with the C blocks from translational invariance.