Reference documentation for deal.II version 9.5.0
\(\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\}}\)
Loading...
Searching...
No Matches
include
deal.II
lac
slepc_spectral_transformation.h
Go to the documentation of this file.
1
// ---------------------------------------------------------------------
2
//
3
// Copyright (C) 2009 - 2023 by the deal.II authors
4
//
5
// This file is part of the deal.II library.
6
//
7
// The deal.II library is free software; you can use it, redistribute
8
// it, and/or modify it under the terms of the GNU Lesser General
9
// Public License as published by the Free Software Foundation; either
10
// version 2.1 of the License, or (at your option) any later version.
11
// The full text of the license can be found in the file LICENSE.md at
12
// the top level directory of deal.II.
13
//
14
// ---------------------------------------------------------------------
15
16
17
#ifndef dealii_slepc_spectral_transformation_h
18
# define dealii_slepc_spectral_transformation_h
19
20
21
# include <
deal.II/base/config.h
>
22
23
# ifdef DEAL_II_WITH_SLEPC
24
25
# include <
deal.II/lac/exceptions.h
>
26
# include <
deal.II/lac/petsc_solver.h
>
27
28
# include <petscksp.h>
29
30
# include <slepceps.h>
31
32
# include <memory>
33
34
DEAL_II_NAMESPACE_OPEN
35
36
// Forward declaration
37
# ifndef DOXYGEN
38
namespace
PETScWrappers
39
{
40
// forward declarations
41
class
SolverBase
;
42
}
// namespace PETScWrappers
43
# endif
44
45
namespace
SLEPcWrappers
46
{
47
// forward declaration
48
class
SolverBase
;
49
76
class
TransformationBase
77
{
78
protected
:
82
TransformationBase
(
const
MPI_Comm
mpi_communicator);
83
84
public
:
88
virtual
~TransformationBase
();
89
98
void
99
set_matrix_mode
(
const
STMatMode mode);
100
105
void
106
set_solver
(
const
PETScWrappers::SolverBase
&solver);
107
108
protected
:
112
ST
st
;
113
114
// Make the solver class a friend, since it needs to set spectral
115
// transformation object.
116
friend
class
SolverBase
;
117
};
118
124
class
TransformationShift
:
public
TransformationBase
125
{
126
public
:
130
struct
AdditionalData
131
{
135
AdditionalData
(
const
double
shift_parameter
= 0);
136
140
const
double
shift_parameter
;
141
};
142
143
147
TransformationShift
(
const
MPI_Comm
mpi_communicator,
148
const
AdditionalData
&data =
AdditionalData
());
149
150
151
protected
:
155
const
AdditionalData
additional_data
;
156
};
157
164
class
TransformationShiftInvert
:
public
TransformationBase
165
{
166
public
:
170
struct
AdditionalData
171
{
175
AdditionalData
(
const
double
shift_parameter
= 0);
176
180
const
double
shift_parameter
;
181
};
182
183
187
TransformationShiftInvert
(
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
};
200
211
class
DEAL_II_DEPRECATED
TransformationSpectrumFolding
212
:
public
TransformationBase
213
{
214
public
:
218
struct
AdditionalData
219
{
223
AdditionalData
(
const
double
shift_parameter = 0);
224
228
const
double
shift_parameter
;
229
};
230
231
235
TransformationSpectrumFolding
(
236
const
MPI_Comm
mpi_communicator,
237
const
AdditionalData
&data =
AdditionalData
());
238
239
protected
:
243
const
AdditionalData
additional_data
;
244
};
245
251
class
TransformationCayley
:
public
TransformationBase
252
{
253
public
:
257
struct
AdditionalData
258
{
262
AdditionalData
(
const
double
shift_parameter
= 0,
263
const
double
antishift_parameter
= 0);
264
268
const
double
shift_parameter
;
269
273
const
double
antishift_parameter
;
274
};
275
276
280
TransformationCayley
(
const
MPI_Comm
mpi_communicator,
281
const
AdditionalData
&data =
AdditionalData
());
282
283
protected
:
287
const
AdditionalData
additional_data
;
288
};
289
290
}
// namespace SLEPcWrappers
291
292
DEAL_II_NAMESPACE_CLOSE
293
294
# endif
// DEAL_II_WITH_SLEPC
295
296
/*-------------------- slepc_spectral_transformation.h ------------------*/
297
298
#endif
299
300
/*-------------------- slepc_spectral_transformation.h ------------------*/
MPI_Comm
PETScWrappers::SolverBase
Definition
petsc_solver.h:93
SLEPcWrappers::SolverBase
Definition
slepc_solver.h:147
SLEPcWrappers::TransformationBase
Definition
slepc_spectral_transformation.h:77
SLEPcWrappers::TransformationBase::set_matrix_mode
void set_matrix_mode(const STMatMode mode)
Definition
slepc_spectral_transformation.cc:49
SLEPcWrappers::TransformationBase::~TransformationBase
virtual ~TransformationBase()
Definition
slepc_spectral_transformation.cc:38
SLEPcWrappers::TransformationBase::st
ST st
Definition
slepc_spectral_transformation.h:112
SLEPcWrappers::TransformationBase::set_solver
void set_solver(const PETScWrappers::SolverBase &solver)
Definition
slepc_spectral_transformation.cc:56
SLEPcWrappers::TransformationCayley
Definition
slepc_spectral_transformation.h:252
SLEPcWrappers::TransformationCayley::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:287
SLEPcWrappers::TransformationShiftInvert
Definition
slepc_spectral_transformation.h:165
SLEPcWrappers::TransformationShiftInvert::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:194
SLEPcWrappers::TransformationShift
Definition
slepc_spectral_transformation.h:125
SLEPcWrappers::TransformationShift::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:155
SLEPcWrappers::TransformationSpectrumFolding
Definition
slepc_spectral_transformation.h:213
SLEPcWrappers::TransformationSpectrumFolding::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:243
SolverBase
Definition
solver.h:341
config.h
DEAL_II_DEPRECATED
#define DEAL_II_DEPRECATED
Definition
config.h:172
DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_OPEN
Definition
config.h:472
DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_CLOSE
Definition
config.h:473
exceptions.h
PETScWrappers
Definition
template_constraints.h:658
SLEPcWrappers
Definition
slepc_solver.h:132
petsc_solver.h
SLEPcWrappers::TransformationCayley::AdditionalData
Definition
slepc_spectral_transformation.h:258
SLEPcWrappers::TransformationCayley::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:268
SLEPcWrappers::TransformationCayley::AdditionalData::antishift_parameter
const double antishift_parameter
Definition
slepc_spectral_transformation.h:273
SLEPcWrappers::TransformationShiftInvert::AdditionalData
Definition
slepc_spectral_transformation.h:171
SLEPcWrappers::TransformationShiftInvert::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:180
SLEPcWrappers::TransformationShift::AdditionalData
Definition
slepc_spectral_transformation.h:131
SLEPcWrappers::TransformationShift::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:140
SLEPcWrappers::TransformationSpectrumFolding::AdditionalData
Definition
slepc_spectral_transformation.h:219
SLEPcWrappers::TransformationSpectrumFolding::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:228
Generated by
1.9.7