Loading [MathJax]/extensions/TeX/newcommand.js
deal.II version GIT relicensing-3067-g24f3489fdc 2025-04-14 21:10:00+00:00
\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}
\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}
\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}
\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}
Toggle main menu visibility
Main Page
Tutorial
Code gallery
Topics
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Variables
a
b
d
e
f
h
i
l
m
n
o
p
q
r
s
t
u
v
w
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
p
r
s
t
v
Enumerations
a
b
c
d
e
f
g
h
i
l
n
o
p
r
s
v
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
b
c
d
e
f
g
i
m
o
p
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Related Symbols
:
a
b
c
d
f
g
i
l
m
n
o
p
r
s
t
u
v
Related Pages
Files
File List
File Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
Variables
a
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
Typedefs
Enumerations
Enumerator
m
u
Macros
a
b
d
e
f
h
i
m
p
s
t
dealii.org
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
include
deal.II
lac
slepc_spectral_transformation.h
Go to the documentation of this file.
1
// ------------------------------------------------------------------------
2
//
3
// SPDX-License-Identifier: LGPL-2.1-or-later
4
// Copyright (C) 2009 - 2023 by the deal.II authors
5
//
6
// This file is part of the deal.II library.
7
//
8
// Part of the source code is dual licensed under Apache-2.0 WITH
9
// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10
// governing the source code and code contributions can be found in
11
// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12
//
13
// ------------------------------------------------------------------------
14
15
16
#ifndef dealii_slepc_spectral_transformation_h
17
# define dealii_slepc_spectral_transformation_h
18
19
20
# include <
deal.II/base/config.h
>
21
22
# ifdef DEAL_II_WITH_SLEPC
23
24
# include <
deal.II/lac/exceptions.h
>
25
# include <
deal.II/lac/petsc_solver.h
>
26
27
# include <petscksp.h>
28
29
# include <slepceps.h>
30
31
# include <memory>
32
33
DEAL_II_NAMESPACE_OPEN
34
35
// Forward declaration
36
# ifndef DOXYGEN
37
namespace
PETScWrappers
38
{
39
// forward declarations
40
class
SolverBase
;
41
}
// namespace PETScWrappers
42
# endif
43
44
namespace
SLEPcWrappers
45
{
46
// forward declaration
47
class
SolverBase
;
48
75
class
TransformationBase
76
{
77
protected
:
81
explicit
TransformationBase
(
const
MPI_Comm
mpi_communicator);
82
83
public
:
87
virtual
~TransformationBase
();
88
97
void
98
set_matrix_mode
(
const
STMatMode mode);
99
104
void
105
set_solver
(
const
PETScWrappers::SolverBase
&solver);
106
107
protected
:
111
ST
st
;
112
113
// Make the solver class a friend, since it needs to set spectral
114
// transformation object.
115
friend
class
SolverBase
;
116
};
75
class
TransformationBase
{
…
};
117
123
class
TransformationShift
:
public
TransformationBase
124
{
125
public
:
129
struct
AdditionalData
130
{
134
explicit
AdditionalData
(
const
double
shift_parameter
= 0);
135
139
const
double
shift_parameter
;
140
};
129
struct
AdditionalData
{
…
};
141
142
146
explicit
TransformationShift
(
const
MPI_Comm
mpi_communicator,
147
const
AdditionalData
&
data
=
AdditionalData
());
148
149
150
protected
:
154
const
AdditionalData
additional_data
;
155
};
123
class
TransformationShift
:
public
TransformationBase
{
…
};
156
163
class
TransformationShiftInvert
:
public
TransformationBase
164
{
165
public
:
169
struct
AdditionalData
170
{
174
explicit
AdditionalData
(
const
double
shift_parameter
= 0);
175
179
const
double
shift_parameter
;
180
};
169
struct
AdditionalData
{
…
};
181
182
186
explicit
TransformationShiftInvert
(
187
const
MPI_Comm
mpi_communicator,
188
const
AdditionalData
&
data
=
AdditionalData
());
189
190
protected
:
194
const
AdditionalData
additional_data
;
195
196
// Make the solver class a friend, since it may need to set target
197
// equal the provided shift value.
198
friend
class
SolverBase
;
199
};
163
class
TransformationShiftInvert
:
public
TransformationBase
{
…
};
200
206
class
TransformationCayley
:
public
TransformationBase
207
{
208
public
:
212
struct
AdditionalData
213
{
217
explicit
AdditionalData
(
const
double
shift_parameter
= 0,
218
const
double
antishift_parameter
= 0);
219
223
const
double
shift_parameter
;
224
228
const
double
antishift_parameter
;
229
};
212
struct
AdditionalData
{
…
};
230
231
235
explicit
TransformationCayley
(
236
const
MPI_Comm
mpi_communicator,
237
const
AdditionalData
&
data
=
AdditionalData
());
238
239
protected
:
243
const
AdditionalData
additional_data
;
244
};
206
class
TransformationCayley
:
public
TransformationBase
{
…
};
245
246
}
// namespace SLEPcWrappers
247
248
DEAL_II_NAMESPACE_CLOSE
249
250
# endif
// DEAL_II_WITH_SLEPC
251
252
/*-------------------- slepc_spectral_transformation.h ------------------*/
253
254
#endif
255
256
/*-------------------- slepc_spectral_transformation.h ------------------*/
MPI_Comm
PETScWrappers::SolverBase
Definition
petsc_solver.h:90
SLEPcWrappers::SolverBase
Definition
slepc_solver.h:146
SLEPcWrappers::TransformationBase
Definition
slepc_spectral_transformation.h:76
SLEPcWrappers::TransformationBase::set_matrix_mode
void set_matrix_mode(const STMatMode mode)
Definition
slepc_spectral_transformation.cc:48
SLEPcWrappers::TransformationBase::~TransformationBase
virtual ~TransformationBase()
Definition
slepc_spectral_transformation.cc:37
SLEPcWrappers::TransformationBase::st
ST st
Definition
slepc_spectral_transformation.h:111
SLEPcWrappers::TransformationBase::set_solver
void set_solver(const PETScWrappers::SolverBase &solver)
Definition
slepc_spectral_transformation.cc:55
SLEPcWrappers::TransformationCayley
Definition
slepc_spectral_transformation.h:207
SLEPcWrappers::TransformationCayley::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:243
SLEPcWrappers::TransformationShiftInvert
Definition
slepc_spectral_transformation.h:164
SLEPcWrappers::TransformationShiftInvert::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:194
SLEPcWrappers::TransformationShift
Definition
slepc_spectral_transformation.h:124
SLEPcWrappers::TransformationShift::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:154
SolverBase
Definition
solver.h:342
config.h
DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_OPEN
Definition
config.h:35
DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_CLOSE
Definition
config.h:36
exceptions.h
data
std::vector< index_type > data
Definition
mpi.cc:746
PETScWrappers
Definition
template_constraints.h:635
SLEPcWrappers
Definition
slepc_solver.h:131
petsc_solver.h
SLEPcWrappers::TransformationCayley::AdditionalData
Definition
slepc_spectral_transformation.h:213
SLEPcWrappers::TransformationCayley::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:223
SLEPcWrappers::TransformationCayley::AdditionalData::antishift_parameter
const double antishift_parameter
Definition
slepc_spectral_transformation.h:228
SLEPcWrappers::TransformationShiftInvert::AdditionalData
Definition
slepc_spectral_transformation.h:170
SLEPcWrappers::TransformationShiftInvert::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:179
SLEPcWrappers::TransformationShift::AdditionalData
Definition
slepc_spectral_transformation.h:130
SLEPcWrappers::TransformationShift::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:139
Generated by
1.9.8