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