Loading...
Searching...
No Matches
system_solvers_large.hpp
120 ProxySystemMatrixOrdering(const RowRankStorage *rowRankStorage, const ColRankStorage *colRankStorage);
221 void getRowData(long rowIndex, ConstProxyVector<long> *pattern, ConstProxyVector<double> *values) const override;
314 void dumpSystem(const std::string &header, const std::string &directory, const std::string &prefix = "") const;
330 virtual void exportMatrix(const std::string &filePath, FileFormat exportFormat = FILE_BINARY) const;
338 virtual void exportRHS(const std::string &filePath, FileFormat exportFormat = FILE_BINARY) const;
346 virtual void exportSolution(const std::string &filePath, FileFormat exportFormat = FILE_BINARY) const;
380 virtual void matrixDump(std::ostream &systemStream, const std::string &directory, const std::string &prefix) const;
382 virtual void matrixRestore(std::istream &systemStream, const std::string &directory, const std::string &prefix, bool redistribute);
384 virtual void matrixRestore(std::istream &systemStream, const std::string &directory, const std::string &prefix);
392 virtual void vectorsDump(std::ostream &systemStream, const std::string &directory, const std::string &prefix) const;
393 virtual void vectorsRestore(std::istream &systemStream, const std::string &directory, const std::string &prefix);
400 void assembly(const typename DerivedSystemSolver::Assembler &assembler, const SystemMatrixOrdering &reordering);
403 void update(long nRows, const long *rows, const typename DerivedSystemSolver::Assembler &assembler);
439 void createMatrix(int rowBlockSize, int colBlockSize, int nNestRows, int nNestCols, Mat *subMatrices, Mat *matrix) const;
443 void restoreMatrix(const std::string &directory, const std::string &name, bool redistribute, Mat *matrix) const;
456 void dumpVector(Vec vector, VectorSide side, const std::string &directory, const std::string &name) const;
457 void restoreVector(const std::string &directory, const std::string &name, Mat matrix, VectorSide side, Vec *vector) const;
459 void restoreVector(const std::string &directory, const std::string &name, bool redistribute, Vec *vector) const;
463 void restoreVector(const std::string &directory, const std::string &name, std::size_t localSize, std::size_t globalSize, Vec *vector) const;
long getColPermutationRank(long col) const override
Definition system_solvers_large.cpp:93
long getRowPermutationRank(long row) const override
Definition system_solvers_large.cpp:78
The PetscManager class handles the interaction with PETSc library.
Definition system_solvers_large.hpp:228
bool areOptionsEditable() const
Definition system_solvers_large.cpp:582
void clearInitOptions()
Definition system_solvers_large.cpp:535
void addInitOptions(int argc, char **args)
Definition system_solvers_large.cpp:505
void addInitOption(const std::string &option)
Definition system_solvers_large.cpp:482
long getRowPermutationRank(long row) const override
Definition system_solvers_large.tpp:65
long getColPermutationRank(long col) const override
Definition system_solvers_large.tpp:81
ProxySystemMatrixOrdering(const RowRankStorage *rowRankStorage, const ColRankStorage *colRankStorage)
Definition system_solvers_large.tpp:48
The SystemMatrixAssembler class provides an interface for defining system matrix assemblers.
Definition system_solvers_large.hpp:131
The SystemMatrixOrdering class provides an interface for defining classes that allows to reorder the ...
Definition system_solvers_large.hpp:70
virtual long getColPermutationRank(long col) const =0
virtual long getRowPermutationRank(long row) const =0
void dumpMatrix(Mat matrix, const std::string &directory, const std::string &name) const
Definition system_solvers_large.cpp:2378
virtual void vectorsCreate()
Definition system_solvers_large.cpp:1741
void matrixUpdate(long nRows, const long *rows, const Assembler &assembler)
Definition system_solvers_large.cpp:1506
double * getSolutionRawPtr()
Definition system_solvers_large.cpp:1908
long getRowGlobalElementCount() const
Definition system_solvers_large.cpp:1173
bool isPartitioned() const
Definition system_solvers_large.cpp:1210
virtual int getDumpVersion() const
Definition system_solvers_large.cpp:1322
virtual void exportMatrix(const std::string &filePath, FileFormat exportFormat=FILE_BINARY) const
Definition system_solvers_large.cpp:1968
virtual void matrixFill(const std::string &filePath)
Definition system_solvers_large.cpp:1479
virtual void initializeKSPOptions()
Definition system_solvers_large.cpp:3413
virtual void prePreconditionerSetupActions()
Definition system_solvers_large.cpp:3309
void restoreSolutionRawPtr(double *raw_solution)
Definition system_solvers_large.cpp:1945
virtual void matrixRestore(std::istream &systemStream, const std::string &directory, const std::string &prefix, bool redistribute)
Definition system_solvers_large.cpp:1712
void fillMatrix(Mat matrix, const std::string &filePath) const
Definition system_solvers_large.cpp:2336
void restoreRHSRawReadPtr(const double *raw_rhs) const
Definition system_solvers_large.cpp:1898
void dumpVector(Vec vector, const std::string &directory, const std::string &name) const
Definition system_solvers_large.cpp:2699
virtual void postPreconditionerSetupActions()
Definition system_solvers_large.cpp:3317
virtual void importMatrix(const std::string &filePath)
Definition system_solvers_large.cpp:1982
virtual void initializeKSPStatus()
Definition system_solvers_large.cpp:3455
void reorderVector(Vec vector, IS permutations, bool invert) const
Definition system_solvers_large.cpp:2907
std::string getInfoFilePath(const std::string &directory, const std::string &name) const
Definition system_solvers_large.cpp:3013
virtual void vectorsDump(std::ostream &systemStream, const std::string &directory, const std::string &prefix) const
Definition system_solvers_large.cpp:1811
virtual void resetKSPOptions(KSPOptions *options) const
Definition system_solvers_large.cpp:3423
void exportVector(Vec vector, const std::string &filePath, FileFormat fileFormat) const
Definition system_solvers_large.cpp:2931
void dumpSystem(const std::string &header, const std::string &directory, const std::string &prefix="") const
Definition system_solvers_large.cpp:2120
virtual void destroyKSPOptions()
Definition system_solvers_large.cpp:3431
virtual void clearWorkspace()
Definition system_solvers_large.cpp:899
void setReordering(long nRows, long nCols, const SystemMatrixOrdering &reordering)
Definition system_solvers_large.cpp:3084
virtual void restoreInfo(std::istream &stream)
Definition system_solvers_large.cpp:2233
virtual void setNullSpace()
Definition system_solvers_large.cpp:3047
virtual void preKSPSolveActions()
Definition system_solvers_large.cpp:1288
virtual void postKrylovSetupActions()
Definition system_solvers_large.cpp:3374
long getColGlobalCount() const
Definition system_solvers_large.cpp:1152
void restoreSystem(MPI_Comm communicator, bool redistribute, const std::string &directory, const std::string &prefix="")
Definition system_solvers_large.cpp:2168
const double * getSolutionRawReadPtr() const
Definition system_solvers_large.cpp:1931
virtual void exportRHS(const std::string &filePath, FileFormat exportFormat=FILE_BINARY) const
Definition system_solvers_large.cpp:2010
virtual int getBlockSize() const
Definition system_solvers_large.cpp:1022
void restoreRHSRawPtr(double *raw_rhs)
Definition system_solvers_large.cpp:1887
void setTranspose(bool transpose)
Definition system_solvers_large.cpp:181
const KSPStatus & getKSPStatus() const
Definition system_solvers_large.cpp:3443
void restoreMatrix(const std::string &directory, const std::string &name, bool redistribute, Mat *matrix) const
Definition system_solvers_large.cpp:2453
void matrixAssembly(const Assembler &assembler)
Definition system_solvers_large.cpp:1334
void createVector(int blockSize, Vec *vector) const
Definition system_solvers_large.cpp:2581
void destroyMatrix(Mat *matrix) const
Definition system_solvers_large.cpp:2567
std::string getFilePath(const std::string &directory, const std::string &name) const
Definition system_solvers_large.cpp:3037
long getColElementCount() const
Definition system_solvers_large.cpp:1108
virtual void matrixDump(std::ostream &systemStream, const std::string &directory, const std::string &prefix) const
Definition system_solvers_large.cpp:1691
virtual void dumpInfo(std::ostream &stream) const
Definition system_solvers_large.cpp:2218
void assembly(const SparseMatrix &matrix)
Definition system_solvers_large.cpp:917
virtual void postKSPSolveActions()
Definition system_solvers_large.cpp:1305
const MPI_Comm & getCommunicator() const
Definition system_solvers_large.cpp:3515
virtual void fillKSPStatus()
Definition system_solvers_large.cpp:3463
std::string getDataFilePath(const std::string &directory, const std::string &name) const
Definition system_solvers_large.cpp:3025
const double * getRHSRawReadPtr() const
Definition system_solvers_large.cpp:1873
virtual void preKrylovSetupActions()
Definition system_solvers_large.cpp:3355
virtual void importSolution(const std::string &filePath)
Definition system_solvers_large.cpp:2079
virtual void resetKSPStatus()
Definition system_solvers_large.cpp:3484
SystemSolver(bool debug=false)
Definition system_solvers_large.cpp:770
virtual void importRHS(const std::string &filePath)
Definition system_solvers_large.cpp:2026
void destroyVector(Vec *vector) const
Definition system_solvers_large.cpp:2998
void createMatrix(int rowBlockSize, int colBlockSize, Mat *matrix) const
Definition system_solvers_large.cpp:2254
void fillVector(Vec vector, const std::string &filePath) const
Definition system_solvers_large.cpp:2638
virtual void matrixDestroy()
Definition system_solvers_large.cpp:1731
virtual void destroyKSPStatus()
Definition system_solvers_large.cpp:3504
virtual void vectorsFill(const std::vector< double > &rhs, const std::vector< double > &solution)
Definition system_solvers_large.cpp:1758
virtual void vectorsDestroy()
Definition system_solvers_large.cpp:1839
virtual void setupPreconditioner()
Definition system_solvers_large.cpp:3245
void enableForceConsistency(bool enable)
Definition system_solvers_large.cpp:3583
long getRowGlobalCount() const
Definition system_solvers_large.cpp:1130
void restoreSolutionRawReadPtr(const double *raw_solution) const
Definition system_solvers_large.cpp:1956
bool isForceConsistencyEnabled() const
Definition system_solvers_large.cpp:3572
KSPOptions & getKSPOptions()
Definition system_solvers_large.cpp:3385
long getRowElementCount() const
Definition system_solvers_large.cpp:1087
virtual void vectorsReorder(bool invert)
Definition system_solvers_large.cpp:1793
virtual void vectorsRestore(std::istream &systemStream, const std::string &directory, const std::string &prefix)
Definition system_solvers_large.cpp:1827
long getColGlobalElementCount() const
Definition system_solvers_large.cpp:1193
void restoreVector(const std::string &directory, const std::string &name, Mat matrix, VectorSide side, Vec *vector) const
Definition system_solvers_large.cpp:2763
virtual void exportSolution(const std::string &filePath, FileFormat exportFormat=FILE_BINARY) const
Definition system_solvers_large.cpp:2063
long getColGlobalCount() const override
Definition system_solvers_large.cpp:295
long getRowGlobalCount() const override
Definition system_solvers_large.cpp:281
void getRowValues(long rowIndex, ConstProxyVector< double > *values) const override
Definition system_solvers_large.cpp:431
const MPI_Comm & getCommunicator() const override
Definition system_solvers_large.cpp:140
long getRowElementCount() const override
Definition system_solvers_large.cpp:249
long getColGlobalElementCount() const override
Definition system_solvers_large.cpp:323
long getMaxRowNZCount() const override
Definition system_solvers_large.cpp:397
long getRowGlobalElementCount() const override
Definition system_solvers_large.cpp:308
void getRowData(long rowIndex, ConstProxyVector< long > *pattern, ConstProxyVector< double > *values) const override
Definition system_solvers_large.cpp:454
long getRowNZCount(long rowIndex) const override
Definition system_solvers_large.cpp:387
long getRowGlobalOffset() const override
Definition system_solvers_large.cpp:335
long getRowCount() const override
Definition system_solvers_large.cpp:222
bool isPartitioned() const override
Definition system_solvers_large.cpp:130
AssemblyOptions getOptions() const override
Definition system_solvers_large.cpp:151
long getColGlobalOffset() const override
Definition system_solvers_large.cpp:345
long getColGlobalElementOffset() const override
Definition system_solvers_large.cpp:373
void getRowPattern(long rowIndex, ConstProxyVector< long > *pattern) const override
Definition system_solvers_large.cpp:412
long getColCount() const override
Definition system_solvers_large.cpp:236
long getRowGlobalElementOffset() const override
Definition system_solvers_large.cpp:358
long getColElementCount() const override
Definition system_solvers_large.cpp:264
int getBlockSize() const override
Definition system_solvers_large.cpp:208
SystemSparseMatrixAssembler(const SparseMatrix *matrix)
Definition system_solvers_large.cpp:119
PetscInt levels
Overlap between a pair of subdomains for the partitioned preconditioner.
Definition system_solvers_large.hpp:42
PetscInt restart
Tells the iterative solver that the initial guess is nonzero.
Definition system_solvers_large.hpp:45
PetscInt maxits
Number of iterations at which the GMRES method restarts.
Definition system_solvers_large.hpp:46
PetscScalar atol
Relative convergence tolerance, relative decrease in the preconditioned residual norm.
Definition system_solvers_large.hpp:48
PetscBool initial_non_zero
Number of levels of fill used by the preconditioner.
Definition system_solvers_large.hpp:44
KSPOptions()
Absolute convergence tolerance, absolute size of the preconditioned residual norm.
Definition system_solvers_large.hpp:50
Definition system_solvers_large.hpp:58
bool full
Controls if the assembler is providing all the non-zero values of a row.
Definition system_solvers_large.hpp:135
