$$ \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 FixedNodesReferenceFiniteElement<T>where
    T: Scalar,
    DefaultAllocator: DimAllocator<T, Self::ReferenceDim> + Allocator<T, U1, Self::NodalDim> + Allocator<T, Self::ReferenceDim, Self::NodalDim>,{
    type ReferenceDim: SmallDim;
    type NodalDim: SmallDim;

    // Required methods
    fn evaluate_basis(
        &self,
        reference_coords: &OPoint<T, Self::ReferenceDim>
    ) -> OMatrix<T, U1, Self::NodalDim>;
    fn gradients(
        &self,
        reference_coords: &OPoint<T, Self::ReferenceDim>
    ) -> OMatrix<T, Self::ReferenceDim, Self::NodalDim>;
}
Expand description

Reference finite elements with a number of nodes fixed at compile-time.

This is essentially equivalent to the old ReferenceFiniteElement trait, and exists only to make existing code written with the old API in mind still work without having to immediately re-write everything. It will be removed once everything has been ported over to the new API (ReferenceFiniteElement).

TODO: Remove this trait once all elements and tests have been ported over to ReferenceFiniteElement

Required Associated Types§

Required Methods§

source

fn evaluate_basis( &self, reference_coords: &OPoint<T, Self::ReferenceDim> ) -> OMatrix<T, U1, Self::NodalDim>

Evaluates each basis function at the given reference coordinates. The result is given in a row vector where each entry is the value of the corresponding basis function.

source

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

Given nodal weights, construct a matrix whose columns are the gradients of each shape function in the element.

Implementors§

source§

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

source§

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

§

type ReferenceDim = Const<3>

§

type NodalDim = Const<20>

source§

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

§

type ReferenceDim = Const<3>

§

type NodalDim = Const<27>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

§

type ReferenceDim = Const<3>

§

type NodalDim = Const<10>

source§

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

§

type ReferenceDim = Const<3>

§

type NodalDim = Const<20>

source§

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

source§

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

source§

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