Trait fenris::space::FiniteElementSpace [−][src]
pub trait FiniteElementSpace<T: Scalar>: FiniteElementConnectivity where
DefaultAllocator: FiniteElementAllocator<T, Self::GeometryDim, Self::ReferenceDim>, {
type GeometryDim: SmallDim;
type ReferenceDim: SmallDim;
fn populate_element_basis(
&self,
element_index: usize,
basis_values: &mut [T],
reference_coords: &OPoint<T, Self::ReferenceDim>
);
fn populate_element_gradients(
&self,
element_index: usize,
gradients: MatrixSliceMut<'_, T, Self::ReferenceDim, Dynamic>,
reference_coords: &OPoint<T, Self::ReferenceDim>
);
fn element_reference_jacobian(
&self,
element_index: usize,
reference_coords: &OPoint<T, Self::ReferenceDim>
) -> OMatrix<T, Self::GeometryDim, Self::ReferenceDim>;
fn map_element_reference_coords(
&self,
element_index: usize,
reference_coords: &OPoint<T, Self::ReferenceDim>
) -> OPoint<T, Self::GeometryDim>;
fn diameter(&self, element_index: usize) -> T;
}
Expand description
The “new” FiniteElementSpace trait. Currently playground for new design
Associated Types
type GeometryDim: SmallDim
type ReferenceDim: SmallDim
Required methods
fn populate_element_basis(
&self,
element_index: usize,
basis_values: &mut [T],
reference_coords: &OPoint<T, Self::ReferenceDim>
)
fn populate_element_gradients(
&self,
element_index: usize,
gradients: MatrixSliceMut<'_, T, Self::ReferenceDim, Dynamic>,
reference_coords: &OPoint<T, Self::ReferenceDim>
)
fn element_reference_jacobian(
&self,
element_index: usize,
reference_coords: &OPoint<T, Self::ReferenceDim>
) -> OMatrix<T, Self::GeometryDim, Self::ReferenceDim>
fn element_reference_jacobian(
&self,
element_index: usize,
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.
fn map_element_reference_coords(
&self,
element_index: usize,
reference_coords: &OPoint<T, Self::ReferenceDim>
) -> OPoint<T, Self::GeometryDim>
fn map_element_reference_coords(
&self,
element_index: usize,
reference_coords: &OPoint<T, Self::ReferenceDim>
) -> OPoint<T, Self::GeometryDim>
Maps reference coordinates to physical coordinates in the element.