v0.14.0
Public Member Functions | Protected Attributes | List of all members
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 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
VectorIntgetBBNodeOrder ()
 Get orders at the nodes. More...
 
MatrixIntgetBBAlphaIndices ()
 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 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 ()
 
MoFEMErrorCode resetFieldDependentData ()
 
 EntData (const bool allocate_base_matrices=true)
 
virtual ~EntData ()=default
 
ApproximationOrder getOrder () const
 get approximation order More...
 
const VectorIntgetIndices () 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 VectorIntgetLocalIndices () 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 ()
 
ApproximationOrdergetOrder ()
 
VectorIntgetIndices ()
 
VectorIntgetLocalIndices ()
 
const VectorDoublegetFieldData () const
 get dofs values More...
 
const VectorAdaptor getFieldDataUpToOrder (int order)
 get dofs values up to given order More...
 
const VectorDofsgetFieldDofs () const
 get dofs data stature FEDofEntity More...
 
VectorDoublegetFieldData ()
 get dofs data stature FEDofEntity More...
 
const VectorFieldEntitiesgetFieldEntities () const
 get field entities More...
 
VectorFieldEntitiesgetFieldEntities ()
 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 coeffinects. More...
 
template<int Tensor_Dim0, int Tensor_Dim1>
FTensor::Tensor2< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 >, Tensor_Dim0, Tensor_Dim1 > getFTensor2FieldData ()
 Return FTensor rank 2, i.e. matrix from filed data coeffinects. More...
 
template<int Tensor_Dim>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *,(Tensor_Dim *(Tensor_Dim+1))/2 >, Tensor_Dim > getFTensor2SymmetricFieldData ()
 Return symmetric FTensor rank 2, i.e. matrix from filed data coeffinects. More...
 
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > getFTensor0FieldData ()
 Resturn scalar files as a FTensor of rank 0. More...
 
VectorDofsgetFieldDofs ()
 
FieldApproximationBasegetBase ()
 Get approximation base. More...
 
FieldSpacegetSpace ()
 Get field space. More...
 
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. More...
 
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. More...
 
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. More...
 
MatrixDoublegetDiffN (const FieldApproximationBase base)
 get derivatives of base functions More...
 
MatrixDoublegetN (const FieldApproximationBase base, const BaseDerivatives derivative)
 Get base function derivative. More...
 
MatrixDoublegetDiffN (const std::string &field_name)
 get derivatives of base functions More...
 
MatrixDoublegetDiffN ()
 get derivatives of base functions More...
 
MatrixDoublegetN (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)
 

Protected Attributes

const boost::shared_ptr< EntitiesFieldData::EntDataentDataPtr
 
- 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< BitRefLevelentDataBitRefLevel
 Bit ref level in entity. More...
 
std::array< std::array< boost::shared_ptr< MatrixDouble >, LASTBASE >, LastDerivativebaseFunctionsAndBaseDerivatives
 
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 >, MaxBernsteinBezierOrderbbNByOrder
 BB base functions by order. More...
 
std::array< boost::shared_ptr< MatrixDouble >, MaxBernsteinBezierOrderbbDiffNByOrder
 BB base functions direvatives by order. More...
 
std::array< boost::shared_ptr< MatrixInt >, MaxBernsteinBezierOrderbbAlphaIndicesByOrder
 BB alpha indices by order. More...
 
boost::shared_ptr< MatrixDoubleswapBaseNPtr
 Used by Bernstein base to keep temporally pointer. More...
 
boost::shared_ptr< MatrixDoubleswapBaseDiffNPtr
 Used by Bernstein base to keep temporally pointer. More...
 

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)
 

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
 

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 1127 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) {}

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 paricular field using BB base, pointers to shape funtions and BaseDerivatives of shape functions are set to particular location, once operator is executed, pointers are switch back to its oroginal position.

getNSharedPtr(base) <=== getBBNSharedPtr(field_name); // DO OPERATOR WORK getNSharedPtr(base) ==> getBBNSharedPtr(field_name);

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  };
183  swapBaseNPtr);
187 }

◆ 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 1553 of file EntitiesFieldData.hpp.

1554  {
1555  return diffN[base];
1556 }

◆ getDerivedNSharedPtr()

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

Definition at line 1547 of file EntitiesFieldData.hpp.

1548  {
1549  return N[base];
1550 }

◆ 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  direvatie 
)
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 }

◆ 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 1194 of file EntitiesFieldData.hpp.


The documentation for this struct was generated from the following files:
MoFEM::EntitiesFieldData::EntData::N
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & N
Base functions.
Definition: EntitiesFieldData.hpp:1081
MoFEM::DerivedEntitiesFieldData::DerivedEntData::getBBDiffNSharedPtr
boost::shared_ptr< MatrixDouble > & getBBDiffNSharedPtr(const std::string &field_name)
Definition: EntitiesFieldData.cpp:928
MoFEM::EntitiesFieldData::EntData::swapBaseNPtr
boost::shared_ptr< MatrixDouble > swapBaseNPtr
Used by Bernstein base to keep temporally pointer.
Definition: EntitiesFieldData.hpp:1105
MoFEM::DerivedEntitiesFieldData::DerivedEntData::getDerivedDiffNSharedPtr
boost::shared_ptr< MatrixDouble > & getDerivedDiffNSharedPtr(const FieldApproximationBase base)
Definition: EntitiesFieldData.hpp:1553
MoFEM::DerivedEntitiesFieldData::DerivedEntData::getDerivedNSharedPtr
boost::shared_ptr< MatrixDouble > & getDerivedNSharedPtr(const FieldApproximationBase base)
Definition: EntitiesFieldData.hpp:1547
MoFEM::DerivedEntitiesFieldData::DerivedEntData::entDataPtr
const boost::shared_ptr< EntitiesFieldData::EntData > entDataPtr
Definition: EntitiesFieldData.hpp:1194
MoFEM::DerivedEntitiesFieldData::DerivedEntData::getBBNSharedPtr
boost::shared_ptr< MatrixDouble > & getBBNSharedPtr(const std::string &field_name)
Definition: EntitiesFieldData.cpp:913
EntData
EntitiesFieldData::EntData EntData
Definition: child_and_parent.cpp:37
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
MoFEM::EntitiesFieldData::EntData::baseFunctionsAndBaseDerivatives
std::array< std::array< boost::shared_ptr< MatrixDouble >, LASTBASE >, LastDerivative > baseFunctionsAndBaseDerivatives
Definition: EntitiesFieldData.hpp:1079
MoFEM::EntitiesFieldData::EntData::swapBaseDiffNPtr
boost::shared_ptr< MatrixDouble > swapBaseDiffNPtr
Used by Bernstein base to keep temporally pointer.
Definition: EntitiesFieldData.hpp:1112
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
MoFEM::EntitiesFieldData::EntData::diffN
std::array< boost::shared_ptr< MatrixDouble >, LASTBASE > & diffN
Derivatives of base functions.
Definition: EntitiesFieldData.hpp:1083