DOLFINx
0.11.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
18
namespace
dolfinx::la
19
{
20
23
class
SLEPcEigenSolver
24
{
25
public
:
27
explicit
SLEPcEigenSolver
(MPI_Comm
comm
);
28
30
SLEPcEigenSolver
(EPS
eps
,
bool
inc_ref_count);
31
32
// Delete copy constructor
33
SLEPcEigenSolver
(
const
SLEPcEigenSolver
&) =
delete
;
34
36
SLEPcEigenSolver
(
SLEPcEigenSolver
&& solver)
noexcept
;
37
39
~SLEPcEigenSolver
();
40
41
// Assignment operator (disabled)
42
SLEPcEigenSolver
& operator=(
const
SLEPcEigenSolver
&) =
delete
;
43
45
SLEPcEigenSolver
& operator=(
SLEPcEigenSolver
&& solver)
noexcept
;
46
49
void
set_operators
(
const
Mat A,
const
Mat B);
50
52
void
solve
();
53
56
void
solve
(std::int64_t n);
57
59
std::complex<PetscReal>
get_eigenvalue
(
int
i)
const
;
60
62
void
get_eigenpair
(PetscScalar& lr, PetscScalar& lc, Vec r, Vec c,
63
int
i)
const
;
64
66
int
get_iteration_number
()
const
;
67
69
std::int64_t
get_number_converged
()
const
;
70
73
void
set_options_prefix
(
const
std::string& options_prefix);
74
77
std::string
get_options_prefix
()
const
;
78
80
void
set_from_options
()
const
;
81
83
EPS
eps
()
const
;
84
86
MPI_Comm
comm
()
const
;
87
88
private
:
89
// SLEPc solver pointer
90
EPS _eps;
91
};
92
}
// namespace dolfinx::la
93
#endif
dolfinx::la::SLEPcEigenSolver::get_iteration_number
int get_iteration_number() const
Get the number of iterations used by the solver.
Definition
slepc.cpp:192
dolfinx::la::SLEPcEigenSolver::get_number_converged
std::int64_t get_number_converged() const
Get the number of converged eigenvalues.
Definition
slepc.cpp:158
dolfinx::la::SLEPcEigenSolver::get_options_prefix
std::string get_options_prefix() const
Definition
slepc.cpp:174
dolfinx::la::SLEPcEigenSolver::set_options_prefix
void set_options_prefix(const std::string &options_prefix)
Definition
slepc.cpp:166
dolfinx::la::SLEPcEigenSolver::~SLEPcEigenSolver
~SLEPcEigenSolver()
Destructor.
Definition
slepc.cpp:43
dolfinx::la::SLEPcEigenSolver::get_eigenvalue
std::complex< PetscReal > get_eigenvalue(int i) const
Get ith eigenvalue.
Definition
slepc.cpp:113
dolfinx::la::SLEPcEigenSolver::set_from_options
void set_from_options() const
Set options from PETSc options database.
Definition
slepc.cpp:184
dolfinx::la::SLEPcEigenSolver::comm
MPI_Comm comm() const
Return MPI communicator.
Definition
slepc.cpp:202
dolfinx::la::SLEPcEigenSolver::set_operators
void set_operators(const Mat A, const Mat B)
Definition
slepc.cpp:56
dolfinx::la::SLEPcEigenSolver::solve
void solve()
Compute all eigenpairs of the matrix A (solve ).
Definition
slepc.cpp:62
dolfinx::la::SLEPcEigenSolver::SLEPcEigenSolver
SLEPcEigenSolver(MPI_Comm comm)
Create eigenvalue solver.
Definition
slepc.cpp:21
dolfinx::la::SLEPcEigenSolver::eps
EPS eps() const
Return SLEPc EPS pointer.
Definition
slepc.cpp:200
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:140
dolfinx::la
Linear algebra interface.
Definition
dolfinx_la.h:7
Generated by
1.17.0