v0.14.0
Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes | List of all members
Monitor Struct Reference

[Push operators to pipeline] More...

Inheritance diagram for Monitor:
[legend]
Collaboration diagram for Monitor:
[legend]

Public Member Functions

 Monitor (SmartPetscObj< DM > dm, MoFEM::Interface &m_field, boost::shared_ptr< PostProcEle > post_proc, boost::shared_ptr< PostProcFaceEle > post_proc_bdry, boost::shared_ptr< MatrixDouble > velocity_field_ptr, boost::shared_ptr< MatrixDouble > x2_field_ptr, boost::shared_ptr< MatrixDouble > geometry_field_ptr, std::array< double, 3 > pass_field_eval_coords, boost::shared_ptr< SetPtsData > pass_field_eval_data)
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
 Monitor (SmartPetscObj< DM > dm, boost::shared_ptr< PostProcEle > post_proc)
 
MoFEMErrorCode preProcess ()
 function is run at the beginning of loop More...
 
MoFEMErrorCode operator() ()
 function is run for every finite element More...
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
 Monitor (SmartPetscObj< DM > dm, boost::shared_ptr< PostProcEle > post_proc)
 
MoFEMErrorCode preProcess ()
 function is run at the beginning of loop More...
 
MoFEMErrorCode operator() ()
 function is run for every finite element More...
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
 Monitor (SmartPetscObj< DM > dm, boost::shared_ptr< PostProcEleBdy > post_proc)
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
 Monitor (SmartPetscObj< DM > dm, boost::shared_ptr< PostProcEle > post_proc)
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
 Monitor (SmartPetscObj< DM > dm, boost::shared_ptr< PostProcEle > post_proc)
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
 Monitor (SmartPetscObj< DM > dm, boost::shared_ptr< moab::Core > post_proc_mesh, boost::shared_ptr< PostProcEleDomainCont > post_proc, boost::shared_ptr< PostProcEleBdyCont > post_proc_edge, std::pair< boost::shared_ptr< BoundaryEle >, boost::shared_ptr< VectorDouble >> p)
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
 Monitor (SmartPetscObj< DM > dm, std::pair< boost::shared_ptr< PostProcEleDomain >, boost::shared_ptr< PostProcEleBdy >> pair_post_proc_fe, boost::shared_ptr< DomainEle > reaction_fe, std::vector< boost::shared_ptr< ScalingMethod >> smv)
 
MoFEMErrorCode postProcess ()
 function is run at the end of loop More...
 
- Public Member Functions inherited from MoFEM::FEMethod
MoFEMErrorCode query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const
 
 FEMethod ()=default
 
auto getFEName () const
 get finite element name More...
 
auto getDataDofsPtr () const
 
auto getDataVectorDofsPtr () const
 
const FieldEntity_vector_viewgetDataFieldEnts () const
 
boost::shared_ptr< FieldEntity_vector_view > & getDataFieldEntsPtr () const
 
auto & getRowFieldEnts () const
 
auto & getRowFieldEntsPtr () const
 
auto & getColFieldEnts () const
 
auto & getColFieldEntsPtr () const
 
auto getRowDofsPtr () const
 
auto getColDofsPtr () const
 
auto getNumberOfNodes () const
 
EntityHandle getFEEntityHandle () const
 
MoFEMErrorCode getNodeData (const std::string field_name, VectorDouble &data, const bool reset_dofs=true)
 
- Public Member Functions inherited from MoFEM::BasicMethod
 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...
 
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

MoFEM::InterfacemField
 
- Public Attributes inherited from MoFEM::FEMethod
std::string feName
 Name of finite element. More...
 
boost::shared_ptr< const NumeredEntFiniteElementnumeredEntFiniteElementPtr
 
boost::function< bool(FEMethod *fe_method_ptr)> exeTestHook
 Tet if element to skip element. More...
 
- Public Attributes inherited from MoFEM::BasicMethod
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 dx
 
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_dx
 solution update 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...
 

Static Public Attributes

static constexpr int saveEveryNthStep = 1
 
- 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 CtxSetDX = PetscData::Switches(CTX_SET_DX)
 
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)
 

Private Attributes

SmartPetscObj< DM > dM
 
boost::shared_ptr< PostProcElepostProc
 
boost::shared_ptr< PostProcFaceElepostProcBdy
 
boost::shared_ptr< MatrixDouble > velocityFieldPtr
 
boost::shared_ptr< MatrixDouble > x2FieldPtr
 
boost::shared_ptr< MatrixDouble > geometryFieldPtr
 
std::array< double, 3 > fieldEvalCoords
 
boost::shared_ptr< SetPtsDatafieldEvalData
 
boost::shared_ptr< PostProcEleBdypostProc
 
boost::shared_ptr< moab::Core > postProcMesh
 
boost::shared_ptr< PostProcEleDomainContpostProc
 
