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 directives 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 |
template<typename OpBase > | |
struct | OpGetBrokenBaseSideData |
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 *, 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 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... | |
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 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 1303 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 direvarives 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 1342 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 1319 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 1362 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 1404 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 1384 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 1430 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 1338 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 1244 of file EntitiesFieldData.hpp.
|
inline |
get dofs values up to given order
Definition at line 1249 of file EntitiesFieldData.hpp.
|
inline |
|
inline |
get dofs data stature FEDofEntity
Definition at line 1259 of file EntitiesFieldData.hpp.
|
inline |
get field entities
|
inline |
get field entities
Definition at line 1267 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 1498 of file EntitiesFieldData.hpp.
|
inline |
Get base function as Tensor0.
base |
Definition at line 1492 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 1503 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 1510 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 1278 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 1514 of file EntitiesFieldData.hpp.
|
inline |
Get Hdiv base functions at integration point.
Definition at line 1519 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 1287 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 1524 of file EntitiesFieldData.hpp.
auto MoFEM::EntitiesFieldData::EntData::getFTensor2N | ( | const int | gg, |
const int | bb | ||
) |
Get base functions for Hdiv space.
Definition at line 1529 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 1297 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 1204 of file EntitiesFieldData.hpp.
|
inline |
get global indices of dofs on entity up to given order
Definition at line 1209 of file EntitiesFieldData.hpp.
|
inline |
|
inline |
get local indices of dofs on entity
Definition at line 1219 of file EntitiesFieldData.hpp.
|
inline |
get local indices of dofs on entity up to given order
Definition at line 1224 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 1316 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivative.
derivative |
Definition at line 1345 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 1308 of file EntitiesFieldData.hpp.
|
inline |
Get base function derivative.
base | base |
derivative | derivative |
Definition at line 1324 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 1389 of file EntitiesFieldData.hpp.
|
inline |
get base functions at Gauss pts
Definition at line 1357 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 1399 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 1312 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 1200 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 1234 of file EntitiesFieldData.hpp.
|
inline |
Get field space.
Definition at line 1305 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 1477 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 1486 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 1471 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 1457 of file EntitiesFieldData.hpp.
|
inline |
get Hdiv of base functions at Gauss pts
base | Approximation base |
gg | nb. of Gauss point |
Definition at line 1437 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 1451 of file EntitiesFieldData.hpp.
|
inline |
Reset data associated with particular field name
Definition at line 115 of file EntitiesFieldData.cpp.
|
friend |
Definition at line 1115 of file EntitiesFieldData.hpp.
|
friend |
Definition at line 240 of file EntitiesFieldData.cpp.
|
friend |
Definition at line 1117 of file EntitiesFieldData.hpp.
|
protected |
Field approximation base.
Definition at line 1070 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1080 of file EntitiesFieldData.hpp.
|
protected |
Indices for Bernstein-Bezier (BB) base.
Definition at line 1091 of file EntitiesFieldData.hpp.
|
protected |
BB alpha indices by order.
Definition at line 1098 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1089 of file EntitiesFieldData.hpp.
|
protected |
BB base functions directives by order.
Definition at line 1096 of file EntitiesFieldData.hpp.
|
protected |
field name
Definition at line 1086 of file EntitiesFieldData.hpp.
|
protected |
Definition at line 1088 of file EntitiesFieldData.hpp.
|
protected |
BB base functions by order.
Definition at line 1094 of file EntitiesFieldData.hpp.
|
protected |
order of nodes
Definition at line 1087 of file EntitiesFieldData.hpp.
|
protected |
Derivatives of base functions.
Definition at line 1084 of file EntitiesFieldData.hpp.
|
protected |
DoFs on entity.
Definition at line 1073 of file EntitiesFieldData.hpp.
|
protected |
Bit ref level in entity.
Definition at line 1076 of file EntitiesFieldData.hpp.
|
protected |
Field data on entity.
Definition at line 1075 of file EntitiesFieldData.hpp.
|
protected |
Field entities.
Definition at line 1074 of file EntitiesFieldData.hpp.
|
protected |
Global indices on entity.
Definition at line 1071 of file EntitiesFieldData.hpp.
|
protected |
Local indices on entity.
Definition at line 1072 of file EntitiesFieldData.hpp.
|
staticconstexpr |
Definition at line 1037 of file EntitiesFieldData.hpp.
|
protected |
Base functions.
Definition at line 1082 of file EntitiesFieldData.hpp.
|
protected |
Entity order.
Definition at line 1068 of file EntitiesFieldData.hpp.
|
protected |
Entity sense (orientation)
Definition at line 1067 of file EntitiesFieldData.hpp.
|
protected |
Entity space.
Definition at line 1069 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 fuctions 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 1113 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 fuctions 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 1106 of file EntitiesFieldData.hpp.