deal.II version GIT relicensing-6842-g793a97d2aa 2026-10-02 14:00:01+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\}}\)
Loading...
Searching...
No Matches
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
24
25# include <petscksp.h>
26
27# include <slepceps.h>
28
29# include <memory>
30
31# endif // DEAL_II_WITH_SLEPC
32
34
35# ifdef DEAL_II_WITH_SLEPC
36// Forward declaration
37# ifndef DOXYGEN
38namespace PETScWrappers
39{
40 // forward declarations
41 class SolverBase;
42} // namespace PETScWrappers
43# endif
44
45namespace SLEPcWrappers
46{
47 // forward declaration
48 class SolverBase;
49
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
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
125 {
126 public:
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,
149
150
151 protected:
156 };
157
165 {
166 public:
171 {
175 explicit AdditionalData(const double shift_parameter = 0);
176
180 const double shift_parameter;
181 };
182
183
188 const MPI_Comm mpi_communicator,
190
191 protected:
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
208 {
209 public:
214 {
218 explicit AdditionalData(const double shift_parameter = 0,
219 const double antishift_parameter = 0);
220
224 const double shift_parameter;
225
230 };
231
232
236 explicit TransformationCayley(
237 const MPI_Comm mpi_communicator,
239
240 protected:
245 };
246
247} // namespace SLEPcWrappers
248
249# endif // DEAL_II_WITH_SLEPC
250
252
253/*-------------------- slepc_spectral_transformation.h ------------------*/
254
255#endif
256
257/*-------------------- slepc_spectral_transformation.h ------------------*/
void set_solver(const PETScWrappers::SolverBase &solver)
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
std::vector< index_type > data
Definition mpi.cc:734