v0.14.0
Public Member Functions | Public Attributes | List of all members
MoFEM::BasicMethod Struct Reference

Data structure to exchange data between mofem and User Loop Methods. More...

#include <src/interfaces/LoopMethods.hpp>

Inheritance diagram for MoFEM::BasicMethod:
[legend]
Collaboration diagram for MoFEM::BasicMethod:
[legend]

Public Member Functions

MoFEMErrorCode query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const
 
 BasicMethod ()
 
virtual ~BasicMethod ()=default
 
int getNinTheLoop () const
 get number of evaluated element in the loop More...
 
int getLoopSize () const
 get loop size More...
 
auto getLoHiFERank () const
 Get lo and hi processor rank of iterated entities. More...
 
auto getLoFERank () const
 Get upper rank in loop for iterating elements. More...
 
auto getHiFERank () const
 Get upper rank in loop for iterating elements. More...
 
unsigned int getFieldBitNumber (std::string field_name) const
 
MoFEMErrorCode copyBasicMethod (const BasicMethod &basic)
 Copy data from other base method to this base method. More...
 
virtual MoFEMErrorCode preProcess ()
 function is run at the beginning of loop More...
 
virtual MoFEMErrorCode operator() ()
 function is run for every finite element More...
 
virtual MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
boost::weak_ptr< CacheTuplegetCacheWeakPtr () const
 Get the cache weak ptr object. More...
 
- Public Member Functions inherited from MoFEM::KspMethod
 KspMethod ()
 
virtual ~KspMethod ()=default
 
MoFEMErrorCode copyKsp (const KspMethod &ksp)
 copy data form another method More...
 
- Public Member Functions inherited from MoFEM::PetscData
 PetscData ()
 
virtual ~PetscData ()=default
 
MoFEMErrorCode copyPetscData (const PetscData &petsc_data)
 
- Public Member Functions inherited from MoFEM::UnknownInterface
template<class IFACE >
MoFEMErrorCode registerInterface (bool error_if_registration_failed=true)
 Register interface. More...
 
template<class IFACE >
MoFEMErrorCode getInterface (IFACE *&iface) const
 Get interface reference to pointer of interface. More...
 
template<class IFACE >
MoFEMErrorCode getInterface (IFACE **const iface) const
 Get interface pointer to pointer of interface. More...
 
template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0>
IFACE getInterface () const
 Get interface pointer to pointer of interface. More...
 
template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0>
IFACE getInterface () const
 Get reference to interface. More...
 
template<class IFACE >
IFACE * getInterface () const
 Function returning pointer to interface. More...
 
virtual ~UnknownInterface ()=default
 
- Public Member Functions inherited from MoFEM::SnesMethod
 SnesMethod ()
 
virtual ~SnesMethod ()=default
 
MoFEMErrorCode copySnes (const SnesMethod &snes)
 Copy snes data. More...
 
- Public Member Functions inherited from MoFEM::TSMethod
 TSMethod ()
 
virtual ~TSMethod ()=default
 
MoFEMErrorCode copyTs (const TSMethod &ts)
 Copy TS solver data. More...
 

Public Attributes

int nInTheLoop
 number currently of processed method More...
 
int loopSize
 local number oe methods to process More...
 
std::pair< int, int > loHiFERank
 Llo and hi processor rank of iterated entities. More...
 
int rAnk
 processor rank More...
 
int sIze
 number of processors in communicator More...
 
const RefEntity_multiIndexrefinedEntitiesPtr
 container of mofem dof entities More...
 
const RefElement_multiIndexrefinedFiniteElementsPtr
 container of mofem finite element entities More...
 
const ProblemproblemPtr
 raw pointer to problem More...
 
const Field_multiIndexfieldsPtr
 raw pointer to fields container More...
 
const FieldEntity_multiIndexentitiesPtr
 raw pointer to container of field entities More...
 
const DofEntity_multiIndexdofsPtr
 raw pointer container of dofs More...
 
const FiniteElement_multiIndexfiniteElementsPtr
 raw pointer to container finite elements More...
 
const EntFiniteElement_multiIndexfiniteElementsEntitiesPtr
 
const FieldEntityEntFiniteElementAdjacencyMap_multiIndexadjacenciesPtr
 
boost::function< MoFEMErrorCode()> preProcessHook
 Hook function for pre-processing. More...
 
boost::function< MoFEMErrorCode()> postProcessHook
 Hook function for post-processing. More...
 
boost::function< MoFEMErrorCode()> operatorHook
 Hook function for operator. More...
 