boost::shared_ptr< PostProcEleBdyContpostProcEdge
 
boost::shared_ptr< BoundaryEleliftFE
 
boost::shared_ptr< VectorDouble > liftVec
 
boost::shared_ptr< PostProcEleDomaindomainPostProcFe
 
boost::shared_ptr< PostProcEleBdyskinPostProcFe
 
boost::shared_ptr< FEMethodreactionFE
 
boost::shared_ptr< BoundaryEleintegrateTraction
 
SmartPetscObj< Vec > fRes
 
VecOfTimeScalingMethods vecOfTimeScalingMethods
 

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_DX = 1 << 4, CTX_SET_X_T = 1 << 5, 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...
 

Detailed Description

[Push operators to pipeline]

[Push operators to pip]

Monitor solution.

Monitor solution

This functions is called by TS solver at the end of each step. It is used to output results to the hard drive.

This functions is called by TS solver at the end of each step. It is used to output results to the hard drive.

Monitor solution

This functions is called by TS kso at the end of each step. It is used

Examples
adolc_plasticity.cpp, dynamic_first_order_con_law.cpp, free_surface.cpp, heat_equation.cpp, photon_diffusion.cpp, PlasticOpsMonitor.hpp, reaction_diffusion.cpp, shallow_wave.cpp, and wave_equation.cpp.

Definition at line 774 of file dynamic_first_order_con_law.cpp.

Constructor & Destructor Documentation

◆ Monitor() [1/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
MoFEM::Interface m_field,
boost::shared_ptr< PostProcEle post_proc,
boost::shared_ptr< PostProcFaceEle post_proc_bdry,
boost::shared_ptr< MatrixDouble >  velocity_field_ptr,
boost::shared_ptr< MatrixDouble >  x2_field_ptr,
boost::shared_ptr< MatrixDouble >  geometry_field_ptr,
std::array< double, 3 >  pass_field_eval_coords,
boost::shared_ptr< SetPtsData pass_field_eval_data 
)
inline
Examples
free_surface.cpp.

Definition at line 776 of file dynamic_first_order_con_law.cpp.

784  : dM(dm), mField(m_field), postProc(post_proc),
785  postProcBdy(post_proc_bdry), velocityFieldPtr(velocity_field_ptr),
786  x2FieldPtr(x2_field_ptr), geometryFieldPtr(geometry_field_ptr),
787  fieldEvalCoords(pass_field_eval_coords),
788  fieldEvalData(pass_field_eval_data){};

◆ Monitor() [2/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
boost::shared_ptr< PostProcEle post_proc 
)
inline

Definition at line 68 of file heat_equation.cpp.

69  : dM(dm), postProc(post_proc){};

◆ Monitor() [3/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
boost::shared_ptr< PostProcEle post_proc 
)
inline

Definition at line 65 of file wave_equation.cpp.

66  : dM(dm), postProc(post_proc){};

◆ Monitor() [4/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
boost::shared_ptr< PostProcEleBdy post_proc 
)
inline

Definition at line 220 of file nonlinear_elastic.cpp.

221  : dM(dm), postProc(post_proc){};

◆ Monitor() [5/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
boost::shared_ptr< PostProcEle post_proc 
)
inline

Definition at line 310 of file nonlinear_dynamic_elastic.cpp.

311  : dM(dm), postProc(post_proc){};

◆ Monitor() [6/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
boost::shared_ptr< PostProcEle post_proc 
)
inline

Definition at line 731 of file shallow_wave.cpp.

732  : dM(dm), postProc(post_proc){};

◆ Monitor() [7/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
boost::shared_ptr< moab::Core >  post_proc_mesh,
boost::shared_ptr< PostProcEleDomainCont post_proc,
boost::shared_ptr< PostProcEleBdyCont post_proc_edge,
std::pair< boost::shared_ptr< BoundaryEle >, boost::shared_ptr< VectorDouble >>  p 
)
inline

Definition at line 1989 of file free_surface.cpp.

1995  : dM(dm), postProcMesh(post_proc_mesh), postProc(post_proc),
1996  postProcEdge(post_proc_edge), liftFE(p.first), liftVec(p.second) {}

◆ Monitor() [8/8]

Monitor::Monitor ( SmartPetscObj< DM >  dm,
std::pair< boost::shared_ptr< PostProcEleDomain >, boost::shared_ptr< PostProcEleBdy >>  pair_post_proc_fe,
boost::shared_ptr< DomainEle reaction_fe,
std::vector< boost::shared_ptr< ScalingMethod >>  smv 
)
inline

Definition at line 501 of file adolc_plasticity.cpp.

