BELFEM
0.9.0
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
{
46
Vector< int_t >
mParameters ;
47
59
Vector< int_t >
mInfo ;
60
61
#ifdef BELFEM_PARDISO
62
// default indexing base for solver
63
const
SpMatrixIndexingBase
mIndexingBase =
SpMatrixIndexingBase::Fortran
;
64
#endif
65
66
//------------------------------------------------------------------------------
67
public
:
68
//------------------------------------------------------------------------------
69
70
PARDISO
() ;
71
72
//------------------------------------------------------------------------------
73
74
~PARDISO
()
override
;
75
76
//------------------------------------------------------------------------------
77
78
void
79
solve
(
80
SpMatrix
& aMatrix,
81
Vector< real >
& aLHS,
82
Vector< real >
& aRHS )
override
;
83
84
//------------------------------------------------------------------------------
85
86
void
87
solve
(
88
SpMatrix
& aMatrix,
89
Matrix< real >
& aLHS,
90
Matrix< real >
& aRHS )
override
;
91
92
//------------------------------------------------------------------------------
93
94
real
95
get_determinant
()
const override
;
96
97
//------------------------------------------------------------------------------
98
99
void
100
free
()
override
;
101
102
//------------------------------------------------------------------------------
103
protected :
104
//------------------------------------------------------------------------------
105
106
void
107
initialize
(
SpMatrix
& aMatrix,
108
const
SymmetryMode
aSymmetryMode =
SymmetryMode::Unsymmetric
,
109
const
int_t
aNumRhsColumns = 1)
override
;
110
111
//------------------------------------------------------------------------------
112
113
string
114
error_message
(
const
int_t
aStatus )
const
;
115
116
//------------------------------------------------------------------------------
117
118
void
119
check_status
(
const
int_t
aStatus ) ;
120
121
//------------------------------------------------------------------------------
122
};
123
}
124
}
125
126
#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
Definition
cl_SolverPARDISO.cpp:42
belfem::solver::PARDISO::get_determinant
real get_determinant() const override
returns the determinant, if supported by the solver and computation was requested
Definition
cl_SolverPARDISO.cpp:189
belfem::solver::PARDISO::error_message
string error_message(const int_t aStatus) const
Definition
cl_SolverPARDISO.cpp:385
belfem::solver::PARDISO::initialize
void initialize(SpMatrix &aMatrix, const SymmetryMode aSymmetryMode=SymmetryMode::Unsymmetric, const int_t aNumRhsColumns=1) override
Definition
cl_SolverPARDISO.cpp:232
belfem::solver::PARDISO::check_status
void check_status(const int_t aStatus)
Definition
cl_SolverPARDISO.cpp:349
belfem::solver::PARDISO::free
void free() override
Definition
cl_SolverPARDISO.cpp:204
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