pub trait ElasticViscoplasticFiniteElementBlock<C, F, const G: usize, const M: usize, const N: usize, const P: usize, Y>where
C: ElasticViscoplastic<Y>,
F: ElasticViscoplasticFiniteElement<C, G, M, N, P, Y>,
Self: SolidFiniteElementBlock<C, F, G, M, N, P>,
Y: Tensor,{
// Required methods
fn nodal_forces(
&self,
nodal_coordinates: &NodalCoordinates,
state_variables: &ViscoplasticStateVariables<G, Y>,
) -> Result<NodalForcesSolid, FiniteElementBlockError>;
fn nodal_stiffnesses(
&self,
nodal_coordinates: &NodalCoordinates,
state_variables: &ViscoplasticStateVariables<G, Y>,
) -> Result<NodalStiffnessesSolid, FiniteElementBlockError>;
fn state_variables_evolution(
&self,
nodal_coordinates: &NodalCoordinates,
state_variables: &ViscoplasticStateVariables<G, Y>,
) -> Result<ViscoplasticStateVariables<G, Y>, FiniteElementBlockError>;
fn root(
&self,
integrator: impl ExplicitDaeFirstOrderRoot<NodalForcesSolid, NodalStiffnessesSolid, ViscoplasticStateVariables<G, Y>, NodalCoordinates, ViscoplasticStateVariablesHistory<G, Y>, NodalCoordinatesHistory>,
solver: impl FirstOrderRootFinding<NodalForcesSolid, NodalStiffnessesSolid, NodalCoordinates>,
time: &[Scalar],
bcs: ElasticViscoplasticBCs,
) -> Result<(Times, NodalCoordinatesHistory, ViscoplasticStateVariablesHistory<G, Y>), IntegrationError>;
}Required Methods§
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<G, Y>, ) -> Result<NodalForcesSolid, FiniteElementBlockError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<G, Y>, ) -> Result<NodalStiffnessesSolid, FiniteElementBlockError>
fn state_variables_evolution( &self, nodal_coordinates: &NodalCoordinates, state_variables: &ViscoplasticStateVariables<G, Y>, ) -> Result<ViscoplasticStateVariables<G, Y>, FiniteElementBlockError>
fn root( &self, integrator: impl ExplicitDaeFirstOrderRoot<NodalForcesSolid, NodalStiffnessesSolid, ViscoplasticStateVariables<G, Y>, NodalCoordinates, ViscoplasticStateVariablesHistory<G, Y>, NodalCoordinatesHistory>, solver: impl FirstOrderRootFinding<NodalForcesSolid, NodalStiffnessesSolid, NodalCoordinates>, time: &[Scalar], bcs: ElasticViscoplasticBCs, ) -> Result<(Times, NodalCoordinatesHistory, ViscoplasticStateVariablesHistory<G, Y>), IntegrationError>
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.