21#ifndef VOTCA_XTP_ENVIRONMENTSCREENING_H
22#define VOTCA_XTP_ENVIRONMENTSCREENING_H
146 const AOBasis& auxbasis,
const std::vector<Eigen::Vector3d>& points,
147 const std::vector<double>& widths = {});
156 const AOBasis& auxbasis,
const std::vector<Eigen::Vector3d>& points,
157 const std::vector<double>& widths);
188 const std::vector<PolarSegment>& segments,
double site_width);
212 const Eigen::MatrixXd&
F,
const std::vector<PolarSegment>& segments,
228 const Eigen::MatrixXd&
F,
const Eigen::MatrixXd& Phi,
229 const std::vector<PolarSegment>& segments,
double exp_damp);
249 static Eigen::MatrixXd
ShellKernel(
const Eigen::MatrixXd&
F,
250 const std::vector<PolarSegment>& segments,
264 const Eigen::MatrixXd& T);
312 const Eigen::MatrixXd& T,
Index n_modes = 3);
Container to hold Basisfunctions for all atoms.
static Eigen::VectorXd AuxCharges(const AOBasis &auxbasis)
static Eigen::MatrixXd ShellKernel(const Eigen::MatrixXd &F, const std::vector< PolarSegment > &segments, double epsilon)
The tail beyond the explicit region: legacy's radial_dielectric.
static Eigen::MatrixXd Metric(const AOBasis &auxbasis)
T for an auxiliary basis on its own: the metric TCMatrix_gwbse::Fill folds into the three-centre inte...
static Eigen::MatrixXd AuxPotentialAtPoints(const AOBasis &auxbasis, const std::vector< Eigen::Vector3d > &points, const std::vector< double > &widths)
The electrostatic potential of each auxiliary function (as a charge density) at each point,...
static Eigen::MatrixXd Kernel(const AOBasis &auxbasis, const ScreeningEnvironment &env)
B for a whole environment: ReactionFieldKernel of the explicit segments plus ShellKernel of the shell...
static Eigen::MatrixXd DressingMatrix(const Eigen::MatrixXd &R)
S = (1 + R)^(1/2), the dressing of the auxiliary index that turns the bare interaction into u = v + v...
static ScreeningCheck Check(const AOBasis &auxbasis, const QMMolecule &atoms, const ScreeningEnvironment &env, const Eigen::MatrixXd &T, Index n_modes=3)
Builds R for env and reports whether 1 + R is positive definite, and why not.
static Eigen::MatrixXd ReactionFieldKernel(const Eigen::MatrixXd &F, const std::vector< PolarSegment > &segments, double exp_damp)
B = -F A^-1 F^T for an explicit Thole region.
static Eigen::MatrixXd ChargeResponseKernel(const Eigen::MatrixXd &F, const Eigen::MatrixXd &Phi, const std::vector< PolarSegment > &segments, double exp_damp)
B for an explicit region with charge-response segments (Thole segments may be mixed in): the induced ...
static std::vector< double > SiteWidths(const std::vector< PolarSegment > &segments, double site_width)
R per site, in bohr: site_width * alpha_iso^(1/3), with alpha_iso = tr(alpha)/3; for a charge-respons...
static Eigen::MatrixXd AuxFieldAtPoints(const AOBasis &auxbasis, const std::vector< Eigen::Vector3d > &points, const std::vector< double > &widths={})
F: the electric field at each point produced by each auxiliary basis function, taken as a charge dens...
static Eigen::MatrixXd SymmetrizedReactionField(const Eigen::MatrixXd &B, const Eigen::MatrixXd &T)
R = T^T B T, the reaction field in the metric of the stored three-centre integrals,...
Provides a means for comparing floating point numbers.
Outcome of EnvironmentScreening::Check: whether 1 + R is positive definite, and a human-readable acco...
The polarizable environment a GW-BSE calculation is screened by: what a QM/MM job hands to GWBSE (GWB...
std::vector< PolarSegment > explicit_segments
std::vector< PolarSegment > shell_segments