v0.15.0
Loading...
Searching...
No Matches
Public Member Functions | List of all members
MoFEM::DerivedEntitiesFieldData::DerivedEntData Struct Reference

Derived data 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 for conforming approximation fields.
 
std::vector< BitRefLevel > & getEntDataBitRefLevel ()
 Get entity bit reference level.
 
boost::shared_ptr< MatrixDouble > & getNSharedPtr (const FieldApproximationBase base, const BaseDerivatives derivative)
 Get shared pointer to base functions with derivatives.
 
boost::shared_ptr< MatrixDouble > & getNSharedPtr (const FieldApproximationBase base)
 Get shared pointer to base functions (zero derivative)
 
boost::shared_ptr< MatrixDouble > & getDiffNSharedPtr (const FieldApproximationBase base)
 Get shared pointer to derivatives of base functions.
 
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 temporary 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)
 Construct EntData object.
 
virtual ~EntData ()=default
 
ApproximationOrder getOrder () const
 Get approximation order.
 
const VectorIntgetIndices () const
 Get global indices of degrees of freedom 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 degrees of freedom on entity.
 
const VectorIntAdaptor getLocalIndicesUpToOrder (int order)
 Get local indices of DOFs on entity up to given order.
 
int & getSense ()
 Get reference to entity sense for modification.
 
ApproximationOrdergetOrder ()
 Get reference to approximation order for modification.
 
VectorIntgetIndices ()
 Get reference to global indices for modification.
 
VectorIntgetLocalIndices ()
 Get reference to local indices for modification.
 
const VectorDoublegetFieldData () const
 Get DOF values on entity.
 
const VectorAdaptor getFieldDataUpToOrder (int order)
 Get DOF values on entity up to given order.
 
const VectorDofsgetFieldDofs () const
 Get DOF data structures (const version)
 
VectorDoublegetFieldData ()
 Get DOF values on entity for modification.
 
const VectorFieldEntitiesgetFieldEntities () const
 Get field entities (const version)
 
VectorFieldEntitiesgetFieldEntities ()
 Get field entities for modification.
 
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 ()
 Return 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 for specific field (Bernstein-Bezier)
 
MatrixDoublegetN ()
 Get base functions using default base.
 
MatrixDoublegetDiffN (const FieldApproximationBase base)
 get derivatives of base functions
 
MatrixDoublegetN (const FieldApproximationBase base, const BaseDerivatives derivative)
 Get base function derivatives with specific derivative order.
 
MatrixDoublegetDiffN (const std::string &field_name)
 Get derivatives of base functions for specific field.
 
MatrixDoublegetDiffN ()
 Get derivatives of base functions using default base.
 
MatrixDoublegetN (const BaseDerivatives derivative)
 Get base function derivatives using default base.
 
const VectorAdaptor getN (const FieldApproximationBase base, const int gg)
 Get base functions at specific Gauss point.
 
const VectorAdaptor getN (const int gg)
 Get base functions at specific Gauss point using default base.
 
const MatrixAdaptor getDiffN (const FieldApproximationBase base, const int gg)
 Get derivative of base functions at specific Gauss point.
 
const MatrixAdaptor getDiffN (const int gg)
 Get derivative of base functions at specific Gauss point using default base.
 
const VectorAdaptor getN (const FieldApproximationBase base, const int gg, const int nb_base_functions)
 Get base functions at Gauss point with limited number of functions.
 
const VectorAdaptor getN (const int gg, const int nb_base_functions)
 Get base functions at Gauss point with limited number (default base)
 
const MatrixAdaptor getDiffN (const FieldApproximationBase base, const int gg, const int nb_base_functions)
 Get derivatives of base functions at Gauss point with limited number.
 