boost::movelib::unique_ptr< boolvecAssembleSwitch
 
boost::movelib::unique_ptr< boolmatAssembleSwitch
 
boost::weak_ptr< CacheTuplecacheWeakPtr
 
- Public Attributes inherited from MoFEM::KspMethod
KSPContext ksp_ctx
 Context. More...
 
KSP ksp
 KSP solver. More...
 
Vec & ksp_f
 
Mat & ksp_A
 
Mat & ksp_B
 
- Public Attributes inherited from MoFEM::PetscData
Switches data_ctx
 
Vec f
 
Mat A
 
Mat B
 
Vec x
 
Vec x_t
 
Vec x_tt
 
- Public Attributes inherited from MoFEM::SnesMethod
SNESContext snes_ctx
 
SNES snes
 snes solver More...
 
Vec & snes_x
 state vector More...
 
Vec & snes_f
 residual More...
 
Mat & snes_A
 jacobian matrix More...
 
Mat & snes_B
 preconditioner of jacobian matrix More...
 
- Public Attributes inherited from MoFEM::TSMethod
TS ts
 time solver More...
 
TSContext ts_ctx
 
PetscInt ts_step
 time step number More...
 
PetscReal ts_a
 shift for U_t (see PETSc Time Solver) More...
 
PetscReal ts_aa
 shift for U_tt shift for U_tt More...
 
PetscReal ts_t
 time More...
 
PetscReal ts_dt
 time step size More...
 
Vec & ts_u
 state vector More...
 
Vec & ts_u_t
 time derivative of state vector More...
 
Vec & ts_u_tt
 second time derivative of state vector More...
 
Vec & ts_F
 residual vector More...
 
Mat & ts_A
 
Mat & ts_B
 Preconditioner for ts_A. More...
 

Additional Inherited Members

- Public Types inherited from MoFEM::KspMethod
enum  KSPContext { CTX_SETFUNCTION, CTX_OPERATORS, CTX_KSPNONE }
 pass information about context of KSP/DM for with finite element is computed More...
 
- Public Types inherited from MoFEM::PetscData
enum  DataContext {
  CTX_SET_NONE = 0, CTX_SET_F = 1 << 0, CTX_SET_A = 1 << 1, CTX_SET_B = 1 << 2,
  CTX_SET_X = 1 << 3, CTX_SET_X_T = 1 << 4, CTX_SET_X_TT = 1 << 6, CTX_SET_TIME = 1 << 7
}
 
using Switches = std::bitset< 8 >
 
- Public Types inherited from MoFEM::SnesMethod
enum  SNESContext { CTX_SNESSETFUNCTION, CTX_SNESSETJACOBIAN, CTX_SNESNONE }
 
- Public Types inherited from MoFEM::TSMethod
enum  TSContext {
  CTX_TSSETRHSFUNCTION, CTX_TSSETRHSJACOBIAN, CTX_TSSETIFUNCTION, CTX_TSSETIJACOBIAN,
  CTX_TSTSMONITORSET, CTX_TSNONE
}
 
- Static Public Member Functions inherited from MoFEM::UnknownInterface
static MoFEMErrorCode getLibVersion (Version &version)
 Get library version. More...
 
static MoFEMErrorCode getFileVersion (moab::Interface &moab, Version &version)
 Get database major version. More...
 
static MoFEMErrorCode setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD))
 Get database major version. More...
 
static MoFEMErrorCode getInterfaceVersion (Version &version)
 Get database major version. More...
 
- Static Public Attributes inherited from MoFEM::PetscData
static constexpr Switches CtxSetNone = PetscData::Switches(CTX_SET_NONE)
 
static constexpr Switches CtxSetF = PetscData::Switches(CTX_SET_F)
 
static constexpr Switches CtxSetA = PetscData::Switches(CTX_SET_A)
 
static constexpr Switches CtxSetB = PetscData::Switches(CTX_SET_B)
 
static constexpr Switches CtxSetX = PetscData::Switches(CTX_SET_X)
 
static constexpr Switches CtxSetX_T = PetscData::Switches(CTX_SET_X_T)
 
static constexpr Switches CtxSetX_TT = PetscData::Switches(CTX_SET_X_TT)
 
static constexpr Switches CtxSetTime = PetscData::Switches(CTX_SET_TIME)
 

Detailed Description

Data structure to exchange data between mofem and User Loop Methods.

It allows to exchange data between MoFEM and user functions. It stores information about multi-indices.

Definition at line 183 of file LoopMethods.hpp.

