$$ \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 ElementConnectivity<T>: Debug + Connectivitywhere
    T: Scalar,
    DefaultAllocator: BiDimAllocator<T, Self::GeometryDim, Self::ReferenceDim>,{
    type Element: FiniteElement<T, GeometryDim = Self::GeometryDim, ReferenceDim = Self::ReferenceDim>;
    type GeometryDim: SmallDim;
    type ReferenceDim: SmallDim;

    // Required method
    fn element(
        &self,
        all_vertices: &[OPoint<T, Self::GeometryDim>]
    ) -> Option<Self::Element>;

    // Provided method
    fn populate_element_variables<'a, SolutionDim>(
        &self,
        u_local: MatrixViewMut<'_, T, SolutionDim, Dyn>,
        u_global: impl Into<DVectorView<'a, T>>
    )
       where T: Zero,
             SolutionDim: DimName { ... }
}
Expand description

TODO: Do we really need the Debug bound?

Required Associated Types§

source

type Element: FiniteElement<T, GeometryDim = Self::GeometryDim, ReferenceDim = Self::ReferenceDim>

source

type GeometryDim: SmallDim

source

type ReferenceDim: SmallDim

Required Methods§

source

fn element( &self, all_vertices: &[OPoint<T, Self::GeometryDim>] ) -> Option<Self::Element>

Returns the finite element associated with this connectivity.

The vertices passed in should be the collection of all vertices in the mesh.

Provided Methods§

source

fn populate_element_variables<'a, SolutionDim>( &self, u_local: MatrixViewMut<'_, T, SolutionDim, Dyn>, u_global: impl Into<DVectorView<'a, T>> )where T: Zero, SolutionDim: DimName,

TODO: Move this out of the trait itself?

Implementors§

source§

impl<T> ElementConnectivity<T> for Hex8Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Hex20Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Hex27Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Quad4d2Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Quad9d2Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Segment2d1Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Segment2d2Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Tet4Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Tet10Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Tet20Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Tri3d2Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Tri3d3Connectivitywhere T: Real,

source§

impl<T> ElementConnectivity<T> for Tri6d2Connectivitywhere T: Real,