pmlTransformation.hh

Go to the documentation of this file.
1 
9 #ifndef PMLTransformation_hh
10 #define PMLTransformation_hh
11 
12 #include "basics.hh"
13 #include "toolbox.hh"
14 #include "formula.hh"
15 #include "geometry.hh"
16 #include "space.hh"
17 namespace concepts {
18 
19  // ************************************************* FrmE_PMLTransformation **
20 
21  template<uint dim>
23  public ElementFormula< typename GeneralMapping<Cmplx,dim>::Type >
24  {
25  public:
27  const Formula<Real>& sigmaDeriv);
28 
30 
31  void addSector(const Real2d vtx0, const Real2d vtx1,
32  const Real2d vtx2, const Real2d vtx3);
33  void addSector(const Sequence<Real2d> vtx);
34 
35  typename GeneralMapping<Cmplx,dim>::Type operator()
36  (const ElementWithCell<Real>& elm, const Real p,
37  const Real t = 0.0) const;
38  typename GeneralMapping<Cmplx,dim>::Type operator()
39  (const ElementWithCell<Real>& elm, const Real2d& p,
40  const Real t = 0.0) const;
41  typename GeneralMapping<Cmplx,dim>::Type operator()
42  (const ElementWithCell<Real>& elm, const Real3d& p,
43  const Real t = 0.0) const;
46 
47  private:
51  std::unique_ptr<const Formula<Real> > sigma_,sigmaDeriv_;
55  mutable uint lastSector_;
58  const Real2d& p) const;
61  (const Formula<Real>* sigma, const Formula<Real>* sigmaDeriv,
62  Sequence<InverseVertexQuadSector2d> mapFromSectorToRefSector);
63 
64  static const uint OUTSIDEPMLSECTOR_ = -1;
65  };
66 } // namespace concepts
67 
68 #endif //PMLTransformation_hh
Basic class for a 2D or 3D map.
void addSector(const Sequence< Real2d > vtx)
uint lastSector_
record the last sector visited, saving works to determine the sector
const ElementWithCell< Real > * lastElm_
record the last elment visited, saving works to determine the sector
Real2d localCoord_(const ElementWithCell< Real > &elm, const Real2d &p) const
Returns the coordinate on the reference element by inverse mapping.
Interface for a formula defined element by element.
void addSector(const Real2d vtx0, const Real2d vtx1, const Real2d vtx2, const Real2d vtx3)
Sequence with operations, output operator, and method of the particular element types.
Definition: sequence.hh:39
Sequence< InverseVertexQuadSector2d > mapFromSectorToRefSector_
class that gives the inverse mapping and jocobian, etc.
FrmE_PMLTransformation(const Formula< Real > *sigma, const Formula< Real > *sigmaDeriv, Sequence< InverseVertexQuadSector2d > mapFromSectorToRefSector)
Private constructor, used for clone.
FrmE_PMLTransformation(const Formula< Real > &sigma, const Formula< Real > &sigmaDeriv)
std::unique_ptr< const Formula< Real > > sigma_
pointers of functions sigma and its derivative
virtual FrmE_PMLTransformation< dim > * clone() const
Virtual copy constructor.
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
std::unique_ptr< const Formula< Real > > sigmaDeriv_
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich