OGS
GlobalMatrixVectorTypes.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include "SparsityPattern.h"
14 
15 //
16 // Global vector/matrix types and linear solver.
17 //
18 #if defined(USE_LIS)
19 
24 
27 
29 
30 #elif defined(USE_PETSC)
35 
38 
40 
41 #else
46 
49 
51 
52 #endif
53 
56 static_assert(std::is_integral_v<GlobalMatrix::IndexType>,
57  "The index type for global matrices is not an integral type.");
58 static_assert(std::is_integral_v<GlobalVector::IndexType>,
59  "The index type for global vectors is not an integral type.");
60 static_assert(std::is_same_v<GlobalMatrix::IndexType, GlobalVector::IndexType>,
61  "The global matrix and vector index types do not match.");
62 // Both types are integral types and equal, define a single GlobalIndexType.
64 
MathLib::SparsityPattern< GlobalIndexType > GlobalSparsityPattern
GlobalMatrix::IndexType GlobalIndexType
Declaration of class PETScLinearSolver, which defines a solver object based on PETSc routines.
Declaration of class PETScMatrix, which provides an interface to PETSc matrix routines.
Declaration of class PETScVector, which provides an interface to PETSc vector routines.
RawMatrixType::Index IndexType
Definition: EigenMatrix.h:32
Global vector based on Eigen vector.
Definition: EigenVector.h:28
Wrapper class for PETSc matrix routines for matrix.
Definition: PETScMatrix.h:32
Wrapper class for PETSc vector.
Definition: PETScVector.h:33
std::vector< IndexType > SparsityPattern
A vector telling how many nonzeros there are in each global matrix row.