const MatrixAdaptor getDiffN (const int gg, const int nb_base_functions)
 Get derivatives of base functions at Gauss point with limited number (default base)
 
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_Dim0, int Tensor_Dim1, int Tensor_Dim2>
FTensor::Tensor3< FTensor::PackPtr< double *, Tensor_Dim0 *Tensor_Dim1 *Tensor_Dim2 >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > getFTensor3DiffN (FieldApproximationBase base)
 Get derivatives of base functions for tonsorial Hdiv 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 > getFTensor3DiffN (FieldApproximationBase base, const int gg, const int bb)
 Get derivatives of base functions for tonsorial 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 > getFTensor3DiffN ()
 Get derivatives of base functions for tonsorial Hdiv 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 > getFTensor3DiffN (const int gg, const int bb)
 Get derivatives of base functions for tonsorial Hdiv space at integration pts.
 
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 *, 9 >, 3, 3 > getFTensor2DiffN (FieldApproximationBase base)
 
template<>
FTensor::Tensor2< FTensor::PackPtr< double *, 9 >, 3, 3 > getFTensor2DiffN (FieldApproximationBase base, const int gg, const int bb)
 
template<>
FTensor::Tensor3< FTensor::PackPtr< double *, 12 >, 3, 2, 2 > getFTensor3Diff2N (FieldApproximationBase base)
 
template<>
FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > getFTensor3DiffN (FieldApproximationBase base)
 
template<>
FTensor::Tensor3< FTensor::PackPtr< double *, 27 >, 3, 3, 3 > getFTensor3DiffN (FieldApproximationBase base, const int gg, const int bb)
 
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 temporary pointer.
 
boost::shared_ptr< MatrixDoubleswapBaseDiffNPtr
 Used by Bernstein base to keep temporary pointer.
 

Detailed Description

Derived data on single entity (This is passed as argument to DataOperator::doWork)

DerivedEntData share part information with EntData except information about base functions.

Definition at line 1304 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 temporary 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 original position.

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

Parameters
field_nameName of the field for which to swap base
baseApproximation base type to swap
Returns
MoFEMErrorCode Error code (0 on success)

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 temporary pointer.
boost::shared_ptr< MatrixDouble > swapBaseNPtr
Used by Bernstein base to keep temporary pointer.

◆ getBBAlphaIndicesSharedPtr()

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

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 946 of file EntitiesFieldData.cpp.

947 {
948 return entDataPtr->getBBAlphaIndicesSharedPtr(field_name);
949}

◆ 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 967 of file EntitiesFieldData.cpp.

968 {
969 return entDataPtr->getBBDiffNSharedPtr(field_name);
970}

◆ 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 976 of file EntitiesFieldData.cpp.

977 {
978 return entDataPtr->getBBDiffNSharedPtr(field_name);
979}

◆ 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 952 of file EntitiesFieldData.cpp.

953 {
954 return entDataPtr->getBBNSharedPtr(field_name);
955}

◆ 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 958 of file EntitiesFieldData.cpp.

959 {
960 return entDataPtr->getBBNSharedPtr(field_name);
961}

◆ getDerivedDiffNSharedPtr()

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

Definition at line 1756 of file EntitiesFieldData.hpp.

1757 {
1758 return diffN[base];
1759}
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 1750 of file EntitiesFieldData.hpp.

1751 {
1752 return N[base];
1753}
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 functions.

Parameters
baseApproximation base type
Returns
boost::shared_ptr<MatrixDouble>& Shared pointer to derivative matrix

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

Get entity bit reference level.

Returns
std::vector<BitRefLevel>& Reference to bit reference level vector

Reimplemented from MoFEM::EntitiesFieldData::EntData.

Definition at line 988 of file EntitiesFieldData.cpp.

988 {
989 return entDataPtr->getEntDataBitRefLevel();
990}

◆ getNSharedPtr() [1/3]

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

Get shared pointer to base functions (zero derivative)

Parameters
baseApproximation base type
Returns
boost::shared_ptr<MatrixDouble>& Shared pointer to base function matrix

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 functions with derivatives.

Parameters
baseApproximation base type
derivativeDerivative order (ZeroDerivative, FirstDerivative, etc.)
Returns
boost::shared_ptr<MatrixDouble>& Shared pointer to base function matrix

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 for conforming approximation fields.

Entity sense is needed to calculate base functions with conforming approximation fields.

Returns
int Entity sense (orientation)

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


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