Skip to main content

ElasticHyperviscousElement

Trait ElasticHyperviscousElement 

Source
pub trait ElasticHyperviscousElement<C>{
    // Required methods
    fn viscous_dissipation(
        &self,
        constitutive_model: &C,
        nodal_coordinates: &Self::Coordinates,
        nodal_velocities: &Self::Velocities,
    ) -> Result<Quantity<Power>, Self::Error>;
    fn dissipation_potential(
        &self,
        constitutive_model: &C,
        nodal_coordinates: &Self::Coordinates,
        nodal_velocities: &Self::Velocities,
    ) -> Result<Quantity<Power>, Self::Error>;
}

Required Methods§

Source

fn viscous_dissipation( &self, constitutive_model: &C, nodal_coordinates: &Self::Coordinates, nodal_velocities: &Self::Velocities, ) -> Result<Quantity<Power>, Self::Error>

Source

fn dissipation_potential( &self, constitutive_model: &C, nodal_coordinates: &Self::Coordinates, nodal_velocities: &Self::Velocities, ) -> Result<Quantity<Power>, Self::Error>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<C, const G: usize, const N: usize, const O: usize> ElasticHyperviscousElement<C> for conspire::domain::fem::block::element::Element<3, G, N, O>
where C: ElasticHyperviscous, Self: ViscoelasticFiniteElement<C, G, 3, N, N>,

Source§

impl<C, const G: usize, const N: usize, const O: usize> ElasticHyperviscousElement<C> for SurfaceElement<G, N, O>
where C: ElasticHyperviscous, Self: ViscoelasticFiniteElement<C, G, 2, N, N>,

Source§

impl<C> ElasticHyperviscousElement<C> for conspire::domain::vem::block::element::Element