chombo-discharge
CD_HyperboloidIF.H
Go to the documentation of this file.
1 /* chombo-discharge
2  * Copyright © 2021 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
12 #ifndef CD_HyperboloidIF_H
13 #define CD_HyperboloidIF_H
14 
15 // Chombo includes
16 #include <RealVect.H>
17 #include <BaseIF.H>
18 
19 // Our includes
20 #include <CD_NamespaceHeader.H>
21 
29 class HyperboloidIF : public BaseIF
30 {
31 public:
38  HyperboloidIF(const RealVect& a_radii, const RealVect& a_center, const bool& a_inside);
39 
44  HyperboloidIF(const HyperboloidIF& a_inputIF);
45 
50  virtual Real
51  value(const RealVect& a_point) const;
52 
56  virtual BaseIF*
57  newImplicitFunction() const;
58 
59 protected:
63  RealVect m_radii;
64 
68  RealVect m_radii2;
69 
73  RealVect m_sign;
74 
78  RealVect m_center;
79 
83  bool m_inside;
84 };
85 
86 #include <CD_NamespaceFooter.H>
87 
88 #endif
Declaration of a two-sheet hyperboloid.
Definition: CD_HyperboloidIF.H:30
virtual BaseIF * newImplicitFunction() const
IF factory method.
Definition: CD_HyperboloidIF.cpp:60
RealVect m_radii2
Hyperboloid radii squared.
Definition: CD_HyperboloidIF.H:68
RealVect m_center
Hyperboloid center.
Definition: CD_HyperboloidIF.H:78
RealVect m_sign
Holder for sign convention.
Definition: CD_HyperboloidIF.H:73
RealVect m_radii
Hyperboloid radii.
Definition: CD_HyperboloidIF.H:63
virtual Real value(const RealVect &a_point) const
Test whether inside or not.
Definition: CD_HyperboloidIF.cpp:37
HyperboloidIF(const RealVect &a_radii, const RealVect &a_center, const bool &a_inside)
Constructor.
Definition: CD_HyperboloidIF.cpp:16
bool m_inside
Inside or outside domain.
Definition: CD_HyperboloidIF.H:83