v0.15.0
Loading...
Searching...
No Matches
MoFEM::DerivedEntitiesFieldData::DerivedEntData Struct Reference

Derived ata on single entity (This is passed as argument to DataOperator::doWork) More...

#include "src/finite_elements/EntitiesFieldData.hpp"

Inheritance diagram for MoFEM::DerivedEntitiesFieldData::DerivedEntData:
[legend]
Collaboration diagram for MoFEM::DerivedEntitiesFieldData::DerivedEntData:
[legend]

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
 
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.
 
- Public Member Functions inherited from MoFEM::EntitiesFieldData::EntData
VectorIntgetBBNodeOrder ()
 Get orders at the nodes.
 
MatrixIntgetBBAlphaIndices ()
 Get file BB indices.
 
virtual std::map< std::string, boost::shared_ptr< MatrixInt > > & getBBAlphaIndicesMap ()
 
virtual std::map< std::string, boost::shared_ptr< MatrixDouble > > & getBBNMap ()
 get hash map of base function for BB base, key is a field name
 
virtual std::map< std::string, boost::shared_ptr< MatrixDouble > > & getBBDiffNMap ()
 get hash map of derivatives base function for BB base, key is a field name
 
virtual boost::shared_ptr< MatrixInt > & getBBAlphaIndicesByOrderSharedPtr (const size_t o)
 get ALpha indices for BB base by order
 
virtual boost::shared_ptr< MatrixDouble > & getBBNByOrderSharedPtr (const size_t o)
 get BB base by order
 
virtual boost::shared_ptr< MatrixDouble > & getBBDiffNByOrderSharedPtr (const size_t o)
 get BB base derivative by order
 
virtual std::array< boost::shared_ptr< MatrixInt >, MaxBernsteinBezierOrder > & getBBAlphaIndicesByOrderArray ()
 
virtual std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > & getBBNByOrderArray ()
 
virtual std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrder > & getBBDiffNByOrderArray ()
 
MoFEMErrorCode resetFieldDependentData ()
 
 EntData (const bool allocate_base_matrices=true)
 
virtual ~EntData ()=default
 
ApproximationOrder getOrder () const
 get approximation order
 
const VectorIntgetIndices () const
 Get global indices of dofs on entity.
 
const VectorIntAdaptor getIndicesUpToOrder (int order)
 get global indices of dofs on entity up to given order
 
const VectorIntgetLocalIndices () const
 get local indices of dofs on entity
 
const VectorIntAdaptor getLocalIndicesUpToOrder (int order)
 get local indices of dofs on entity up to given order
 
int & getSense ()
 
ApproximationOrdergetOrder ()
 
VectorIntgetIndices ()
 
VectorIntgetLocalIndices ()
 
const VectorDoublegetFieldData () const
 get dofs values
 
const VectorAdaptor getFieldDataUpToOrder (int order)
 get dofs values up to given order
 
const VectorDofsgetFieldDofs () const
 get dofs data stature FEDofEntity
 
VectorDoublegetFieldData ()
 get dofs data stature FEDofEntity
 
const VectorFieldEntitiesgetFieldEntities () const
 get field entities
 
VectorFieldEntitiesgetFieldEntities ()
 get field entities
 
template<int Tensor_Dim>
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > getFTensor1FieldData ()
 Return FTensor of rank 1, i.e. vector from field data coefficients.
 
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 field data coefficients.
 
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.
 
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0FieldData ()
 Resturn scalar files as a FTensor of rank 0.
 
VectorDofsgetFieldDofs ()
 
FieldApproximationBasegetBase ()
 Get approximation base.
 
FieldSpacegetSpace ()
 Get field space.
 
