v0.8.15
Public Member Functions | Public Attributes | List of all members
MoFEM::DMCtx Struct Reference

PETSc Discrete Manager data structure. More...

#include <src/petsc/DMMoFEM.hpp>

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

Public Member Functions

MoFEMErrorCode query_interface (const MOFEMuuid &uuid, UnknownInterface **iface) const
 
 DMCtx ()
 
virtual ~DMCtx ()
 
- Public Member Functions inherited from MoFEM::UnknownInterface
template<class IFACE >
MoFEMErrorCode registerInterface (const MOFEMuuid &uuid, bool error_if_registration_failed=true)
 Register interface. More...
 
template<class IFACE , bool VERIFY = false>
MoFEMErrorCode getInterface (const MOFEMuuid &uuid, IFACE *&iface) const
 Get interface by uuid and return reference to pointer of interface. More...
 
template<class IFACE >
MoFEMErrorCode getInterface (IFACE *&iface) const
 Get interface refernce 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 ()
 
virtual MoFEMErrorCode getLibVersion (Version &version) const
 Get library version. More...
 
virtual const MoFEMErrorCode getFileVersion (moab::Interface &moab, Version &version) const
 Get database major version. More...
 
virtual MoFEMErrorCode getInterfaceVersion (Version &version) const
 Get database major version. More...
 
template<>
MoFEMErrorCode getInterface (const MOFEMuuid &uuid, UnknownInterface *&iface) const
 

Public Attributes

InterfacemField_ptr
 MoFEM interface. More...
 
PetscBool isProblemBuild
 True if problem is build. More...
 
std::string problemName
 Problem name. More...
 
PetscBool isPartitioned
 true if read mesh is on parts More...
 
PetscBool isSquareMatrix
 true if rows equals to cols More...
 
int rAnk
 
int sIze
 
const ProblemproblemPtr
 pinter to problem data structure More...
 
PetscBool isSubDM
 
std::vector< std::string > rowFields
 
std::vector< std::string > colFields
 
const ProblemproblemMainOfSubPtr
 pinter to main problem to sub-problem More...
 
PetscBool isCompDM
 
std::vector< std::string > rowCompPrb
 
std::vector< std::string > colCompPrb
 
PetscBool destroyProblem
 If true destroy problem with DM. More...
 
int verbosity
 verbosity More...
 
int referenceNumber
 
boost::shared_ptr< KspCtxkspCtx
 data structure KSP More...
 
boost::shared_ptr< SnesCtxsnesCtx
 data structure SNES More...
 
boost::shared_ptr< TsCtxtsCtx
 data structure for TS solver More...
 

Additional Inherited Members

- Protected Member Functions inherited from MoFEM::UnknownInterface
boost::typeindex::type_index getClassIdx (const MOFEMuuid &uid) const
 Get type name for interface Id. More...
 
MOFEMuuid getUId (const boost::typeindex::type_index &class_idx) const
 Get interface Id for class name. More...
 

Detailed Description

PETSc Discrete Manager data structure.

This structure should not be accessed or modified by user. Is not available from outside MoFEM DM manager. However user can inherit dat class and add data for additional functionality.

This is part of implementation for PETSc interface, see more details in http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/index.html

Definition at line 737 of file DMMoFEM.hpp.

Constructor & Destructor Documentation

◆ DMCtx()

MoFEM::DMCtx::DMCtx ( )

Definition at line 68 of file DMMMoFEM.cpp.

69  : mField_ptr(PETSC_NULL), isProblemBuild(PETSC_FALSE),
70  isPartitioned(PETSC_FALSE), isSquareMatrix(PETSC_TRUE),
71  isSubDM(PETSC_FALSE), isCompDM(PETSC_FALSE), destroyProblem(PETSC_FALSE),
PetscBool isSquareMatrix
true if rows equals to cols
Definition: DMMoFEM.hpp:748
int verbosity
verbosity
Definition: DMMoFEM.hpp:770
PetscBool isSubDM
Definition: DMMoFEM.hpp:756
Interface * mField_ptr
MoFEM interface.
Definition: DMMoFEM.hpp:742
PetscBool isPartitioned
true if read mesh is on parts
Definition: DMMoFEM.hpp:747
PetscBool destroyProblem
If true destroy problem with DM.
Definition: DMMoFEM.hpp:765
PetscBool isProblemBuild
True if problem is build.
Definition: DMMoFEM.hpp:743
int referenceNumber
Definition: DMMoFEM.hpp:771
PetscBool isCompDM
Definition: DMMoFEM.hpp:761

