Struct AffineGeometryMap
pub struct AffineGeometryMap { /* private fields */ }Description
Runtime-dimensional affine map x(xi) = origin + J xi.
The Jacobian may be rectangular: a d-dimensional reference entity may be
embedded in any physical dimension g >= d. Physical measure is scaled by
sqrt(det(J^T J)), which reduces to the absolute determinant for square
maps without losing embedded curves or surfaces.
Implementations§
§impl AffineGeometryMap
impl AffineGeometryMap
pub fn new(
reference_cell: ReferenceCell,
physical_dimension: usize,
origin: Vec<f64>,
jacobian: Vec<f64>,
) -> Result<AffineGeometryMap, Diagnostic>
pub fn new( reference_cell: ReferenceCell, physical_dimension: usize, origin: Vec<f64>, jacobian: Vec<f64>, ) -> Result<AffineGeometryMap, Diagnostic>
Construct a full-rank affine geometry map.
jacobian is row-major with shape
physical_dimension x reference_cell.dimension().
§Errors
Returns EQ0803 for invalid dimensions, shapes, non-finite data, or a
rank-deficient Jacobian.
pub fn from_simplex_vertices(
vertices: Vec<Vec<f64>>,
) -> Result<AffineGeometryMap, Diagnostic>
pub fn from_simplex_vertices( vertices: Vec<Vec<f64>>, ) -> Result<AffineGeometryMap, Diagnostic>
Construct the affine map of a simplex from its physical vertices.
Vertices are ordered as the origin vertex followed by the endpoints of the reference coordinate axes. A single vertex constructs a point map.
§Errors
Returns EQ0803 for missing, inconsistent, non-finite, or affinely
dependent vertices.
pub const fn measure_scale(&self) -> f64
pub const fn measure_scale(&self) -> f64
Physical measure divided by reference measure.
pub fn inverse_jacobian(&self) -> Result<Vec<f64>, Diagnostic>
pub fn inverse_jacobian(&self) -> Result<Vec<f64>, Diagnostic>
Inverse of a square affine Jacobian, in row-major order.
§Errors
Returns EQ0803 for an embedded/rectangular map or a numerical inverse
failure. Full-rank square maps accepted by the constructor are expected
to succeed.
pub fn square_quality(&self) -> Result<AffineMapQuality, Diagnostic>
pub fn square_quality(&self) -> Result<AffineMapQuality, Diagnostic>
Evaluate orientation and mean-ratio quality of a square affine map.
This operation deliberately does not reject negative orientation; mesh-level injectivity policy decides whether an orientation is valid.
§Errors
Returns EQ0803 for a point/embedded map or non-finite quality data.
Trait Implementations§
§impl Clone for AffineGeometryMap
impl Clone for AffineGeometryMap
§impl Debug for AffineGeometryMap
impl Debug for AffineGeometryMap
§impl GeometryMap for AffineGeometryMap
impl GeometryMap for AffineGeometryMap
§fn reference_cell(&self) -> ReferenceCell
fn reference_cell(&self) -> ReferenceCell
§fn physical_dimension(&self) -> usize
fn physical_dimension(&self) -> usize
§fn map_point(
&self,
reference: &[f64],
physical: &mut [f64],
) -> Result<(), Diagnostic>
fn map_point( &self, reference: &[f64], physical: &mut [f64], ) -> Result<(), Diagnostic>
§fn jacobian_at(
&self,
reference: &[f64],
jacobian: &mut [f64],
) -> Result<(), Diagnostic>
fn jacobian_at( &self, reference: &[f64], jacobian: &mut [f64], ) -> Result<(), Diagnostic>
§impl PartialEq for AffineGeometryMap
impl PartialEq for AffineGeometryMap
§fn eq(&self, other: &AffineGeometryMap) -> bool
fn eq(&self, other: &AffineGeometryMap) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for AffineGeometryMap
Auto Trait Implementations§
impl Freeze for AffineGeometryMap
impl RefUnwindSafe for AffineGeometryMap
impl Send for AffineGeometryMap
impl Sync for AffineGeometryMap
impl Unpin for AffineGeometryMap
impl UnsafeUnpin for AffineGeometryMap
impl UnwindSafe for AffineGeometryMap
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.