Chombo + EB  3.2
SineIF.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3  * _______ __
4  * / ___/ / ___ __ _ / / ___
5  * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6  * \___/_//_/\___/_/_/_/_.__/\___/
7  * Please refer to Copyright.txt, in Chombo's root directory.
8  */
9 #endif
10
11 #ifndef _SINEIF_H_
12 #define _SINEIF_H_
13
14 #include "MayDay.H"
15 #include "RealVect.H"
16
17 #include "BaseIF.H"
18
19 #include "NamespaceHeader.H"
20
21 ///
22 /**
23  This implicit function specifies a
24  sine function
25  given constants
26  x0, y0
27  A (magnitude)
28  F (frequency (first two comps))
29  2d:
30  f(x,y) = y - y0 + A*sin(pi*F(x-x0))
31  3d:
32  f(x,y,z) = z - z0 + A0*sin(pi*F0(x-x0))+ A1*sin(pi*F1(y-y0))
33
34  */
35 class SineIF: public BaseIF
36 {
37 public:
38  ///
39  /**
40  last comp of frequency ignored
41  2d:
42  point = (x0, y0)
43  freq = (f0, f1)
44  f(x,y) = y - y0 + A0*sin(pi*f0(x-x0))
45  3d:
46  point = (x0, y0, z0)
47  freq = (f0, f1, f2)
48  f(x,y,z) = z - z0 + A0*sin(pi*(x-x0)) + A1*sin(pi*(y*y0))
49
50  */
51  SineIF(const RealVect & a_A,
52  const RealVect & a_point,
53  const RealVect & a_F,
54  const bool & a_inside);
55
56  /// Destructor
57  virtual ~SineIF()
58  {
59  }
60
61  virtual Real value(const IndexTM<int,SpaceDim> & a_partialDerivative,
62  const IndexTM<Real,SpaceDim>& a_point) const;
63
64  virtual Real value(const RealVect& a_point) const;
65
66  virtual Real value(const IndexTM<Real,SpaceDim>& a_point) const;
67
68  virtual BaseIF* newImplicitFunction() const;
69
70 protected:
71
75  bool m_inside;
78 private:
79  SineIF();
80
81 };
82
83 #include "NamespaceFooter.H"
84 #endif
RealVect m_factor
Definition: SineIF.H:76
RealVect m_A
Definition: SineIF.H:72
virtual ~SineIF()
Destructor.
Definition: SineIF.H:57
Definition: BaseIF.H:32
Definition: SineIF.H:35
double Real
Definition: REAL.H:33
RealVect m_piF
Definition: SineIF.H:77
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
RealVect m_point
Definition: SineIF.H:73
RealVect m_F
Definition: SineIF.H:74
virtual BaseIF * newImplicitFunction() const
virtual Real value(const IndexTM< int, SpaceDim > &a_partialDerivative, const IndexTM< Real, SpaceDim > &a_point) const
bool m_inside
Definition: SineIF.H:75