Skip to main content

conspire/domain/block/element/solid/viscoelastic/
mod.rs

1use crate::{
2    constitutive::solid::viscoelastic::Viscoelastic, domain::block::element::solid::SolidElement,
3};
4
5pub trait ViscoelasticElement<C>
6where
7    C: Viscoelastic,
8    Self: SolidElement,
9{
10    type Forces;
11    type Dampings;
12    type Error;
13    fn nodal_forces(
14        &self,
15        constitutive_model: &C,
16        nodal_coordinates: &Self::Coordinates,
17        nodal_velocities: &Self::Velocities,
18    ) -> Result<Self::Forces, Self::Error>;
19    fn nodal_stiffnesses(
20        &self,
21        constitutive_model: &C,
22        nodal_coordinates: &Self::Coordinates,
23        nodal_velocities: &Self::Velocities,
24    ) -> Result<Self::Dampings, Self::Error>;
25}