v0.15.0
Loading...
Searching...
No Matches
DMCtxImpl.hpp
Go to the documentation of this file.
1/** \file DMCtxImpl.hpp
2 \brief Implementation of DM context. You should not use it directly
3 */
4
5#ifndef __DMCTX_IMPL_H
6#define __DMCTX_IMPL_H
7
8namespace MoFEM {
9
10struct DMCtxImpl : public DMCtx {
11
12 DMCtxImpl();
13
14 int useCount() { return referenceNumber; }
16
17 int rAnk = -1; //< processor rank
18 int sIze = -1; //< communication size
19
20 int verbosity = VERBOSE; ///< verbosity
21 int referenceNumber = 0; //< reference number
22
23 // sub problem
24 PetscBool isSubDM = PETSC_FALSE;
25 std::vector<std::string> rowSubFields;
26 std::vector<std::string> colSubFields;
27 const Problem *problemMainOfSubPtr; ///< pointer to main problem to sub-problem
28
29 PetscBool isCompDM = PETSC_FALSE;
30 std::vector<std::string> rowCompPrb;
31 std::vector<std::string> colCompPrb;
32 std::map<std::string, boost::shared_ptr<Range>> mapTypeRow;
33 std::map<std::string, boost::shared_ptr<Range>> mapTypeCol;
34
35 // Options
36 PetscBool isPartitioned = PETSC_FALSE; ///< true if read mesh is on parts
37 PetscBool isSquareMatrix = PETSC_TRUE; ///< true if rows equals to cols
38 PetscBool destroyProblem = PETSC_FALSE; ///< If true destroy problem with DM
39 PetscBool isProblemBuild = PETSC_FALSE; ///< True if problem is build
40
41 Interface *mField_ptr = nullptr; ///< MoFEM interface
42
43 // pointer to data structures
44 const Problem *problemPtr = nullptr; ///< pointer to problem data structure
45 std::string problemName; ///< Problem name
46
47 // schur block matrix
48 boost::shared_ptr<BlockStructure> blocMatDataPtr;
49 boost::shared_ptr<NestSchurData> nestedSchurDataPtr;
50};
51
52} // namespace MoFEM
53
54#endif //__DMCTX_IMPL_H
@ VERBOSE
implementation of Data Operators for Forces and Sources
Definition Common.hpp:10
PetscBool isSquareMatrix
true if rows equals to cols
Definition DMCtxImpl.hpp:37
std::vector< std::string > rowCompPrb
Definition DMCtxImpl.hpp:30
boost::shared_ptr< NestSchurData > nestedSchurDataPtr
Definition DMCtxImpl.hpp:49
PetscBool destroyProblem
If true destroy problem with DM.
Definition DMCtxImpl.hpp:38
int incrementReference()
Definition DMCtxImpl.hpp:15
const Problem * problemMainOfSubPtr
pointer to main problem to sub-problem
Definition DMCtxImpl.hpp:27
std::string problemName
Problem name.
Definition DMCtxImpl.hpp:45
PetscBool isSubDM
Definition DMCtxImpl.hpp:24
PetscBool isPartitioned
true if read mesh is on parts
Definition DMCtxImpl.hpp:36
std::map< std::string, boost::shared_ptr< Range > > mapTypeCol
Definition DMCtxImpl.hpp:33
const Problem * problemPtr
pointer to problem data structure
Definition DMCtxImpl.hpp:44
std::map< std::string, boost::shared_ptr< Range > > mapTypeRow
Definition DMCtxImpl.hpp:32
std::vector< std::string > colSubFields
Definition DMCtxImpl.hpp:26
PetscBool isCompDM
Definition DMCtxImpl.hpp:29
boost::shared_ptr< BlockStructure > blocMatDataPtr
Definition DMCtxImpl.hpp:48
Interface * mField_ptr
MoFEM interface.
Definition DMCtxImpl.hpp:41
int verbosity
verbosity
Definition DMCtxImpl.hpp:20
std::vector< std::string > rowSubFields
Definition DMCtxImpl.hpp:25
PetscBool isProblemBuild
True if problem is build.
Definition DMCtxImpl.hpp:39
std::vector< std::string > colCompPrb
Definition DMCtxImpl.hpp:31
PETSc Discrete Manager data structure.
Definition DMMoFEM.hpp:1015
Deprecated interface functions.
keeps basic data about problem