PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
Pardiso_CholeskySolver.hpp
Go to the documentation of this file.
1// _LICENSE_HEADER_
2//
3// Copyright (C) 2019 - 2025.
4// Terms register on the GPL-3.0 license.
5//
6// This file can be redistributed and/or modified under the license terms.
7//
8// See top level LICENSE file for more details.
9//
10// This file can be used citing references in CITATION.cff file.
11
12#ifndef __Pardiso_CholeskySolver_H
13#define __Pardiso_CholeskySolver_H
14
15#include "Eigen/Eigen"
16#include "ILinearSolver.hpp"
17
18#include "Gedim_Macro.hpp"
19
20#if ENABLE_MKL
21#include <Eigen/PardisoSupport>
22#endif
23
24namespace Gedim
25{
27template <typename Eigen_ArrayType = Eigen::VectorXd, typename Eigen_SparseArrayType = Eigen::SparseMatrix<double>>
29{
30 private:
31#if ENABLE_MKL
32 Eigen::PardisoLDLT<Eigen_SparseArrayType, Eigen::Lower> linearSolver;
33#endif
34 const IArray *_rightHandSide;
35 IArray *_solution;
36
37 public:
40
41 void Initialize(const ISparseArray &matrix,
42 const IArray &rightHandSide,
43 IArray &solution,
45
47
49
51};
52} // namespace Gedim
53
54#endif // __Pardiso_CholeskySolver_H
Eigen column vector.
Definition Eigen_Array.hpp:23
Interface used for column double Array.
Definition IArray.hpp:23
Interface used for algebra linear solvers.
Definition ILinearSolver.hpp:22
Interface used for sparse Array of double.
Definition ISparseArray.hpp:25
Pardiso Cholesky Linear solver.
Definition Pardiso_CholeskySolver.hpp:29
ILinearSolver::SolutionInfo Solve() const
Compute the solution.
Definition Pardiso_CholeskySolver.cpp:53
~Pardiso_CholeskySolver()
Definition Pardiso_CholeskySolver.cpp:34
void Initialize(const ISparseArray &matrix, const IArray &rightHandSide, IArray &solution, const ILinearSolver::Configuration &config=ILinearSolver::Configuration())
Initialize the linear solver Ax = b.
Definition Pardiso_CholeskySolver.cpp:41
Pardiso_CholeskySolver()
Definition Pardiso_CholeskySolver.cpp:28
Definition Eigen_Array.cpp:22
Definition ILinearSolver.hpp:25
Definition ILinearSolver.hpp:31