|
votca 2026-dev
|
Parametrization of a charge-response molecule (see ChargeResponse) from the static density response of a DFT ground state. More...
#include <chargeresponsefit.h>
Classes | |
| struct | Result |
| struct | FitOptions |
| struct | Inversion |
Static Public Member Functions | |
| static Result | Fit (const tools::Property &dftoptions, Orbitals &orb, const FitOptions &fit, Logger &log) |
| static Inversion | FindInversion (const QMMolecule &mol, const AOBasis &basis, double tol=1e-4) |
| static std::vector< Eigen::MatrixXd > | WeightMatrices (const std::vector< HirshfeldPartition::AtomicReference > &atoms, const AOBasis &basis, const Vxc_Grid &grid) |
| static std::vector< Eigen::Matrix3d > | AtomicPolarizabilities (const std::vector< HirshfeldPartition::AtomicReference > &atoms, const std::vector< Eigen::Vector3d > &positions, const AOBasis &basis, const Vxc_Grid &grid, const std::array< Eigen::MatrixXd, 3 > &dP_field) |
| static Result | Analyse (const std::vector< Eigen::Vector3d > &positions, const std::vector< Eigen::MatrixXd > &W, const std::vector< Eigen::MatrixXd > &dP_potential, const std::array< Eigen::MatrixXd, 3 > &dipole, const std::array< Eigen::MatrixXd, 3 > &dP_field, const std::vector< Eigen::Matrix3d > &alpha_atoms) |
Parametrization of a charge-response molecule (see ChargeResponse) from the static density response of a DFT ground state.
The perturbations are the Hirshfeld-localized potentials w_k (one per atom; sum_k w_k = 1) and three uniform fields. With the AO matrices W_k of the weights and the first-order density matrices dP of the perturbations (electron potential energy +w_k, resp. +r_c, per unit strength):
Pi_jk = -Tr(W_j dP_k) (dq = -Pi phi) alpha_ac = -Tr(r_a dP_c) (molecular polarizability) alpha^res = alpha - X^T Pi X (X: positions - centre)
The residual polarizability is distributed over the atoms as one tensor scaled by the traces of the Hirshfeld atomic polarizabilities alpha_k,ac = -int w_k (r - R_k)_a drho_c. Fit obtains dP by central finite differences of xtpdft SCFs; the partition integrals and the analysis are separate for testing.
Definition at line 62 of file chargeresponsefit.h.
|
static |
Pi, alpha and the residual from the responses: dP_potential[k] to +w_k, dP_field[c] to +r_c, dipole[a] the AO matrices of r_a (any origin; the responses conserve the electron number). Throws if Pi is not positive semidefinite or alpha^res not positive definite.
Definition at line 188 of file chargeresponsefit.cc.
|
static |
Hirshfeld atomic polarizabilities alpha_k,ac = -int w_k (r - R_k)_a drho_c(r), with drho_c the density of dP_field[c] (per unit field).
Definition at line 117 of file chargeresponsefit.cc.
|
static |
Definition at line 269 of file chargeresponsefit.cc.
|
static |
The fit with xtpdft (dftoptions: a dftpackage tree with name xtp): the ground state of orb (atoms, charge and spin set; closed shell), which orb holds on return, then the first-order densities of all perturbations, analytically or as dP = (P(+step) - P(-step)) / (2 step) from SCFs warm-started from the ground state. The Hirshfeld references are xtpdft's (DFTEngine::HirshfeldReferences).
Definition at line 316 of file chargeresponsefit.cc.
|
static |
The Hirshfeld weight matrices W_k = int w_k chi chi of all atoms, in one pass over the grid (the same integrals as HirshfeldPartition::BuildWeightMatrix).
Definition at line 59 of file chargeresponsefit.cc.