pub struct FIRE {
pub max_step: f64,
pub f_alpha: f64,
pub alpha_start: f64,
pub f_inc: f64,
pub f_dec: f64,
pub n_min: usize,
/* private fields */
}Expand description
The Fast-Inertial-Relaxation-Engine (FIRE) algorithm
§Notes from the paper
n_minlarger than 1 (at least a few smooth steps after freezing);f_inclarger than but near to one (avoid too fast acceleration);f_decsmaller than 1 but much larger than zero (avoid too heavy slowing down)alpha_startlarger than, but near to zero (avoid too heavy damping)f_alphasmaller than, but near to one (mixing is efficient some time after restart).
Fields§
§max_step: f64The maximum size for an optimization step. According to the paper, this is the only parameter needs to be adjusted by the user.
The default value is 0.10.
f_alpha: f64Factor used to decrease alpha-parameter if downhill
The default value is 0.99.
alpha_start: f64Initial alpha-parameter.
The default value is 0.1.
f_inc: f64Factor used to increase time-step if downhill
The default value is 1.1.
f_dec: f64Factor used to decrease time-step if uphill
The default value is 0.5.
n_min: usizeMinimum number of iterations (“latency” time) performed before time-step may be increased, which is important for the stability of the algorithm.
The default value is 5.
Implementations§
Source§impl FIRE
impl FIRE
Sourcepub fn with_max_step(self, maxstep: f64) -> Self
pub fn with_max_step(self, maxstep: f64) -> Self
Set the maximum size for an optimization step.
pub fn with_dt_min(self, dt_min: f64) -> Self
Sourcepub fn with_md_scheme(self, scheme: &str) -> Self
pub fn with_md_scheme(self, scheme: &str) -> Self
Set MD scheme for position and velocity update
Sourcepub fn with_max_cycles(self, n: usize) -> Self
pub fn with_max_cycles(self, n: usize) -> Self
Set the maximum cycles for termination.
Sourcepub fn with_max_gradient_norm(self, gmax: f64) -> Self
pub fn with_max_gradient_norm(self, gmax: f64) -> Self
Set the maximum gradient/force norm for termination.
Sourcepub fn with_line_search(self) -> Self
pub fn with_line_search(self) -> Self
Enable line search of optimal step size.
The default is no line search.
Trait Implementations§
Source§impl GradientBasedMinimizer for FIRE
impl GradientBasedMinimizer for FIRE
Source§fn minimize_alt<E, G>(self, x: &mut [f64], f: E, stopping: Option<G>)
👎Deprecated: plan to be removed, please use minimize_iter method instead
fn minimize_alt<E, G>(self, x: &mut [f64], f: E, stopping: Option<G>)
minimize with user defined termination criteria / monitor
Auto Trait Implementations§
impl Freeze for FIRE
impl RefUnwindSafe for FIRE
impl Send for FIRE
impl Sync for FIRE
impl Unpin for FIRE
impl UnwindSafe for FIRE
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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.