pub trait ViscoelasticFiniteElementBlock<C, F, const G: usize, const N: usize>where
C: Viscoelastic,
F: ViscoelasticFiniteElement<C, G, N>,{
// Required methods
fn deformation_gradient_rates(
&self,
nodal_coordinates: &NodalCoordinatesBlock,
nodal_velocities: &NodalVelocitiesBlock,
) -> Vec<DeformationGradientRateList<G>> ⓘ;
fn nodal_forces(
&self,
nodal_coordinates: &NodalCoordinatesBlock,
nodal_velocities: &NodalVelocitiesBlock,
) -> Result<NodalForcesBlock, ConstitutiveError>;
fn nodal_stiffnesses(
&self,
nodal_coordinates: &NodalCoordinatesBlock,
nodal_velocities: &NodalVelocitiesBlock,
) -> Result<NodalStiffnessesBlock, ConstitutiveError>;
fn nodal_velocities_element(
&self,
element_connectivity: &[usize; N],
nodal_velocities: &NodalVelocitiesBlock,
) -> CurrentCoordinates<D>;
fn root(
&self,
equality_constraint: EqualityConstraint,
integrator: impl Explicit<NodalVelocitiesBlock, NodalVelocitiesHistory>,
time: &[Scalar],
solver: impl FirstOrderRootFinding<NodalForcesBlock, NodalStiffnessesBlock, NodalCoordinatesBlock>,
) -> Result<(Times, NodalCoordinatesHistory, NodalVelocitiesHistory), IntegrationError>;
}
Required Methods§
fn deformation_gradient_rates( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Vec<DeformationGradientRateList<G>> ⓘ
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Result<NodalForcesBlock, ConstitutiveError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Result<NodalStiffnessesBlock, ConstitutiveError>
fn nodal_velocities_element( &self, element_connectivity: &[usize; N], nodal_velocities: &NodalVelocitiesBlock, ) -> CurrentCoordinates<D>
fn root( &self, equality_constraint: EqualityConstraint, integrator: impl Explicit<NodalVelocitiesBlock, NodalVelocitiesHistory>, time: &[Scalar], solver: impl FirstOrderRootFinding<NodalForcesBlock, NodalStiffnessesBlock, NodalCoordinatesBlock>, ) -> Result<(Times, NodalCoordinatesHistory, NodalVelocitiesHistory), 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.