Constructor & Destructor Documentation

◆ BasicMethod()

MoFEM::BasicMethod::BasicMethod ( )

Definition at line 109 of file LoopMethods.cpp.

111  loopSize(0), rAnk(-1), sIze(-1), refinedEntitiesPtr(nullptr),
112  refinedFiniteElementsPtr(nullptr), problemPtr(nullptr),
113  fieldsPtr(nullptr), entitiesPtr(nullptr), dofsPtr(nullptr),
114  finiteElementsPtr(nullptr), finiteElementsEntitiesPtr(nullptr),
115  adjacenciesPtr(nullptr) {}

◆ ~BasicMethod()

virtual MoFEM::BasicMethod::~BasicMethod ( )
virtualdefault

Member Function Documentation

◆ copyBasicMethod()

MoFEMErrorCode MoFEM::BasicMethod::copyBasicMethod ( const BasicMethod basic)

Copy data from other base method to this base method.

Parameters
basic
Returns
MoFEMErrorCode

Definition at line 117 of file LoopMethods.cpp.

117  {
119 
120  this->nInTheLoop = basic.nInTheLoop;
121  this->loopSize = basic.loopSize;
122  this->rAnk = basic.rAnk;
123  this->sIze = basic.sIze;
124  this->refinedEntitiesPtr = basic.refinedEntitiesPtr;
125  this->refinedFiniteElementsPtr = basic.refinedFiniteElementsPtr;
126  this->problemPtr = basic.problemPtr;
127  this->fieldsPtr = basic.fieldsPtr;
128  this->entitiesPtr = basic.entitiesPtr;
129  this->dofsPtr = basic.dofsPtr;
130  this->finiteElementsPtr = basic.finiteElementsPtr;
131  this->finiteElementsEntitiesPtr = basic.finiteElementsEntitiesPtr;
132  this->adjacenciesPtr = basic.adjacenciesPtr;
133  this->cacheWeakPtr = basic.cacheWeakPtr;
134 
136 }

◆ getCacheWeakPtr()

boost::weak_ptr<CacheTuple> MoFEM::BasicMethod::getCacheWeakPtr ( ) const
inline

Get the cache weak ptr object.

Note
This store problem information on entities about DOFs. Each problem store different information. If you iterate over finite elements in preprocessor of TS solve element, us TS cache in the loop. Otherwise you will create undetermined behaviour or segmentation error. This is necessary compromise over bug resilience for memory saving and performance.
Returns
boost::weak_ptr<CacheTuple>
Examples
free_surface.cpp.

Definition at line 344 of file LoopMethods.hpp.

344  {
345  return cacheWeakPtr;
346  }

◆ getFieldBitNumber()

unsigned int MoFEM::BasicMethod::getFieldBitNumber ( std::string  field_name) const
inline

Definition at line 270 of file LoopMethods.hpp.

270  {
271  if (fieldsPtr) {
272  auto field_it = fieldsPtr->get<FieldName_mi_tag>().find(field_name);
273  if (field_it != fieldsPtr->get<FieldName_mi_tag>().end())
274  return (*field_it)->getBitNumber();
275  else
276  return BITFEID_SIZE;
277  } else {
278  THROW_MESSAGE("Pointer to fields multi-index is not set");
279  return BITFEID_SIZE;
280  }
281  }

◆ getHiFERank()

auto MoFEM::BasicMethod::getHiFERank ( ) const
inline

Get upper rank in loop for iterating elements.

Returns
loHiFERank.first

Definition at line 238 of file LoopMethods.hpp.

238 { return loHiFERank.second; }

◆ getLoFERank()

auto MoFEM::BasicMethod::getLoFERank ( ) const
inline

Get upper rank in loop for iterating elements.

Returns
loHiFERank.first

Definition at line 231 of file LoopMethods.hpp.

231 { return loHiFERank.first; }

◆ getLoHiFERank()

auto MoFEM::BasicMethod::getLoHiFERank ( ) const
inline

Get lo and hi processor rank of iterated entities.

Returns
raturn std::pair<int, int> loHiFERank

Definition at line 224 of file LoopMethods.hpp.

224 { return loHiFERank; }

◆ getLoopSize()

int MoFEM::BasicMethod::getLoopSize ( ) const
inline

get loop size

Definition at line 211 of file LoopMethods.hpp.

211 { return loopSize; }

◆ getNinTheLoop()

int MoFEM::BasicMethod::getNinTheLoop ( ) const
inline

get number of evaluated element in the loop

