conspire/domain/cbm/block/solid/
mod.rs1pub mod elastic;
2pub mod elastic_hyperviscous;
3pub mod elastic_viscoplastic;
4pub mod hyperelastic;
5pub mod hyperelastic_viscoplastic;
6pub mod hyperviscoelastic;
7pub mod viscoelastic;
8
9use super::{Block, node::solid::SolidElement};
10use crate::{
11 domain::{NodalCoordinates, NodalVelocities},
12 mechanics::{DeformationGradient, DeformationGradientRate},
13};
14
15pub use crate::domain::solid::SolidElements;
16
17impl<C> SolidElements for Block<C> {
18 type DeformationGradients = DeformationGradient;
19 type DeformationGradientRates = DeformationGradientRate;
20 fn deformation_gradients(
21 &self,
22 nodal_coordinates: &NodalCoordinates<3>,
23 ) -> Vec<Self::DeformationGradients> {
24 self.nodes
25 .iter()
26 .map(|node| node.deformation_gradients(nodal_coordinates))
27 .collect()
28 }
29 fn deformation_gradient_rates(
30 &self,
31 nodal_coordinates: &NodalCoordinates<3>,
32 nodal_velocities: &NodalVelocities<3>,
33 ) -> Vec<Self::DeformationGradientRates> {
34 self.nodes
35 .iter()
36 .map(|node| node.deformation_gradient_rates(nodal_coordinates, nodal_velocities))
37 .collect()
38 }
39}