pub struct CorrectedPotential<'a> { /* private fields */ }Expand description
The static potential plus the selected corrections, at one kinetic
energy (the exchange and the polarization cutoff depend on it). Build the
solver with CorrectedPotential::solver so the solver energy cannot
differ from the one the potential was built for.
Implementations§
Source§impl<'a> CorrectedPotential<'a>
impl<'a> CorrectedPotential<'a>
Sourcepub fn new(
stat: &'a dyn ScreenedPotential,
dens: &'a dyn ElectronDensity,
energy_ev: f64,
corrections: &Corrections,
) -> Result<Self, ElasticError>
pub fn new( stat: &'a dyn ScreenedPotential, dens: &'a dyn ElectronDensity, energy_ev: f64, corrections: &Corrections, ) -> Result<Self, ElasticError>
Build the corrected potential of stat with density dens at kinetic
energy energy_ev (eV, > 0).
Sourcepub fn metadata(&self) -> &CorrectionMetadata
pub fn metadata(&self) -> &CorrectionMetadata
What this potential includes.
Sourcepub fn exchange_energy(&self, r: f64) -> f64
pub fn exchange_energy(&self, r: f64) -> f64
Exchange potential energy at r (0 when exchange is off), hartree.
Sourcepub fn polarization_energy(&self, r: f64) -> f64
pub fn polarization_energy(&self, r: f64) -> f64
Polarization potential V_pol(r), Eq. (3), without the join or the
outer cut (0 when the correction is off), hartree.
Sourcepub fn correlation_polarization_energy(&self, r: f64) -> f64
pub fn correlation_polarization_energy(&self, r: f64) -> f64
Correlation-polarization potential V_cp(r), Eq. (9), with the outer
cut (0 when off), hartree.
Sourcepub fn solver(
&self,
opts: SolverOptions,
) -> Result<ElasticSolver<'_>, ElasticError>
pub fn solver( &self, opts: SolverOptions, ) -> Result<ElasticSolver<'_>, ElasticError>
A solver at the energy this potential was built for.
Trait Implementations§
Source§impl Debug for CorrectedPotential<'_>
impl Debug for CorrectedPotential<'_>
Source§impl ScreenedPotential for CorrectedPotential<'_>
impl ScreenedPotential for CorrectedPotential<'_>
Source§fn energy(&self, r: f64) -> f64
fn energy(&self, r: f64) -> f64
Potential energy
V(r) of the electron, hartree, at radius r bohr.
Attractive potentials are negative.Source§fn nuclear_charge(&self) -> f64
fn nuclear_charge(&self) -> f64
Coefficient
Z of the point-Coulomb singularity V -> -Z/r at the
origin (0 for a regular potential). Selects the series used to start
the integration.Source§fn breakpoints(&self) -> Vec<f64>
fn breakpoints(&self) -> Vec<f64>
Radii at which
V is discontinuous; the integrator restarts there.Source§fn length_scale(&self) -> f64
fn length_scale(&self) -> f64
A length over which
V changes appreciably, bohr. It caps the step.Source§fn bound_energy_ev(&self) -> Option<f64>
fn bound_energy_ev(&self) -> Option<f64>
The kinetic energy (eV) this potential was built for, when it depends
on one (such as
CorrectedPotential, whose exchange and polarization
cutoff use the energy). ElasticSolver::new rejects any other solver
energy. The default, None, accepts every energy.Source§fn correction_metadata(&self) -> CorrectionMetadata
fn correction_metadata(&self) -> CorrectionMetadata
Which corrections the potential includes; copied into
ElasticResult::corrections by solve. The default reports both
off.Source§fn matching_radius(&self, threshold: f64) -> f64
fn matching_radius(&self, threshold: f64) -> f64
Radius beyond which the potential is neglected: the smallest radius on
a geometric grid (ratio 1.05, from
length_scale) with
|r V(r)| < threshold that also lies beyond every breakpoint.Auto Trait Implementations§
impl<'a> !RefUnwindSafe for CorrectedPotential<'a>
impl<'a> !UnwindSafe for CorrectedPotential<'a>
impl<'a> Freeze for CorrectedPotential<'a>
impl<'a> Send for CorrectedPotential<'a>
impl<'a> Sync for CorrectedPotential<'a>
impl<'a> Unpin for CorrectedPotential<'a>
impl<'a> UnsafeUnpin for CorrectedPotential<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more