Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
bitpit::SplitSystemMatrixAssembler Class Reference

The SplitSystemMatrixAssembler class is the base class for defining assemblers for split system solvers. More...

Inheritance diagram for bitpit::SplitSystemMatrixAssembler:
Inheritance graph
[legend]
Collaboration diagram for bitpit::SplitSystemMatrixAssembler:
Collaboration graph
[legend]

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)
 

Detailed Description

The SplitSystemMatrixAssembler class is the base class for defining assemblers for split system solvers.

Definition at line 42 of file system_solvers_split.hpp.

Constructor & Destructor Documentation

◆ SplitSystemMatrixAssembler()

bitpit::SplitSystemMatrixAssembler::SplitSystemMatrixAssembler ( SystemSplitStrategy splitStrategy,
const std::vector< int > & splitSizes )
protected

Constructor.

Parameters
splitStrategythe type of split that will be applied to the system
splitSizesare the sizes of the splits

Definition at line 63 of file system_solvers_split.cpp.

Member Function Documentation

◆ getSplitCount()

int bitpit::SplitSystemMatrixAssembler::getSplitCount ( ) const

Get the number of splits that will be applied.

Returns
The number of splits that will be applied.

Definition at line 84 of file system_solvers_split.cpp.

◆ getSplitSizes()

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.

Returns
The size of each split.

Definition at line 108 of file system_solvers_split.cpp.

◆ getSplitStrategy()

SystemSplitStrategy bitpit::SplitSystemMatrixAssembler::getSplitStrategy ( ) const

Get the split strategy will be used when solving the system.

Returns
The split strategy will be used when solving the system.

Definition at line 74 of file system_solvers_split.cpp.


The documentation for this class was generated from the following files:
--- layout: doxygen_footer ---