deal.II version 9.8.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
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4
// Copyright (C) 2009 - 2026 by the deal.II authors
5
//
6
// This file is part of the deal.II library.
7
//
8
// Detailed license information governing the source code and contributions
9
// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10
//
11
// -----------------------------------------------------------------------------
12
13
14
#ifndef dealii_slepc_spectral_transformation_h
15
# define dealii_slepc_spectral_transformation_h
16
17
18
# include <
deal.II/base/config.h
>
19
20
# ifdef DEAL_II_WITH_SLEPC
21
22
# include <
deal.II/lac/exceptions.h
>
23
# include <
deal.II/lac/petsc_solver.h
>
24
25
# include <petscksp.h>
26
27
# include <slepceps.h>
28
29
# include <memory>
30
31
# endif
// DEAL_II_WITH_SLEPC
32
33
DEAL_II_NAMESPACE_OPEN
34
35
# ifdef DEAL_II_WITH_SLEPC
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
explicit
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
explicit
AdditionalData
(
const
double
shift_parameter
= 0);
136
140
const
double
shift_parameter
;
141
};
142
143
147
explicit
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
explicit
AdditionalData
(
const
double
shift_parameter
= 0);
176
180
const
double
shift_parameter
;
181
};
182
183
187
explicit
TransformationShiftInvert
(
188
const
MPI_Comm
mpi_communicator,
189
const
AdditionalData
&data =
AdditionalData
());
190
191
protected
:
195
const
AdditionalData
additional_data
;
196
197
// Make the solver class a friend, since it may need to set target
198
// equal the provided shift value.
199
friend
class
SolverBase
;
200
};
201
207
class
TransformationCayley
:
public
TransformationBase
208
{
209
public
:
213
struct
AdditionalData
214
{
218
explicit
AdditionalData
(
const
double
shift_parameter
= 0,
219
const
double
antishift_parameter
= 0);
220
224
const
double
shift_parameter
;
225
229
const
double
antishift_parameter
;
230
};
231
232
236
explicit
TransformationCayley
(
237
const
MPI_Comm
mpi_communicator,
238
const
AdditionalData
&data =
AdditionalData
());
239
240
protected
:
244
const
AdditionalData
additional_data
;
245
};
246
247
}
// namespace SLEPcWrappers
248
249
# endif
// DEAL_II_WITH_SLEPC
250
251
DEAL_II_NAMESPACE_CLOSE
252
253
/*-------------------- slepc_spectral_transformation.h ------------------*/
254
255
#endif
256
257
/*-------------------- slepc_spectral_transformation.h ------------------*/
MPI_Comm
PETScWrappers::SolverBase
Definition
petsc_solver.h:90
SLEPcWrappers::SolverBase
Definition
slepc_solver.h:147
SLEPcWrappers::TransformationBase::set_matrix_mode
void set_matrix_mode(const STMatMode mode)
Definition
slepc_spectral_transformation.cc:47
SLEPcWrappers::TransformationBase::TransformationBase
TransformationBase(const MPI_Comm mpi_communicator)
Definition
slepc_spectral_transformation.cc:31
SLEPcWrappers::TransformationBase::SolverBase
friend class SolverBase
Definition
slepc_spectral_transformation.h:116
SLEPcWrappers::TransformationBase::~TransformationBase
virtual ~TransformationBase()
Definition
slepc_spectral_transformation.cc:37
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:54
SLEPcWrappers::TransformationCayley::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:244
SLEPcWrappers::TransformationCayley::TransformationCayley
TransformationCayley(const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
Definition
slepc_spectral_transformation.cc:108
SLEPcWrappers::TransformationShiftInvert::SolverBase
friend class SolverBase
Definition
slepc_spectral_transformation.h:199
SLEPcWrappers::TransformationShiftInvert::TransformationShiftInvert
TransformationShiftInvert(const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
Definition
slepc_spectral_transformation.cc:86
SLEPcWrappers::TransformationShiftInvert::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:195
SLEPcWrappers::TransformationShift::additional_data
const AdditionalData additional_data
Definition
slepc_spectral_transformation.h:155
SLEPcWrappers::TransformationShift::TransformationShift
TransformationShift(const MPI_Comm mpi_communicator, const AdditionalData &data=AdditionalData())
Definition
slepc_spectral_transformation.cc:67
config.h
DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_OPEN
Definition
config.h:38
DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_CLOSE
Definition
config.h:39
exceptions.h
PETScWrappers
Definition
template_constraints.h:622
SLEPcWrappers
Definition
slepc_solver.h:132
petsc_solver.h
SLEPcWrappers::TransformationCayley::AdditionalData
Definition
slepc_spectral_transformation.h:214
SLEPcWrappers::TransformationCayley::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:224
SLEPcWrappers::TransformationCayley::AdditionalData::AdditionalData
AdditionalData(const double shift_parameter=0, const double antishift_parameter=0)
Definition
slepc_spectral_transformation.cc:101
SLEPcWrappers::TransformationCayley::AdditionalData::antishift_parameter
const double antishift_parameter
Definition
slepc_spectral_transformation.h:229
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:81
SLEPcWrappers::TransformationShift::AdditionalData
Definition
slepc_spectral_transformation.h:131
SLEPcWrappers::TransformationShift::AdditionalData::AdditionalData
AdditionalData(const double shift_parameter=0)
Definition
slepc_spectral_transformation.cc:62
SLEPcWrappers::TransformationShift::AdditionalData::shift_parameter
const double shift_parameter
Definition
slepc_spectral_transformation.h:140
Generated by
1.16.1