Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
slepc_spectral_transformation.h
1 // ---------------------------------------------------------------------
2 // @f$Id: slepc_spectral_transformation.h 30040 2013-07-18 17:06:48Z maier @f$
3 //
4 // Copyright (C) 2009 - 2013 by the deal.II authors
5 //
6 // This file is part of the deal.II library.
7 //
8 // The deal.II library is free software; you can use it, redistribute
9 // it, and/or modify it under the terms of the GNU Lesser General
10 // Public License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 // The full text of the license can be found in the file LICENSE at
13 // the top level of the deal.II distribution.
14 //
15 // ---------------------------------------------------------------------
16 
17 
18 #ifndef __deal2__slepc_spectral_transformation_h
19 #define __deal2__slepc_spectral_transformation_h
20 
21 
22 #include <deal.II/base/config.h>
23 
24 #ifdef DEAL_II_WITH_SLEPC
25 
26 # include <deal.II/base/std_cxx1x/shared_ptr.h>
27 # include <deal.II/lac/exceptions.h>
28 
29 # include <petscksp.h>
30 # include <slepceps.h>
31 
33 
34 
35 namespace SLEPcWrappers
36 {
37 
67  {
68  public:
69 
74 
78  virtual ~TransformationBase ();
79 
84  void set_context (EPS &eps);
85 
86  protected:
87 
88  virtual void set_transformation_type (ST &st) const = 0;
89 
90  private:
91 
106  {
107 
112 
117  ST st;
118  };
119 
120  std_cxx1x::shared_ptr<TransformationData> transformation_data;
121  };
122 
131  {
132  public:
133 
140  {
141 
146  AdditionalData (const double shift_parameter = 0);
147 
151  const double shift_parameter;
152  };
153 
154 
159 
160 
161  protected:
162 
168 
176  virtual void set_transformation_type (ST &st) const;
177  };
178 
187  {
188  public:
189 
196  {
201  AdditionalData (const double shift_parameter = 0);
202 
206  const double shift_parameter;
207  };
208 
209 
214 
215  protected:
216 
222 
230  virtual void set_transformation_type (ST &st) const;
231  };
232 
241  {
242  public:
243 
250  {
255  AdditionalData (const double shift_parameter = 0);
256 
260  const double shift_parameter;
261  };
262 
263 
268 
269  protected:
270 
276 
284  virtual void set_transformation_type (ST &st) const;
285  };
286 
295  {
296  public:
297 
303  {
308  AdditionalData (const double shift_parameter = 0,
309  const double antishift_parameter = 0);
310 
314  const double shift_parameter;
315  const double antishift_parameter;
316  };
317 
318 
322  TransformationCayley (const double shift,
323  const double antishift);
324 
325  protected:
326 
332 
340  virtual void set_transformation_type (ST &st) const;
341  };
342 
343 }
344 
345 DEAL_II_NAMESPACE_CLOSE
346 
347 #endif // DEAL_II_WITH_SLEPC
348 
349 /*-------------------- slepc_spectral_transformation.h ------------------*/
350 
351 #endif
352 
353 /*-------------------- slepc_spectral_transformation.h ------------------*/
TransformationShiftInvert(const AdditionalData &data=AdditionalData())
virtual void set_transformation_type(ST &st) const
TransformationShift(const AdditionalData &data=AdditionalData())
virtual void set_transformation_type(ST &st) const
virtual void set_transformation_type(ST &st) const
virtual void set_transformation_type(ST &st) const
AdditionalData(const double shift_parameter=0, const double antishift_parameter=0)
AdditionalData(const double shift_parameter=0)
TransformationCayley(const double shift, const double antishift)
TransformationSpectrumFolding(const AdditionalData &data=AdditionalData())