template<class FE>
Rodin::Geometry::IsoparametricTransformation class

Polytope isoparametric transformation.

Base classes

class PolytopeTransformation
Represents the transformation function of a simplex, taking reference coordinates to physical coordinates.

Constructors, destructors, conversion operators

IsoparametricTransformation(const Math::PointMatrix& pm, const FE& fe)

Public functions

auto transform(const Math::SpatialVector<Real>& rc) const -> Math::SpatialVector<Real>
Computes the physical coordinates of the given reference point.
auto jacobian(const Math::SpatialVector<Real>& rc) const -> Math::SpatialMatrix<Real>
Computes the Jacobian matrix of the transformation.
auto inverse(const Math::SpatialVector<Real>& pc) const -> Math::SpatialVector<Real>
Computes the reference coordinates of the given physical point.

Function documentation

template<class FE>
Rodin::Geometry::IsoparametricTransformation<FE>::IsoparametricTransformation(const Math::PointMatrix& pm, const FE& fe)

pm : sdim x dof

template<class FE>
Math::SpatialVector<Real> Rodin::Geometry::IsoparametricTransformation<FE>::transform(const Math::SpatialVector<Real>& rc) const

Computes the physical coordinates of the given reference point.

Parameters
rc in Reference coordinates of the point.
Returns A vector of size $ s $ where $ s $ represents the physical dimension.

Given $ r \in K $ , computes the point:

\[ p = x(r) \]

in physical coordinates.

template<class FE>
Math::SpatialMatrix<Real> Rodin::Geometry::IsoparametricTransformation<FE>::jacobian(const Math::SpatialVector<Real>& rc) const

Computes the Jacobian matrix of the transformation.

Returns A matrix of dimensions $ s \times k $ where $ k $ represents the reference dimension and $ s $ represents the physical dimension.

Given $ r \in K $ , computes the Jacobian matrix:

\[ \mathbf{J}_x (r) = \begin{bmatrix} \dfrac{\partial x_1}{\partial r_1} & \ldots & \dfrac{\partial x_s}{\partial r_k}\\ \vdots & \ddots & \vdots\\ \dfrac{\partial x_s}{\partial r_1} & \ldots & \dfrac{\partial x_s}{\partial r_k} \end{bmatrix} , \]

for the given transformation $ x : K \rightarrow \tau $ .

template<class FE>
Math::SpatialVector<Real> Rodin::Geometry::IsoparametricTransformation<FE>::inverse(const Math::SpatialVector<Real>& pc) const

Computes the reference coordinates of the given physical point.

Parameters
pc in Physical coordinates of the point.

Given $ p \in \tau $ , computes the point:

\[ r = x^{-1}(p) \]

in reference coordinates.