pub trait Potential{
Show 27 methods
// Required methods
fn energy(&self, length: Quantity<Length>) -> Quantity<Energy>;
fn force(&self, length: Quantity<Length>) -> Quantity<Force>;
fn forces_at_energy(&self, energy: Quantity<Energy>) -> [Quantity<Force>; 2];
fn stiffness(&self, length: Quantity<Length>) -> Quantity<ForcePerLength>;
fn anharmonicity(&self, length: Quantity<Length>) -> Quantity<Stress>;
fn extension(&self, force: Quantity<Force>) -> Quantity<Length>;
fn extensions_at_energy(
&self,
energy: Quantity<Energy>,
) -> [Quantity<Length>; 2];
fn compliance(
&self,
force: Quantity<Force>,
) -> Quantity<ReciprocalForcePerLength>;
fn peak(&self) -> Quantity<Length>;
fn peak_force(&self) -> Quantity<Force>;
fn rest_length(&self) -> Quantity<Length>;
// Provided methods
fn nondimensional_energy(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn energy_at_force(&self, force: Quantity<Force>) -> Quantity<Energy> { ... }
fn nondimensional_energy_at_nondimensional_force(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn nondimensional_force(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn nondimensional_forces_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Quantity<Temperature>,
) -> [Scalar; 2] { ... }
fn nondimensional_stiffness(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn nondimensional_anharmonicity(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn legendre(&self, force: Quantity<Force>) -> Quantity<Energy> { ... }
fn nondimensional_legendre(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn nondimensional_extension(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn length(&self, force: Quantity<Force>) -> Quantity<Length> { ... }
fn nondimensional_length(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
fn nondimensional_extensions_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Quantity<Temperature>,
) -> [Scalar; 2] { ... }
fn lengths_at_energy(
&self,
energy: Quantity<Energy>,
) -> [Quantity<Length>; 2] { ... }
fn nondimensional_lengths_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Quantity<Temperature>,
) -> [Scalar; 2] { ... }
fn nondimensional_compliance(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar { ... }
}Expand description
Potential models.
Required Methods§
Sourcefn force(&self, length: Quantity<Length>) -> Quantity<Force>
fn force(&self, length: Quantity<Length>) -> Quantity<Force>
f(x) = \frac{\partial u}{\partial x}Sourcefn forces_at_energy(&self, energy: Quantity<Energy>) -> [Quantity<Force>; 2]
fn forces_at_energy(&self, energy: Quantity<Energy>) -> [Quantity<Force>; 2]
f = x^{-1}[u^{-1}(u)]Sourcefn stiffness(&self, length: Quantity<Length>) -> Quantity<ForcePerLength>
fn stiffness(&self, length: Quantity<Length>) -> Quantity<ForcePerLength>
k(x) = \frac{\partial f}{\partial x}Sourcefn anharmonicity(&self, length: Quantity<Length>) -> Quantity<Stress>
fn anharmonicity(&self, length: Quantity<Length>) -> Quantity<Stress>
h(x) = \frac{\partial k}{\partial x}Sourcefn extension(&self, force: Quantity<Force>) -> Quantity<Length>
fn extension(&self, force: Quantity<Force>) -> Quantity<Length>
\Delta x(f) = -\frac{\partial v}{\partial f}Sourcefn extensions_at_energy(
&self,
energy: Quantity<Energy>,
) -> [Quantity<Length>; 2]
fn extensions_at_energy( &self, energy: Quantity<Energy>, ) -> [Quantity<Length>; 2]
\Delta x = u^{-1}(u) - x_0Sourcefn compliance(
&self,
force: Quantity<Force>,
) -> Quantity<ReciprocalForcePerLength>
fn compliance( &self, force: Quantity<Force>, ) -> Quantity<ReciprocalForcePerLength>
c(x) = \frac{\partial\Delta x}{\partial f}Sourcefn peak_force(&self) -> Quantity<Force>
fn peak_force(&self) -> Quantity<Force>
f(x_\mathrm{peak}) = f_\mathrm{peak}Sourcefn rest_length(&self) -> Quantity<Length>
fn rest_length(&self) -> Quantity<Length>
\text{arg min }u(x) = x_0Provided Methods§
Sourcefn nondimensional_energy(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_energy( &self, nondimensional_length: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
\upsilon(\lambda) = \beta uSourcefn nondimensional_energy_at_nondimensional_force(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_energy_at_nondimensional_force( &self, nondimensional_force: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
\upsilon = \upsilon[\lambda(\eta)]Sourcefn nondimensional_force(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_force( &self, nondimensional_length: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
\eta(\lambda) = \frac{\partial\upsilon}{\partial \lambda}Sourcefn nondimensional_forces_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Quantity<Temperature>,
) -> [Scalar; 2]
fn nondimensional_forces_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Quantity<Temperature>, ) -> [Scalar; 2]
\eta = \lambda^{-1}[\upsilon^{-1}(\upsilon)]Sourcefn nondimensional_stiffness(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_stiffness( &self, nondimensional_length: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
\kappa(x) = \frac{\partial\eta}{\partial\lambda}Sourcefn nondimensional_anharmonicity(
&self,
nondimensional_length: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_anharmonicity( &self, nondimensional_length: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
g(x) = \frac{\partial\kappa}{\partial\lambda}Sourcefn nondimensional_legendre(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_legendre( &self, nondimensional_force: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
\nu(\eta) = \upsilon(\lambda) - \eta\Delta\lambdaSourcefn nondimensional_extension(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_extension( &self, nondimensional_force: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
\Delta\lambda(\eta) = -\frac{\partial\nu}{\partial\eta}Sourcefn nondimensional_length(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_length( &self, nondimensional_force: Scalar, temperature: Quantity<Temperature>, ) -> Scalar
\lambda(\eta) = 1 + \Delta\lambda(\eta)Sourcefn nondimensional_extensions_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Quantity<Temperature>,
) -> [Scalar; 2]
fn nondimensional_extensions_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Quantity<Temperature>, ) -> [Scalar; 2]
\Delta\lambda = \upsilon^{-1}(\upsilon) - 1Sourcefn nondimensional_lengths_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Quantity<Temperature>,
) -> [Scalar; 2]
fn nondimensional_lengths_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Quantity<Temperature>, ) -> [Scalar; 2]
\lambda = \upsilon^{-1}(\upsilon)Sourcefn nondimensional_compliance(
&self,
nondimensional_force: Scalar,
temperature: Quantity<Temperature>,
) -> Scalar
fn nondimensional_compliance( &self, nondimensional_force: Scalar, temperature: Quantity<Temperature>, ) -> 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".