Skip to main content

Potential

Trait Potential 

Source
pub trait Potential
where Self: Clone + Debug,
{
Show 27 methods // Required methods fn energy(&self, length: Scalar) -> Scalar; fn force(&self, length: Scalar) -> Scalar; fn forces_at_energy(&self, energy: Scalar) -> ScalarList<2>; fn stiffness(&self, length: Scalar) -> Scalar; fn anharmonicity(&self, length: Scalar) -> Scalar; fn extension(&self, force: Scalar) -> Scalar; fn extensions_at_energy(&self, energy: Scalar) -> ScalarList<2>; fn compliance(&self, force: Scalar) -> Scalar; fn peak(&self) -> Scalar; fn peak_force(&self) -> Scalar; fn rest_length(&self) -> Scalar; // Provided methods fn nondimensional_energy( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar { ... } fn energy_at_force(&self, force: Scalar) -> Scalar { ... } fn nondimensional_energy_at_nondimensional_force( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar { ... } fn nondimensional_force( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar { ... } fn nondimensional_forces_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2> { ... } fn nondimensional_stiffness( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar { ... } fn nondimensional_anharmonicity( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar { ... } fn legendre(&self, force: Scalar) -> Scalar { ... } fn nondimensional_legendre( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar { ... } fn nondimensional_extension( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar { ... } fn length(&self, force: Scalar) -> Scalar { ... } fn nondimensional_length( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar { ... } fn nondimensional_extensions_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2> { ... } fn lengths_at_energy(&self, energy: Scalar) -> ScalarList<2> { ... } fn nondimensional_lengths_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2> { ... } fn nondimensional_compliance( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar { ... }
}
Expand description

Potential models.

Required Methods§

Source

fn energy(&self, length: Scalar) -> Scalar

u = u(x)
Source

fn force(&self, length: Scalar) -> Scalar

f(x) = \frac{\partial u}{\partial x}
Source

fn forces_at_energy(&self, energy: Scalar) -> ScalarList<2>

f = x^{-1}[u^{-1}(u)]
Source

fn stiffness(&self, length: Scalar) -> Scalar

k(x) = \frac{\partial f}{\partial x}
Source

fn anharmonicity(&self, length: Scalar) -> Scalar

h(x) = \frac{\partial k}{\partial x}
Source

fn extension(&self, force: Scalar) -> Scalar

\Delta x(f) = -\frac{\partial v}{\partial f}
Source

fn extensions_at_energy(&self, energy: Scalar) -> ScalarList<2>

\Delta x = u^{-1}(u) - x_0
Source

fn compliance(&self, force: Scalar) -> Scalar

c(x) = \frac{\partial\Delta x}{\partial f}
Source

fn peak(&self) -> Scalar

\text{arg max }u(x) = x_\mathrm{peak}
Source

fn peak_force(&self) -> Scalar

f(x_\mathrm{peak}) = f_\mathrm{peak}
Source

fn rest_length(&self) -> Scalar

\text{arg min }u(x) = x_0

Provided Methods§

Source

fn nondimensional_energy( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar

\upsilon(\lambda) = \beta u
Source

fn energy_at_force(&self, force: Scalar) -> Scalar

u = u[x(f)]
Source

fn nondimensional_energy_at_nondimensional_force( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar

\upsilon = \upsilon[\lambda(\eta)]
Source

fn nondimensional_force( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar

\eta(\lambda) = \frac{\partial\upsilon}{\partial \lambda}
Source

fn nondimensional_forces_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2>

\eta = \lambda^{-1}[\upsilon^{-1}(\upsilon)]
Source

fn nondimensional_stiffness( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar

\kappa(x) = \frac{\partial\eta}{\partial\lambda}
Source

fn nondimensional_anharmonicity( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar

g(x) = \frac{\partial\kappa}{\partial\lambda}
Source

fn legendre(&self, force: Scalar) -> Scalar

v(f) = u(x) - f\Delta x
Source

fn nondimensional_legendre( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar

\nu(\eta) = \upsilon(\lambda) - \eta\Delta\lambda
Source

fn nondimensional_extension( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar

\Delta\lambda(\eta) = -\frac{\partial\nu}{\partial\eta}
Source

fn length(&self, force: Scalar) -> Scalar

x(f) = x_0 + \Delta x(f)
Source

fn nondimensional_length( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar

\lambda(\eta) = 1 + \Delta\lambda(\eta)
Source

fn nondimensional_extensions_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2>

\Delta\lambda = \upsilon^{-1}(\upsilon) - 1
Source

fn lengths_at_energy(&self, energy: Scalar) -> ScalarList<2>

x = u^{-1}(u)
Source

fn nondimensional_lengths_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2>

\lambda = \upsilon^{-1}(\upsilon)
Source

fn nondimensional_compliance( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar

\zeta(x) = \frac{\partial\Delta\lambda}{\partial\eta}

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§