the edge function base class More...
#include <cl_EF_EdgeFunction.hpp>
Public Member Functions | |
| EdgeFunction ()=default | |
| trivial constructor | |
| virtual | ~EdgeFunction ()=default |
| trivial destructor | |
| virtual void | link (Element *aElement)=0 |
| links the shape function with the element and precomputes data | |
| virtual void | precompute (const Matrix< real > &aXi)=0 |
| only needed for higher order elements | |
| virtual const Matrix< real > & | E (const uint aIndex) |
| virtual const Matrix< real > & | C (const uint aIndex=0)=0 |
| virtual const Matrix< real > & | G (const uint aIndex=0)=0 |
| real | det_J () const |
| returns the current value of the determinant | |
| real | abs_det_J () const |
| returns the current value of the determinant | |
| real | sum_w () const |
| returns the sum of all integration weights | |
| uint | ndofs () const |
| virtual void | update_nabla (const uint aIndex) |
Protected Attributes | |
| Matrix< real > | mJ |
| the Geometry Jacobian (transposed) | |
| Matrix< real > | mInvJ |
| the inverse of the Geometry Jacobian (transposed) | |
| real | mDetJ = BELFEM_QUIET_NAN |
| the determinant of the Geometry Jacobian | |
| real | mAbsDetJ = BELFEM_QUIET_NAN |
| the absolute value determinant of the Geometry Jacobian | |
| Matrix< real > | mE |
| Matrix< real > | mC |
| matrix containing the curl for the H-Function | |
| Matrix< real > | mGrad |
| real | mSumW |
| sum of all weights | |
| uint | mNumDofs |
the edge function base class
|
default |
trivial constructor
|
virtualdefault |
trivial destructor
|
inline |
returns the current value of the determinant
|
inline |
returns the current value of the determinant
|
pure virtual |
links the shape function with the element and precomputes data
| aElement |
Implemented in belfem::fem::EF_HEX8, belfem::fem::EF_HEX8TB, belfem::fem::EF_HEX8TS, belfem::fem::EF_LINE3, belfem::fem::EF_PENTA6TS, belfem::fem::EF_QUAD4TS, belfem::fem::EF_TET10, belfem::fem::EF_TET4, belfem::fem::EF_TRI3, and belfem::fem::EF_TRI6.
|
inline |
only needed for higher order elements
| aXi |
Implemented in belfem::fem::EF_HEX8, belfem::fem::EF_HEX8TB, belfem::fem::EF_HEX8TS, belfem::fem::EF_LINE3, belfem::fem::EF_PENTA6TS, belfem::fem::EF_QUAD4TS, belfem::fem::EF_TET10, belfem::fem::EF_TET4, belfem::fem::EF_TRI3, and belfem::fem::EF_TRI6.
|
inline |
returns the sum of all integration weights
|
inlinevirtual |
Reimplemented in belfem::fem::EF_HEX8, and belfem::fem::EF_HEX8TB.
|
protected |
the absolute value determinant of the Geometry Jacobian
matrix containing the curl for the H-Function
|
protected |
the determinant of the Geometry Jacobian
matrix containing the gradient operator for the H-Function. Named mGrad rather than mG because seven subclasses already carry a private shape-coefficient matrix mG ( the mF/mG/mH triple ) that would shadow a base-class mG.
Layout ( one convention for every subclass, do not deviate ): G( aIndex ) returns the ( d*d ) x nDofs matrix of the basis function gradients at integration point aIndex, d being the spatial dimension. Column e is the column-major vectorization of the d x d tensor grad( w_e ) with the convention ( grad h )_ij = d h_j / d x_i :
G( i + d*j , e ) = d ( w_e )_j / d x_i
shapes and row order: 3D -> 9 x nDofs, rows: dHx/dx dHx/dy dHx/dz dHy/dx dHy/dy dHy/dz dHz/dx dHz/dy dHz/dz 2D -> 4 x nDofs, rows: dHx/dx dHx/dy dHy/dx dHy/dy
derived quantities: divergence : div h = sum_i G( i + d*i, : ) * q curl tie ( all components explicit — do NOT cycle the row integers, cycle (x,y,z) in the formula G(i+3j)-G(j+3i) ): 3D: ( curl h )_x = [ row(7) - row(5) ] * q ( curl h )_y = [ row(2) - row(6) ] * q ( curl h )_z = [ row(3) - row(1) ] * q 2D: curl h = [ row(2) - row(1) ] * q Must reproduce C() to round-off — this is the anchor test for every implementation. The matrix is sized in the subclass constructors alongside mE and mC — except EF_LINE3, which deliberately leaves it unsized until its 1D-manifold gradient contract is decided ( same pattern as its unsized mC ). The base class does not allocate it.
the inverse of the Geometry Jacobian (transposed)
|
protected |
|
protected |
sum of all weights