![]() |
v0.14.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 } |
Protected Attributes | |
int | sEnse |
Entity sense (orientation) More... | |
ApproximationOrder | oRder |
Entity order. More... | |
FieldSpace | sPace |
Entity space. More... | |
FieldApproximationBase | bAse |
Field approximation base. More... | |
VectorInt | iNdices |
Global indices on entity. More... | |
VectorInt | localIndices |
Local indices on entity. More... | |
VectorDofs | dOfs |
DoFs on entity. More... | |
VectorFieldEntities | fieldEntities |
Field entities. More... | |
VectorDouble | fieldData |
Field data on entity. More... | |
std::vector< BitRefLevel > | entDataBitRefLevel |
Bit ref level in entity. More... | |
std::array< std::array< boost::shared_ptr< MatrixDouble >, LASTBASE >, LastDerivative > | baseFunctionsAndBaseDerivatives |
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & | N |
Base functions. More... | |
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & | diffN |
Derivatives of base functions. More... | |
std::string | bbFieldName |
field name More... | |
VectorInt | bbNodeOrder |
order of nodes More... | |
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. More... | |
std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > | bbNByOrder |
BB base functions by order. More... | |
std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > | bbDiffNByOrder |
BB base functions direvatives by order. More... | |
std::array< boost::shared_ptr< MatrixInt >, MaxBernsteinBezierOrder > | bbAlphaIndicesByOrder |
BB alpha indices by order. More... | |
boost::shared_ptr< MatrixDouble > | swapBaseNPtr |
Used by Bernstein base to keep temporally pointer. More... | |
boost::shared_ptr< MatrixDouble > | swapBaseDiffNPtr |
Used by Bernstein base to keep temporally pointer. More... | |
Friends | |
struct | OpAddParentEntData |
Bernstein-Bezier base only functions | |
static constexpr size_t | MaxBernsteinBezierOrder = BITFEID_SIZE |
VectorInt & | getBBNodeOrder () |
Get orders at the nodes. More... | |
MatrixInt & | getBBAlphaIndices () |
Get file BB indices. More... | |
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 More... | |
virtual std::map< std::string, boost::shared_ptr< MatrixDouble > > & | getBBDiffNMap () |
get hash map of direvarives base function for BB base, key is a field name More... | |
virtual boost::shared_ptr< MatrixInt > & | getBBAlphaIndicesByOrderSharedPtr (const size_t o) |
get ALpha indices for BB base by order More... | |
virtual boost::shared_ptr< MatrixDouble > & | getBBNByOrderSharedPtr (const size_t o) |
get BB base by order More... | |
virtual boost::shared_ptr< MatrixDouble > & | getBBDiffNByOrderSharedPtr (const size_t o) |
get BB base derivative by order More... | |
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. More... | |
Auxiliary functions | |
std::ostream & | operator<< (std::ostream &os, const EntitiesFieldData::EntData &e) |
MoFEMErrorCode | resetFieldDependentData () |
Constructor and destructor | |
EntData (const bool allocate_base_matrices=true) | |
virtual | ~EntData ()=default |
Sense, order and indices | |
virtual int | getSense () const |
get entity sense, need to calculate base functions with conforming approximation fields More... | |
ApproximationOrder | getOrder () const |
get approximation order More... | |
const VectorInt & | getIndices () const |
Get global indices of dofs on entity. More... | |
const VectorIntAdaptor | getIndicesUpToOrder (int order) |
get global indices of dofs on entity up to given order More... | |
const VectorInt & | getLocalIndices () const |
get local indices of dofs on entity More... | |
const VectorIntAdaptor | getLocalIndicesUpToOrder (int order) |
get local indices of dofs on entity up to given order More... | |
int & | getSense () |
ApproximationOrder & | getOrder () |
VectorInt & | getIndices () |
VectorInt & | getLocalIndices () |
Data on entity | |
const VectorDouble & | getFieldData () const |
get dofs values More... | |
const VectorAdaptor | getFieldDataUpToOrder (int order) |
get dofs values up to given order More... | |
const VectorDofs & | getFieldDofs () const |
get dofs data stature FEDofEntity More... | |
VectorDouble & | getFieldData () |
get dofs data stature FEDofEntity More... | |
const VectorFieldEntities & | getFieldEntities () const |
get field entities More... | |
VectorFieldEntities & | getFieldEntities () |
get field entities More... | |
virtual std::vector< BitRefLevel > & | getEntDataBitRefLevel () |
template<int Tensor_Dim> | |
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > | getFTensor1FieldData () |
Return FTensor of rank 1, i.e. vector from filed data coeffinects. More... | |
template<int Tensor_Dim0, int Tensor_Dim1> | |
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > | getFTensor2FieldData () |
Return FTensor rank 2, i.e. matrix from filed data coeffinects. More... | |
template<int Tensor_Dim> | |
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *,(Tensor_Dim *(Tensor_Dim+1))/2 >, Tensor_Dim > | getFTensor2SymmetricFieldData () |
Return symmetric FTensor rank 2, i.e. matrix from filed data coeffinects. More... | |
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0FieldData () |
Resturn scalar files as a FTensor of rank 0. More... | |
VectorDofs & | getFieldDofs () |
Base and space | |
FieldApproximationBase & | getBase () |
Get approximation base. More... | |
FieldSpace & | getSpace () |
Get field space. More... | |
virtual boost::shared_ptr< MatrixDouble > & | getNSharedPtr (const FieldApproximationBase base, const BaseDerivatives direvatie) |
virtual boost::shared_ptr< MatrixDouble > & | getNSharedPtr (const FieldApproximationBase base) |
virtual boost::shared_ptr< MatrixDouble > & | getDiffNSharedPtr (const FieldApproximationBase base) |
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. More... | |
MatrixDouble & | getN (const std::string &field_name) |
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. More... | |
MatrixDouble & | getN () |
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. More... | |
MatrixDouble & | getDiffN (const FieldApproximationBase base) |
get derivatives of base functions More... | |
MatrixDouble & | getN (const FieldApproximationBase base, const BaseDerivatives derivative) |
Get base function derivative. More... | |
MatrixDouble & | getDiffN (const std::string &field_name) |
get derivatives of base functions More... | |
MatrixDouble & | getDiffN () |
get derivatives of base functions More... | |
MatrixDouble & | getN (const BaseDerivatives derivative) |
Get base function derivative. More... | |
const VectorAdaptor | getN (const FieldApproximationBase base, const int gg) |
get base functions at Gauss pts More... | |
const VectorAdaptor | getN (const int gg) |
get base functions at Gauss pts More... | |
const MatrixAdaptor | getDiffN (const FieldApproximationBase base, const int gg) |
get derivative of base functions at Gauss pts More... | |
const MatrixAdaptor | getDiffN (const int gg) |
get derivative of base functions at Gauss pts More... | |
const VectorAdaptor | getN (const FieldApproximationBase base, const int gg, const int nb_base_functions) |
get base functions at Gauss pts More... | |
const VectorAdaptor | getN (const int gg, const int nb_base_functions) |
get base functions at Gauss pts More... | |
const MatrixAdaptor | getDiffN (const FieldApproximationBase base, const int gg, const int nb_base_functions) |
get derivatives of base functions at Gauss pts More... | |
const MatrixAdaptor | getDiffN (const int gg, const int nb_base_functions) |
get derivatives of base functions at Gauss pts More... | |
Get base functions for vectorial approximation basese, i.e. | |
Hdiv/Hcurl | |
template<int DIM> | |
const MatrixAdaptor | getVectorN (const FieldApproximationBase base, const int gg) |
get Hdiv of base functions at Gauss pts More... | |
template<int DIM> | |
const MatrixAdaptor | getVectorN (const int gg) |
get Hdiv of base functions at Gauss pts More... | |
template<int DIM0, int DIM1> | |
const MatrixAdaptor | getVectorDiffN (FieldApproximationBase base, const int gg) |
get DiffHdiv of base functions at Gauss pts More... | |
template<int DIM0, int DIM1> | |
const MatrixAdaptor | getVectorDiffN (const int gg) |
get DiffHdiv of base functions at Gauss pts More... | |
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 More... | |
template<int DIM0, int DIM1> | |
const MatrixAdaptor | getVectorDiffN (const int dof, const int gg) |
get DiffHdiv of base functions at Gauss pts More... | |
Get base functions with FTensor | |
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0N (const FieldApproximationBase base) |
Get base function as Tensor0. More... | |
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0N () |
Get base function as Tensor0. More... | |
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) More... | |
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > | getFTensor0N (const int gg, const int bb) |
Get base function as Tensor0 (Loop by integration points) More... | |
template<int Tensor_Dim> | |
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > | getFTensor1DiffN (const FieldApproximationBase base) |
Get derivatives of base functions. More... | |
template<int Tensor_Dim> | |
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > | getFTensor1DiffN () |
Get derivatives of base functions. More... | |
template<int Tensor_Dim> | |
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > | getFTensor1DiffN (const FieldApproximationBase base, const int gg, const int bb) |
Get derivatives of base functions (Loop by integration points) More... | |
template<int Tensor_Dim> | |
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > | getFTensor1DiffN (const int gg, const int bb) |
Get derivatives of base functions (Loop by integration points) More... | |
template<int Tensor_Dim> | |
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > | getFTensor1N (FieldApproximationBase base) |
Get base functions for Hdiv/Hcurl spaces. More... | |
template<int Tensor_Dim> | |
auto | getFTensor1N () |
Get base functions for Hdiv space. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
template<int Tensor_Dim> | |
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > | getFTensor1N (FieldApproximationBase base, const int gg, const int bb) |
Get Hdiv base functions at integration point. More... | |
template<int Tensor_Dim> | |
auto | getFTensor1N (const int gg, const int bb) |
Get Hdiv base functions at integration point. More... | |
template<int Tensor_Dim0, int Tensor_Dim1> | |
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > | getFTensor2N (FieldApproximationBase base) |
Get base functions for Hdiv/Hcurl spaces. More... | |
template<int Tensor_Dim0, int Tensor_Dim1> | |
auto | getFTensor2N () |
Get base functions for Hdiv space. More... | |
template<int Tensor_Dim0, int Tensor_Dim1> | |
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > | getFTensor2N (FieldApproximationBase base, const int gg, const int bb) |
Get base functions for tensor Hdiv/Hcurl spaces. More... | |
template<int Tensor_Dim0, int Tensor_Dim1> | |
auto | getFTensor2N (const int gg, const int bb) |
Get base functions for Hdiv space. More... | |
Specializations for tensor base function | |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | getFTensor1N (FieldApproximationBase base) |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | getFTensor1N (FieldApproximationBase base, const int gg, const int bb) |
template<> | |
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > | getFTensor2N (FieldApproximationBase base) |
Specializations for direcatives of base functions | |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | getFTensor1DiffN (const FieldApproximationBase base) |
Get spatial derivative of base function tensor for dimension 3d. More... | |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | getFTensor1DiffN () |
Get spatial derivative of base function tensor for dimension 3d. More... | |
template<> | |
FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > | getFTensor2DiffN (FieldApproximationBase base) |
template<> | |
FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > | getFTensor2DiffN (FieldApproximationBase base, const int gg, const int bb) |
template<> | |
FTensor::Tensor3< FTensor::PackPtr< double *, 12 >, 3, 2, 2 > | getFTensor3Diff2N (FieldApproximationBase base) |
Specializations for field data | |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | getFTensor1FieldData () |
template<> | |
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > | getFTensor2FieldData () |
template<> | |
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 6 >, 3 > | getFTensor2SymmetricFieldData () |
Specializations for H1/L2 | |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | getFTensor1DiffN (const FieldApproximationBase base, const int gg, const int bb) |
Get spatial derivative of base function tensor for dimension 3d. More... | |
template<> | |
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > | getFTensor1DiffN (const int gg, const int bb) |
Get spatial derivative of base function tensor for dimension 3d. More... | |
Specializations for HDiv/HCrul | |
template<> | |
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > | getFTensor2N (FieldApproximationBase base, const int gg, const int bb) |
Data on single entity (This is passed as argument to DataOperator::doWork)
Definition at line 127 of file EntitiesFieldData.hpp.
Enumerator | |
---|---|
ZeroDerivative | |
FirstDerivative | |
SecondDerivative | |
ThirdDerivative | |
ForthDerivative | |
LastDerivative |
Definition at line 129 of file EntitiesFieldData.hpp.
MoFEM::EntitiesFieldData::EntData::EntData | ( | const bool | allocate_base_matrices = true | ) |
Definition at line 10 of file EntitiesFieldData.cpp.
|
virtualdefault |
|
virtual |
Swap bases functions.
Some base are not hierarchical and depene on approximation order. Such case demand special handling, that appropiate base order is set depending on field, such that is accessible in operator.
field_name | |
base |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 136 of file EntitiesFieldData.cpp.
|
inline |
Get approximation base.
Definition at line 1300 of file EntitiesFieldData.hpp.
|
inline |
Get file BB indices.
Definition at line 1536 of file EntitiesFieldData.hpp.
|
virtual |
Definition at line 751 of file EntitiesFieldData.cpp.
|
virtual |
get ALpha indices for BB base by order
o | approximation order |
Definition at line 735 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 720 of file EntitiesFieldData.cpp.
|
virtual |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 683 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 763 of file EntitiesFieldData.cpp.
|
virtual |
get BB base derivative by order
o |
Definition at line 745 of file EntitiesFieldData.cpp.
|
virtual |
get hash map of direvarives base function for BB base, key is a field name
Definition at line 730 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB derivatives of base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 706 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to derivatives of BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 714 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 757 of file EntitiesFieldData.cpp.
|
virtual |
get BB base by order
o |
Definition at line 740 of file EntitiesFieldData.cpp.
|
virtual |
get hash map of base function for BB base, key is a field name
Definition at line 725 of file EntitiesFieldData.cpp.
|
inline |
Get orders at the nodes.
Definition at line 1534 of file EntitiesFieldData.hpp.
|
virtual |
Get shared pointer to BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 689 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 697 of file EntitiesFieldData.cpp.
|
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.
Tonsorial 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 1339 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.
Tonsorial 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 1316 of file EntitiesFieldData.hpp.
|
inline |
get derivative of base functions at Gauss pts
returned matrix on rows has base functions, in column its derivatives.
base | Approximation base |
gg | Nb. of Gauss pts. |
Definition at line 1359 of file EntitiesFieldData.hpp.
|
inline |
get derivatives of base functions at Gauss pts
Note that multi field element, two different field can have different approximation orders. Since we use hierarchical approximation basis, base functions are calculated once for element, using maximal approximation order on given entity.
base | Approximation base |
gg | nb. of Gauss point |
nb_base_functions | number of of base functions |
Definition at line 1401 of file EntitiesFieldData.hpp.
|
inline |
get derivative of base functions at Gauss pts
returned matrix on rows has base functions, in column its derivatives.
gg | nb. of Gauss pts. |
Definition at line 1381 of file EntitiesFieldData.hpp.
|
inline |
get derivatives of base functions at Gauss pts
Note that multi field element, two different field can have different approximation orders. Since we use hierarchical approximation basis, base functions are calculated once for element, using maximal approximation order on given entity.
gg | nb. of Gauss point |
nb_base_functions | number of of base functions |
Definition at line 1427 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.
Tonsorial 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 1335 of file EntitiesFieldData.hpp.
|
virtual |
Get shared pointer to derivatives of base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 37 of file EntitiesFieldData.cpp.
|
virtual |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 805 of file EntitiesFieldData.cpp.
|
inline |
get dofs data stature FEDofEntity
Definition at line 1262 of file EntitiesFieldData.hpp.
|
inline |
get dofs values
Definition at line 1241 of file EntitiesFieldData.hpp.
|
inline |
get dofs values up to given order
Definition at line 1246 of file EntitiesFieldData.hpp.
|
inline |
Definition at line 1260 of file EntitiesFieldData.hpp.
|
inline |
get dofs data stature FEDofEntity
Definition at line 1256 of file EntitiesFieldData.hpp.
|
inline |
get field entities
Definition at line 1264 of file EntitiesFieldData.hpp.
|
inline |
get field entities
Definition at line 1269 of file EntitiesFieldData.hpp.
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > MoFEM::EntitiesFieldData::EntData::getFTensor0FieldData | ( | ) |
Resturn scalar files as a FTensor of rank 0.
Definition at line 374 of file EntitiesFieldData.cpp.
|
inline |
Get base function as Tensor0.
Return base functions for field base
Definition at line 1495 of file EntitiesFieldData.hpp.
|
inline |
Get base function as Tensor0.
base |
Definition at line 1489 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 1500 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 1507 of file EntitiesFieldData.hpp.
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN | ( | ) |
Get derivatives of base functions.
For volume element like tetrahedral or prism,
For face element like triangle or quad
Definition at line 397 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 2 >, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN< 2 > |
Get spatial derivative of base function tensor for dimension 3d.
Get spatial derivative of base function tensor for dimension 2d.
Definition at line 397 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN | ( | const FieldApproximationBase | base | ) |
Get derivatives of base functions.
For volume element like tetrahedral or prism,
For face element like triangle or quad
base | functions |
Definition at line 387 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 2 >, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN< 2 > | ( | const FieldApproximationBase | base | ) |
Get spatial derivative of base function tensor for dimension 3d.
Get spatial derivative of base function tensor for dimension 2d.
Definition at line 397 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN | ( | const FieldApproximationBase | base, |
const int | gg, | ||
const int | bb | ||
) |
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 444 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 2 >, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN< 2 > | ( | const FieldApproximationBase | base, |
const int | gg, | ||
const int | bb | ||
) |
Get spatial derivative of base function tensor for dimension 3d.
Get spatial derivative of base function tensor for dimension 2d.
Definition at line 444 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN | ( | const int | gg, |
const int | bb | ||
) |
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
FTensor::Tensor1< FTensor::PackPtr< double *, 2 >, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor1DiffN< 2 > | ( | const int | gg, |
const int | bb | ||
) |
Get spatial derivative of base function tensor for dimension 3d.
Get spatial derivative of base function tensor for dimension 2d.
Definition at line 444 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1FieldData | ( | ) |
Return FTensor of rank 1, i.e. vector from filed data coeffinects.
Tensor_Dim | size of vector |
Definition at line 1275 of file EntitiesFieldData.hpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 1 > MoFEM::EntitiesFieldData::EntData::getFTensor1FieldData< 1 > |
Definition at line 270 of file EntitiesFieldData.cpp.
auto MoFEM::EntitiesFieldData::EntData::getFTensor1N | ( | ) |
Get base functions for Hdiv space.
Definition at line 1511 of file EntitiesFieldData.hpp.
|
inline |
Get Hdiv base functions at integration point.
Definition at line 1516 of file EntitiesFieldData.hpp.
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1N | ( | FieldApproximationBase | base | ) |
Get base functions for Hdiv/Hcurl spaces.
base | Approximation base |
Definition at line 501 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor1N< 3 > | ( | FieldApproximationBase | base | ) |
Definition at line 532 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1N | ( | FieldApproximationBase | base, |
const int | gg, | ||
const int | bb | ||
) |
Get Hdiv base functions at integration point.
Definition at line 510 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor1N< 3 > | ( | FieldApproximationBase | base, |
const int | gg, | ||
const int | bb | ||
) |
Definition at line 532 of file EntitiesFieldData.cpp.
|
inline |
Get derivatives of base functions for Hdiv space.
Definition at line 751 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions for Hdiv space at integration pts.
Definition at line 761 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 521 of file EntitiesFieldData.cpp.
FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor2DiffN< 3, 2 > | ( | FieldApproximationBase | base | ) |
Definition at line 532 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 532 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 532 of file EntitiesFieldData.cpp.
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > MoFEM::EntitiesFieldData::EntData::getFTensor2FieldData | ( | ) |
Return FTensor rank 2, i.e. matrix from filed data coeffinects.
Tensor_Dim0 | |
Tensor_Dim1 |
Definition at line 1284 of file EntitiesFieldData.hpp.
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor2FieldData< 3, 3 > |
Definition at line 270 of file EntitiesFieldData.cpp.
auto MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | ) |
Get base functions for Hdiv space.
Definition at line 1521 of file EntitiesFieldData.hpp.
auto MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | const int | gg, |
const int | bb | ||
) |
Get base functions for Hdiv space.
Definition at line 1526 of file EntitiesFieldData.hpp.
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | FieldApproximationBase | base | ) |
Get base functions for Hdiv/Hcurl spaces.
base | Approximation base |
Definition at line 623 of file EntitiesFieldData.cpp.
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor2N< 3, 3 > | ( | FieldApproximationBase | base | ) |
Definition at line 623 of file EntitiesFieldData.cpp.
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | FieldApproximationBase | base, |
const int | gg, | ||
const int | bb | ||
) |
Get base functions for tensor Hdiv/Hcurl spaces.
base | Approximation base |
Definition at line 650 of file EntitiesFieldData.cpp.
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | FieldApproximationBase | base, |
const int | gg, | ||
const int | bb | ||
) |
Definition at line 650 of file EntitiesFieldData.cpp.
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *,(Tensor_Dim *(Tensor_Dim+1))/2 >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor2SymmetricFieldData | ( | ) |
Return symmetric FTensor rank 2, i.e. matrix from filed data coeffinects.
Tensor_Dim | dimension of the tensor |
Definition at line 1294 of file EntitiesFieldData.hpp.
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 3 >, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor2SymmetricFieldData< 2 > |
Definition at line 270 of file EntitiesFieldData.cpp.
|
inline |
Get second derivatives of base functions for Hvec space.
Definition at line 779 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 604 of file EntitiesFieldData.cpp.
|
inline |
Definition at line 1235 of file EntitiesFieldData.hpp.
|
inline |
Get global indices of dofs on entity.
Definition at line 1201 of file EntitiesFieldData.hpp.
|
inline |
get global indices of dofs on entity up to given order
Definition at line 1206 of file EntitiesFieldData.hpp.
|
inline |
Definition at line 1237 of file EntitiesFieldData.hpp.
|
inline |
get local indices of dofs on entity
Definition at line 1216 of file EntitiesFieldData.hpp.
|
inline |
get local indices of dofs on entity up to given order
Definition at line 1221 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 1313 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivative.
derivative |
Definition at line 1342 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 1305 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivative.
base | base |
derivative | derivative |
Definition at line 1321 of file EntitiesFieldData.hpp.
|
inline |
get base functions at Gauss pts
Definition at line 1347 of file EntitiesFieldData.hpp.
|
inline |
get base functions at Gauss pts
Note that multi field element, two different field can have different approximation orders. Since we use hierarchical approximation basis, base functions are calculated once for element, using maximal approximation order on given entity.
base | Approximation base |
gg | number of Gauss point |
nb_base_functions | number of of base functions returned |
Definition at line 1386 of file EntitiesFieldData.hpp.
|
inline |
get base functions at Gauss pts
Definition at line 1354 of file EntitiesFieldData.hpp.
|
inline |
get base functions at Gauss pts
Note that multi field element, two different field can have different approximation orders. Since we use hierarchical approximation basis, base functions are calculated once for element, using maximal approximation order on given entity.
gg | number of Gauss point |
nb_base_functions | number of of base functions returned |
Definition at line 1396 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 1309 of file EntitiesFieldData.hpp.
|
virtual |
Get shared pointer to base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 33 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 27 of file EntitiesFieldData.cpp.
|
inline |
Definition at line 1233 of file EntitiesFieldData.hpp.
|
inline |
get approximation order
Definition at line 1197 of file EntitiesFieldData.hpp.
|
inline |
Definition at line 1231 of file EntitiesFieldData.hpp.
|
virtual |
get entity sense, need to calculate base functions with conforming approximation fields
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 24 of file EntitiesFieldData.cpp.
|
inline |
Get field space.
Definition at line 1302 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 1474 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 1483 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 1468 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 1454 of file EntitiesFieldData.hpp.
|
inline |
get Hdiv of base functions at Gauss pts
base | Approximation base |
gg | nb. of Gauss point |
Definition at line 1434 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 1448 of file EntitiesFieldData.hpp.
|
inline |
Reset data associated with particular field name
Definition at line 115 of file EntitiesFieldData.cpp.
|
friend |
Definition at line 1114 of file EntitiesFieldData.hpp.
|
friend |
Definition at line 240 of file EntitiesFieldData.cpp.
|
protected |
Field approximation base.
Definition at line 1069 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1079 of file EntitiesFieldData.hpp.
|
protected |
Indices for Bernstein-Bezier (BB) base.
Definition at line 1090 of file EntitiesFieldData.hpp.
|
protected |
BB alpha indices by order.
Definition at line 1097 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1088 of file EntitiesFieldData.hpp.
|
protected |
BB base functions direvatives by order.
Definition at line 1095 of file EntitiesFieldData.hpp.
|
protected |
field name
Definition at line 1085 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1087 of file EntitiesFieldData.hpp.
|
protected |
BB base functions by order.
Definition at line 1093 of file EntitiesFieldData.hpp.
|
protected |
order of nodes
Definition at line 1086 of file EntitiesFieldData.hpp.
|
protected |
Derivatives of base functions.
Definition at line 1083 of file EntitiesFieldData.hpp.
|
protected |
DoFs on entity.
Definition at line 1072 of file EntitiesFieldData.hpp.
|
protected |
Bit ref level in entity.
Definition at line 1075 of file EntitiesFieldData.hpp.
|
protected |
Field data on entity.
Definition at line 1074 of file EntitiesFieldData.hpp.
|
protected |
Field entities.
Definition at line 1073 of file EntitiesFieldData.hpp.
|
protected |
Global indices on entity.
Definition at line 1070 of file EntitiesFieldData.hpp.
|
protected |
Local indices on entity.
Definition at line 1071 of file EntitiesFieldData.hpp.
|
staticconstexpr |
Definition at line 1036 of file EntitiesFieldData.hpp.
|
protected |
Base functions.
Definition at line 1081 of file EntitiesFieldData.hpp.
|
protected |
Entity order.
Definition at line 1067 of file EntitiesFieldData.hpp.
|
protected |
Entity sense (orientation)
Definition at line 1066 of file EntitiesFieldData.hpp.
|
protected |
Entity space.
Definition at line 1068 of file EntitiesFieldData.hpp.
|
protected |
Used by Bernstein base to keep temporally 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 paricular field using BB base, pointers to shape funtions and BaseDerivatives of shape functions are set to particular location, once operator is executed, pointers are switch back to its oroginal position.
getNSharedPtr(base) <=== getBBNSharedPtr(field_name); // DO OPERATOR WORK getNSharedPtr(base) ==> getBBNSharedPtr(field_name);
field_name | |
base |
Definition at line 1112 of file EntitiesFieldData.hpp.
|
protected |
Used by Bernstein base to keep temporally 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 paricular field using BB base, pointers to shape funtions and BaseDerivatives of shape functions are set to particular location, once operator is executed, pointers are switch back to its oroginal position.
getNSharedPtr(base) <=== getBBNSharedPtr(field_name); // DO OPERATOR WORK getNSharedPtr(base) ==> getBBNSharedPtr(field_name);
field_name | |
base |
Definition at line 1105 of file EntitiesFieldData.hpp.