Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
BlockMap_decl.hpp
1
#ifndef BlockMap_DECL_hpp
2
#define BlockMap_DECL_hpp
3
4
#include "feddlib/core/FEDDCore.hpp"
5
#include "feddlib/core/General/DefaultTypeDefs.hpp"
6
#include "MultiVector.hpp"
7
16
17
namespace
FEDD
{
37
template
<
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
38
class
BlockMap {
39
40
public
:
41
42
typedef
BlockMap<LO,GO,NO> BlockMap_Type;
43
typedef
Teuchos::RCP<BlockMap_Type> BlockMapPtr_Type;
44
45
typedef
Map<LO,GO,NO>
Map_Type;
46
typedef
typename
Map_Type::MapPtr_Type MapPtr_Type;
47
typedef
typename
Map_Type::MapConstPtr_Type MapConstPtr_Type;
48
49
typedef
typename
Map_Type::Comm_Type Comm_Type;
50
typedef
typename
Map_Type::CommPtr_Type CommPtr_Type;
51
typedef
typename
Map_Type::CommConstPtr_Type CommConstPtr_Type;
52
53
BlockMap();
54
58
BlockMap
(UN size);
59
60
~BlockMap();
61
62
void
resize(UN size);
63
67
void
addBlock
(MapConstPtr_Type map,
int
i);
68
70
void
merge
();
71
72
void
print();
73
74
void
info();
75
78
MapConstPtr_Type
getMergedMap
();
79
82
CommConstPtr_Type
getComm
();
83
84
CommPtr_Type getCommNonConst();
85
86
MapPtr_Type getBlock(UN i);
87
88
MapConstPtr_Type getBlock(UN i)
const
;
89
90
UN size()
const
{
return
blockMap_.size(); }
91
private
:
92
93
Teuchos::Array<MapPtr_Type> blockMap_;
94
MapPtr_Type mergedMap_;
95
};
96
}
97
98
#endif
FEDD::BlockMap::getComm
CommConstPtr_Type getComm()
Get underlying communicator.
Definition
BlockMap_def.hpp:120
FEDD::BlockMap::BlockMap
BlockMap(UN size)
Initializing block maps with the size of system (i.e. 2 for Stokes problem). As systems are distribut...
Definition
BlockMap_def.hpp:23
FEDD::BlockMap::merge
void merge()
Merging the map of different blocks together. Relevant for monolithic solving/precondtioning.
Definition
BlockMap_def.hpp:55
FEDD::BlockMap::getMergedMap
MapConstPtr_Type getMergedMap()
Getting merged map of block maps.
Definition
BlockMap_def.hpp:113
FEDD::BlockMap::addBlock
void addBlock(MapConstPtr_Type map, int i)
Adding map to corresponding block i. Block i is row-wise distrubted according to the underlying map.
Definition
BlockMap_def.hpp:42
FEDD::Map
Definition
Map_decl.hpp:30
FEDD
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
core
LinearAlgebra
BlockMap_decl.hpp
Generated by
1.17.0