|
occ
|
#include <cphf.h>
Public Member Functions | |
| Solver (const MolecularOrbitals &mo, ResponseFunction G, Settings settings={}) | |
| Result | solve (const std::vector< Mat > &B, const std::vector< Mat > *U0=nullptr) const |
| Solve for every right-hand side B (a vo vector each). | |
| std::vector< Mat > | apply (const std::vector< Mat > &U) const |
| The orbital Hessian (A + B) applied to each U; exposed for testing. | |
| std::vector< Mat > | apply (const std::vector< Mat > &U, std::vector< Mat > &G) const |
| As apply, also returning the response G[D(U)] C_o. | |
| Mat | vo_block (const Mat &X) const |
| C_v^s^T X C_o^s for every channel, as a vo vector (X as in contract_occupied). | |
| Mat | vo_zero () const |
| A zero vo vector. | |
| Eigen::Map< Mat > | block (Mat &U, int s) const |
| Channel s of a vo vector, nvirt_s x nocc_s. | |
| Eigen::Map< const Mat > | block (const Mat &U, int s) const |
| double | occupation () const |
| Electrons per orbital: 2 restricted, 1 unrestricted. | |
| const std::vector< SpinChannel > & | channels () const |
| const Mat & | orbital_energy_differences () const |
| e_a - e_i, a vo vector. | |
| occ::qm::cphf::Solver::Solver | ( | const MolecularOrbitals & | mo, |
| ResponseFunction | G, | ||
| Settings | settings = {} ) |
The orbital Hessian (A + B) applied to each U; exposed for testing.
| std::vector< Mat > occ::qm::cphf::Solver::apply | ( | const std::vector< Mat > & | U, |
| std::vector< Mat > & | G ) const |
As apply, also returning the response G[D(U)] C_o.
Channel s of a vo vector, nvirt_s x nocc_s.
|
inline |
|
inline |
Electrons per orbital: 2 restricted, 1 unrestricted.
A second-order property summed over vo vectors carries it, e.g. the polarisability alpha_xy = -2 occupation() vo_block(r_x) . U_y.
|
inline |
e_a - e_i, a vo vector.
| Result occ::qm::cphf::Solver::solve | ( | const std::vector< Mat > & | B, |
| const std::vector< Mat > * | U0 = nullptr ) const |
Solve for every right-hand side B (a vo vector each).
U0, if given, is the starting guess (e.g. a solution with a cheaper, approximate response).
C_v^s^T X C_o^s for every channel, as a vo vector (X as in contract_occupied).
| Mat occ::qm::cphf::Solver::vo_zero | ( | ) | const |
A zero vo vector.