pub trait ElasticViscoplasticElements<S, const D: usize>where
Self: Elements,
S: Differentiate,{
// Required methods
fn initial_state(&self) -> S;
fn nodal_forces_into(
&self,
nodal_coordinates: &NodalCoordinates<D>,
state_variables: &S,
nodal_forces: &mut NodalForcesSolid<D>,
) -> Result<(), ElementModelError>;
fn nodal_stiffnesses_into(
&self,
nodal_coordinates: &NodalCoordinates<D>,
state_variables: &S,
nodal_stiffnesses: &mut NodalStiffnessesSolid<D>,
) -> Result<(), ElementModelError>;
fn state_variables_evolution(
&self,
nodal_coordinates: &NodalCoordinates<D>,
state_variables: &S,
) -> Result<Derivative<S>, ElementModelError>;
// Provided methods
fn nodal_forces(
&self,
nodal_coordinates: &NodalCoordinates<D>,
state_variables: &S,
) -> Result<NodalForcesSolid<D>, ElementModelError> { ... }
fn nodal_stiffnesses(
&self,
nodal_coordinates: &NodalCoordinates<D>,
state_variables: &S,
) -> Result<NodalStiffnessesSolid<D>, ElementModelError> { ... }
}Required Methods§
fn initial_state(&self) -> S
fn nodal_forces_into( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, nodal_forces: &mut NodalForcesSolid<D>, ) -> Result<(), ElementModelError>
fn nodal_stiffnesses_into( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, nodal_stiffnesses: &mut NodalStiffnessesSolid<D>, ) -> Result<(), ElementModelError>
fn state_variables_evolution( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<Derivative<S>, ElementModelError>
Provided Methods§
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<NodalForcesSolid<D>, ElementModelError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates<D>, state_variables: &S, ) -> Result<NodalStiffnessesSolid<D>, ElementModelError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".