pub trait Potential{
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§
Sourcefn forces_at_energy(&self, energy: Scalar) -> ScalarList<2>
fn forces_at_energy(&self, energy: Scalar) -> ScalarList<2>
f = x^{-1}[u^{-1}(u)]Sourcefn anharmonicity(&self, length: Scalar) -> Scalar
fn anharmonicity(&self, length: Scalar) -> Scalar
h(x) = \frac{\partial k}{\partial x}Sourcefn extensions_at_energy(&self, energy: Scalar) -> ScalarList<2>
fn extensions_at_energy(&self, energy: Scalar) -> ScalarList<2>
\Delta x = u^{-1}(u) - x_0Sourcefn compliance(&self, force: Scalar) -> Scalar
fn compliance(&self, force: Scalar) -> Scalar
c(x) = \frac{\partial\Delta x}{\partial f}Sourcefn peak_force(&self) -> Scalar
fn peak_force(&self) -> Scalar
f(x_\mathrm{peak}) = f_\mathrm{peak}Sourcefn rest_length(&self) -> Scalar
fn rest_length(&self) -> Scalar
\text{arg min }u(x) = x_0Provided Methods§
Sourcefn nondimensional_energy(
&self,
nondimensional_length: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_energy( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar
\upsilon(\lambda) = \beta uSourcefn energy_at_force(&self, force: Scalar) -> Scalar
fn energy_at_force(&self, force: Scalar) -> Scalar
u = u[x(f)]Sourcefn nondimensional_energy_at_nondimensional_force(
&self,
nondimensional_force: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_energy_at_nondimensional_force( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar
\upsilon = \upsilon[\lambda(\eta)]Sourcefn nondimensional_force(
&self,
nondimensional_length: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_force( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar
\eta(\lambda) = \frac{\partial\upsilon}{\partial \lambda}Sourcefn nondimensional_forces_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Scalar,
) -> ScalarList<2>
fn nondimensional_forces_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2>
\eta = \lambda^{-1}[\upsilon^{-1}(\upsilon)]Sourcefn nondimensional_stiffness(
&self,
nondimensional_length: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_stiffness( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar
\kappa(x) = \frac{\partial\eta}{\partial\lambda}Sourcefn nondimensional_anharmonicity(
&self,
nondimensional_length: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_anharmonicity( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar
g(x) = \frac{\partial\kappa}{\partial\lambda}Sourcefn nondimensional_legendre(
&self,
nondimensional_force: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_legendre( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar
\nu(\eta) = \upsilon(\lambda) - \eta\Delta\lambdaSourcefn nondimensional_extension(
&self,
nondimensional_force: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_extension( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar
\Delta\lambda(\eta) = -\frac{\partial\nu}{\partial\eta}Sourcefn nondimensional_length(
&self,
nondimensional_force: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_length( &self, nondimensional_force: Scalar, temperature: Scalar, ) -> Scalar
\lambda(\eta) = 1 + \Delta\lambda(\eta)Sourcefn nondimensional_extensions_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Scalar,
) -> ScalarList<2>
fn nondimensional_extensions_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2>
\Delta\lambda = \upsilon^{-1}(\upsilon) - 1Sourcefn lengths_at_energy(&self, energy: Scalar) -> ScalarList<2>
fn lengths_at_energy(&self, energy: Scalar) -> ScalarList<2>
x = u^{-1}(u)Sourcefn nondimensional_lengths_at_nondimensional_energy(
&self,
nondimensional_energy: Scalar,
temperature: Scalar,
) -> ScalarList<2>
fn nondimensional_lengths_at_nondimensional_energy( &self, nondimensional_energy: Scalar, temperature: Scalar, ) -> ScalarList<2>
\lambda = \upsilon^{-1}(\upsilon)Sourcefn nondimensional_compliance(
&self,
nondimensional_force: Scalar,
temperature: Scalar,
) -> Scalar
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.