![]() |
v0.16.0 |
Data on single entity (This is passed as argument to DataOperator::doWork) More...
#include "src/finite_elements/EntitiesFieldData.hpp"
Public Types | |
| enum | BaseDerivatives { ZeroDerivative = 0 , FirstDerivative , SecondDerivative , ThirdDerivative , ForthDerivative , LastDerivative } |
Bernstein-Bezier base only functions | |
| static constexpr size_t | MaxBernsteinBezierOrder = BITFEID_SIZE |
| VectorInt & | getBBNodeOrder () |
| Get orders at the nodes. | |
| MatrixInt & | getBBAlphaIndices () |
| Get file BB indices. | |
| virtual boost::shared_ptr< MatrixInt > & | getBBAlphaIndicesSharedPtr (const std::string &field_name) |
| virtual boost::shared_ptr< MatrixDouble > & | getBBNSharedPtr (const std::string &field_name) |
| virtual const boost::shared_ptr< MatrixDouble > & | getBBNSharedPtr (const std::string &field_name) const |
| virtual boost::shared_ptr< MatrixDouble > & | getBBDiffNSharedPtr (const std::string &field_name) |
| virtual const boost::shared_ptr< MatrixDouble > & | getBBDiffNSharedPtr (const std::string &field_name) const |
| virtual std::map< std::string, boost::shared_ptr< MatrixInt > > & | getBBAlphaIndicesMap () |
| virtual std::map< std::string, boost::shared_ptr< MatrixDouble > > & | getBBNMap () |
| get hash map of base function for BB base, key is a field name | |
| virtual std::map< std::string, boost::shared_ptr< MatrixDouble > > & | getBBDiffNMap () |
| get hash map of derivatives base function for BB base, key is a field name | |
| virtual boost::shared_ptr< MatrixInt > & | getBBAlphaIndicesByOrderSharedPtr (const size_t o) |
| get ALpha indices for BB base by order | |
| virtual boost::shared_ptr< MatrixDouble > & | getBBNByOrderSharedPtr (const size_t o) |
| get BB base by order | |
| virtual boost::shared_ptr< MatrixDouble > & | getBBDiffNByOrderSharedPtr (const size_t o) |
| get BB base derivative by order | |
| virtual std::array< boost::shared_ptr< MatrixInt >, MaxBernsteinBezierOrder > & | getBBAlphaIndicesByOrderArray () |
| virtual std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > & | getBBNByOrderArray () |
| virtual std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > & | getBBDiffNByOrderArray () |
| virtual MoFEMErrorCode | baseSwap (const std::string &field_name, const FieldApproximationBase base) |
| Swap bases functions. | |
Broken spaces functions | |
| int | sEnse |
| Entity sense (orientation) | |
| ApproximationOrder | oRder |
| Entity order. | |
| FieldSpace | sPace |
| Entity space. | |
| FieldApproximationBase | bAse |
| Field approximation base. | |
| VectorInt | iNdices |
| Global indices on entity. | |
| VectorInt | localIndices |
| Local indices on entity. | |
| VectorDofs | dOfs |
| DoFs on entity. | |
| VectorFieldEntities | fieldEntities |
| Field entities. | |
| VectorDouble | fieldData |
| Field data on entity. | |
| std::vector< BitRefLevel > | entDataBitRefLevel |
| Bit ref level in entity. | |
| std::vector< int > | dofBrokenSideVec |
| Map side to dofs number. | |
| std::vector< EntityType > | dofBrokenTypeVec |
| Map type of entity to dof number. | |
| std::array< std::array< boost::shared_ptr< MatrixDouble >, LASTBASE >, LastDerivative > | baseFunctionsAndBaseDerivatives |
| std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & | N |
| Base functions. | |
| std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & | diffN |
| Derivatives of base functions. | |
| std::string | bbFieldName |
| field name | |
| VectorInt | bbNodeOrder |
| order of nodes | |
| std::map< std::string, boost::shared_ptr< MatrixDouble > > | bbN |
| std::map< std::string, boost::shared_ptr< MatrixDouble > > | bbDiffN |
| std::map< std::string, boost::shared_ptr< MatrixInt > > | bbAlphaIndices |
| Indices for Bernstein-Bezier (BB) base. | |
| std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > | bbNByOrder |
| BB base functions by order. | |
| std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > | bbDiffNByOrder |
| BB base functions derivatives by order. | |
| std::array< boost::shared_ptr< MatrixInt >, MaxBernsteinBezierOrder > | bbAlphaIndicesByOrder |
| BB alpha indices by order. | |
| boost::shared_ptr< MatrixDouble > | swapBaseNPtr |
| Used by Bernstein base to keep temporary pointer. | |
| boost::shared_ptr< MatrixDouble > | swapBaseDiffNPtr |
| Used by Bernstein base to keep temporary pointer. | |
| struct | OpAddParentEntData |
| template<typename OpBase > | |
| struct | OpGetBrokenBaseSideData |
Auxiliary functions | |
| std::ostream & | operator<< (std::ostream &os, const EntitiesFieldData::EntData &e) |
| MoFEMErrorCode | resetFieldDependentData () |
Constructor and destructor | |
| EntData (const bool allocate_base_matrices=true) | |
| Construct EntData object. | |
| virtual | ~EntData ()=default |
Sense, order and indices | |
| virtual int | getSense () const |
| Get entity sense for conforming approximation fields. | |
| ApproximationOrder | getOrder () const |
| Get approximation order. | |
| const VectorInt & | getIndices () const |
| Get global indices of degrees of freedom on entity. | |
| const VectorIntAdaptor | getIndicesUpToOrder (int order) |
| Get global indices of DOFs on entity up to given order. | |
| const VectorInt & | getLocalIndices () const |
| Get local indices of degrees of freedom on entity. | |
| const VectorIntAdaptor | getLocalIndicesUpToOrder (int order) |
| Get local indices of DOFs on entity up to given order. | |
| int & | getSense () |
| Get reference to entity sense for modification. | |
| ApproximationOrder & | getOrder () |
| Get reference to approximation order for modification. | |
| VectorInt & | getIndices () |
| Get reference to global indices for modification. | |
| VectorInt & | getLocalIndices () |
| Get reference to local indices for modification. | |
Data on entity | |
| const VectorDouble & | getFieldData () const |
| Get DOF values on entity. | |
| const VectorAdaptor | getFieldDataUpToOrder (int order) |
| Get DOF values on entity up to given order. | |
| const VectorDofs & | getFieldDofs () const |
| Get DOF data structures (const version) | |
| VectorDouble & | getFieldData () |
| Get DOF values on entity for modification. | |
| const VectorFieldEntities & | getFieldEntities () const |
| Get field entities (const version) | |
| VectorFieldEntities & | getFieldEntities () |
| Get field entities for modification. | |
| virtual std::vector< BitRefLevel > & | getEntDataBitRefLevel () |
| Get entity bit reference level. | |
| template<int Tensor_Dim> | |
| auto | getFTensor1FieldData () |
| Return FTensor of rank 1, i.e. vector from field data coefficients. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| auto | getFTensor2FieldData () |
| Return FTensor rank 2, i.e. matrix from field data coefficients. | |
| template<int Tensor_Dim> | |
| auto | getFTensor2SymmetricFieldData () |
| Return symmetric FTensor rank 2, i.e. matrix from field data coefficients. | |
| FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0FieldData () |
| Return scalar files as a FTensor of rank 0. | |
| VectorDofs & | getFieldDofs () |
Base and space | |
| FieldApproximationBase & | getBase () |
| Get approximation base. | |
| FieldSpace & | getSpace () |
| Get field space. | |
| virtual boost::shared_ptr< MatrixDouble > & | getNSharedPtr (const FieldApproximationBase base, const BaseDerivatives derivative) |
| Get shared pointer to base functions with derivatives. | |
| virtual boost::shared_ptr< MatrixDouble > & | getNSharedPtr (const FieldApproximationBase base) |
| Get shared pointer to base functions (zero derivative) | |
| virtual boost::shared_ptr< MatrixDouble > & | getDiffNSharedPtr (const FieldApproximationBase base) |
| Get shared pointer to derivatives of base functions. | |
Get base functions for H1/L2 | |
| MatrixDouble & | getN (const FieldApproximationBase base) |
| get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb. of columns is equal to number of base functions on this entity. | |
| MatrixDouble & | getN (const std::string &field_name) |
| Get base functions for specific field (Bernstein-Bezier) | |
| MatrixDouble & | getN () |
| Get base functions using default base. | |
| MatrixDouble & | getDiffN (const FieldApproximationBase base) |
| get derivatives of base functions | |
| MatrixDouble & | getN (const FieldApproximationBase base, const BaseDerivatives derivative) |
| Get base function derivatives with specific derivative order. | |
| MatrixDouble & | getDiffN (const std::string &field_name) |
| Get derivatives of base functions for specific field. | |
| MatrixDouble & | getDiffN () |
| Get derivatives of base functions using default base. | |
| MatrixDouble & | getN (const BaseDerivatives derivative) |
| Get base function derivatives using default base. | |
| const VectorAdaptor | getN (const FieldApproximationBase base, const int gg) |
| Get base functions at specific Gauss point. | |
| const VectorAdaptor | getN (const int gg) |
| Get base functions at specific Gauss point using default base. | |
| const MatrixAdaptor | getDiffN (const FieldApproximationBase base, const int gg) |
| Get derivative of base functions at specific Gauss point. | |
| const MatrixAdaptor | getDiffN (const int gg) |
| Get derivative of base functions at specific Gauss point using default base. | |
| const VectorAdaptor | getN (const FieldApproximationBase base, const int gg, const int nb_base_functions) |
| Get base functions at Gauss point with limited number of functions. | |
| const VectorAdaptor | getN (const int gg, const int nb_base_functions) |
| Get base functions at Gauss point with limited number (default base) | |
| const MatrixAdaptor | getDiffN (const FieldApproximationBase base, const int gg, const int nb_base_functions) |
| Get derivatives of base functions at Gauss point with limited number. | |
| const MatrixAdaptor | getDiffN (const int gg, const int nb_base_functions) |
| Get derivatives of base functions at Gauss point with limited number (default base) | |
Get base functions for vectorial approximation bases, i.e. | |
Hdiv/Hcurl | |
| template<int DIM> | |
| const MatrixAdaptor | getVectorN (const FieldApproximationBase base, const int gg) |
| get Hdiv of base functions at Gauss pts | |
| template<int DIM> | |
| const MatrixAdaptor | getVectorN (const int gg) |
| get Hdiv of base functions at Gauss pts | |
| template<int DIM0, int DIM1> | |
| const MatrixAdaptor | getVectorDiffN (FieldApproximationBase base, const int gg) |
| get DiffHdiv of base functions at Gauss pts | |
| template<int DIM0, int DIM1> | |
| const MatrixAdaptor | getVectorDiffN (const int gg) |
| get DiffHdiv of base functions at Gauss pts | |
| template<int DIM0, int DIM1> | |
| const MatrixAdaptor | getVectorDiffN (const FieldApproximationBase base, const int dof, const int gg) |
| get DiffHdiv of base functions at Gauss pts | |
| template<int DIM0, int DIM1> | |
| const MatrixAdaptor | getVectorDiffN (const int dof, const int gg) |
| get DiffHdiv of base functions at Gauss pts | |
Get base functions with FTensor | |
| FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0N (const FieldApproximationBase base) |
| Get base function as Tensor0. | |
| FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0N () |
| Get base function as Tensor0. | |
| FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0N (const FieldApproximationBase base, const int gg, const int bb) |
| Get base function as Tensor0 (Loop by integration points) | |
| FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0N (const int gg, const int bb) |
| Get base function as Tensor0 (Loop by integration points) | |
| template<int Tensor_Dim> | |
| auto | getFTensor1DiffN (const FieldApproximationBase base) |
| Get derivatives of base functions. | |
| template<int Tensor_Dim> | |
| auto | getFTensor1DiffN () |
| Get derivatives of base functions. | |
| template<int Tensor_Dim> | |
| auto | getFTensor1DiffN (const FieldApproximationBase base, const int gg, const int bb) |
| Get derivatives of base functions (Loop by integration points) | |
| template<int Tensor_Dim> | |
| auto | getFTensor1DiffN (const int gg, const int bb) |
| Get derivatives of base functions (Loop by integration points) | |
| template<int Tensor_Dim> | |
| auto | getFTensor2DiffN2 (const FieldApproximationBase base) |
| Get second derivatives of scalar base functions. | |
| template<int Tensor_Dim> | |
| auto | getFTensor2DiffN2 (const FieldApproximationBase base, const int gg, const int bb) |
| Get second derivatives of scalar base functions at integration pts. | |
| template<int Tensor_Dim> | |
| auto | getFTensor2DiffN2 () |
| Get second derivatives of scalar base functions. | |
| template<int Tensor_Dim> | |
| auto | getFTensor2DiffN2 (const int gg, const int bb) |
| Get second derivatives of scalar base functions at integration pts. | |
| template<int Tensor_Dim> | |
| auto | getFTensor1N (FieldApproximationBase base) |
| Get base functions for Hdiv/Hcurl spaces. | |
| template<int Tensor_Dim> | |
| auto | getFTensor1N () |
| Get base functions for Hdiv space. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > | getFTensor2DiffN (FieldApproximationBase base) |
| Get derivatives of base functions for Hdiv space. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > | getFTensor2DiffN (FieldApproximationBase base, const int gg, const int bb) |
| Get derivatives of base functions for Hdiv space at integration pts. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > | getFTensor2DiffN () |
| Get derivatives of base functions for Hdiv space. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > | getFTensor2DiffN (const int gg, const int bb) |
| Get derivatives of base functions for Hdiv space at integration pts. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > | getFTensor3Diff2N (FieldApproximationBase base) |
| Get second derivatives of base functions for Hvec space. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > | getFTensor3Diff2N () |
| Get second derivatives of base functions for Hvec space. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > | getFTensor3DiffN (FieldApproximationBase base) |
| Get derivatives of base functions for tonsorial Hdiv space. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > | getFTensor3DiffN (FieldApproximationBase base, const int gg, const int bb) |
| Get derivatives of base functions for tonsorial Hdiv space at integration pts. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > | getFTensor3DiffN () |
| Get derivatives of base functions for tonsorial Hdiv space. | |
| template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > | getFTensor3DiffN (const int gg, const int bb) |
| Get derivatives of base functions for tonsorial Hdiv space at integration pts. | |
| template<int Tensor_Dim> | |
| auto | getFTensor1N (FieldApproximationBase base, const int gg, const int bb) |
| Get Hdiv base functions at integration point. | |
| template<int Tensor_Dim> | |
| auto | getFTensor1N (const int gg, const int bb) |
| Get Hdiv base functions at integration point. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| auto | getFTensor2N (FieldApproximationBase base) |
| Get base functions for Hdiv/Hcurl spaces. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| auto | getFTensor2N () |
| Get base functions for Hdiv space. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| auto | getFTensor2N (FieldApproximationBase base, const int gg, const int bb) |
| Get base functions for tensor Hdiv/Hcurl spaces. | |
| template<int Tensor_Dim0, int Tensor_Dim1> | |
| auto | getFTensor2N (const int gg, const int bb) |
| Get base functions for Hdiv space. | |
Specializations for derivatives of base functions | |
| template<> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > | getFTensor2DiffN (FieldApproximationBase base) |
| template<> | |
| FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > | getFTensor2DiffN (FieldApproximationBase base, const int gg, const int bb) |
| template<> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, 12 >, 3, 2, 2 > | getFTensor3Diff2N (FieldApproximationBase base) |
| template<> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > | getFTensor3DiffN (FieldApproximationBase base) |
| template<> | |
| FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > | getFTensor3DiffN (FieldApproximationBase base, const int gg, const int bb) |
Data on single entity (This is passed as argument to DataOperator::doWork)
Definition at line 150 of file EntitiesFieldData.hpp.
| Enumerator | |
|---|---|
| ZeroDerivative | |
| FirstDerivative | |
| SecondDerivative | |
| ThirdDerivative | |
| ForthDerivative | |
| LastDerivative | |
Definition at line 152 of file EntitiesFieldData.hpp.
| MoFEM::EntitiesFieldData::EntData::EntData | ( | const bool | allocate_base_matrices = true | ) |
Construct EntData object.
| allocate_base_matrices | If true, allocate base function matrices (default: true) |
Definition at line 10 of file EntitiesFieldData.cpp.
|
virtualdefault |
|
virtual |
Swap bases functions.
Some base are not hierarchical and depend on approximation order. Such case demand special handling, that appropriate base order is set depending on field, such that is accessible in operator.
| field_name | |
| base |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 143 of file EntitiesFieldData.cpp.
|
inline |
Get approximation base.
Definition at line 1595 of file EntitiesFieldData.hpp.
|
inline |
Get file BB indices.
Definition at line 1834 of file EntitiesFieldData.hpp.
|
virtual |
Definition at line 491 of file EntitiesFieldData.cpp.
|
virtual |
get ALpha indices for BB base by order
| o | approximation order |
Definition at line 475 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 460 of file EntitiesFieldData.cpp.
|
virtual |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 423 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 503 of file EntitiesFieldData.cpp.
|
virtual |
get BB base derivative by order
| o |
Definition at line 485 of file EntitiesFieldData.cpp.
|
virtual |
get hash map of derivatives base function for BB base, key is a field name
Definition at line 470 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB derivatives of base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 446 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to derivatives of BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 454 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 497 of file EntitiesFieldData.cpp.
|
virtual |
get BB base by order
| o |
Definition at line 480 of file EntitiesFieldData.cpp.
|
virtual |
get hash map of base function for BB base, key is a field name
Definition at line 465 of file EntitiesFieldData.cpp.
|
inline |
Get orders at the nodes.
Definition at line 1832 of file EntitiesFieldData.hpp.
|
virtual |
Get shared pointer to BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 429 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 437 of file EntitiesFieldData.cpp.
|
inline |
Get derivatives of base functions using default base.
Definition at line 1656 of file EntitiesFieldData.hpp.
|
inline |
get derivatives of base functions
Matrix at rows has nb. of Gauss pts, at columns it has derivative of base functions. Columns are structured as follows, [ dN1/dx, dN1/dy, dN1/dz, dN2/dx, dN2/dy, dN2/dz, ... ]
Scalar base functions: Note that base functions are calculated in file H1.c Above description not apply for derivatives of nodal functions, since derivative of nodal functions in case of simplexes, EDGES, TRIANGLES and TETS are constant. So that matrix rows represents nb. of base functions, columns are derivatives. Nb. of columns depend on element dimension, for EDGES is one, for TRIS is 2 and TETS is 3.
Tensorial base functions:
\[ t_{0,0}, t_{1,0}, t_{1,0}, t_{0,1}, t_{1,1}, t_{1,1}, t_{0,2}, t_{1,2}, t_{1,2} \]
where comma express derivative, i.e. \(t_{2,1} = \frac{\partial t_2}{\partial \xi_1}\)Definition at line 1627 of file EntitiesFieldData.hpp.
|
inline |
Get derivative of base functions at specific Gauss point.
Returned matrix has base functions in rows and derivatives in columns.
| base | Approximation base type |
| gg | Gauss point number |
Definition at line 1676 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions at Gauss point with limited number.
Note that for multi-field elements, different fields can have different approximation orders. Since hierarchical approximation basis is used, base functions are calculated once for element using maximal order.
| base | Approximation base type |
| gg | Gauss point number |
| nb_base_functions | Number of base functions |
Definition at line 1718 of file EntitiesFieldData.hpp.
|
inline |
Get derivative of base functions at specific Gauss point using default base.
| gg | Gauss point number |
Definition at line 1698 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions at Gauss point with limited number (default base)
| gg | Gauss point number |
| nb_base_functions | Number of base functions |
Definition at line 1744 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions for specific field.
| field_name | Name of the field |
Definition at line 1646 of file EntitiesFieldData.hpp.
|
virtual |
Get shared pointer to derivatives of base functions.
| base | Approximation base type |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 44 of file EntitiesFieldData.cpp.
|
virtual |
Get entity bit reference level.
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 545 of file EntitiesFieldData.cpp.
|
inline |
Get DOF values on entity for modification.
Definition at line 1584 of file EntitiesFieldData.hpp.
|
inline |
Get DOF values on entity.
Definition at line 1563 of file EntitiesFieldData.hpp.
|
inline |
Get DOF values on entity up to given order.
| order | Maximum approximation order to include |
Definition at line 1568 of file EntitiesFieldData.hpp.
|
inline |
Definition at line 1582 of file EntitiesFieldData.hpp.
|
inline |
Get DOF data structures (const version)
Definition at line 1578 of file EntitiesFieldData.hpp.
|
inline |
Get field entities for modification.
Definition at line 1586 of file EntitiesFieldData.hpp.
|
inline |
Get field entities (const version)
Definition at line 1591 of file EntitiesFieldData.hpp.
|
inline |
Return scalar files as a FTensor of rank 0.
Definition at line 411 of file EntitiesFieldData.hpp.
|
inline |
Get base function as Tensor0.
Return base functions for field base
Definition at line 1812 of file EntitiesFieldData.hpp.
|
inline |
Get base function as Tensor0.
| base |
Definition at line 1806 of file EntitiesFieldData.hpp.
|
inline |
Get base function as Tensor0 (Loop by integration points)
| base | |
| gg | integration points |
| bb | base function |
Note that:
Increment in above code will move pointer to base function in next integration point.
Definition at line 1817 of file EntitiesFieldData.hpp.
|
inline |
Get base function as Tensor0 (Loop by integration points)
Return base functions for field base
| bb | base function |
Definition at line 1824 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions.
For volume element like tetrahedral or prism,
For face element like triangle or quad
Definition at line 824 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions.
For volume element like tetrahedral or prism,
For face element like triangle or quad
| base | functions |
Definition at line 802 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions (Loop by integration points)
For volume element like tetrahedral or prism,
where bb is base function and gg is integration pt. Operator ++diff_base will move tensor pointer to next integration point.
For face element like triangle or quad
Definition at line 849 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions (Loop by integration points)
For volume element like tetrahedral or prism,
where bb is base function and gg is integration pt. Operator ++diff_base will move tensor pointer to next base function.
For face element like triangle or quad
Definition at line 874 of file EntitiesFieldData.hpp.
|
inline |
Return FTensor of rank 1, i.e. vector from field data coefficients.
| Tensor_Dim | size of vector |
Definition at line 321 of file EntitiesFieldData.hpp.
|
inline |
Get base functions for Hdiv space.
Definition at line 974 of file EntitiesFieldData.hpp.
|
inline |
Get Hdiv base functions at integration point.
Definition at line 1106 of file EntitiesFieldData.hpp.
|
inline |
Get base functions for Hdiv/Hcurl spaces.
| base | Approximation base |
Definition at line 948 of file EntitiesFieldData.hpp.
|
inline |
Get Hdiv base functions at integration point.
Definition at line 1086 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions for Hdiv space.
Definition at line 1000 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions for Hdiv space at integration pts.
Definition at line 1010 of file EntitiesFieldData.hpp.
| FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > MoFEM::EntitiesFieldData::EntData::getFTensor2DiffN | ( | FieldApproximationBase | base | ) |
Get derivatives of base functions for Hdiv space.
Definition at line 297 of file EntitiesFieldData.cpp.
| FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor2DiffN< 3, 2 > | ( | FieldApproximationBase | base | ) |
Definition at line 308 of file EntitiesFieldData.cpp.
| FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > MoFEM::EntitiesFieldData::EntData::getFTensor2DiffN | ( | FieldApproximationBase | base, |
| const int | gg, | ||
| const int | bb | ||
| ) |
Get derivatives of base functions for Hdiv space at integration pts.
Definition at line 308 of file EntitiesFieldData.cpp.
| FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor2DiffN< 3, 2 > | ( | FieldApproximationBase | base, |
| const int | gg, | ||
| const int | bb | ||
| ) |
Definition at line 308 of file EntitiesFieldData.cpp.
|
inline |
Get second derivatives of scalar base functions.
Definition at line 905 of file EntitiesFieldData.hpp.
|
inline |
Get second derivatives of scalar base functions.
Definition at line 883 of file EntitiesFieldData.hpp.
|
inline |
Get second derivatives of scalar base functions at integration pts.
Definition at line 894 of file EntitiesFieldData.hpp.
|
inline |
Get second derivatives of scalar base functions at integration pts.
Definition at line 915 of file EntitiesFieldData.hpp.
|
inline |
Return FTensor rank 2, i.e. matrix from field data coefficients.
| Tensor_Dim0 | First dimension of tensor |
| Tensor_Dim1 | Second dimension of tensor |
Definition at line 351 of file EntitiesFieldData.hpp.
|
inline |
Get base functions for Hdiv space.
Definition at line 1168 of file EntitiesFieldData.hpp.
|
inline |
Get base functions for Hdiv space.
Definition at line 1231 of file EntitiesFieldData.hpp.
|
inline |
Get base functions for Hdiv/Hcurl spaces.
| base | Approximation base |
Definition at line 1139 of file EntitiesFieldData.hpp.
|
inline |
Get base functions for tensor Hdiv/Hcurl spaces.
| base | Approximation base |
Definition at line 1202 of file EntitiesFieldData.hpp.
|
inline |
Return symmetric FTensor rank 2, i.e. matrix from field data coefficients.
| Tensor_Dim | Dimension of the symmetric tensor |
Definition at line 385 of file EntitiesFieldData.hpp.
|
inline |
Get second derivatives of base functions for Hvec space.
Definition at line 1028 of file EntitiesFieldData.hpp.
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > MoFEM::EntitiesFieldData::EntData::getFTensor3Diff2N | ( | FieldApproximationBase | base | ) |
Get second derivatives of base functions for Hvec space.
| FTensor::Tensor3< FTensor::PackPtr< double *, 12 >, 3, 2, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor3Diff2N | ( | FieldApproximationBase | base | ) |
Definition at line 361 of file EntitiesFieldData.cpp.
|
inline |
Get derivatives of base functions for tonsorial Hdiv space.
Definition at line 1055 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions for tonsorial Hdiv space at integration pts.
Definition at line 1066 of file EntitiesFieldData.hpp.
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > MoFEM::EntitiesFieldData::EntData::getFTensor3DiffN | ( | FieldApproximationBase | base | ) |
Get derivatives of base functions for tonsorial Hdiv space.
Definition at line 381 of file EntitiesFieldData.cpp.
| FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor3DiffN | ( | FieldApproximationBase | base | ) |
Definition at line 403 of file EntitiesFieldData.cpp.
| FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > MoFEM::EntitiesFieldData::EntData::getFTensor3DiffN | ( | FieldApproximationBase | base, |
| const int | gg, | ||
| const int | bb | ||
| ) |
Get derivatives of base functions for tonsorial Hdiv space at integration pts.
Definition at line 392 of file EntitiesFieldData.cpp.
| FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor3DiffN | ( | FieldApproximationBase | base, |
| const int | gg, | ||
| const int | bb | ||
| ) |
Definition at line 410 of file EntitiesFieldData.cpp.
|
inline |
Get reference to global indices for modification.
Definition at line 1557 of file EntitiesFieldData.hpp.
|
inline |
Get global indices of degrees of freedom on entity.
Definition at line 1523 of file EntitiesFieldData.hpp.
|
inline |
Get global indices of DOFs on entity up to given order.
| order | Maximum approximation order to include |
Definition at line 1528 of file EntitiesFieldData.hpp.
|
inline |
Get reference to local indices for modification.
Definition at line 1559 of file EntitiesFieldData.hpp.
|
inline |
Get local indices of degrees of freedom on entity.
Definition at line 1538 of file EntitiesFieldData.hpp.
|
inline |
Get local indices of DOFs on entity up to given order.
| order | Maximum approximation order to include |
Definition at line 1543 of file EntitiesFieldData.hpp.
|
inline |
Get base functions using default base.
Definition at line 1624 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivatives using default base.
| derivative | Derivative order |
Definition at line 1659 of file EntitiesFieldData.hpp.
|
inline |
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb. of columns is equal to number of base functions on this entity.
Definition at line 1600 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivatives with specific derivative order.
| base | Approximation base type |
| derivative | Derivative order |
Definition at line 1632 of file EntitiesFieldData.hpp.
|
inline |
Get base functions at specific Gauss point.
| base | Approximation base type |
| gg | Gauss point number |
Definition at line 1664 of file EntitiesFieldData.hpp.
|
inline |
Get base functions at Gauss point with limited number of functions.
Note that for multi-field elements, different fields can have different approximation orders. Since hierarchical approximation basis is used, base functions are calculated once for element using maximal order.
| base | Approximation base type |
| gg | Gauss point number |
| nb_base_functions | Number of base functions to return |
Definition at line 1703 of file EntitiesFieldData.hpp.
|
inline |
Get base functions at specific Gauss point using default base.
| gg | Gauss point number |
Definition at line 1671 of file EntitiesFieldData.hpp.
|
inline |
Get base functions at Gauss point with limited number (default base)
| gg | Gauss point number |
| nb_base_functions | Number of base functions to return |
Definition at line 1713 of file EntitiesFieldData.hpp.
|
inline |
Get base functions for specific field (Bernstein-Bezier)
| field_name | Name of the field |
Definition at line 1612 of file EntitiesFieldData.hpp.
|
virtual |
Get shared pointer to base functions (zero derivative)
| base | Approximation base type |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 40 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to base functions with derivatives.
| base | Approximation base type |
| derivative | Derivative order (ZeroDerivative, FirstDerivative, etc.) |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 34 of file EntitiesFieldData.cpp.
|
inline |
Get reference to approximation order for modification.
Definition at line 1555 of file EntitiesFieldData.hpp.
|
inline |
Get approximation order.
Definition at line 1519 of file EntitiesFieldData.hpp.
|
inline |
Get reference to entity sense for modification.
Definition at line 1553 of file EntitiesFieldData.hpp.
|
virtual |
Get entity sense for conforming approximation fields.
Entity sense is needed to calculate base functions with conforming approximation fields.
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 31 of file EntitiesFieldData.cpp.
|
inline |
Get field space.
Definition at line 1597 of file EntitiesFieldData.hpp.
|
inline |
get DiffHdiv of base functions at Gauss pts
| base | Approximation base |
| gg | nb. of Gauss point |
| number | of of base functions |
Definition at line 1791 of file EntitiesFieldData.hpp.
|
inline |
get DiffHdiv of base functions at Gauss pts
| gg | nb. of Gauss point |
| number | of of base functions |
Definition at line 1800 of file EntitiesFieldData.hpp.
|
inline |
get DiffHdiv of base functions at Gauss pts
| gg | nb. of Gauss point |
| number | of of base functions |
Definition at line 1785 of file EntitiesFieldData.hpp.
|
inline |
get DiffHdiv of base functions at Gauss pts
| base | Approximation base |
| gg | nb. of Gauss point |
| number | of of base functions |
Definition at line 1771 of file EntitiesFieldData.hpp.
|
inline |
get Hdiv of base functions at Gauss pts
| base | Approximation base |
| gg | nb. of Gauss point |
Definition at line 1751 of file EntitiesFieldData.hpp.
|
inline |
get Hdiv of base functions at Gauss pts
| gg | nb. of Gauss point |
| number | of of base functions |
Definition at line 1765 of file EntitiesFieldData.hpp.
|
inline |
Reset data associated with particular field name
Definition at line 122 of file EntitiesFieldData.cpp.
|
friend |
Definition at line 1430 of file EntitiesFieldData.hpp.
|
friend |
Definition at line 247 of file EntitiesFieldData.cpp.
|
friend |
Definition at line 1432 of file EntitiesFieldData.hpp.
|
protected |
Field approximation base.
Definition at line 1381 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1395 of file EntitiesFieldData.hpp.
|
protected |
Indices for Bernstein-Bezier (BB) base.
Definition at line 1406 of file EntitiesFieldData.hpp.
|
protected |
BB alpha indices by order.
Definition at line 1413 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1404 of file EntitiesFieldData.hpp.
|
protected |
BB base functions derivatives by order.
Definition at line 1411 of file EntitiesFieldData.hpp.
|
protected |
field name
Definition at line 1401 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1403 of file EntitiesFieldData.hpp.
|
protected |
BB base functions by order.
Definition at line 1409 of file EntitiesFieldData.hpp.
|
protected |
order of nodes
Definition at line 1402 of file EntitiesFieldData.hpp.
|
protected |
Derivatives of base functions.
Definition at line 1399 of file EntitiesFieldData.hpp.
|
protected |
Map side to dofs number.
Definition at line 1389 of file EntitiesFieldData.hpp.
|
protected |
Map type of entity to dof number.
Definition at line 1391 of file EntitiesFieldData.hpp.
|
protected |
DoFs on entity.
Definition at line 1384 of file EntitiesFieldData.hpp.
|
protected |
Bit ref level in entity.
Definition at line 1387 of file EntitiesFieldData.hpp.
|
protected |
Field data on entity.
Definition at line 1386 of file EntitiesFieldData.hpp.
|
protected |
Field entities.
Definition at line 1385 of file EntitiesFieldData.hpp.
|
protected |
Global indices on entity.
Definition at line 1382 of file EntitiesFieldData.hpp.
|
protected |
Local indices on entity.
Definition at line 1383 of file EntitiesFieldData.hpp.
|
staticconstexpr |
Definition at line 1346 of file EntitiesFieldData.hpp.
|
protected |
Base functions.
Definition at line 1397 of file EntitiesFieldData.hpp.
|
protected |
Entity order.
Definition at line 1379 of file EntitiesFieldData.hpp.
|
protected |
Entity sense (orientation)
Definition at line 1378 of file EntitiesFieldData.hpp.
|
protected |
Entity space.
Definition at line 1380 of file EntitiesFieldData.hpp.
|
protected |
Used by Bernstein base to keep temporary pointer.
Swap approximation base.
Bernstein-Bezier (BB) base is not hierarchical, and is calculated for particular field, since it all shape functions change with the order. BB base is precalculated for every field, and when user push operator with particular field using BB base, pointers to shape functions and BaseDerivatives of shape functions are set to particular location, once operator is executed, pointers are switch back to its original position.
getNSharedPtr(base) <=== getBBNSharedPtr(field_name); // DO OPERATOR WORK getNSharedPtr(base) ==> getBBNSharedPtr(field_name);
| field_name | Name of the field for which to swap base |
| base | Approximation base type to swap |
Definition at line 1428 of file EntitiesFieldData.hpp.
|
protected |
Used by Bernstein base to keep temporary pointer.
Swap approximation base.
Bernstein-Bezier (BB) base is not hierarchical, and is calculated for particular field, since it all shape functions change with the order. BB base is precalculated for every field, and when user push operator with particular field using BB base, pointers to shape functions and BaseDerivatives of shape functions are set to particular location, once operator is executed, pointers are switch back to its original position.
getNSharedPtr(base) <=== getBBNSharedPtr(field_name); // DO OPERATOR WORK getNSharedPtr(base) ==> getBBNSharedPtr(field_name);
| field_name | Name of the field for which to swap base |
| base | Approximation base type to swap |
Definition at line 1421 of file EntitiesFieldData.hpp.