Definition at line 207 of file LoopMethods.hpp.

207 { return nInTheLoop; }

◆ operator()()

MoFEMErrorCode MoFEM::BasicMethod::operator() ( )
virtual

◆ postProcess()

MoFEMErrorCode MoFEM::BasicMethod::postProcess ( )
virtual

function is run at the end of loop

It is used to assembly matrices and vectors, calculating global variables, f.e. total internal energy, ect.

Iterating over dofs: Example1 iterating over dofs in row by name of the field for(IT_GET_FEROW_BY_NAME_DOFS_FOR_LOOP(this,"DISPLACEMENT",it)) { ... }

Reimplemented in GelModule::Gel::MonitorPostProc, Monitor, PostProcEdgeOnRefinedMesh, MixTransport::UnsaturatedFlowElement::MonitorPostProc, PostProcFaceOnRefinedMesh, PostProcFatPrismOnRefinedMesh, FractureMechanics::CrackPropagation::PostProcVertexMethod, Monitor, PostProcTemplateVolumeOnRefinedMesh< MoFEM::VolumeElementForcesAndSourcesCore >, Monitor, Monitor, GelModule::Gel::GelFE, Monitor, ApplyDirichletBc, DirichletDisplacementRemoveDofsBc, ReactionDiffusionEquation::Monitor, DirichletFixFieldAtEntitiesBc, KelvinVoigtDamper::DamperFE, Monitor, MonitorRestart, PhotonDiffusion::Monitor, BcEntMethodSpatial, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, MonitorPostProc, CohesiveElement::AssembleRhsVectors, BcEntMethodDisp, MoFEM::ForcesAndSourcesCore, Smoother::MyVolumeFE, Smoother::MyVolumeFE, MonitorPostProc, DirichletDisplacementBc, Monitor, Monitor, MonitorIncompressible, NonlinearElasticElement::MyVolumeFE, BasicFiniteElements::SaveVertexDofOnTag, BasicFiniteElements::SaveVertexDofOnTag, EshelbianPlasticity::ContactTree, CountDown, TestEntityMethod, MoFEM::Projection10NodeCoordsOnField, and CountUp.

Definition at line 149 of file LoopMethods.cpp.

149  {
151  if (postProcessHook) {
152  ierr = postProcessHook();
153  CHKERRG(ierr);
154  } else {
155  SETERRQ(PETSC_COMM_SELF, MOFEM_OPERATION_UNSUCCESSFUL,
156  "should be implemented by user in derived class (postProcess)");
157  }
159 }

◆ preProcess()

MoFEMErrorCode MoFEM::BasicMethod::preProcess ( )
virtual

function is run at the beginning of loop

It is used to zeroing matrices and vectors, calculation of shape functions on reference element, preprocessing boundary conditions, etc.

Reimplemented in GelModule::Gel::MonitorPostProc, PostProcEdgeOnRefinedMesh, MixTransport::UnsaturatedFlowElement::MonitorPostProc, PostProcFaceOnRefinedMesh, PostProcFatPrismOnRefinedMesh, FractureMechanics::CrackPropagation::PostProcVertexMethod, EdgeSlidingConstrains::MyEdgeFE, EdgeSlidingConstrains::MyEdgeFE, PostProcTemplateVolumeOnRefinedMesh< MoFEM::VolumeElementForcesAndSourcesCore >, GelModule::Gel::GelFE, SurfaceSlidingConstrains::MyTriangleFE, SurfaceSlidingConstrains::MyTriangleFE, DirichletDisplacementRemoveDofsBc, DirichletFixFieldAtEntitiesBc, ReactionDiffusionEquation::Monitor, KelvinVoigtDamper::DamperFE, MonitorRestart, BcEntMethodSpatial, PhotonDiffusion::Monitor, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, NeumannForcesSurfaceComplexForLazy::MyTriangleSpatialFE, BcEntMethodDisp, MoFEM::ForcesAndSourcesCore, CohesiveElement::AssembleRhsVectors, MonitorPostProc, DirichletDisplacementBc, MonitorPostProc, Monitor, Monitor, Smoother::MyVolumeFE, Smoother::MyVolumeFE, MonitorIncompressible, NonlinearElasticElement::MyVolumeFE, MoFEM::ProjectionFieldOn10NodeTet, EshelbianPlasticity::ContactTree, CountDown, BasicFiniteElements::SaveVertexDofOnTag, MoFEM::Projection10NodeCoordsOnField, FluidPressure::MyTriangleFE, BasicFiniteElements::SaveVertexDofOnTag, TestEntityMethod, and CountUp.

