conspire/domain/fem/solid/
mod.rs1pub mod elastic;
2
3use crate::{
4 constitutive::solid::Solid,
5 fem::{
6 Blocks, Model,
7 block::{Block, element::solid::SolidFiniteElement},
8 },
9 math::TensorRank2Vec2D,
10 mechanics::Forces,
11};
12use std::fmt::Debug;
13
14pub type NodalForcesSolid = Forces;
15pub type NodalStiffnessesSolid = TensorRank2Vec2D<3, 1, 1>;
16
17pub trait SolidFiniteElementModel
18where
19 Self: Debug,
20{
21}
22
23impl<B> SolidFiniteElementModel for Model<B> where B: SolidFiniteElementModel {}
24
25impl<B1, B2> SolidFiniteElementModel for Blocks<B1, B2>
26where
27 B1: SolidFiniteElementModel,
28 B2: SolidFiniteElementModel,
29{
30}
31
32impl<C, F, const G: usize, const M: usize, const N: usize, const P: usize> SolidFiniteElementModel
33 for Block<C, F, G, M, N, P>
34where
35 C: Solid,
36 F: SolidFiniteElement<G, M, N, P>,
37{
38}