v0.14.0 |
Derived ata on single entity (This is passed as argument to DataOperator::doWork) More...
#include <src/finite_elements/EntitiesFieldData.hpp>
Public Member Functions | |
DerivedEntData (const boost::shared_ptr< EntitiesFieldData::EntData > &ent_data_ptr) | |
int | getSense () const |
get entity sense, need to calculate base functions with conforming approximation fields More... | |
std::vector< BitRefLevel > & | getEntDataBitRefLevel () |
boost::shared_ptr< MatrixDouble > & | getNSharedPtr (const FieldApproximationBase base, const BaseDerivatives derivative) |
boost::shared_ptr< MatrixDouble > & | getNSharedPtr (const FieldApproximationBase base) |
boost::shared_ptr< MatrixDouble > & | getDiffNSharedPtr (const FieldApproximationBase base) |
const boost::shared_ptr< MatrixDouble > & | getNSharedPtr (const FieldApproximationBase base) const |
const boost::shared_ptr< MatrixDouble > & | getDiffNSharedPtr (const FieldApproximationBase base) const |
MoFEMErrorCode | baseSwap (const std::string &field_name, const FieldApproximationBase base) |
Used by Bernstein base to keep temporally pointer. More... | |
Public Member Functions inherited from MoFEM::EntitiesFieldData::EntData | |
VectorInt & | getBBNodeOrder () |
Get orders at the nodes. More... | |
MatrixInt & | getBBAlphaIndices () |
Get file BB indices. More... | |
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 () |
MoFEMErrorCode | resetFieldDependentData () |
EntData (const bool allocate_base_matrices=true) | |
virtual | ~EntData ()=default |
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 () |
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... | |
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 () |
FieldApproximationBase & | getBase () |
Get approximation base. More... | |
FieldSpace & | getSpace () |
Get field space. More... | |
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... | |
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... | |
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... | |
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) |
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) |
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 () |
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... | |
template<> | |
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > | getFTensor2N (FieldApproximationBase base, const int gg, const int bb) |
Bernstein-Bezier base only functions | |
boost::shared_ptr< MatrixInt > & | getBBAlphaIndicesSharedPtr (const std::string &field_name) |
boost::shared_ptr< MatrixDouble > & | getBBNSharedPtr (const std::string &field_name) |
const boost::shared_ptr< MatrixDouble > & | getBBNSharedPtr (const std::string &field_name) const |
boost::shared_ptr< MatrixDouble > & | getBBDiffNSharedPtr (const std::string &field_name) |
const boost::shared_ptr< MatrixDouble > & | getBBDiffNSharedPtr (const std::string &field_name) const |
DerivedEntData | |
boost::shared_ptr< MatrixDouble > & | getDerivedNSharedPtr (const FieldApproximationBase base) |
boost::shared_ptr< MatrixDouble > & | getDerivedDiffNSharedPtr (const FieldApproximationBase base) |
Broken spaces functions | |
const boost::shared_ptr< EntitiesFieldData::EntData > | entDataPtr |
Additional Inherited Members | |
Public Types inherited from MoFEM::EntitiesFieldData::EntData | |
enum | BaseDerivatives { ZeroDerivative = 0, FirstDerivative, SecondDerivative, ThirdDerivative, ForthDerivative, LastDerivative } |
Static Public Attributes inherited from MoFEM::EntitiesFieldData::EntData | |
static constexpr size_t | MaxBernsteinBezierOrder = BITFEID_SIZE |
Protected Attributes inherited from MoFEM::EntitiesFieldData::EntData | |
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... | |
Derived ata on single entity (This is passed as argument to DataOperator::doWork)
DerivedEntData share part information with EntData except infomation about base functions.
Definition at line 1136 of file EntitiesFieldData.hpp.
MoFEM::DerivedEntitiesFieldData::DerivedEntData::DerivedEntData | ( | const boost::shared_ptr< EntitiesFieldData::EntData > & | ent_data_ptr | ) |
Definition at line 189 of file EntitiesFieldData.cpp.
|
virtual |
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 |
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 168 of file EntitiesFieldData.cpp.
|
virtual |
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 907 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB derivatives of base base functions
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 928 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to derivatives of BB base base functions
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 937 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB base base functions
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 913 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to BB base base functions
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 919 of file EntitiesFieldData.cpp.
|
inline |
Definition at line 1566 of file EntitiesFieldData.hpp.
|
inline |
Definition at line 1560 of file EntitiesFieldData.hpp.
|
virtual |
Get shared pointer to derivatives of base base functions
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 216 of file EntitiesFieldData.cpp.
const boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getDiffNSharedPtr | ( | const FieldApproximationBase | base | ) | const |
Definition at line 232 of file EntitiesFieldData.cpp.
|
virtual |
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 949 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to base base functions
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 207 of file EntitiesFieldData.cpp.
const boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getNSharedPtr | ( | const FieldApproximationBase | base | ) | const |
Definition at line 224 of file EntitiesFieldData.cpp.
|
virtual |
Get shared pointer to base base functions
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 198 of file EntitiesFieldData.cpp.
|
virtual |
get entity sense, need to calculate base functions with conforming approximation fields
Reimplemented from MoFEM::EntitiesFieldData::EntData.
Definition at line 193 of file EntitiesFieldData.cpp.
|
protected |
Definition at line 1207 of file EntitiesFieldData.hpp.