12#ifndef __PETSCKSPSOLVER_H
13#define __PETSCKSPSOLVER_H
15#include "Gedim_Macro.hpp"
27enum struct PETSc_SolverTypes
35enum struct PETSc_Preconditioners
41 PETSc_PCFIELDSPLIT = 3
45template <
typename PETSc_ArrayType = Vec,
typename PETSc_SparseArrayType = Mat, PETSc_SolverTypes PETSc_SolverType = PETSc_SolverTypes::PETSc_KSPGMRES, PETSc_Preconditioners PETSc_Preconditioner = PETSc_Preconditioners::PETSc_DEFAULT>
46class PETSc_KSPSolver final :
public ILinearSolver
51 const IArray *_rightHandSide;
53 Configuration _config;
59 void Initialize(
const ISparseArray &
matrix,
const IArray &
rightHandSide, IArray &solution,
const Configuration &
config = {100, 1
e-6});
61 ILinearSolver::SolutionInfo Solve()
const;
63 void Initialize(
const ISparseArray &
matrix,
const Configuration &
config = {100, 1
e-6});
64 ILinearSolver::SolutionInfo Solve(
const IArray &
rightHandSide, IArray &solution)
const;
Eigen_Array()
Definition Eigen_Array.hpp:28
Definition Eigen_Array.cpp:22