BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_SolverPARDISO.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11
12#ifndef BELFEM_CL_SOLVERPARDISO_HPP
13#define BELFEM_CL_SOLVERPARDISO_HPP
14
15#include "cl_SolverWrapper.hpp"
16
17namespace belfem
18{
19 namespace solver
20 {
21//------------------------------------------------------------------------------
22
23 class PARDISO : public Wrapper
24 {
45 Vector< int_t > mParameters ;
46
57 Vector< int_t > mInfo ;
58
59#ifdef BELFEM_PARDISO
60 // default indexing base for solver
62#endif
63
64//------------------------------------------------------------------------------
65 public:
66//------------------------------------------------------------------------------
67
68 PARDISO() ;
69
70//------------------------------------------------------------------------------
71
72 ~PARDISO() override ;
73
74//------------------------------------------------------------------------------
75
79 void
80 solve(
81 SpMatrix & aMatrix,
82 Vector< real > & aLHS,
83 Vector< real > & aRHS ) override ;
84
85//------------------------------------------------------------------------------
86
87 void
88 solve(
89 SpMatrix & aMatrix,
90 Matrix< real > & aLHS,
91 Matrix< real > & aRHS ) override ;
92
93//------------------------------------------------------------------------------
94
95 real
96 get_determinant() const override;
97
98//------------------------------------------------------------------------------
99
100 void
101 free() override ;
102
103//------------------------------------------------------------------------------
104 protected :
105//------------------------------------------------------------------------------
106
107 void
108 initialize( SpMatrix & aMatrix,
109 const SymmetryMode aSymmetryMode = SymmetryMode::Unsymmetric,
110 const int_t aNumRhsColumns = 1) override ;
111
112//------------------------------------------------------------------------------
113
114 string
115 error_message( const int_t aStatus ) const;
116
117//------------------------------------------------------------------------------
118
119 void
120 check_status( const int_t aStatus ) ;
121
122//------------------------------------------------------------------------------
123 };
124 }
125}
126
127#endif //BELFEM_CL_SOLVERPARDISO_HPP
Sparse matrix in CSR or CSC format.
Definition cl_SpMatrix.hpp:52
PARDISO()
Definition cl_SolverPARDISO.cpp:24
void solve(SpMatrix &aMatrix, Vector< real > &aLHS, Vector< real > &aRHS) override
Local; it does not use MPI.
Definition cl_SolverPARDISO.cpp:42
real get_determinant() const override
The determinant of the last factorization.
Definition cl_SolverPARDISO.cpp:189
string error_message(const int_t aStatus) const
Definition cl_SolverPARDISO.cpp:386
void initialize(SpMatrix &aMatrix, const SymmetryMode aSymmetryMode=SymmetryMode::Unsymmetric, const int_t aNumRhsColumns=1) override
Definition cl_SolverPARDISO.cpp:233
void check_status(const int_t aStatus)
Definition cl_SolverPARDISO.cpp:350
void free() override
Definition cl_SolverPARDISO.cpp:205
Wrapper(const string &aLabel, const bool aUsesMPI)
Definition cl_SolverWrapper.cpp:44
Definition cl_SolverMUMPS.cpp:26
USER GUIDES:
Definition cl_Capacitor.cpp:16
SpMatrixIndexingBase
Definition cl_SpMatrix.hpp:38
@ Fortran
Definition cl_SpMatrix.hpp:40
SymmetryMode
Definition en_SolverEnums.hpp:36
@ Unsymmetric
Definition en_SolverEnums.hpp:37
double real
Definition typedefs.hpp:36
int32_t int_t
Definition typedefs.hpp:51