507  : dM(dm), reactionFE(reaction_fe), vecOfTimeScalingMethods(smv) {
509  domainPostProcFe = pair_post_proc_fe.first;
510  skinPostProcFe = pair_post_proc_fe.second;
511 
512  MoFEM::Interface *m_field_ptr;
513  CHKERR DMoFEMGetInterfacePtr(dM, &m_field_ptr);
514 #ifdef ADD_CONTACT
515  auto get_integrate_traction = [&]() {
516  auto integrate_traction = boost::make_shared<BoundaryEle>(*m_field_ptr);
517  auto common_data_ptr = boost::make_shared<ContactOps::CommonData>();
520  integrate_traction->getOpPtrVector(), {HDIV}, "GEOMETRY")),
521  "Apply transform");
522  // We have to integrate on curved face geometry, thus integration weight
523  // have to adjusted.
524  integrate_traction->getOpPtrVector().push_back(
526  integrate_traction->getRuleHook = [](int, int, int approx_order) {
527  return 2 * approx_order + 2 - 1;
528  };
529 
532  BoundaryEleOp>(
533  integrate_traction->getOpPtrVector(), "SIGMA", 0)),
534  "push operators to calculate traction");
535 
536  return integrate_traction;
537  };
538 
539  integrateTraction = get_integrate_traction();
540 #endif
541  }

Member Function Documentation

◆ operator()() [1/2]

MoFEMErrorCode Monitor::operator() ( )
inlinevirtual

function is run for every finite element

It is used to calculate element local matrices and assembly. It can be used for post-processing.

Reimplemented from MoFEM::BasicMethod.

Definition at line 69 of file wave_equation.cpp.

69 { return 0; }

◆ operator()() [2/2]

MoFEMErrorCode Monitor::operator() ( )
inlinevirtual

function is run for every finite element

It is used to calculate element local matrices and assembly. It can be used for post-processing.

Reimplemented from MoFEM::BasicMethod.

Definition at line 72 of file heat_equation.cpp.

72 { return 0; }