Definition at line 138 of file LoopMethods.cpp.

138  {
140  if (preProcessHook) {
141  ierr = preProcessHook();
142  CHKERRG(ierr);
143  } else {
144  SETERRQ(PETSC_COMM_SELF, MOFEM_OPERATION_UNSUCCESSFUL,
145  "should be implemented by user in derived class (preProcess)");
146  }
148 }

◆ query_interface()

MoFEMErrorCode MoFEM::BasicMethod::query_interface ( boost::typeindex::type_index  type_index,
UnknownInterface **  iface 
) const
inlinevirtual

Reimplemented from MoFEM::KspMethod.

Reimplemented in MoFEM::DofMethod, MoFEM::EntityMethod, and MoFEM::FEMethod.

Definition at line 185 of file LoopMethods.hpp.

186  {
188  *iface = const_cast<BasicMethod *>(this);
190  }

Member Data Documentation

◆ adjacenciesPtr

const FieldEntityEntFiniteElementAdjacencyMap_multiIndex* MoFEM::BasicMethod::adjacenciesPtr

raw pointer to container to adjacencies between dofs and finite elements

Definition at line 267 of file LoopMethods.hpp.

◆ cacheWeakPtr

boost::weak_ptr<CacheTuple> MoFEM::BasicMethod::cacheWeakPtr

Definition at line 351 of file LoopMethods.hpp.

◆ dofsPtr

const DofEntity_multiIndex* MoFEM::BasicMethod::dofsPtr

raw pointer container of dofs

Definition at line 257 of file LoopMethods.hpp.

◆ entitiesPtr

const FieldEntity_multiIndex* MoFEM::BasicMethod::entitiesPtr

raw pointer to container of field entities

Definition at line 255 of file LoopMethods.hpp.

◆ fieldsPtr

const Field_multiIndex* MoFEM::BasicMethod::fieldsPtr

raw pointer to fields container

Definition at line 252 of file LoopMethods.hpp.

◆ finiteElementsEntitiesPtr

const EntFiniteElement_multiIndex* MoFEM::BasicMethod::finiteElementsEntitiesPtr

raw pointer to container finite elements entities

Definition at line 263 of file LoopMethods.hpp.

◆ finiteElementsPtr

const FiniteElement_multiIndex* MoFEM::BasicMethod::finiteElementsPtr

raw pointer to container finite elements

Definition at line 260 of file LoopMethods.hpp.

◆ loHiFERank

std::pair<int, int> MoFEM::BasicMethod::loHiFERank

Llo and hi processor rank of iterated entities.

Definition at line 217 of file LoopMethods.hpp.

◆ loopSize

int MoFEM::BasicMethod::loopSize

local number oe methods to process

Definition at line 203 of file LoopMethods.hpp.

◆ matAssembleSwitch

boost::movelib::unique_ptr<bool> MoFEM::BasicMethod::matAssembleSwitch

Definition at line 349 of file LoopMethods.hpp.

◆ nInTheLoop

int MoFEM::BasicMethod::nInTheLoop

number currently of processed method

Definition at line 198 of file LoopMethods.hpp.

◆ operatorHook

boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::operatorHook

Hook function for operator.

Definition at line 304 of file LoopMethods.hpp.

◆ postProcessHook

boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::postProcessHook

Hook function for post-processing.

Definition at line 299 of file LoopMethods.hpp.

◆ preProcessHook

boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::preProcessHook

Hook function for pre-processing.

Definition at line 294 of file LoopMethods.hpp.

◆ problemPtr

const Problem* MoFEM::BasicMethod::problemPtr

raw pointer to problem

Definition at line 250 of file LoopMethods.hpp.

◆ rAnk

int MoFEM::BasicMethod::rAnk

processor rank

Definition at line 240 of file LoopMethods.hpp.

◆ refinedEntitiesPtr

const RefEntity_multiIndex* MoFEM::BasicMethod::refinedEntitiesPtr

container of mofem dof entities

Definition at line 245 of file LoopMethods.hpp.

◆ refinedFiniteElementsPtr

const RefElement_multiIndex* MoFEM::BasicMethod::refinedFiniteElementsPtr

container of mofem finite element entities

Definition at line 248 of file LoopMethods.hpp.

◆ sIze

int MoFEM::BasicMethod::sIze

number of processors in communicator

Definition at line 242 of file LoopMethods.hpp.

◆ vecAssembleSwitch

boost::movelib::unique_ptr<bool> MoFEM::BasicMethod::vecAssembleSwitch

