|
| | DFT (const std::string &, const gto::AOBasis &, const occ::numint::GridSettings &={}) |
| const auto & | aobasis () const |
| auto | nbf () const |
| void | set_integration_grid (const occ::numint::GridSettings &={}) |
| void | set_nlc_grid (const gto::AOBasis &basis, const occ::numint::GridSettings &settings={110, 50, 50, 1e-7, false}) |
| void | set_density_fitting_basis (const std::string &density_fitting_basis, double auto_aux_threshold=1e-4) |
| void | set_density_fitting_policy (qm::IntegralEngineDF::Policy policy) |
| void | set_density_fitting_memory_limit (size_t bytes) |
| void | set_coulomb_method (qm::CoulombMethod method) |
| void | set_cosx_exchange (occ::numint::COSXGridLevel level=occ::numint::COSXGridLevel::Grid1) |
| void | set_cosx_grid_schedule (const qm::COSXGridSchedule &s={}) |
| bool | advance_scf_grid (double diis_error, bool converged) |
| | SCF hooks for the COSX grid schedule (see HartreeFock).
|
| bool | scf_fock_approximate () const |
| void | set_scf_fock_incremental (bool incremental) |
| void | refresh_scf_fock_correction () |
| double | incremental_fock_floor () const |
| double | final_energy_correction (const MolecularOrbitals &mo) |
| double | cosx_energy_shift_from (occ::numint::COSXGridLevel other, const MolecularOrbitals &mo) |
| bool | using_cosx () const |
| bool | using_density_fitting () const |
| qm::HartreeFock::ExchangeOperators | exchange_operators () const |
| | Exact-exchange operators (c_t, omega_t) in the energy.
|
| void | set_cosx_settings (const occ::qm::cosx::Settings &settings) |
| void | set_precision (double precision) |
| double | integral_precision () const |
| DFT | with_new_basis (const gto::AOBasis &new_basis) const |
| | Create a new DFT instance with the same settings but different basis.
|
| double | exchange_correlation_energy () const |
| double | exchange_energy_total () const |
| bool | usual_scf_energy () const |
| void | update_scf_energy (occ::core::EnergyComponents &energy) const |
| qm::FockBuildProperties | fock_build_properties () const |
| bool | have_effective_core_potentials () const |
| int | density_derivative () const |
| bool | needs_laplacian () const |
| | Whether any component depends on the density Laplacian.
|
| double | exact_exchange_factor () const |
| RangeSeparatedParameters | range_separated_parameters () const |
| double | nuclear_point_charge_interaction_energy (const PointChargeList &pc) const |
| auto | compute_kinetic_matrix () const |
| auto | compute_overlap_matrix () const |
| auto | compute_overlap_matrix_for_basis (const occ::gto::AOBasis &bs) const |
| auto | compute_nuclear_attraction_matrix () const |
| auto | compute_effective_core_potential_matrix () const |
| auto | compute_point_charge_interaction_matrix (const PointChargeList &point_charges) const |
| double | wolf_point_charge_interaction_energy (const PointChargeList &point_charges, const std::vector< double > &molecular_charges, double alpha, double cutoff) const |
| auto | compute_wolf_interaction_matrix (const PointChargeList &point_charges, const std::vector< double > &molecular_charges, double alpha, double cutoff) const |
| auto | compute_schwarz_ints () const |
| template<unsigned int order = 1> |
| auto | compute_electronic_multipoles (const MolecularOrbitals &mo, const Vec3 &o={0.0, 0.0, 0.0}) const |
| template<unsigned int order = 1> |
| auto | compute_nuclear_multipoles (const Vec3 &o={0.0, 0.0, 0.0}) const |
| template<unsigned int order = 1> |
| auto | compute_multipoles (const MolecularOrbitals &mo, const Vec3 &o={0.0, 0.0, 0.0}) const |
| template<int derivative_order, SpinorbitalKind spinorbital_kind = SpinorbitalKind::Restricted> |
| Mat | compute_K_dft (const MolecularOrbitals &mo, const Mat &Schwarz) |
| Mat | compute_J (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| Mat | compute_vxc (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) |
| qm::JKPair | compute_JK (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) |
| bool | have_nonlocal_correlation () const |
| double | post_scf_nlc_correction (const MolecularOrbitals &mo) |
| Mat3N | compute_nlc_gradient (const MolecularOrbitals &mo) const |
| Mat | compute_fock (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) |
| MatTriple | compute_fock_gradient (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) |
| std::vector< Mat > | compute_xc_response (const MolecularOrbitals &mo, const std::vector< Mat > &D1) const |
| | XC potential response V1[D1] for each first-order (per-spin) density, the exact derivative of this functional's V_xc at mo.
|
| std::string | analytic_hessian_unsupported (SpinorbitalKind kind) const |
| | Empty if the analytic Hessian supports this calculation, otherwise why not (the caller falls back to finite differences).
|
| Mat | compute_one_electron_hessian (const Mat &P, const Mat &Q) const |
| void | compute_one_electron_derivative_matrices (std::vector< Mat > &S1, std::vector< Mat > &H1) const |
| Mat | compute_xc_hessian (const MolecularOrbitals &mo) const |
| | Skeleton XC Hessian: second derivatives of E_xc at fixed AO density, grid response included (points moving with their atoms, first and second partition-weight derivatives).
|
| Mat | two_electron_hessian (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| | Skeleton two-electron + XC Hessian (fixed density): Coulomb, the functional's exact exchange (global or range-separated) and XC.
|
| std::vector< Mat > | two_electron_derivative_fock (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| | Skeleton two-electron + XC Fock derivatives for every coordinate.
|
| std::vector< Mat > | compute_xc_derivative_fock (const MolecularOrbitals &mo) const |
| | dV_xc/dR for every nuclear coordinate (index 3 * atom + xyz) at the fixed AO density of mo, including the grid response (points moving with their atoms, partition-weight derivatives).
|
| std::vector< Mat > | compute_xc_derivative_fock_occ (const MolecularOrbitals &mo) const |
| | The same contracted with the occupied coefficients, (dV_xc/dR) C_o (nbf x nocc each), on screened basis subsets: what the Hessian uses.
|
| std::vector< Mat > | two_electron_derivative_fock_occ (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| | Skeleton two-electron + XC Fock derivatives contracted with C_o.
|
| std::vector< Mat > | nonvariational_fock_derivative_occ (const MolecularOrbitals &mo) const |
| | The functional's exact exchange part of d/dR (1/2 dE/dD - F) C_o: see HartreeFock::compute_exchange_nonvariational_fock_occ.
|
| std::vector< Mat > | compute_response_fock (const MolecularOrbitals &mo, const std::vector< Mat > &D1, const Mat &Schwarz=Mat()) const |
| | Linear response of the full two-electron Kohn-Sham Fock matrix at mo: Coulomb, the functional's exact exchange (global or range-separated) and the XC kernel.
|
| std::vector< Mat > | compute_response_fock_occ (const MolecularOrbitals &mo, const std::vector< Mat > &Cx, const Mat &Schwarz=Mat()) const |
| | The CPHF response, G[D1] C_o for D1 = Cx C_o^T + C_o Cx^T (see HartreeFock::response_occ): Coulomb and the functional's exact exchange with the SCF's operators, plus the XC kernel, contracted with C_o point by point (O(npt nbf nocc) per density).
|
| std::vector< Mat > | compute_response_fock_occ_approx (const MolecularOrbitals &mo, const std::vector< Mat > &Cx, const Mat &Schwarz=Mat()) const |
| | The approximate response (RI-J, four-centre exchange, XC on a coarse grid) that CPHF preconditions with; always cheaper for DFT.
|
| bool | has_approximate_response () const |
| std::vector< Mat > | compute_xc_response_occ (const MolecularOrbitals &mo, const std::vector< Mat > &Cx, const occ::numint::MolecularGrid *grid=nullptr) const |
| | The XC kernel's part of the CPHF response; grid selects another integration grid (default: the SCF's).
|
| Mat3N | two_electron_gradient (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| | Two-electron part of the nuclear gradient: Coulomb plus the functional's exact exchange (global or range-separated), contracted in the integral loop.
|
| const auto & | hf () const |
| const qm::IntegralEngine & | integral_engine () const |
| Mat | compute_fock_from_density (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| | Forwarded to Hartree-Fock: this builds a starting density's Fock matrix, where exact exchange stands in for the functional perfectly well and saves constructing an XC grid before the first real iteration.
|
| Mat | compute_fock_mixed_basis (const MolecularOrbitals &mo_bs, const gto::AOBasis &bs, bool is_shell_diagonal) |
| Vec | electronic_electric_potential_contribution (const MolecularOrbitals &mo, const Mat3N &pts) const |
| Mat3N | electronic_electric_field_contribution (const MolecularOrbitals &mo, const Mat3N &pts) const |
| Mat3N | compute_xc_gradient (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| | Calculate the DFT exchange-correlation contribution to the atomic gradient.
|
| Mat3N | compute_ecp_gradient (const MolecularOrbitals &mo) const |
| Mat3N | additional_atomic_gradients (const MolecularOrbitals &mo) const |
| Mat3N | nuclear_repulsion_gradient () const |
| | Calculate the nuclear repulsion contribution to the atomic gradient.
|
| MatTriple | compute_overlap_gradient () const |
| | Calculate gradients for specific DFT components.
|
| MatTriple | compute_kinetic_gradient () const |
| MatTriple | compute_nuclear_attraction_gradient () const |
| MatTriple | compute_rinv_gradient_for_atom (size_t atom) const |
| qm::JKTriple | compute_JK_gradient (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) |
| MatTriple | compute_J_gradient (const MolecularOrbitals &mo, const Mat &Schwarz=Mat()) const |
| void | update_core_hamiltonian (const MolecularOrbitals &mo, Mat &H) |
| void | set_method (const std::string &method_string) |
| const std::string & | method_string () const |
| const auto & | functionals () const |
| std::string | name () const |
| void | set_block_size (size_t blocksize) |
| void | set_xc_screening_threshold (double t) |
| | Per-grid-batch shell screening tolerance for the XC build: the |phi| decay cutoff used to drop negligible basis functions over a spatial batch.
|
| double | xc_screening_threshold () const |
| void | set_grid_response (bool on) |
| | Include the grid response in XC gradients (on by default): grid points move with their parent atom, and the Becke partition weights are differentiated.
|
| bool | grid_response () const |
| | SCFMethodBase (const std::vector< core::Atom > &) |
| const auto & | atoms () const |
| int | system_charge () const |
| int | total_electrons () const |
| int | active_electrons () const |
| const auto & | frozen_electrons () const |
| Vec3 | center_of_mass () const |
| void | set_system_charge (int charge) |
| double | nuclear_repulsion_energy () const |
| Mat3N | nuclear_repulsion_gradient () const |
| Vec | nuclear_electric_potential_contribution (const Mat3N &) const |
| Mat3N | nuclear_electric_field_contribution (const Mat3N &) const |
| void | set_frozen_electrons (const std::vector< int > &) |