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, FiniteElementBlockError>;
    fn nodal_stiffnesses(
        &self,
        nodal_coordinates: &NodalCoordinatesBlock,
        nodal_velocities: &NodalVelocitiesBlock,
    ) -> Result<NodalStiffnessesBlock, FiniteElementBlockError>;
    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, FiniteElementBlockError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Result<NodalStiffnessesBlock, FiniteElementBlockError>
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.