conspire/domain/fem/block/element/quadratic/
mod.rs

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