pub trait Potential{
Show 17 methods
// Required methods
fn energy(&self, length: Scalar) -> Scalar;
fn force(&self, length: Scalar) -> Scalar;
fn stiffness(&self, length: Scalar) -> Scalar;
fn anharmonicity(&self, length: Scalar) -> Scalar;
fn extension(&self, force: Scalar) -> Scalar;
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 nondimensional_force(
&self,
nondimensional_length: Scalar,
temperature: Scalar,
) -> Scalar { ... }
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 nondimensional_compliance(
&self,
nondimensional_force: Scalar,
temperature: Scalar,
) -> Scalar { ... }
}Required Methods§
Sourcefn anharmonicity(&self, length: Scalar) -> Scalar
fn anharmonicity(&self, length: Scalar) -> Scalar
h(x) = \frac{\partial k}{\partial x}Sourcefn 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
\beta u = \beta u(\lambda)Sourcefn nondimensional_force(
&self,
nondimensional_length: Scalar,
temperature: Scalar,
) -> Scalar
fn nondimensional_force( &self, nondimensional_length: Scalar, temperature: Scalar, ) -> Scalar
\eta(\lambda) = \frac{\partial\beta u}{\partial \lambda}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
\beta v(\eta) = \beta u(\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\beta v}{\partial\eta}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.