![]() |
v0.11.0 |
keeps basic data about problem More...
#include <src/multi_indices/ProblemsMultiIndices.hpp>
Classes | |
struct | SubProblemData |
Subproblem problem data. More... | |
Public Types | |
typedef multi_index_container< boost::weak_ptr< std::vector< NumeredDofEntity > >, indexed_by< sequenced<> > > | SequenceDofContainer |
Public Member Functions | |
boost::shared_ptr< NumeredDofEntity_multiIndex > & | getNumeredRowDofsPtr () const |
get access to numeredRowDofsPtr storing DOFs on rows More... | |
boost::shared_ptr< NumeredDofEntity_multiIndex > & | getNumeredColDofsPtr () const |
get access to numeredColDofsPtr storing DOFs on cols More... | |
const boost::shared_ptr< NumeredEntFiniteElement_multiIndex > & | getNumeredFiniteElementsPtr () const |
get access to reference for multi-index storing finite elements More... | |
DEPRECATED boost::shared_ptr< NumeredDofEntity_multiIndex > & | getNumeredRowDofs () const |
get access to numeredRowDofsPtr storing DOFs on rows \deprected Use getNumeredRowDofsPtr More... | |
DEPRECATED boost::shared_ptr< NumeredDofEntity_multiIndex > & | getNumeredColDofs () const |
get access to numeredColDofsPtr storing DOFs on cols More... | |
const boost::shared_ptr< NumeredEntFiniteElement_multiIndex > &DEPRECATED | getNumeredFiniteElements () const |
get access to reference for multi-index storing finite elements More... | |
boost::shared_ptr< SubProblemData > & | getSubData () const |
Get main problem of sub-problem is. More... | |
boost::shared_ptr< ComposedProblemsData > & | getComposedProblemsData () const |
Het composed problems data structure. More... | |
MoFEMErrorCode | getDofByNameEntAndEntDofIdx (const int field_bit_number, const EntityHandle ent, const int ent_dof_idx, const RowColData row_or_col, boost::shared_ptr< NumeredDofEntity > &dof_ptr) const |
get DOFs from problem More... | |
NumeredEntFiniteElementbyName::iterator | getNumeredFEsBegin (std::string fe_name) const |
NumeredEntFiniteElementbyName::iterator | getNumeredFEsEnd (std::string fe_name) const |
NumeredDofEntity_multiIndex::iterator | getNumeredRowDofsBegin () const |
NumeredDofEntity_multiIndex::iterator | getNumeredRowDofsEnd () const |
NumeredDofEntity_multiIndex::iterator | getNumeredColDofsBegin () const |
NumeredDofEntity_multiIndex::iterator | getNumeredColDofsEnd () const |
NumeredDofEntityByLocalIdx::iterator | getNumeredRowDofsByLocIdxBegin (const DofIdx locidx) const |
NumeredDofEntityByLocalIdx::iterator | getNumeredRowDofsByLocIdxEnd (const DofIdx locidx) const |
NumeredDofEntityByLocalIdx::iterator | getNumeredColDofsByLocIdxBegin (const DofIdx locidx) const |
NumeredDofEntityByLocalIdx::iterator | getNumeredColDofsByLocIdxEnd (const DofIdx locidx) const |
NumeredDofEntityByEnt::iterator | getNumeredRowDofsByEntBegin (const EntityHandle ent) const |
NumeredDofEntityByEnt::iterator | getNumeredRowDofsByEntEnd (const EntityHandle ent) const |
NumeredDofEntityByEnt::iterator | getNumeredColDofsByEntBegin (const EntityHandle ent) const |
NumeredDofEntityByEnt::iterator | getNumeredColDofsByEntEnd (const EntityHandle ent) const |
Problem (Interface &moab, const EntityHandle meshset) | |
virtual | ~Problem ()=default |
BitProblemId | getId () const |
std::string | getName () const |
DofIdx | getNbDofsRow () const |
DofIdx | getNbDofsCol () const |
DofIdx | getNbLocalDofsRow () const |
DofIdx | getNbLocalDofsCol () const |
DofIdx | getNbGhostDofsRow () const |
DofIdx | getNbGhostDofsCol () const |
BitRefLevel | getBitRefLevel () const |
BitRefLevel | getMaskBitRefLevel () const |
MoFEMErrorCode | getRowDofsByPetscGlobalDofIdx (DofIdx idx, const NumeredDofEntity **dof_ptr, MoFEMTypes bh=MF_EXIST) const |
Get the Row Dofs By Petsc Global Dof Idx object. More... | |
MoFEMErrorCode | getColDofsByPetscGlobalDofIdx (DofIdx idx, const NumeredDofEntity **dof_ptr, MoFEMTypes bh=MF_EXIST) const |
Get the Col Dofs By Petsc Global Dof Idx object. More... | |
boost::weak_ptr< NumeredDofEntity > | getRowDofsByPetscGlobalDofIdx (DofIdx idx) const |
Get the Row Dofs By Petsc Global Dof Idx object. More... | |
boost::weak_ptr< NumeredDofEntity > | getColDofsByPetscGlobalDofIdx (DofIdx idx) const |
Get the Col Dofs By Petsc Global Dof Idx object. More... | |
BitFEId | getBitFEId () const |
MoFEMErrorCode | getNumberOfElementsByNameAndPart (MPI_Comm comm, const std::string name, PetscLayout *layout) const |
Get number of finite elements by name on processors. More... | |
MoFEMErrorCode | getNumberOfElementsByPart (MPI_Comm comm, PetscLayout *layout) const |
Get number of finite elements on processors. More... | |
boost::shared_ptr< SequenceDofContainer > & | getRowDofsSequence () const |
Get reference to sequence data numbered dof container. More... | |
boost::shared_ptr< SequenceDofContainer > & | getColDofsSequence () const |
Get reference to sequence data numbered dof container. More... | |
Public Attributes | |
EntityHandle | meshset |
BitProblemId * | tagId |
Unique problem ID. More... | |
const char * | tagName |
Problem name. More... | |
int | tagNameSize |
Size of problem name. More... | |
BitFEId * | tagBitFEId |
IDs of finite elements in problem. More... | |
BitRefLevel * | tagBitRefLevel |
BitRef level of finite elements in problem. More... | |
BitRefLevel * | tagMaskBitRefLevel |
BItRefMask of elements in problem. More... | |
DofIdx | nbDofsRow |
Global number of DOFs in row. More... | |
DofIdx | nbDofsCol |
Global number of DOFs in col. More... | |
DofIdx | nbLocDofsRow |
Local number of DOFs in row. More... | |
DofIdx | nbLocDofsCol |
Local number of DOFs in colIs. More... | |
DofIdx | nbGhostDofsRow |
Number of ghost DOFs in row. More... | |
DofIdx | nbGhostDofsCol |
Number of ghost DOFs in col. More... | |
boost::shared_ptr< NumeredDofEntity_multiIndex > | numeredRowDofsPtr |
store DOFs on rows for this problem More... | |
boost::shared_ptr< NumeredDofEntity_multiIndex > | numeredColDofsPtr |
store DOFs on columns for this problem More... | |
boost::shared_ptr< NumeredEntFiniteElement_multiIndex > | numeredFiniteElementsPtr |
store finite elements More... | |
boost::shared_ptr< SubProblemData > | subProblemData |
boost::shared_ptr< ComposedProblemsData > | composedProblemsData |
Private Attributes | |
boost::shared_ptr< SequenceDofContainer > | sequenceRowDofContainer |
boost::shared_ptr< SequenceDofContainer > | sequenceColDofContainer |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Problem &e) |
keeps basic data about problem
This is low level structure with information about problem, what elements compose problem and what DOFs are on rows and columns.
Definition at line 79 of file ProblemsMultiIndices.hpp.
typedef multi_index_container<boost::weak_ptr<std::vector<NumeredDofEntity> >, indexed_by<sequenced<> > > MoFEM::Problem::SequenceDofContainer |
Definition at line 641 of file ProblemsMultiIndices.hpp.
MoFEM::Problem::Problem | ( | Interface & | moab, |
const EntityHandle | meshset | ||
) |
Definition at line 22 of file ProblemsMultiIndices.cpp.
|
virtualdefault |
BitFEId MoFEM::Problem::getBitFEId | ( | ) | const |
Definition at line 66 of file ProblemsMultiIndices.cpp.
BitRefLevel MoFEM::Problem::getBitRefLevel | ( | ) | const |
Definition at line 538 of file ProblemsMultiIndices.hpp.
boost::weak_ptr< NumeredDofEntity > MoFEM::Problem::getColDofsByPetscGlobalDofIdx | ( | DofIdx | idx | ) | const |
Get the Col Dofs By Petsc Global Dof Idx object.
idx |
Definition at line 80 of file ProblemsMultiIndices.cpp.
MoFEMErrorCode MoFEM::Problem::getColDofsByPetscGlobalDofIdx | ( | DofIdx | idx, |
const NumeredDofEntity ** | dof_ptr, | ||
MoFEMTypes | bh = MF_EXIST |
||
) | const |
Get the Col Dofs By Petsc Global Dof Idx object.
idx | |
dof_ptr | |
bh |
Definition at line 104 of file ProblemsMultiIndices.cpp.
boost::shared_ptr<SequenceDofContainer>& MoFEM::Problem::getColDofsSequence | ( | ) | const |
Get reference to sequence data numbered dof container.
In sequence data container data are physically stored. The purpose of this is to allocate NumeredDofEntity data in bulk, having only one allocation instead each time entity is inserted. That makes code efficient.
The vector in sequence is destroyed if last entity inside that vector is destroyed. All MoFEM::NumeredDofEntity have aliased shared_ptr which points to the vector.
Definition at line 675 of file ProblemsMultiIndices.hpp.
boost::shared_ptr<ComposedProblemsData>& MoFEM::Problem::getComposedProblemsData | ( | ) | const |
Het composed problems data structure.
Definition at line 247 of file ProblemsMultiIndices.hpp.
MoFEMErrorCode MoFEM::Problem::getDofByNameEntAndEntDofIdx | ( | const int | field_bit_number, |
const EntityHandle | ent, | ||
const int | ent_dof_idx, | ||
const RowColData | row_or_col, | ||
boost::shared_ptr< NumeredDofEntity > & | dof_ptr | ||
) | const |
get DOFs from problem
Note that ent_dof_idx is not coefficient number, is local number of DOFs on the entity. The coefficient number and local index of DOFs or entity are the same on vertices and H1 approximation.
field_bit_number | field name field_bit_number = (use m_field.get_field_bit_number(field_name); |
ent | entity handle |
ent_dof_idx | index of DOFs on entity |
row_or_col | ROW or COL |
dof_ptr | shared pointer to DOFs if found |
Definition at line 153 of file ProblemsMultiIndices.cpp.
BitProblemId MoFEM::Problem::getId | ( | ) | const |
Definition at line 525 of file ProblemsMultiIndices.hpp.
BitRefLevel MoFEM::Problem::getMaskBitRefLevel | ( | ) | const |
Definition at line 539 of file ProblemsMultiIndices.hpp.
std::string MoFEM::Problem::getName | ( | ) | const |
Definition at line 527 of file ProblemsMultiIndices.hpp.
DofIdx MoFEM::Problem::getNbDofsCol | ( | ) | const |
Definition at line 532 of file ProblemsMultiIndices.hpp.
DofIdx MoFEM::Problem::getNbDofsRow | ( | ) | const |
Definition at line 531 of file ProblemsMultiIndices.hpp.
DofIdx MoFEM::Problem::getNbGhostDofsCol | ( | ) | const |
Definition at line 536 of file ProblemsMultiIndices.hpp.
DofIdx MoFEM::Problem::getNbGhostDofsRow | ( | ) | const |
Definition at line 535 of file ProblemsMultiIndices.hpp.
DofIdx MoFEM::Problem::getNbLocalDofsCol | ( | ) | const |
Definition at line 534 of file ProblemsMultiIndices.hpp.
DofIdx MoFEM::Problem::getNbLocalDofsRow | ( | ) | const |
Definition at line 533 of file ProblemsMultiIndices.hpp.
MoFEMErrorCode MoFEM::Problem::getNumberOfElementsByNameAndPart | ( | MPI_Comm | comm, |
const std::string | name, | ||
PetscLayout * | layout | ||
) | const |
Get number of finite elements by name on processors.
Size retuned IS is equal to size of processors.
What PetscLayout see, http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/IS/index.html
Example of usage for layout
comm | Communicator |
name | Finite element name |
layout | Get number of elements on each processor |
Definition at line 119 of file ProblemsMultiIndices.cpp.
MoFEMErrorCode MoFEM::Problem::getNumberOfElementsByPart | ( | MPI_Comm | comm, |
PetscLayout * | layout | ||
) | const |
Get number of finite elements on processors.
Size retuned IS is equal to size of processors.
What PetscLayout see, http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/IS/index.html
Example of usage for layout
comm | Communicator |
layout | Get number of elements on each processor |
Definition at line 136 of file ProblemsMultiIndices.cpp.
DEPRECATED boost::shared_ptr<NumeredDofEntity_multiIndex>& MoFEM::Problem::getNumeredColDofs | ( | ) | const |
get access to numeredColDofsPtr storing DOFs on cols
Definition at line 140 of file ProblemsMultiIndices.hpp.
NumeredDofEntity_multiIndex::iterator MoFEM::Problem::getNumeredColDofsBegin | ( | ) | const |
get begin iterator for numeredColDofsPtr (insted you can use #_IT_NUMEREDDOFMOFEMENTITY_COL_FOR_LOOP_ for loops)
Definition at line 346 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByEnt::iterator MoFEM::Problem::getNumeredColDofsByEntBegin | ( | const EntityHandle | ent | ) | const |
get begin iterator for numeredColDofsPtr (insted you can use _IT_NUMEREDDOF_COL_BY_ENT_FOR_LOOP_ for loops)
Definition at line 470 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByEnt::iterator MoFEM::Problem::getNumeredColDofsByEntEnd | ( | const EntityHandle | ent | ) | const |
get end iterator for numeredColDofsPtr (insted you can use _IT_NUMEREDDOF_COL_BY_ENT_FOR_LOOP_ for loops)
Definition at line 477 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByLocalIdx::iterator MoFEM::Problem::getNumeredColDofsByLocIdxBegin | ( | const DofIdx | locidx | ) | const |
get begin iterator for numeredColDofsPtr (insted you can use _IT_NUMEREDDOF_COL_FOR_LOOP_ for loops)
Definition at line 408 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByLocalIdx::iterator MoFEM::Problem::getNumeredColDofsByLocIdxEnd | ( | const DofIdx | locidx | ) | const |
get end iterator for numeredColDofsPtr (insted you can use _IT_NUMEREDDOF_COL_FOR_LOOP_ for loops)
Definition at line 415 of file ProblemsMultiIndices.hpp.
NumeredDofEntity_multiIndex::iterator MoFEM::Problem::getNumeredColDofsEnd | ( | ) | const |
get end iterator for numeredColDofsPtr (insted you can use #_IT_NUMEREDDOFMOFEMENTITY_COL_FOR_LOOP_ for loops)
Definition at line 352 of file ProblemsMultiIndices.hpp.
boost::shared_ptr<NumeredDofEntity_multiIndex>& MoFEM::Problem::getNumeredColDofsPtr | ( | ) | const |
get access to numeredColDofsPtr storing DOFs on cols
Definition at line 114 of file ProblemsMultiIndices.hpp.
NumeredEntFiniteElementbyName::iterator MoFEM::Problem::getNumeredFEsBegin | ( | std::string | fe_name | ) | const |
Definition at line 287 of file ProblemsMultiIndices.hpp.
NumeredEntFiniteElementbyName::iterator MoFEM::Problem::getNumeredFEsEnd | ( | std::string | fe_name | ) | const |
Definition at line 293 of file ProblemsMultiIndices.hpp.
const boost::shared_ptr<NumeredEntFiniteElement_multiIndex>& DEPRECATED MoFEM::Problem::getNumeredFiniteElements | ( | ) | const |
get access to reference for multi-index storing finite elements
Definition at line 149 of file ProblemsMultiIndices.hpp.
const boost::shared_ptr<NumeredEntFiniteElement_multiIndex>& MoFEM::Problem::getNumeredFiniteElementsPtr | ( | ) | const |
get access to reference for multi-index storing finite elements
Definition at line 122 of file ProblemsMultiIndices.hpp.
DEPRECATED boost::shared_ptr<NumeredDofEntity_multiIndex>& MoFEM::Problem::getNumeredRowDofs | ( | ) | const |
get access to numeredRowDofsPtr storing DOFs on rows \deprected Use getNumeredRowDofsPtr
Definition at line 131 of file ProblemsMultiIndices.hpp.
NumeredDofEntity_multiIndex::iterator MoFEM::Problem::getNumeredRowDofsBegin | ( | ) | const |
get begin iterator for numeredRowDofsPtr (insted you can use #_IT_NUMEREDDOFMOFEMENTITY_ROW_FOR_LOOP_ for loops)
Definition at line 334 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByEnt::iterator MoFEM::Problem::getNumeredRowDofsByEntBegin | ( | const EntityHandle | ent | ) | const |
get begin iterator for numeredRowDofsPtr (insted you can use _IT_NUMEREDDOF_ROW_BY_ENT_FOR_LOOP_ for loops)
Definition at line 456 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByEnt::iterator MoFEM::Problem::getNumeredRowDofsByEntEnd | ( | const EntityHandle | ent | ) | const |
get end iterator for numeredRowDofsPtr (insted you can use _IT_NUMEREDDOF_ROW_BY_ENT_FOR_LOOP_ for loops)
Definition at line 463 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByLocalIdx::iterator MoFEM::Problem::getNumeredRowDofsByLocIdxBegin | ( | const DofIdx | locidx | ) | const |
get begin iterator for numeredRowDofsPtr (insted you can use _IT_NUMEREDDOF_ROW_FOR_LOOP_ for loops)
Definition at line 394 of file ProblemsMultiIndices.hpp.
NumeredDofEntityByLocalIdx::iterator MoFEM::Problem::getNumeredRowDofsByLocIdxEnd | ( | const DofIdx | locidx | ) | const |
get end iterator for numeredRowDofsPtr (insted you can use _IT_NUMEREDDOF_ROW_FOR_LOOP_ for loops)
Definition at line 401 of file ProblemsMultiIndices.hpp.
NumeredDofEntity_multiIndex::iterator MoFEM::Problem::getNumeredRowDofsEnd | ( | ) | const |
get end iterator for numeredRowDofsPtr (insted you can use #_IT_NUMEREDDOFMOFEMENTITY_ROW_FOR_LOOP_ for loops)
Definition at line 340 of file ProblemsMultiIndices.hpp.
boost::shared_ptr<NumeredDofEntity_multiIndex>& MoFEM::Problem::getNumeredRowDofsPtr | ( | ) | const |
get access to numeredRowDofsPtr storing DOFs on rows
Definition at line 107 of file ProblemsMultiIndices.hpp.
boost::weak_ptr< NumeredDofEntity > MoFEM::Problem::getRowDofsByPetscGlobalDofIdx | ( | DofIdx | idx | ) | const |
Get the Row Dofs By Petsc Global Dof Idx object.
idx |
Definition at line 69 of file ProblemsMultiIndices.cpp.
MoFEMErrorCode MoFEM::Problem::getRowDofsByPetscGlobalDofIdx | ( | DofIdx | idx, |
const NumeredDofEntity ** | dof_ptr, | ||
MoFEMTypes | bh = MF_EXIST |
||
) | const |
Get the Row Dofs By Petsc Global Dof Idx object.
idx | |
dof_ptr | |
bh |
Definition at line 90 of file ProblemsMultiIndices.cpp.
boost::shared_ptr<SequenceDofContainer>& MoFEM::Problem::getRowDofsSequence | ( | ) | const |
Get reference to sequence data numbered dof container.
In sequence data container data are physically stored. The purpose of this is to allocate NumeredDofEntity data in bulk, having only one allocation instead each time entity is inserted. That makes code efficient.
The vector in sequence is destroyed if last entity inside that vector is destroyed. All MoFEM::NumeredDofEntity have aliased shared_ptr which points to the vector.
Definition at line 657 of file ProblemsMultiIndices.hpp.
boost::shared_ptr<SubProblemData>& MoFEM::Problem::getSubData | ( | ) | const |
Get main problem of sub-problem is.
Definition at line 234 of file ProblemsMultiIndices.hpp.
|
friend |
Definition at line 60 of file ProblemsMultiIndices.cpp.
|
mutable |
Pointer to data structure from which this problem is composed
Definition at line 241 of file ProblemsMultiIndices.hpp.
EntityHandle MoFEM::Problem::meshset |
Problem meshset (on tag of this meshset all data related to problem are stored)
Definition at line 81 of file ProblemsMultiIndices.hpp.
|
mutable |
Global number of DOFs in col.
Definition at line 91 of file ProblemsMultiIndices.hpp.
|
mutable |
Global number of DOFs in row.
Definition at line 90 of file ProblemsMultiIndices.hpp.
|
mutable |
Number of ghost DOFs in col.
Definition at line 95 of file ProblemsMultiIndices.hpp.
|
mutable |
Number of ghost DOFs in row.
Definition at line 94 of file ProblemsMultiIndices.hpp.
|
mutable |
Local number of DOFs in colIs.
Definition at line 93 of file ProblemsMultiIndices.hpp.
|
mutable |
Local number of DOFs in row.
Definition at line 92 of file ProblemsMultiIndices.hpp.
|
mutable |
store DOFs on columns for this problem
Definition at line 100 of file ProblemsMultiIndices.hpp.
|
mutable |
store finite elements
Definition at line 102 of file ProblemsMultiIndices.hpp.
|
mutable |
store DOFs on rows for this problem
Definition at line 98 of file ProblemsMultiIndices.hpp.
|
mutableprivate |
Definition at line 682 of file ProblemsMultiIndices.hpp.
|
mutableprivate |
Definition at line 681 of file ProblemsMultiIndices.hpp.
|
mutable |
Pointer to data structure. This pointer has allocated data only for sub problems.
Definition at line 228 of file ProblemsMultiIndices.hpp.
BitFEId* MoFEM::Problem::tagBitFEId |
IDs of finite elements in problem.
Definition at line 86 of file ProblemsMultiIndices.hpp.
BitRefLevel* MoFEM::Problem::tagBitRefLevel |
BitRef level of finite elements in problem.
Definition at line 87 of file ProblemsMultiIndices.hpp.
BitProblemId* MoFEM::Problem::tagId |
Unique problem ID.
Definition at line 83 of file ProblemsMultiIndices.hpp.
BitRefLevel* MoFEM::Problem::tagMaskBitRefLevel |
BItRefMask of elements in problem.
Definition at line 88 of file ProblemsMultiIndices.hpp.
const char* MoFEM::Problem::tagName |
Problem name.
Definition at line 84 of file ProblemsMultiIndices.hpp.
int MoFEM::Problem::tagNameSize |
Size of problem name.
Definition at line 85 of file ProblemsMultiIndices.hpp.