BELFEM
0.9.3
Berkeley Lab Finite Element Framework
Toggle main menu visibility
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
17
namespace
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
61
const
SpMatrixIndexingBase
mIndexingBase =
SpMatrixIndexingBase::Fortran
;
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
cl_SolverWrapper.hpp
belfem::Matrix< real >
belfem::SpMatrix
Sparse matrix in CSR or CSC format.
Definition
cl_SpMatrix.hpp:52
belfem::Vector< int_t >
belfem::solver::PARDISO::PARDISO
PARDISO()
Definition
cl_SolverPARDISO.cpp:24
belfem::solver::PARDISO::solve
void solve(SpMatrix &aMatrix, Vector< real > &aLHS, Vector< real > &aRHS) override
Local; it does not use MPI.
Definition
cl_SolverPARDISO.cpp:42
belfem::solver::PARDISO::get_determinant
real get_determinant() const override
The determinant of the last factorization.
Definition
cl_SolverPARDISO.cpp:189
belfem::solver::PARDISO::error_message
string error_message(const int_t aStatus) const
Definition
cl_SolverPARDISO.cpp:386
belfem::solver::PARDISO::initialize
void initialize(SpMatrix &aMatrix, const SymmetryMode aSymmetryMode=SymmetryMode::Unsymmetric, const int_t aNumRhsColumns=1) override
Definition
cl_SolverPARDISO.cpp:233
belfem::solver::PARDISO::check_status
void check_status(const int_t aStatus)
Definition
cl_SolverPARDISO.cpp:350
belfem::solver::PARDISO::free
void free() override
Definition
cl_SolverPARDISO.cpp:205
belfem::solver::Wrapper::Wrapper
Wrapper(const string &aLabel, const bool aUsesMPI)
Definition
cl_SolverWrapper.cpp:44
belfem::solver
Definition
cl_SolverMUMPS.cpp:26
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::SpMatrixIndexingBase
SpMatrixIndexingBase
Definition
cl_SpMatrix.hpp:38
belfem::SpMatrixIndexingBase::Fortran
@ Fortran
Definition
cl_SpMatrix.hpp:40
belfem::SymmetryMode
SymmetryMode
Definition
en_SolverEnums.hpp:36
belfem::SymmetryMode::Unsymmetric
@ Unsymmetric
Definition
en_SolverEnums.hpp:37
belfem::real
double real
Definition
typedefs.hpp:36
belfem::int_t
int32_t int_t
Definition
typedefs.hpp:51
src
sparse
cl_SolverPARDISO.hpp
Generated by
1.18.0