Inverse element map: given physical coordinates aX inside an element, solves x(xi) = aX for the natural coordinates xi. More...
#include <cl_IF_ElementMapper.hpp>
Public Member Functions | |
| ElementMapper () | |
| constructor; allocates the interpolation-function factory owned by this mapper | |
| ~ElementMapper () | |
| destructor; releases cached interpolation functions and the factory | |
| ElementMapper (const ElementMapper &)=delete | |
| non-copyable: the class owns raw pointers (mFactory, cached InterpolationFunction*); copying would double-delete on destruction | |
| ElementMapper & | operator= (const ElementMapper &)=delete |
| void | link (mesh::Element *aElement) |
| binds the mapper to an element. | |
| bool | evaluate (const Vector< real > &aX, Vector< real > &aXi) |
| solves x(xi) = aX for xi. | |
| void | set_dimension (const uint aDim) |
| sets the spatial dimension of the physical coordinates. | |
| void | weights (const Vector< real > &aXi, Vector< real > &aWeights) |
| computes the weights by evaluating the shape function | |
Inverse element map: given physical coordinates aX inside an element, solves x(xi) = aX for the natural coordinates xi.
Uses closed-form inverses for TRI3 / QUAD4 / TET4 and Newton iteration (seeded by the linear / bilinear inverse where available) for higher-order or curved elements.
| belfem::fem::ElementMapper::ElementMapper | ( | ) |
constructor; allocates the interpolation-function factory owned by this mapper
| belfem::fem::ElementMapper::~ElementMapper | ( | ) |
destructor; releases cached interpolation functions and the factory
|
delete |
non-copyable: the class owns raw pointers (mFactory, cached InterpolationFunction*); copying would double-delete on destruction
solves x(xi) = aX for xi.
| [in] | aX | physical coordinate ( <spatial dim> x 1 ) |
| [out] | aXi | natural coordinate ( <natural dim> x 1 ) |
| void belfem::fem::ElementMapper::link | ( | mesh::Element * | aElement | ) |
binds the mapper to an element.
Caches its node coordinates, pre-computes the bilinear coefficient matrix mA for quads, and selects the evaluator / guess / inside dispatch for the element type.
| [in] | aElement | element to map (non-owning pointer) |
|
delete |
| void belfem::fem::ElementMapper::set_dimension | ( | const uint | aDim | ) |
sets the spatial dimension of the physical coordinates.
Call this before link() to override; if left at 0 (default), the dimension is auto-detected from the first linked element.
computes the weights by evaluating the shape function
| aXi | |
| aWeights |