Trait GeometryMap
pub trait GeometryMap {
// Required methods
fn reference_cell(&self) -> ReferenceCell;
fn physical_dimension(&self) -> usize;
fn map_point(
&self,
reference: &[f64],
physical: &mut [f64],
) -> Result<(), Diagnostic>;
fn jacobian_at(
&self,
reference: &[f64],
jacobian: &mut [f64],
) -> Result<(), Diagnostic>;
}Description
Runtime-dimensional physical map for one mesh entity.
Jacobians are row-major with shape
physical_dimension x reference_dimension. Callers provide output storage
so the contract does not require heap allocation in local kernels.
Required Methods§
fn reference_cell(&self) -> ReferenceCell
fn reference_cell(&self) -> ReferenceCell
Reference-cell topology and dimension.
fn physical_dimension(&self) -> usize
fn physical_dimension(&self) -> usize
Dimension of embedding physical coordinates.
fn map_point(
&self,
reference: &[f64],
physical: &mut [f64],
) -> Result<(), Diagnostic>
fn map_point( &self, reference: &[f64], physical: &mut [f64], ) -> Result<(), Diagnostic>
Map one reference point to physical coordinates.
§Errors
Returns EQ0803 for incompatible buffer dimensions or a point outside
the reference cell.
fn jacobian_at(
&self,
reference: &[f64],
jacobian: &mut [f64],
) -> Result<(), Diagnostic>
fn jacobian_at( &self, reference: &[f64], jacobian: &mut [f64], ) -> Result<(), Diagnostic>
Evaluate the row-major geometry Jacobian.
§Errors
Returns EQ0803 for incompatible buffer dimensions or a point outside
the reference cell.