The SplitSystemMatrixAssembler class is the base class for defining assemblers for split system solvers. More...
Public Member Functions | |
int | getSplitCount () const |
const std::vector< int > & | getSplitSizes () const |
SystemSplitStrategy | getSplitStrategy () const |
Public Member Functions inherited from bitpit::SystemMatrixAssembler | |
virtual int | getBlockSize () const =0 |
virtual long | getColCount () const =0 |
virtual long | getColElementCount () const =0 |
virtual long | getColGlobalCount () const =0 |
virtual long | getColGlobalElementCount () const =0 |
virtual long | getColGlobalElementOffset () const =0 |
virtual long | getColGlobalOffset () const =0 |
virtual const MPI_Comm & | getCommunicator () const =0 |
virtual long | getMaxRowNZCount () const =0 |
virtual AssemblyOptions | getOptions () const =0 |
virtual long | getRowCount () const =0 |
virtual void | getRowData (long rowIndex, ConstProxyVector< long > *pattern, ConstProxyVector< double > *values) const =0 |
virtual long | getRowElementCount () const =0 |
virtual long | getRowGlobalCount () const =0 |
virtual long | getRowGlobalElementCount () const =0 |
virtual long | getRowGlobalElementOffset () const =0 |
virtual long | getRowGlobalOffset () const =0 |
virtual long | getRowNZCount (long rowIndex) const =0 |
virtual void | getRowPattern (long rowIndex, ConstProxyVector< long > *pattern) const =0 |
virtual void | getRowValues (long rowIndex, ConstProxyVector< double > *values) const =0 |
virtual bool | isPartitioned () const =0 |
Protected Member Functions | |
SplitSystemMatrixAssembler (SystemSplitStrategy splitStrategy, const std::vector< int > &splitSizes) | |
The SplitSystemMatrixAssembler class is the base class for defining assemblers for split system solvers.
Definition at line 42 of file system_solvers_split.hpp.
|
protected |
Constructor.
splitStrategy | the type of split that will be applied to the system |
splitSizes | are the sizes of the splits |
Definition at line 63 of file system_solvers_split.cpp.
int bitpit::SplitSystemMatrixAssembler::getSplitCount | ( | ) | const |
Get the number of splits that will be applied.
Definition at line 84 of file system_solvers_split.cpp.
const std::vector< int > & bitpit::SplitSystemMatrixAssembler::getSplitSizes | ( | ) | const |
Get the size of each split.
Each block of elements is split into pieces whose size is defined by the split sizes. The sum of the split sizes must be equal to the block size. Given a matrix with a block size equal to 5 and split sizes equal to [4, 1], the split matrix will look like this:
[ | ] [ (4 * N) * (4 * M) | (4 * N) * (1 * M) ] [ | ] [-------------------------------------------] [ | ] [ (1 * N) * (4 * M) | (1 * N) * (1 * M) ] [ | ]
where M and N are the number of rows and columns respectively.
Definition at line 108 of file system_solvers_split.cpp.
SystemSplitStrategy bitpit::SplitSystemMatrixAssembler::getSplitStrategy | ( | ) | const |
Get the split strategy will be used when solving the system.
Definition at line 74 of file system_solvers_split.cpp.