◆ postProcess() [1/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 73 of file wave_equation.cpp.

73  {
75  if (ts_step % saveEveryNthStep == 0) {
77  CHKERR postProc->writeFile(
78  "out_level_" + boost::lexical_cast<std::string>(ts_step) + ".h5m");
79  }
81  }

◆ postProcess() [2/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 76 of file heat_equation.cpp.

76  {
78  if (ts_step % saveEveryNthStep == 0) {
80  CHKERR postProc->writeFile(
81  "out_level_" + boost::lexical_cast<std::string>(ts_step) + ".h5m");
82  }
84  }

◆ postProcess() [3/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 222 of file nonlinear_elastic.cpp.

222  {
224  constexpr int save_every_nth_step = 1;
225  if (ts_step % save_every_nth_step == 0) {
228  postProc->mField, postProc->getPostProcMesh(), {"U"});
229 
230  CHKERR postProc->writeFile(
231  "out_step_" + boost::lexical_cast<std::string>(ts_step) + ".h5m");
232  }
234  }

◆ postProcess() [4/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 312 of file nonlinear_dynamic_elastic.cpp.

312  {
314  constexpr int save_every_nth_step = 1;
315  if (ts_step % save_every_nth_step == 0) {
317  CHKERR postProc->writeFile(
318  "out_step_" + boost::lexical_cast<std::string>(ts_step) + ".h5m");
319  }
321  }

◆ postProcess() [5/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 542 of file adolc_plasticity.cpp.

542  {
544  int save_every_nth_step = 1;
545  CHKERR PetscOptionsGetInt(PETSC_NULL, "", "-save_every_nth_step",
546  &save_every_nth_step, PETSC_NULL);
547 #ifdef ADD_CONTACT
548  auto print_traction = [&](const std::string msg) {
550  MoFEM::Interface *m_field_ptr;
551  CHKERR DMoFEMGetInterfacePtr(dM, &m_field_ptr);
552  if (!m_field_ptr->get_comm_rank()) {
553  const double *t_ptr;
554  CHKERR VecGetArrayRead(ContactOps::CommonData::totalTraction, &t_ptr);
555  MOFEM_LOG_C("CONTACT", Sev::inform, "%s time %3.4e %3.4e %3.4e %3.4e",
556  msg.c_str(), ts_t, t_ptr[0], t_ptr[1], t_ptr[2]);
557  CHKERR VecRestoreArrayRead(ContactOps::CommonData::totalTraction,
558  &t_ptr);
559  }
561  };
562 #endif
563 
564  auto make_vtk = [&]() {
566  if (domainPostProcFe) {
568  getCacheWeakPtr());
569  CHKERR domainPostProcFe->writeFile(
570  "out_plastic_" + boost::lexical_cast<std::string>(ts_step) +
571  ".h5m");
572  }
573  if (skinPostProcFe) {
575  getCacheWeakPtr());
576  CHKERR skinPostProcFe->writeFile(
577  "out_skin_plastic_" + boost::lexical_cast<std::string>(ts_step) +
578  ".h5m");
579  }
581  };
582 
583  if (!(ts_step % save_every_nth_step)) {
584  CHKERR make_vtk();
585  }
586  if (reactionFE) {
587  CHKERR VecZeroEntries(fRes);
588  reactionFE->f = fRes;
590  CHKERR VecAssemblyBegin(fRes);
591  CHKERR VecAssemblyEnd(fRes);
592  CHKERR VecGhostUpdateBegin(fRes, ADD_VALUES, SCATTER_REVERSE);
593  CHKERR VecGhostUpdateEnd(fRes, ADD_VALUES, SCATTER_REVERSE);
594 
595  MoFEM::Interface *m_field_ptr;
596  CHKERR DMoFEMGetInterfacePtr(dM, &m_field_ptr);
598  *m_field_ptr, reactionFE, fRes)();
599 
600  double nrm;
601  CHKERR VecNorm(fRes, NORM_2, &nrm);
602  MOFEM_LOG("PlasticPrb", Sev::verbose)
603  << "Residual norm " << nrm << " at time step " << ts_step;
604  }
605 
606 #ifdef ADD_CONTACT
607  auto calculate_traction = [&] {
614  };
615 #endif
616 
617  auto get_min_max_displacement = [&]() {
619  MoFEM::Interface *m_field_ptr;
620  CHKERR DMoFEMGetInterfacePtr(dM, &m_field_ptr);
621 
622  std::array<double, 4> a_min = {DBL_MAX, DBL_MAX, DBL_MAX, 0};
623  std::array<double, 4> a_max = {-DBL_MAX, -DBL_MAX, -DBL_MAX, 0};
624 
625  auto get_min_max = [&](boost::shared_ptr<FieldEntity> field_entity_ptr) {
627  int d = 0;
628  for (auto v : field_entity_ptr->getEntFieldData()) {
629  a_min[d] = std::min(a_min[d], v);
630  a_max[d] = std::max(a_max[d], v);
631  ++d;
632  }
634  };
635 
636  a_min[SPACE_DIM] = 0;
637  a_max[SPACE_DIM] = 0;
638 
639  Range verts;
640  CHKERR m_field_ptr->get_field_entities_by_type("U", MBVERTEX, verts);
641  CHKERR m_field_ptr->getInterface<FieldBlas>()->fieldLambdaOnEntities(
642  get_min_max, "U", &verts);
643 
644  auto mpi_reduce = [&](auto &a, auto op) {
645  std::array<double, 3> a_mpi = {0, 0, 0};
646  MPI_Allreduce(a.data(), a_mpi.data(), 3, MPI_DOUBLE, op,
647  m_field_ptr->get_comm());
648  return a_mpi;
649  };
650 
651  auto a_min_mpi = mpi_reduce(a_min, MPI_MIN);
652  auto a_max_mpi = mpi_reduce(a_max, MPI_MAX);
653 
654  MOFEM_LOG("PlasticPrb", Sev::inform)
655  << "Min displacement " << a_min_mpi[0] << " " << a_min_mpi[1] << " "
656  << a_min_mpi[2];
657  MOFEM_LOG("PlasticPrb", Sev::inform)
658  << "Max displacement " << a_max_mpi[0] << " " << a_max_mpi[1] << " "
659  << a_max_mpi[2];
661  };
662  CHKERR get_min_max_displacement();
663 #ifdef ADD_CONTACT
664  CHKERR calculate_traction();
665  CHKERR print_traction("Contact force");
666 #endif
667  double scale = 1;
668  for (auto s : vecOfTimeScalingMethods) {
669  scale *= s->getScale(this->ts_t);
670  }
671 
672  MOFEM_LOG("PlasticPrb", Sev::inform)
673  << "Time: " << this->ts_t << " scale: " << scale;
674 
676  }

◆ postProcess() [6/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 733 of file shallow_wave.cpp.

733  {
735  constexpr int save_every_nth_step = 50;
736  if (ts_step % save_every_nth_step == 0) {
738  CHKERR postProc->writeFile(
739  "out_step_" + boost::lexical_cast<std::string>(ts_step) + ".h5m");
740  MOFEM_LOG("SW", Sev::verbose)
741  << "writing vector in binary to vector.dat ...";
742  PetscViewer viewer;
743  PetscViewerBinaryOpen(PETSC_COMM_WORLD, "vector.dat", FILE_MODE_WRITE,
744  &viewer);
745  VecView(ts_u, viewer);
746  PetscViewerDestroy(&viewer);
747  }
749  }

◆ postProcess() [7/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Examples
free_surface.cpp.

Definition at line 789 of file dynamic_first_order_con_law.cpp.

789  {
791 
792  // cerr << "wagawaga\n";
793  auto *simple = mField.getInterface<Simple>();
794 
795  if (SPACE_DIM == 3) {
796  CHKERR mField.getInterface<FieldEvaluatorInterface>()->evalFEAtThePoint3D(
797  fieldEvalCoords.data(), 1e-12, simple->getProblemName(),
798  simple->getDomainFEName(), fieldEvalData, mField.get_comm_rank(),
800  } else {
801  CHKERR mField.getInterface<FieldEvaluatorInterface>()->evalFEAtThePoint2D(
802  fieldEvalCoords.data(), 1e-12, simple->getProblemName(),
803  simple->getDomainFEName(), fieldEvalData, mField.get_comm_rank(),
805  }
806 
807  if (velocityFieldPtr->size1()) {
808  auto t_vel = getFTensor1FromMat<SPACE_DIM>(*velocityFieldPtr);
809  auto t_x2_field = getFTensor1FromMat<SPACE_DIM>(*x2FieldPtr);
810  auto t_geom = getFTensor1FromMat<SPACE_DIM>(*geometryFieldPtr);
811 
812  double u_x = t_x2_field(0) - t_geom(0);
813  double u_y = t_x2_field(1) - t_geom(1);
814  double u_z = t_x2_field(2) - t_geom(2);
815 
816  MOFEM_LOG("SYNC", Sev::inform)
817  << "Velocities x: " << t_vel(0) << " y: " << t_vel(1)
818  << " z: " << t_vel(2) << "\n";
819  MOFEM_LOG("SYNC", Sev::inform) << "Displacement x: " << u_x
820  << " y: " << u_y << " z: " << u_z << "\n";
821  }
822 
824  std::regex((boost::format("%s(.*)") % "Data_Vertex").str()))) {
825  Range ents;
826  mField.get_moab().get_entities_by_dimension(m->getMeshset(), 0, ents,
827  true);
828  auto print_vets = [](boost::shared_ptr<FieldEntity> ent_ptr) {
830  if (!(ent_ptr->getPStatus() & PSTATUS_NOT_OWNED)) {
831  MOFEM_LOG("SYNC", Sev::inform)
832  << "Velocities: " << ent_ptr->getEntFieldData()[0] << " "
833  << ent_ptr->getEntFieldData()[1] << " "
834  << ent_ptr->getEntFieldData()[2] << "\n";
835  }
837  };
838  CHKERR mField.getInterface<FieldBlas>()->fieldLambdaOnEntities(
839  print_vets, "V", &ents);
840  }
841  MOFEM_LOG_SEVERITY_SYNC(mField.get_comm(), Sev::inform);
842 
843  PetscBool print_volume = PETSC_FALSE;
844  CHKERR PetscOptionsGetBool(PETSC_NULL, "", "-print_volume", &print_volume,
845  PETSC_NULL);
846 
847  PetscBool print_skin = PETSC_FALSE;
848  CHKERR PetscOptionsGetBool(PETSC_NULL, "", "-print_skin", &print_skin,
849  PETSC_NULL);
850 
851  int save_every_nth_step = 1;
852  CHKERR PetscOptionsGetInt(PETSC_NULL, "", "-save_step",
853  &save_every_nth_step, PETSC_NULL);
854  if (ts_step % save_every_nth_step == 0) {
855 
856  if (print_volume) {
858  CHKERR postProc->writeFile(
859  "out_step_" + boost::lexical_cast<std::string>(ts_step) + ".h5m");
860  }
861 
862  if (print_skin) {
864  CHKERR postProcBdy->writeFile(
865  "out_boundary_" + boost::lexical_cast<std::string>(ts_step) +
866  ".h5m");
867  }
868  }
870  }

◆ postProcess() [8/8]

MoFEMErrorCode Monitor::postProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 1997 of file free_surface.cpp.

1997  {
1999 
2000  MOFEM_LOG("FS", Sev::verbose) << "Monitor";
2001  constexpr int save_every_nth_step = 1;
2002  if (ts_step % save_every_nth_step == 0) {
2003  MOFEM_LOG("FS", Sev::verbose) << "Mesh pre proc";
2004  MoFEM::Interface *m_field_ptr;
2005  CHKERR DMoFEMGetInterfacePtr(dM, &m_field_ptr);
2006  auto post_proc_begin =
2007  boost::make_shared<PostProcBrokenMeshInMoabBaseBegin>(*m_field_ptr,
2008  postProcMesh);
2009  auto post_proc_end = boost::make_shared<PostProcBrokenMeshInMoabBaseEnd>(
2010  *m_field_ptr, postProcMesh);
2011  CHKERR DMoFEMPreProcessFiniteElements(dM, post_proc_begin->getFEMethod());
2013  this->getCacheWeakPtr());
2015  this->getCacheWeakPtr());
2016  CHKERR DMoFEMPostProcessFiniteElements(dM, post_proc_end->getFEMethod());
2017  CHKERR post_proc_end->writeFile(
2018  "out_step_" + boost::lexical_cast<std::string>(ts_step) + ".h5m");
2019  MOFEM_LOG("FS", Sev::verbose) << "Mesh pre proc done";
2020  }
2021 
2022  liftVec->resize(SPACE_DIM, false);
2023  liftVec->clear();
2025  MPI_Allreduce(MPI_IN_PLACE, &(*liftVec)[0], SPACE_DIM, MPI_DOUBLE, MPI_SUM,
2026  MPI_COMM_WORLD);
2027  MOFEM_LOG("FS", Sev::inform)
2028  << "Step " << ts_step << " time " << ts_t
2029  << " lift vec x: " << (*liftVec)[0] << " y: " << (*liftVec)[1];
2030 
2032  }

◆ preProcess() [1/2]

MoFEMErrorCode Monitor::preProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 68 of file wave_equation.cpp.

68 { return 0; }

◆ preProcess() [2/2]

MoFEMErrorCode Monitor::preProcess ( )
inlinevirtual

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 from MoFEM::BasicMethod.

Definition at line 71 of file heat_equation.cpp.

71 { return 0; }

Member Data Documentation

◆ dM

SmartPetscObj< DM > Monitor::dM
private
Examples
free_surface.cpp.

Definition at line 873 of file dynamic_first_order_con_law.cpp.

◆ domainPostProcFe

boost::shared_ptr<PostProcEleDomain> Monitor::domainPostProcFe
private

Definition at line 680 of file adolc_plasticity.cpp.

◆ fieldEvalCoords

std::array<double, 3> Monitor::fieldEvalCoords
private

Definition at line 879 of file dynamic_first_order_con_law.cpp.

◆ fieldEvalData

boost::shared_ptr<SetPtsData> Monitor::fieldEvalData
private

Definition at line 880 of file dynamic_first_order_con_law.cpp.

◆ fRes

SmartPetscObj<Vec> Monitor::fRes
private

Definition at line 686 of file adolc_plasticity.cpp.

◆ geometryFieldPtr

boost::shared_ptr<MatrixDouble> Monitor::geometryFieldPtr
private

Definition at line 878 of file dynamic_first_order_con_law.cpp.

◆ integrateTraction

boost::shared_ptr<BoundaryEle> Monitor::integrateTraction
private

Definition at line 684 of file adolc_plasticity.cpp.

◆ liftFE

boost::shared_ptr<BoundaryEle> Monitor::liftFE
private
Examples
free_surface.cpp.

Definition at line 2039 of file free_surface.cpp.

◆ liftVec

boost::shared_ptr<VectorDouble> Monitor::liftVec
private
Examples
free_surface.cpp.

Definition at line 2040 of file free_surface.cpp.

◆ mField

MoFEM::Interface& Monitor::mField

Definition at line 775 of file dynamic_first_order_con_law.cpp.

◆ postProc [1/3]

boost::shared_ptr<PostProcEleBdy> Monitor::postProc
private

Definition at line 238 of file nonlinear_elastic.cpp.

◆ postProc [2/3]

boost::shared_ptr< PostProcEle > Monitor::postProc
private
Examples
free_surface.cpp.

Definition at line 874 of file dynamic_first_order_con_law.cpp.

◆ postProc [3/3]

boost::shared_ptr<PostProcEleDomainCont> Monitor::postProc
private

Definition at line 2037 of file free_surface.cpp.

◆ postProcBdy

boost::shared_ptr<PostProcFaceEle> Monitor::postProcBdy
private

Definition at line 875 of file dynamic_first_order_con_law.cpp.

◆ postProcEdge

boost::shared_ptr<PostProcEleBdyCont> Monitor::postProcEdge
private
Examples
free_surface.cpp.

Definition at line 2038 of file free_surface.cpp.

◆ postProcMesh

boost::shared_ptr<moab::Core> Monitor::postProcMesh
private
Examples
free_surface.cpp.

Definition at line 2036 of file free_surface.cpp.

◆ reactionFE

boost::shared_ptr<FEMethod> Monitor::reactionFE
private

Definition at line 682 of file adolc_plasticity.cpp.

◆ saveEveryNthStep

static constexpr int Monitor::saveEveryNthStep = 1
staticconstexpr

Definition at line 74 of file heat_equation.cpp.

◆ skinPostProcFe

boost::shared_ptr<PostProcEleBdy> Monitor::skinPostProcFe
private

Definition at line 681 of file adolc_plasticity.cpp.

◆ vecOfTimeScalingMethods

VecOfTimeScalingMethods Monitor::vecOfTimeScalingMethods
private

Definition at line 687 of file adolc_plasticity.cpp.

◆ velocityFieldPtr

boost::shared_ptr<MatrixDouble> Monitor::velocityFieldPtr
private

Definition at line 876 of file dynamic_first_order_con_law.cpp.

◆ x2FieldPtr

boost::shared_ptr<MatrixDouble> Monitor::x2FieldPtr
private

Definition at line 877 of file dynamic_first_order_con_law.cpp.


The documentation for this struct was generated from the following files:
MoFEM::UnknownInterface::getInterface
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.
Definition: UnknownInterface.hpp:93
SPACE_DIM
constexpr int SPACE_DIM
Definition: adolc_plasticity.cpp:14
Monitor::vecOfTimeScalingMethods
VecOfTimeScalingMethods vecOfTimeScalingMethods
Definition: adolc_plasticity.cpp:687
MoFEM::EssentialPreProcReaction< DisplacementCubitBcData >
Specialization for DisplacementCubitBcData.
Definition: EssentialDisplacementCubitBcData.hpp:157
scale
double scale
Definition: adolc_plasticity.cpp:109
MOFEM_LOG_SEVERITY_SYNC
#define MOFEM_LOG_SEVERITY_SYNC(comm, severity)
Synchronise "SYNC" on curtain severity level.
Definition: LogManager.hpp:352
Monitor::liftFE
boost::shared_ptr< BoundaryEle > liftFE
Definition: free_surface.cpp:2039
Monitor::fieldEvalCoords
std::array< double, 3 > fieldEvalCoords
Definition: dynamic_first_order_con_law.cpp:879
MoFEM::CoreInterface::get_comm
virtual MPI_Comm & get_comm() const =0
CHK_THROW_MESSAGE
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
Definition: definitions.h:609
SPACE_DIM
constexpr int SPACE_DIM
Definition: dynamic_first_order_con_law.cpp:23
MoFEM::CoreInterface::get_comm_rank
virtual int get_comm_rank() const =0
MoFEM::Simple
Simple interface for fast problem set-up.
Definition: Simple.hpp:27
MoFEM::DeprecatedCoreInterface
Deprecated interface functions.
Definition: DeprecatedCoreInterface.hpp:16
Monitor::reactionFE
boost::shared_ptr< FEMethod > reactionFE
Definition: adolc_plasticity.cpp:682
save_every_nth_step
int save_every_nth_step
Definition: photon_diffusion.cpp:67
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:548
MoFEM::createDMVector
auto createDMVector(DM dm)
Get smart vector from DM.
Definition: DMMoFEM.hpp:1099
MoFEM::CoreInterface::get_moab
virtual moab::Interface & get_moab()=0
Monitor::skinPostProcFe
boost::shared_ptr< PostProcEleBdy > skinPostProcFe
Definition: adolc_plasticity.cpp:681
Monitor::velocityFieldPtr
boost::shared_ptr< MatrixDouble > velocityFieldPtr
Definition: dynamic_first_order_con_law.cpp:876
Monitor::mField
MoFEM::Interface & mField
Definition: dynamic_first_order_con_law.cpp:775
Monitor::domainPostProcFe
boost::shared_ptr< PostProcEleDomain > domainPostProcFe
Definition: adolc_plasticity.cpp:680
a
constexpr double a
Definition: approx_sphere.cpp:30
BoundaryEleOp
ContactOps::CommonData::totalTraction
static SmartPetscObj< Vec > totalTraction
Definition: ContactOps.hpp:29
MOFEM_LOG_C
#define MOFEM_LOG_C(channel, severity, format,...)
Definition: LogManager.hpp:311
MoFEM::FieldEvaluatorInterface
Field evaluator interface.
Definition: FieldEvaluator.hpp:21
simple
void simple(double P1[], double P2[], double P3[], double c[], const int N)
Definition: acoustic.cpp:69
Monitor::fieldEvalData
boost::shared_ptr< SetPtsData > fieldEvalData
Definition: dynamic_first_order_con_law.cpp:880
MoFEM::GAUSS
@ GAUSS
Definition: FormsIntegrators.hpp:136
SPACE_DIM
constexpr int SPACE_DIM
Definition: free_surface.cpp:80
Monitor::postProcMesh
boost::shared_ptr< moab::Core > postProcMesh
Definition: free_surface.cpp:2036
Monitor::dM
SmartPetscObj< DM > dM
Definition: dynamic_first_order_con_law.cpp:873
MoFEM::DMoFEMPreProcessFiniteElements
PetscErrorCode DMoFEMPreProcessFiniteElements(DM dm, MoFEM::FEMethod *method)
execute finite element method for each element in dm (problem)
Definition: DMMoFEM.cpp:546
Monitor::postProcBdy
boost::shared_ptr< PostProcFaceEle > postProcBdy
Definition: dynamic_first_order_con_law.cpp:875
MoFEM::DMoFEMPostProcessFiniteElements
PetscErrorCode DMoFEMPostProcessFiniteElements(DM dm, MoFEM::FEMethod *method)
execute finite element method for each element in dm (problem)
Definition: DMMoFEM.cpp:556
MoFEM::OpSetHOWeightsOnSubDim
Definition: HODataOperators.hpp:145
MoFEM::AddHOOps
Add operators pushing bases from local to physical configuration.
Definition: HODataOperators.hpp:417
MoFEM::TSMethod::ts_step
PetscInt ts_step
time step number
Definition: LoopMethods.hpp:163
v
const double v
phase velocity of light in medium (cm/ns)
Definition: initial_diffusion.cpp:40
Range
Monitor::fRes
SmartPetscObj< Vec > fRes
Definition: adolc_plasticity.cpp:686
MOFEM_LOG
#define MOFEM_LOG(channel, severity)
Log.
Definition: LogManager.hpp:308
MoFEM::TSMethod::ts_t
PetscReal ts_t
time
Definition: LoopMethods.hpp:166
Monitor::x2FieldPtr
boost::shared_ptr< MatrixDouble > x2FieldPtr
Definition: dynamic_first_order_con_law.cpp:877
MoFEM::DMoFEMGetInterfacePtr
PetscErrorCode DMoFEMGetInterfacePtr(DM dm, MoFEM::Interface **m_field_ptr)
Get pointer to MoFEM::Interface.
Definition: DMMoFEM.cpp:414
MoFEM::TSMethod::ts_u
Vec & ts_u
state vector
Definition: LoopMethods.hpp:169
approx_order
int approx_order
Definition: test_broken_space.cpp:54
Monitor::integrateTraction
boost::shared_ptr< BoundaryEle > integrateTraction
Definition: adolc_plasticity.cpp:684
MoFEM::MeshsetsManager
Interface for managing meshsets containing materials and boundary conditions.
Definition: MeshsetsManager.hpp:104
Monitor::postProc
boost::shared_ptr< PostProcEle > postProc
Definition: dynamic_first_order_con_law.cpp:874
sdf_hertz_2d_axisymm_plane.d
float d
Definition: sdf_hertz_2d_axisymm_plane.py:4
m
FTensor::Index< 'm', 3 > m
Definition: shallow_wave.cpp:80
QUIET
@ QUIET
Definition: definitions.h:221
Monitor::saveEveryNthStep
static constexpr int saveEveryNthStep
Definition: heat_equation.cpp:74
MoFEM::BasicMethod::getCacheWeakPtr
boost::weak_ptr< CacheTuple > getCacheWeakPtr() const
Get the cache weak ptr object.
Definition: LoopMethods.hpp:348
MoFEM::MeshsetsManager::getCubitMeshsetPtr
MoFEMErrorCode getCubitMeshsetPtr(const int ms_id, const CubitBCType cubit_bc_type, const CubitMeshSets **cubit_meshset_ptr) const
get cubit meshset
Definition: MeshsetsManager.cpp:589
MoFEM::EssentialPreProc
Class (Function) to enforce essential constrains.
Definition: Essential.hpp:25
Monitor::postProcEdge
boost::shared_ptr< PostProcEleBdyCont > postProcEdge
Definition: free_surface.cpp:2038
MoFEM::CoreInterface::get_field_entities_by_type
virtual MoFEMErrorCode get_field_entities_by_type(const std::string name, EntityType type, Range &ents) const =0
get entities in the field by type
Monitor::liftVec
boost::shared_ptr< VectorDouble > liftVec
Definition: free_surface.cpp:2040
ContactOps::opFactoryCalculateTraction
MoFEMErrorCode opFactoryCalculateTraction(boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pip, std::string sigma, bool is_axisymmetric=false)
Definition: ContactOps.hpp:1362
MoFEM::DMoFEMLoopFiniteElements
PetscErrorCode DMoFEMLoopFiniteElements(DM dm, const char fe_name[], MoFEM::FEMethod *method, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr())
Executes FEMethod for finite elements in DM.
Definition: DMMoFEM.cpp:586
MF_EXIST
@ MF_EXIST
Definition: definitions.h:113
convert.int
int
Definition: convert.py:64
MoFEM::PetscOptionsGetInt
PetscErrorCode PetscOptionsGetInt(PetscOptions *, const char pre[], const char name[], PetscInt *ivalue, PetscBool *set)
Definition: DeprecatedPetsc.hpp:142
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429
MoFEM::FieldBlas
Basic algebra on fields.
Definition: FieldBlas.hpp:21
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359
Monitor::geometryFieldPtr
boost::shared_ptr< MatrixDouble > geometryFieldPtr
Definition: dynamic_first_order_con_law.cpp:878
MoFEM::PetscOptionsGetBool
PetscErrorCode PetscOptionsGetBool(PetscOptions *, const char pre[], const char name[], PetscBool *bval, PetscBool *set)
Definition: DeprecatedPetsc.hpp:182