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 } |
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 derivatives 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 *, 1 >, 1, 1 > | getFTensor2FieldData () |
template<> | |
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 6 >, 3 > | getFTensor2SymmetricFieldData () |
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 coefficients. 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 coefficients. 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 field data coefficients. 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. | |
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... | |
Auxiliary functions | |
std::ostream & | operator<< (std::ostream &os, const EntitiesFieldData::EntData &e) |
MoFEMErrorCode | resetFieldDependentData () |
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 derivatives 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... | |
Broken spaces functions | |
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::vector< int > | dofBrokenSideVec |
Map side to dofs number. More... | |
std::vector< EntityType > | dofBrokenTypeVec |
Map type of entity to dof number. 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 derivatives 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... | |
struct | OpAddParentEntData |
template<typename OpBase > | |
struct | OpGetBrokenBaseSideData |
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 128 of file EntitiesFieldData.hpp.
Enumerator | |
---|---|
ZeroDerivative | |
FirstDerivative | |
SecondDerivative | |
ThirdDerivative | |
ForthDerivative | |
LastDerivative |
Definition at line 130 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 depend 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 1313 of file EntitiesFieldData.hpp.
|
inline |
|
virtual |
Definition at line 890 of file EntitiesFieldData.cpp.
|
virtual |
get ALpha indices for BB base by order
o | approximation order |
Definition at line 874 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 859 of file EntitiesFieldData.cpp.
|
virtual |
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 822 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 902 of file EntitiesFieldData.cpp.
|
virtual |
get BB base derivative by order
o |
Definition at line 884 of file EntitiesFieldData.cpp.
|
virtual |
get hash map of derivatives base function for BB base, key is a field name
Definition at line 869 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB derivatives of base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 845 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to derivatives of BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 853 of file EntitiesFieldData.cpp.
|
virtual |
Definition at line 896 of file EntitiesFieldData.cpp.
|
virtual |
get BB base by order
o |
Definition at line 879 of file EntitiesFieldData.cpp.
|
virtual |
get hash map of base function for BB base, key is a field name
Definition at line 864 of file EntitiesFieldData.cpp.
|
inline |
|
virtual |
Get shared pointer to BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 828 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB base base functions
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 836 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 1352 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 1329 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 1372 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 1414 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 1394 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 1440 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 1348 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 944 of file EntitiesFieldData.cpp.
|
inline |
get dofs data stature FEDofEntity
|
inline |
get dofs values
Definition at line 1254 of file EntitiesFieldData.hpp.
|
inline |
get dofs values up to given order
Definition at line 1259 of file EntitiesFieldData.hpp.
|
inline |
|
inline |
get dofs data stature FEDofEntity
Definition at line 1269 of file EntitiesFieldData.hpp.
|
inline |
get field entities
|
inline |
get field entities
Definition at line 1277 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 506 of file EntitiesFieldData.cpp.
|
inline |
Get base function as Tensor0.
Return base functions for field base
Definition at line 1508 of file EntitiesFieldData.hpp.
|
inline |
Get base function as Tensor0.
base |
Definition at line 1502 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 1513 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 1520 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 536 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 557 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 526 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 545 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 596 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 583 of file EntitiesFieldData.cpp.
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 608 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 *, Tensor_Dim >, Tensor_Dim > MoFEM::EntitiesFieldData::EntData::getFTensor1FieldData | ( | ) |
Return FTensor of rank 1, i.e. vector from filed data coefficients.
Tensor_Dim | size of vector |
Definition at line 1288 of file EntitiesFieldData.hpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 1 >, 1 > MoFEM::EntitiesFieldData::EntData::getFTensor1FieldData< 1 > |
Definition at line 287 of file EntitiesFieldData.cpp.
auto MoFEM::EntitiesFieldData::EntData::getFTensor1N | ( | ) |
Get base functions for Hdiv space.
Definition at line 1524 of file EntitiesFieldData.hpp.
|
inline |
Get Hdiv base functions at integration point.
Definition at line 1529 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 640 of file EntitiesFieldData.cpp.
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor1N< 3 > | ( | FieldApproximationBase | base | ) |
Definition at line 682 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 649 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 691 of file EntitiesFieldData.cpp.
|
inline |
Get derivatives of base functions for Hdiv space.
Definition at line 752 of file EntitiesFieldData.hpp.
|
inline |
Get derivatives of base functions for Hdiv space at integration pts.
Definition at line 762 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 660 of file EntitiesFieldData.cpp.
FTensor::Tensor2< FTensor::PackPtr< double *, 6 >, 3, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor2DiffN< 3, 2 > | ( | FieldApproximationBase | base | ) |
Definition at line 701 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 671 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 712 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 coefficients.
Tensor_Dim0 | |
Tensor_Dim1 |
Definition at line 1297 of file EntitiesFieldData.hpp.
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor2FieldData< 3, 3 > |
Definition at line 348 of file EntitiesFieldData.cpp.
auto MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | ) |
Get base functions for Hdiv space.
Definition at line 1534 of file EntitiesFieldData.hpp.
auto MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | const int | gg, |
const int | bb | ||
) |
Get base functions for Hdiv space.
Definition at line 1539 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 762 of file EntitiesFieldData.cpp.
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > MoFEM::EntitiesFieldData::EntData::getFTensor2N< 3, 3 > | ( | FieldApproximationBase | base | ) |
Definition at line 773 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 801 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 789 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 field data coefficients.
Tensor_Dim | dimension of the tensor |
Definition at line 1307 of file EntitiesFieldData.hpp.
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 3 >, 2 > MoFEM::EntitiesFieldData::EntData::getFTensor2SymmetricFieldData< 2 > |
Definition at line 461 of file EntitiesFieldData.cpp.
|
inline |
Get second derivatives of base functions for Hvec space.
Definition at line 780 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 743 of file EntitiesFieldData.cpp.
|
inline |
|
inline |
Get global indices of dofs on entity.
Definition at line 1214 of file EntitiesFieldData.hpp.
|
inline |
get global indices of dofs on entity up to given order
Definition at line 1219 of file EntitiesFieldData.hpp.
|
inline |
|
inline |
get local indices of dofs on entity
Definition at line 1229 of file EntitiesFieldData.hpp.
|
inline |
get local indices of dofs on entity up to given order
Definition at line 1234 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 1326 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivative.
derivative |
Definition at line 1355 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 1318 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivative.
base | base |
derivative | derivative |
Definition at line 1334 of file EntitiesFieldData.hpp.
|
inline |
|
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 1399 of file EntitiesFieldData.hpp.
|
inline |
get base functions at Gauss pts
Definition at line 1367 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 1409 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 1322 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 |
|
inline |
get approximation order
Definition at line 1210 of file EntitiesFieldData.hpp.
|
inline |
|
virtual |
get entity sense, need to calculate base functions with conforming approximation fields
Reimplemented in MoFEM::DerivedEntitiesFieldData::DerivedEntData.
Definition at line 1244 of file EntitiesFieldData.hpp.
|
inline |
Get field space.
Definition at line 1315 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 1487 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 1496 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 1481 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 1467 of file EntitiesFieldData.hpp.
|
inline |
get Hdiv of base functions at Gauss pts
base | Approximation base |
gg | nb. of Gauss point |
Definition at line 1447 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 1461 of file EntitiesFieldData.hpp.
|
inline |
Reset data associated with particular field name
Definition at line 115 of file EntitiesFieldData.cpp.
|
friend |
Definition at line 1121 of file EntitiesFieldData.hpp.
|
friend |
Definition at line 240 of file EntitiesFieldData.cpp.
|
friend |
Definition at line 1123 of file EntitiesFieldData.hpp.
|
protected |
Field approximation base.
Definition at line 1072 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1086 of file EntitiesFieldData.hpp.
|
protected |
Indices for Bernstein-Bezier (BB) base.
Definition at line 1097 of file EntitiesFieldData.hpp.
|
protected |
BB alpha indices by order.
Definition at line 1104 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1095 of file EntitiesFieldData.hpp.
|
protected |
BB base functions derivatives by order.
Definition at line 1102 of file EntitiesFieldData.hpp.
|
protected |
field name
Definition at line 1092 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1094 of file EntitiesFieldData.hpp.
|
protected |
BB base functions by order.
Definition at line 1100 of file EntitiesFieldData.hpp.
|
protected |
order of nodes
Definition at line 1093 of file EntitiesFieldData.hpp.
|
protected |
Derivatives of base functions.
Definition at line 1090 of file EntitiesFieldData.hpp.
|
protected |
Map side to dofs number.
Definition at line 1080 of file EntitiesFieldData.hpp.
|
protected |
Map type of entity to dof number.
Definition at line 1082 of file EntitiesFieldData.hpp.
|
protected |
DoFs on entity.
Definition at line 1075 of file EntitiesFieldData.hpp.
|
protected |
Bit ref level in entity.
Definition at line 1078 of file EntitiesFieldData.hpp.
|
protected |
Field data on entity.
Definition at line 1077 of file EntitiesFieldData.hpp.
|
protected |
Field entities.
Definition at line 1076 of file EntitiesFieldData.hpp.
|
protected |
Global indices on entity.
Definition at line 1073 of file EntitiesFieldData.hpp.
|
protected |
Local indices on entity.
Definition at line 1074 of file EntitiesFieldData.hpp.
|
staticconstexpr |
Definition at line 1037 of file EntitiesFieldData.hpp.
|
protected |
Base functions.
Definition at line 1088 of file EntitiesFieldData.hpp.
|
protected |
Entity order.
Definition at line 1070 of file EntitiesFieldData.hpp.
|
protected |
Entity sense (orientation)
Definition at line 1069 of file EntitiesFieldData.hpp.
|
protected |
Entity space.
Definition at line 1071 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 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 oroginal position.
getNSharedPtr(base) <=== getBBNSharedPtr(field_name); // DO OPERATOR WORK getNSharedPtr(base) ==> getBBNSharedPtr(field_name);
field_name | |
base |
Definition at line 1119 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 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 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.