BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_SolverUMFPACK.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_SOLVERDATAUMFPACK_HPP
13#define BELFEM_CL_SOLVERDATAUMFPACK_HPP
14
15#include "cl_SolverWrapper.hpp"
16
17namespace belfem
18{
19 namespace solver
20 {
21//------------------------------------------------------------------------------
22
23 class UMFPACK : public Wrapper
24 {
25 int mTransposedFlag ;
26
27 // symbolic factorization
28 void * mSymbolic = nullptr ;
29
30//------------------------------------------------------------------------------
31 public:
32//------------------------------------------------------------------------------
33
34 UMFPACK() ;
35
36//------------------------------------------------------------------------------
37
38 ~UMFPACK() override ;
39
40//------------------------------------------------------------------------------
41
42 void
43 solve(
44 SpMatrix & aMatrix,
45 Vector< real > & aLHS,
46 Vector< real > & aRHS ) override ;
47
48//------------------------------------------------------------------------------
49
50 void
51 solve(
52 SpMatrix & aMatrix,
53 Matrix< real > & aLHS,
54 Matrix< real > & aRHS ) override ;
55
56
57//------------------------------------------------------------------------------
58
59 void
60 free() override ;
61
62//------------------------------------------------------------------------------
63 protected :
64//------------------------------------------------------------------------------
65
66 void
67 initialize( SpMatrix & aMatrix,
68 const SymmetryMode aSymmetryMode = SymmetryMode::Unsymmetric,
69 const int_t aNumRhsColumns = 1 ) override ;
70
71//------------------------------------------------------------------------------
72
73 string
74 error_message( const int aStatus ) const;
75
76//------------------------------------------------------------------------------
77 };
78 }
79}
80#endif //BELFEM_CL_SOLVERDATAUMFPACK_HPP
Sparse matrix in CSR or CSC format.
Definition cl_SpMatrix.hpp:52
UMFPACK()
Definition cl_SolverUMFPACK.cpp:22
string error_message(const int aStatus) const
Definition cl_SolverUMFPACK.cpp:313
void initialize(SpMatrix &aMatrix, const SymmetryMode aSymmetryMode=SymmetryMode::Unsymmetric, const int_t aNumRhsColumns=1) override
Definition cl_SolverUMFPACK.cpp:37
void free() override
Definition cl_SolverUMFPACK.cpp:113
void solve(SpMatrix &aMatrix, Vector< real > &aLHS, Vector< real > &aRHS) override
Definition cl_SolverUMFPACK.cpp:129
Wrapper(const string &aLabel, const bool aUsesMPI)
Definition cl_SolverWrapper.cpp:44
Definition cl_SolverMUMPS.cpp:26
USER GUIDES:
Definition cl_Capacitor.cpp:16
SymmetryMode
Definition en_SolverEnums.hpp:36
@ Unsymmetric
Definition en_SolverEnums.hpp:37
int32_t int_t
Definition typedefs.hpp:51