conspire/domain/fem/block/element/linear/
mod.rs1mod hexahedron;
2mod pyramid;
3mod tetrahedron;
4mod wedge;
5
6pub use hexahedron::Hexahedron;
7pub use pyramid::Pyramid;
8pub use tetrahedron::Tetrahedron;
9pub use wedge::Wedge;
10
11use crate::fem::block::element::{
12 Element, ElementNodalReferenceCoordinates, FiniteElement, basic_from,
13};
14
15const M: usize = 3;
16
17pub type LinearElement<const G: usize, const N: usize> = Element<G, N, 1>;
18
19pub trait LinearFiniteElement<const G: usize, const N: usize>
20where
21 Self: FiniteElement<G, M, N, N>,
22{
23}
24
25impl<const G: usize, const N: usize> From<ElementNodalReferenceCoordinates<N>>
26 for LinearElement<G, N>
27where
28 Self: LinearFiniteElement<G, N>,
29{
30 fn from(reference_nodal_coordinates: ElementNodalReferenceCoordinates<N>) -> Self {
31 basic_from(reference_nodal_coordinates)
32 }
33}