pub struct SolverOptions {
pub tolerance: f64,
pub max_iterations: u32,
pub lambda_scale: f64,
}Expand description
The SolverOptions struct for configuring solver parameters.
This struct allows customization of convergence tolerance, maximum iterations, and shielding parameters for the charge equilibration process. Configuration parameters for the charge equilibration solver.
This struct encapsulates the numerical settings that control the iterative solution process in the QEq algorithm. Users can adjust these parameters to balance convergence speed with accuracy for different molecular systems and computational requirements.
Fields§
§tolerance: f64The convergence tolerance for charge equilibration.
The solver iterates until the root-mean-square change in atomic charges between successive iterations falls below this threshold. Smaller values yield more accurate results but require more iterations.
max_iterations: u32The maximum number of iterations allowed.
If convergence is not achieved within this limit, the solver will terminate and return the current best estimate. This prevents infinite loops in difficult cases.
lambda_scale: f64The screening parameter scale factor.
This multiplier adjusts the orbital screening strength in Coulomb integral calculations.
It corresponds to the λ parameter in the Rappe & Goddard paper.
The original paper suggests a value of ~0.4913, often rounded to 0.5.
Trait Implementations§
Source§impl Clone for SolverOptions
impl Clone for SolverOptions
Source§fn clone(&self) -> SolverOptions
fn clone(&self) -> SolverOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SolverOptions
impl Debug for SolverOptions
Source§impl Default for SolverOptions
impl Default for SolverOptions
Source§impl PartialEq for SolverOptions
impl PartialEq for SolverOptions
impl Copy for SolverOptions
impl StructuralPartialEq for SolverOptions
Auto Trait Implementations§
impl Freeze for SolverOptions
impl RefUnwindSafe for SolverOptions
impl Send for SolverOptions
impl Sync for SolverOptions
impl Unpin for SolverOptions
impl UnwindSafe for SolverOptions
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
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>
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>
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