MatrixDoublegetN (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.
 
MatrixDoublegetN (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.
 
MatrixDoublegetN ()
 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.
 
MatrixDoublegetDiffN (const FieldApproximationBase base)
 get derivatives of base functions
 
MatrixDoublegetN (const FieldApproximationBase base, const BaseDerivatives derivative)
 Get base function derivative.
 
MatrixDoublegetDiffN (const std::string &field_name)
 get derivatives of base functions
 
MatrixDoublegetDiffN ()
 get derivatives of base functions
 
MatrixDoublegetN (const BaseDerivatives derivative)
 Get base function derivative.
 
const VectorAdaptor getN (const FieldApproximationBase base, const int gg)
 get base functions at Gauss pts
 
const VectorAdaptor getN (const int gg)
 get base functions at Gauss pts
 
const MatrixAdaptor getDiffN (const FieldApproximationBase base, const int gg)
 get derivative of base functions at Gauss pts
 
const MatrixAdaptor getDiffN (const int gg)
 get derivative of base functions at Gauss pts
 
const VectorAdaptor getN (const FieldApproximationBase base, const int gg, const int nb_base_functions)
 get base functions at Gauss pts
 
const VectorAdaptor getN (const int gg, const int nb_base_functions)
 get base functions at Gauss pts
 
const MatrixAdaptor getDiffN (const FieldApproximationBase base, const int gg, const int nb_base_functions)
 get derivatives of base functions at Gauss pts
 
const MatrixAdaptor getDiffN (const int gg, const int nb_base_functions)
 get derivatives of base functions at Gauss pts
 
template<int DIM>
const MatrixAdaptor getVectorN (const FieldApproximationBase base, const int gg)
 get Hdiv of base functions at Gauss pts
 
template<int DIM>
const MatrixAdaptor getVectorN (const int gg)
 get Hdiv of base functions at Gauss pts
 
template<int DIM0, int DIM1>
const MatrixAdaptor getVectorDiffN (FieldApproximationBase base, const int gg)
 get DiffHdiv of base functions at Gauss pts
 
template<int DIM0, int DIM1>
const MatrixAdaptor getVectorDiffN (const int gg)
 get DiffHdiv of base functions at Gauss pts
 
template<int DIM0, int DIM1>
const MatrixAdaptor getVectorDiffN (const FieldApproximationBase base, const int dof, const int gg)
 get DiffHdiv of base functions at Gauss pts
 
template<int DIM0, int DIM1>
const MatrixAdaptor getVectorDiffN (const int dof, const int gg)
 get DiffHdiv of base functions at Gauss pts
 
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N (const FieldApproximationBase base)
 Get base function as Tensor0.
 
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N ()
 Get base function as Tensor0.
 
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N (const FieldApproximationBase base, const int gg, const int bb)
 Get base function as Tensor0 (Loop by integration points)
 
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0N (const int gg, const int bb)
 Get base function as Tensor0 (Loop by integration points)
 
template<int Tensor_Dim>
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > getFTensor1DiffN (const FieldApproximationBase base)
 Get derivatives of base functions.
 
template<int Tensor_Dim>
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > getFTensor1DiffN ()
 Get derivatives of base functions.
 
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)
 
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)
 
template<int Tensor_Dim>
FTensor::Tensor1< FTensor::PackPtr< double *, Tensor_Dim >, Tensor_Dim > getFTensor1N (FieldApproximationBase base)
 Get base functions for Hdiv/Hcurl spaces.
 
template<int Tensor_Dim>
auto getFTensor1N ()
 Get base functions for Hdiv space.
 
template<int Tensor_Dim0, int Tensor_Dim1>
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > getFTensor2DiffN (FieldApproximationBase base)
 Get derivatives of base functions for Hdiv space.
 
template<int Tensor_Dim0, int Tensor_Dim1>
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > getFTensor2DiffN (FieldApproximationBase base, const int gg, const int bb)
 Get derivatives of base functions for Hdiv space at integration pts.
 
template<int Tensor_Dim0, int Tensor_Dim1>
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > getFTensor2DiffN ()
 Get derivatives of base functions for Hdiv space.
 
template<int Tensor_Dim0, int Tensor_Dim1>
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > getFTensor2DiffN (const int gg, const int bb)
 Get derivatives of base functions for Hdiv space at integration pts.
 
template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > getFTensor3Diff2N (FieldApproximationBase base)
 Get second derivatives of base functions for Hvec space.
 
template<int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > getFTensor3Diff2N ()
 Get second derivatives of base functions for Hvec space.
 
template<int Tensor_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.
 
template<int Tensor_Dim>
auto getFTensor1N (const int gg, const int bb)
 Get Hdiv base functions at integration point.
 
template<int Tensor_Dim0, int Tensor_Dim1>
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > getFTensor2N (FieldApproximationBase base)
 Get base functions for Hdiv/Hcurl spaces.
 
template<int Tensor_Dim0, int Tensor_Dim1>
auto getFTensor2N ()
 Get base functions for Hdiv space.
 
template<int Tensor_Dim0, int Tensor_Dim1>
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.
 
template<int Tensor_Dim0, int Tensor_Dim1>
auto getFTensor2N (const int gg, const int bb)
 Get base functions for Hdiv space.
 
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.
 
template<>
FTensor::Tensor1< FTensor::PackPtr< double *, 3 >, 3 > getFTensor1DiffN ()
 Get spatial derivative of base function tensor for dimension 3d.
 
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.
 
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.
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > getFTensor2N (FieldApproximationBase base, const int gg, const int bb)
 

Broken spaces functions

