DOLFINx
0.12.0.0
DOLFINx C++
Toggle main menu visibility
Loading...
Searching...
No Matches
dolfinx
la
slepc.h
1
// Copyright (C) 2005-2018 Garth N. Wells
2
//
3
// This file is part of DOLFINx (https://www.fenicsproject.org)
4
//
5
// SPDX-License-Identifier: LGPL-3.0-or-later
6
7
#pragma once
8
9
#ifdef HAS_SLEPC
10
11
#include "dolfinx/common/MPI.h"
12
#include <memory>
13
#include <petscmat.h>
14
#include <petscvec.h>
15
#include <slepceps.h>
16
#include <string>
17
#include <string_view>
18
19
namespace
dolfinx::la
20
{
21
24
class
SLEPcEigenSolver
25
{
26
public
:
28
explicit
SLEPcEigenSolver
(MPI_Comm
comm
);
29
31
SLEPcEigenSolver
(EPS
eps
,
bool
inc_ref_count);
32
33
// Delete copy constructor
34
SLEPcEigenSolver
(
const
SLEPcEigenSolver
&) =
delete
;
35
37
SLEPcEigenSolver
(
SLEPcEigenSolver
&& solver)
noexcept
;
38
40
~SLEPcEigenSolver
();
41
42
// Assignment operator (disabled)
43
SLEPcEigenSolver
& operator=(
const
SLEPcEigenSolver
&) =
delete
;
44
46
SLEPcEigenSolver
& operator=(
SLEPcEigenSolver
&& solver)
noexcept
;
47
50
void
set_operators
(
const
Mat A,
const
Mat B);
51
53
void
solve
();
54
57
void
solve
(std::int64_t n);
58
60
std::complex<PetscReal>
get_eigenvalue
(
int
i)
const
;
61
63
void
get_eigenpair
(PetscScalar& lr, PetscScalar& lc, Vec r, Vec c,
64
int
i)
const
;
65
67
int
get_iteration_number
()
const
;
68
70
std::int64_t
get_number_converged
()
const
;
71
74
void
set_options_prefix
(std::string_view options_prefix);
75
78
std::string
get_options_prefix
()
const
;
79
81
void
set_from_options
()
const
;
82
84
EPS
eps
()
const
;
85
87
MPI_Comm
comm
()
const
;
88
89
private
:
90
// SLEPc solver pointer
91
EPS _eps;
92
};
93
}
// namespace dolfinx::la
94
#endif
dolfinx::la::SLEPcEigenSolver::get_iteration_number
int get_iteration_number() const
Get the number of iterations used by the solver.
Definition
slepc.cpp:194
dolfinx::la::SLEPcEigenSolver::get_number_converged
std::int64_t get_number_converged() const
Get the number of converged eigenvalues.
Definition
slepc.cpp:159
dolfinx::la::SLEPcEigenSolver::get_options_prefix
std::string get_options_prefix() const
Definition
slepc.cpp:176
dolfinx::la::SLEPcEigenSolver::~SLEPcEigenSolver
~SLEPcEigenSolver()
Destructor.
Definition
slepc.cpp:44
dolfinx::la::SLEPcEigenSolver::get_eigenvalue
std::complex< PetscReal > get_eigenvalue(int i) const
Get ith eigenvalue.
Definition
slepc.cpp:114
dolfinx::la::SLEPcEigenSolver::set_options_prefix
void set_options_prefix(std::string_view options_prefix)
Definition
slepc.cpp:167
dolfinx::la::SLEPcEigenSolver::set_from_options
void set_from_options() const
Set options from PETSc options database.
Definition
slepc.cpp:186
dolfinx::la::SLEPcEigenSolver::comm
MPI_Comm comm() const
Return MPI communicator.
Definition
slepc.cpp:204
dolfinx::la::SLEPcEigenSolver::set_operators
void set_operators(const Mat A, const Mat B)
Definition
slepc.cpp:57
dolfinx::la::SLEPcEigenSolver::solve
void solve()
Compute all eigenpairs of the matrix A (solve ).
Definition
slepc.cpp:63
dolfinx::la::SLEPcEigenSolver::SLEPcEigenSolver
SLEPcEigenSolver(MPI_Comm comm)
Create eigenvalue solver.
Definition
slepc.cpp:22
dolfinx::la::SLEPcEigenSolver::eps
EPS eps() const
Return SLEPc EPS pointer.
Definition
slepc.cpp:202
dolfinx::la::SLEPcEigenSolver::get_eigenpair
void get_eigenpair(PetscScalar &lr, PetscScalar &lc, Vec r, Vec c, int i) const
Get ith eigenpair.
Definition
slepc.cpp:141
dolfinx::la
Linear algebra interface.
Definition
dolfinx_la.h:7
Generated by
1.17.0