$$ \gdef\pd#1#2{\frac{\partial #1}{\partial #2}} \gdef\d#1{\, \mathrm{d}#1} \gdef\dx{\d{x}} \gdef\tr#1{\operatorname{tr} (#1)} $$ $$ \gdef\norm#1{\left \lVert #1 \right\rVert} \gdef\seminorm#1{| #1 |} $$ $$ \gdef\vec#1{\mathbf{\boldsymbol{#1}}} \gdef\dvec#1{\bar{\vec #1}} $$
pub trait FiniteElement<T>: ReferenceFiniteElement<T>where
    T: Scalar,
    DefaultAllocator: BiDimAllocator<T, Self::GeometryDim, Self::ReferenceDim>,{
    type GeometryDim: SmallDim;

    // Required methods
    fn reference_jacobian(
        &self,
        reference_coords: &OPoint<T, Self::ReferenceDim>
    ) -> OMatrix<T, Self::GeometryDim, Self::ReferenceDim>;
    fn map_reference_coords(
        &self,
        reference_coords: &OPoint<T, Self::ReferenceDim>
    ) -> OPoint<T, Self::GeometryDim>;
    fn diameter(&self) -> T;
}

Required Associated Types§

Required Methods§

source

fn reference_jacobian( &self, reference_coords: &OPoint<T, Self::ReferenceDim> ) -> OMatrix<T, Self::GeometryDim, Self::ReferenceDim>

Compute the Jacobian of the transformation from the reference element to the given element at the given reference coordinates.

source

fn map_reference_coords( &self, reference_coords: &OPoint<T, Self::ReferenceDim> ) -> OPoint<T, Self::GeometryDim>

Maps reference coordinates to physical coordinates in the element.

source

fn diameter(&self) -> T

The diameter of the finite element.

The diameter of a finite element is defined as the largest distance between any two points in the element, i.e. h = min |x - y| for x, y in K where K is the element and h is the diameter.

Implementors§

source§

impl<'a, T, Space> FiniteElement<T> for ElementInSpace<'a, Space>where T: Scalar, Space: FiniteElementSpace<T>, DefaultAllocator: BiDimAllocator<T, Space::GeometryDim, Space::ReferenceDim>,

source§

impl<T> FiniteElement<T> for Hex8Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Hex20Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Hex27Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Quad4d2Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Quad9d2Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Segment2d1Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Segment2d2Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Tet4Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Tet10Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Tet20Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Tri3d2Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Tri3d3Element<T>where T: Real,

source§

impl<T> FiniteElement<T> for Tri6d2Element<T>where T: Real,