Definition at line 348 of file LoopMethods.hpp.


The documentation for this struct was generated from the following files:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
MoFEM::TSMethod::TSMethod
TSMethod()
Definition: LoopMethods.cpp:91
MoFEM::BasicMethod::refinedEntitiesPtr
const RefEntity_multiIndex * refinedEntitiesPtr
container of mofem dof entities
Definition: LoopMethods.hpp:245
MoFEM::BasicMethod::nInTheLoop
int nInTheLoop
number currently of processed method
Definition: LoopMethods.hpp:198
BITFEID_SIZE
#define BITFEID_SIZE
max number of finite elements
Definition: definitions.h:234
MoFEM::BasicMethod::finiteElementsEntitiesPtr
const EntFiniteElement_multiIndex * finiteElementsEntitiesPtr
Definition: LoopMethods.hpp:263
MoFEM::BasicMethod::BasicMethod
BasicMethod()
Definition: LoopMethods.cpp:109
MoFEM::BasicMethod::preProcessHook
boost::function< MoFEMErrorCode()> preProcessHook
Hook function for pre-processing.
Definition: LoopMethods.hpp:294
THROW_MESSAGE
#define THROW_MESSAGE(msg)
Throw MoFEM exception.
Definition: definitions.h:574
MoFEM::BasicMethod::fieldsPtr
const Field_multiIndex * fieldsPtr
raw pointer to fields container
Definition: LoopMethods.hpp:252
MoFEM::BasicMethod::adjacenciesPtr
const FieldEntityEntFiniteElementAdjacencyMap_multiIndex * adjacenciesPtr
Definition: LoopMethods.hpp:267
MoFEM::BasicMethod::sIze
int sIze
number of processors in communicator
Definition: LoopMethods.hpp:242
MoFEM::BasicMethod::entitiesPtr
const FieldEntity_multiIndex * entitiesPtr
raw pointer to container of field entities
Definition: LoopMethods.hpp:255
MoFEM::PetscData::PetscData
PetscData()
Definition: LoopMethods.cpp:27
MoFEM::BasicMethod::rAnk
int rAnk
processor rank
Definition: LoopMethods.hpp:240
MoFEM::BasicMethod::postProcessHook
boost::function< MoFEMErrorCode()> postProcessHook
Hook function for post-processing.
Definition: LoopMethods.hpp:299
MoFEM::KspMethod::KspMethod
KspMethod()
Definition: LoopMethods.cpp:51
MoFEM::BasicMethod::refinedFiniteElementsPtr
const RefElement_multiIndex * refinedFiniteElementsPtr
container of mofem finite element entities
Definition: LoopMethods.hpp:248
MOFEM_OPERATION_UNSUCCESSFUL
@ MOFEM_OPERATION_UNSUCCESSFUL
Definition: definitions.h:34
MoFEM::BasicMethod::loopSize
int loopSize
local number oe methods to process
Definition: LoopMethods.hpp:203
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
MoFEM::BasicMethod::finiteElementsPtr
const FiniteElement_multiIndex * finiteElementsPtr
raw pointer to container finite elements
Definition: LoopMethods.hpp:260
MoFEM::BasicMethod::operatorHook
boost::function< MoFEMErrorCode()> operatorHook
Hook function for operator.
Definition: LoopMethods.hpp:304
MoFEM::BasicMethod::dofsPtr
const DofEntity_multiIndex * dofsPtr
raw pointer container of dofs
Definition: LoopMethods.hpp:257
MoFEM::SnesMethod::SnesMethod
SnesMethod()
Definition: LoopMethods.cpp:71
MoFEM::Exceptions::ierr
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
Definition: Exceptions.hpp:76
MoFEM::BasicMethod::cacheWeakPtr
boost::weak_ptr< CacheTuple > cacheWeakPtr
Definition: LoopMethods.hpp:351
MoFEM::BasicMethod::problemPtr
const Problem * problemPtr
raw pointer to problem
Definition: LoopMethods.hpp:250
MoFEM::BasicMethod::loHiFERank
std::pair< int, int > loHiFERank
Llo and hi processor rank of iterated entities.
Definition: LoopMethods.hpp:217
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453
MoFEM::field_it
Field_multiIndex::index< FieldName_mi_tag >::type::iterator field_it
Definition: Projection10NodeCoordsOnField.cpp:123
CHKERRG
#define CHKERRG(n)
Check error code of MoFEM/MOAB/PETSc function.
Definition: definitions.h:496