const boost::shared_ptr< EntitiesFieldData::EntDataentDataPtr
 

DerivedEntData

boost::shared_ptr< MatrixDouble > & getDerivedNSharedPtr (const FieldApproximationBase base)
 
boost::shared_ptr< MatrixDouble > & getDerivedDiffNSharedPtr (const FieldApproximationBase base)
 

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
 

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)
 
ApproximationOrder oRder
 Entity order.
 
FieldSpace sPace
 Entity space.
 
FieldApproximationBase bAse
 Field approximation base.
 
VectorInt iNdices
 Global indices on entity.
 
VectorInt localIndices
 Local indices on entity.
 
VectorDofs dOfs
 DoFs on entity.
 
VectorFieldEntities fieldEntities
 Field entities.
 
VectorDouble fieldData
 Field data on entity.
 
std::vector< BitRefLevelentDataBitRefLevel
 Bit ref level in entity.
 
std::vector< int > dofBrokenSideVec
 Map side to dofs number.
 
std::vector< EntityType > dofBrokenTypeVec
 Map type of entity to dof number.
 
std::array< std::array< boost::shared_ptr< MatrixDouble >, LASTBASE >, LastDerivativebaseFunctionsAndBaseDerivatives
 
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & N
 Base functions.
 
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & diffN
 Derivatives of base functions.
 
std::string bbFieldName
 field name
 
VectorInt bbNodeOrder
 order of nodes
 
std::map< std::string, boost::shared_ptr< MatrixDouble > > bbN
 
std::map< std::string, boost::shared_ptr< MatrixDouble > > bbDiffN
 
std::map< std::string, boost::shared_ptr< MatrixInt > > bbAlphaIndices
 Indices for Bernstein-Bezier (BB) base.
 
std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrderbbNByOrder
 BB base functions by order.
 
std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrderbbDiffNByOrder
 BB base functions derivatives by order.
 
std::array< boost::shared_ptr< MatrixInt >, MaxBernsteinBezierOrderbbAlphaIndicesByOrder
 BB alpha indices by order.
 
boost::shared_ptr< MatrixDoubleswapBaseNPtr
 Used by Bernstein base to keep temporally pointer.
 
boost::shared_ptr< MatrixDoubleswapBaseDiffNPtr
 Used by Bernstein base to keep temporally pointer.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ DerivedEntData()

MoFEM::DerivedEntitiesFieldData::DerivedEntData::DerivedEntData ( const boost::shared_ptr< EntitiesFieldData::EntData > & ent_data_ptr)

Definition at line 189 of file EntitiesFieldData.cpp.

191 : EntitiesFieldData::EntData(false), entDataPtr(ent_data_ptr) {}
const boost::shared_ptr< EntitiesFieldData::EntData > entDataPtr

Member Function Documentation

◆ baseSwap()

MoFEMErrorCode MoFEM::DerivedEntitiesFieldData::DerivedEntData::baseSwap ( const std::string & field_name,
const FieldApproximationBase base )
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);

Parameters
field_name
base
Returns
MoFEMErrorCode

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 168 of file EntitiesFieldData.cpp.

169 {
171 auto make_swap = [](boost::shared_ptr<MatrixDouble> &ptr,
172 boost::shared_ptr<MatrixDouble> &ptrBB,
173 boost::shared_ptr<MatrixDouble> &swap_ptr) {
174 if (swap_ptr) {
175 ptr = swap_ptr;
176 swap_ptr.reset();
177 } else {
178 swap_ptr = ptr;
179 ptr = ptrBB;
180 }
181 };
187}
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
constexpr auto field_name
boost::shared_ptr< MatrixDouble > & getBBNSharedPtr(const std::string &field_name)
boost::shared_ptr< MatrixDouble > & getDerivedDiffNSharedPtr(const FieldApproximationBase base)
boost::shared_ptr< MatrixDouble > & getBBDiffNSharedPtr(const std::string &field_name)
boost::shared_ptr< MatrixDouble > & getDerivedNSharedPtr(const FieldApproximationBase base)
boost::shared_ptr< MatrixDouble > swapBaseDiffNPtr
Used by Bernstein base to keep temporally pointer.
boost::shared_ptr< MatrixDouble > swapBaseNPtr
Used by Bernstein base to keep temporally pointer.

◆ getBBAlphaIndicesSharedPtr()

boost::shared_ptr< MatrixInt > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getBBAlphaIndicesSharedPtr ( const std::string & field_name)
virtual

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 907 of file EntitiesFieldData.cpp.

908 {
909 return entDataPtr->getBBAlphaIndicesSharedPtr(field_name);
910}

◆ getBBDiffNSharedPtr() [1/2]

boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getBBDiffNSharedPtr ( const std::string & field_name)
virtual

Get shared pointer to BB derivatives of base base functions

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 928 of file EntitiesFieldData.cpp.

929 {
930 return entDataPtr->getBBDiffNSharedPtr(field_name);
931}

◆ getBBDiffNSharedPtr() [2/2]

const boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getBBDiffNSharedPtr ( const std::string & field_name) const
virtual

Get shared pointer to derivatives of BB base base functions

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 937 of file EntitiesFieldData.cpp.

938 {
939 return entDataPtr->getBBDiffNSharedPtr(field_name);
940}

◆ getBBNSharedPtr() [1/2]

boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getBBNSharedPtr ( const std::string & field_name)
virtual

Get shared pointer to BB base base functions

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 913 of file EntitiesFieldData.cpp.

914 {
915 return entDataPtr->getBBNSharedPtr(field_name);
916}

◆ getBBNSharedPtr() [2/2]

const boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getBBNSharedPtr ( const std::string & field_name) const
virtual

Get shared pointer to BB base base functions

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 919 of file EntitiesFieldData.cpp.

920 {
921 return entDataPtr->getBBNSharedPtr(field_name);
922}

◆ getDerivedDiffNSharedPtr()

boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getDerivedDiffNSharedPtr ( const FieldApproximationBase base)
inline

Definition at line 1588 of file EntitiesFieldData.hpp.

1589 {
1590 return diffN[base];
1591}
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & diffN
Derivatives of base functions.

◆ getDerivedNSharedPtr()

boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getDerivedNSharedPtr ( const FieldApproximationBase base)
inline

Definition at line 1582 of file EntitiesFieldData.hpp.

1583 {
1584 return N[base];
1585}
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & N
Base functions.

◆ getDiffNSharedPtr() [1/2]

boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getDiffNSharedPtr ( const FieldApproximationBase base)
virtual

Get shared pointer to derivatives of base base functions

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 216 of file EntitiesFieldData.cpp.

217 {
218 if (diffN[base])
219 return diffN[base];
220 else
221 return entDataPtr->getDiffNSharedPtr(base);
222}

◆ getDiffNSharedPtr() [2/2]

const boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getDiffNSharedPtr ( const FieldApproximationBase base) const

Definition at line 232 of file EntitiesFieldData.cpp.

233 {
234 if (diffN[base])
235 return diffN[base];
236 else
237 return entDataPtr->getDiffNSharedPtr(base);
238}

◆ getEntDataBitRefLevel()

std::vector< BitRefLevel > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getEntDataBitRefLevel ( )
virtual

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 949 of file EntitiesFieldData.cpp.

949 {
950 return entDataPtr->getEntDataBitRefLevel();
951}

◆ getNSharedPtr() [1/3]

boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getNSharedPtr ( const FieldApproximationBase base)
virtual

Get shared pointer to base base functions

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 207 of file EntitiesFieldData.cpp.

208 {
209 if (N[base])
210 return N[base];
211 else
212 return entDataPtr->getNSharedPtr(base);
213}

◆ getNSharedPtr() [2/3]

const boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getNSharedPtr ( const FieldApproximationBase base) const

Definition at line 224 of file EntitiesFieldData.cpp.

225 {
226 if (N[base])
227 return N[base];
228 else
229 return entDataPtr->getNSharedPtr(base);
230}

◆ getNSharedPtr() [3/3]

boost::shared_ptr< MatrixDouble > & MoFEM::DerivedEntitiesFieldData::DerivedEntData::getNSharedPtr ( const FieldApproximationBase base,
const BaseDerivatives derivative )
virtual

Get shared pointer to base base functions

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 198 of file EntitiesFieldData.cpp.

199 {
200 if (baseFunctionsAndBaseDerivatives[derivative][base])
201 return baseFunctionsAndBaseDerivatives[derivative][base];
202 else
203 return entDataPtr->getNSharedPtr(base, derivative);
204}
std::array< std::array< boost::shared_ptr< MatrixDouble >, LASTBASE >, LastDerivative > baseFunctionsAndBaseDerivatives

◆ getSense()

int MoFEM::DerivedEntitiesFieldData::DerivedEntData::getSense ( ) const
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.

193 {
194 return entDataPtr->getSense();
195}

Member Data Documentation

◆ entDataPtr

const boost::shared_ptr<EntitiesFieldData::EntData> MoFEM::DerivedEntitiesFieldData::DerivedEntData::entDataPtr
protected

Definition at line 1207 of file EntitiesFieldData.hpp.


The documentation for this struct was generated from the following files: