Reference documentation for deal.II version 9.3.3
\(\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\}}\)
include
deal.II
lac
slepc_spectral_transformation.h
Go to the documentation of this file.
1
// ---------------------------------------------------------------------
2
//
3
// Copyright (C) 2009 - 2020 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
208
class
TransformationSpectrumFolding
:
public
TransformationBase
209
{
210
public
:
214
struct
AdditionalData
215
{
219
AdditionalData
(
const
double
shift_parameter
= 0);
220
224
const
double
shift_parameter
;
225
};
226
227
231
TransformationSpectrumFolding
(
232
const
MPI_Comm
& mpi_communicator,
233
const
AdditionalData
&data =
AdditionalData
());
234
235
protected
:
239
const
AdditionalData
additional_data
;
240
};
241
247
class
TransformationCayley
:
public
TransformationBase
248
{
249
public
:
253
struct
AdditionalData
254
{
258
AdditionalData
(
const
double
shift_parameter
= 0,
259
const
double
antishift_parameter
= 0);
260
264
const
double
shift_parameter
;
265
269
const
double
antishift_parameter
;
270
};
271
272
276
TransformationCayley
(
const
MPI_Comm
& mpi_communicator,
277
const
AdditionalData
&data =
AdditionalData
());
278
279
protected
:
283
const
AdditionalData
additional_data
;
284
};
285
286
}
// namespace SLEPcWrappers
287
288
DEAL_II_NAMESPACE_CLOSE
289
290
# endif
// DEAL_II_WITH_SLEPC
291
292
/*-------------------- slepc_spectral_transformation.h ------------------*/
293
294
#endif
295
296
/*-------------------- slepc_spectral_transformation.h ------------------*/
MPI_Comm
PETScWrappers::SolverBase
Definition:
petsc_solver.h:113
SLEPcWrappers::SolverBase
Definition:
slepc_solver.h:147
SLEPcWrappers::TransformationBase
Definition:
slepc_spectral_transformation.h:77
SLEPcWrappers::TransformationBase::TransformationBase
TransformationBase(const MPI_Comm &mpi_communicator)
Definition:
slepc_spectral_transformation.cc:32
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:248
SLEPcWrappers::TransformationCayley::additional_data
const AdditionalData additional_data
Definition:
slepc_spectral_transformation.h:283
SLEPcWrappers::TransformationCayley::TransformationCayley
TransformationCayley(const MPI_Comm &mpi_communicator, const AdditionalData &data=AdditionalData())
Definition:
slepc_spectral_transformation.cc:139
SLEPcWrappers::TransformationShiftInvert
Definition:
slepc_spectral_transformation.h:165
SLEPcWrappers::TransformationShiftInvert::TransformationShiftInvert
TransformationShiftInvert(const MPI_Comm &mpi_communicator, const AdditionalData &data=AdditionalData())
Definition:
slepc_spectral_transformation.cc:88
SLEPcWrappers::TransformationShiftInvert::additional_data
const AdditionalData additional_data
Definition:
slepc_spectral_transformation.h:194
SLEPcWrappers::TransformationShift
Definition:
slepc_spectral_transformation.h:125
SLEPcWrappers::TransformationShift::TransformationShift
TransformationShift(const MPI_Comm &mpi_communicator, const AdditionalData &data=AdditionalData())
Definition:
slepc_spectral_transformation.cc:69
SLEPcWrappers::TransformationShift::additional_data
const AdditionalData additional_data
Definition:
slepc_spectral_transformation.h:155
SLEPcWrappers::TransformationSpectrumFolding
Definition:
slepc_spectral_transformation.h:209
SLEPcWrappers::TransformationSpectrumFolding::additional_data
const AdditionalData additional_data
Definition:
slepc_spectral_transformation.h:239
SLEPcWrappers::TransformationSpectrumFolding::TransformationSpectrumFolding
TransformationSpectrumFolding(const MPI_Comm &mpi_communicator, const AdditionalData &data=AdditionalData())
Definition:
slepc_spectral_transformation.cc:108
SolverBase
Definition:
solver.h:342
config.h
DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_OPEN
Definition:
config.h:402
DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_CLOSE
Definition:
config.h:403
exceptions.h
PETScWrappers
Definition:
petsc_block_sparse_matrix.h:37
SLEPcWrappers
Definition:
slepc_solver.h:132
petsc_solver.h
SLEPcWrappers::TransformationCayley::AdditionalData
Definition:
slepc_spectral_transformation.h:254
SLEPcWrappers::TransformationCayley::AdditionalData::shift_parameter
const double shift_parameter
Definition:
slepc_spectral_transformation.h:264
SLEPcWrappers::TransformationCayley::AdditionalData::AdditionalData
AdditionalData(const double shift_parameter=0, const double antishift_parameter=0)
Definition:
slepc_spectral_transformation.cc:132
SLEPcWrappers::TransformationCayley::AdditionalData::antishift_parameter
const double antishift_parameter
Definition:
slepc_spectral_transformation.h:269
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::TransformationShiftInvert::AdditionalData::AdditionalData
AdditionalData(const double shift_parameter=0)
Definition:
slepc_spectral_transformation.cc:83
SLEPcWrappers::TransformationShift::AdditionalData
Definition:
slepc_spectral_transformation.h:131
SLEPcWrappers::TransformationShift::AdditionalData::AdditionalData
AdditionalData(const double shift_parameter=0)
Definition:
slepc_spectral_transformation.cc:64
SLEPcWrappers::TransformationShift::AdditionalData::shift_parameter
const double shift_parameter
Definition:
slepc_spectral_transformation.h:140
SLEPcWrappers::TransformationSpectrumFolding::AdditionalData
Definition:
slepc_spectral_transformation.h:215
SLEPcWrappers::TransformationSpectrumFolding::AdditionalData::shift_parameter
const double shift_parameter
Definition:
slepc_spectral_transformation.h:224
SLEPcWrappers::TransformationSpectrumFolding::AdditionalData::AdditionalData
AdditionalData(const double shift_parameter=0)
Definition:
slepc_spectral_transformation.cc:103
Generated by
1.9.4