◆ ~DMCtx()

MoFEM::DMCtx::~DMCtx ( )
virtual

Definition at line 74 of file DMMMoFEM.cpp.

74  {
75  // cerr << "Snes " << snesCtx.use_count() << endl;
76  // cerr << "Destroy DMCtx" << endl;
77 }

Member Function Documentation

◆ query_interface()

MoFEMErrorCode MoFEM::DMCtx::query_interface ( const MOFEMuuid uuid,
UnknownInterface **  iface 
) const
virtual

Implements MoFEM::UnknownInterface.

Definition at line 79 of file DMMMoFEM.cpp.

80  {
82  *iface = NULL;
83  if (uuid == IDD_DMCTX) {
84  *iface = const_cast<DMCtx *>(this);
86  }
87  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY, "unknown interface");
89 }
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:483
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return() ...
Definition: definitions.h:490
static const MOFEMuuid IDD_DMCTX
Definition: DMMoFEM.hpp:722

Member Data Documentation

◆ colCompPrb

std::vector<std::string> MoFEM::DMCtx::colCompPrb

Definition at line 763 of file DMMoFEM.hpp.

◆ colFields

std::vector<std::string> MoFEM::DMCtx::colFields

Definition at line 758 of file DMMoFEM.hpp.

◆ destroyProblem

PetscBool MoFEM::DMCtx::destroyProblem

If true destroy problem with DM.

Definition at line 765 of file DMMoFEM.hpp.

◆ isCompDM

PetscBool MoFEM::DMCtx::isCompDM

Definition at line 761 of file DMMoFEM.hpp.

◆ isPartitioned

PetscBool MoFEM::DMCtx::isPartitioned

true if read mesh is on parts

Definition at line 747 of file DMMoFEM.hpp.

◆ isProblemBuild

PetscBool MoFEM::DMCtx::isProblemBuild

True if problem is build.

Definition at line 743 of file DMMoFEM.hpp.

◆ isSquareMatrix

PetscBool MoFEM::DMCtx::isSquareMatrix

true if rows equals to cols

Definition at line 748 of file DMMoFEM.hpp.

◆ isSubDM

PetscBool MoFEM::DMCtx::isSubDM

Definition at line 756 of file DMMoFEM.hpp.

◆ kspCtx

boost::shared_ptr<KspCtx> MoFEM::DMCtx::kspCtx

data structure KSP

Definition at line 773 of file DMMoFEM.hpp.

◆ mField_ptr

Interface* MoFEM::DMCtx::mField_ptr

MoFEM interface.

Definition at line 742 of file DMMoFEM.hpp.

◆ problemMainOfSubPtr

const Problem* MoFEM::DMCtx::problemMainOfSubPtr

pinter to main problem to sub-problem

Definition at line 759 of file DMMoFEM.hpp.

◆ problemName

std::string MoFEM::DMCtx::problemName

Problem name.

Definition at line 744 of file DMMoFEM.hpp.

◆ problemPtr

const Problem* MoFEM::DMCtx::problemPtr

pinter to problem data structure

Definition at line 753 of file DMMoFEM.hpp.

◆ rAnk

int MoFEM::DMCtx::rAnk

Definition at line 750 of file DMMoFEM.hpp.

◆ referenceNumber

int MoFEM::DMCtx::referenceNumber

Definition at line 771 of file DMMoFEM.hpp.

◆ rowCompPrb

std::vector<std::string> MoFEM::DMCtx::rowCompPrb

Definition at line 762 of file DMMoFEM.hpp.

◆ rowFields

std::vector<std::string> MoFEM::DMCtx::rowFields

Definition at line 757 of file DMMoFEM.hpp.

◆ sIze

int MoFEM::DMCtx::sIze

Definition at line 750 of file DMMoFEM.hpp.

◆ snesCtx

boost::shared_ptr<SnesCtx> MoFEM::DMCtx::snesCtx

data structure SNES

Definition at line 774 of file DMMoFEM.hpp.

◆ tsCtx

boost::shared_ptr<TsCtx> MoFEM::DMCtx::tsCtx

data structure for TS solver

Definition at line 775 of file DMMoFEM.hpp.

◆ verbosity

int MoFEM::DMCtx::verbosity

verbosity

Definition at line 770 of file DMMoFEM.hpp.


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