chombo-discharge
CD_ProfileCylinderIF.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_ProfileCylinderIF_H
13 #define CD_ProfileCylinderIF_H
14 
15 // Chombo includes
16 #include <BaseIF.H>
17 
18 // Our includes
19 #include <CD_NamespaceHeader.H>
20 
26 class ProfileCylinderIF : public BaseIF
27 {
28 public:
32  ProfileCylinderIF() = delete;
33 
48  ProfileCylinderIF(const RealVect a_endPoint1,
49  const RealVect a_endPoint2,
50  const Real a_cylinderRadius,
51  const Real a_torusMajorRadius,
52  const Real a_torusMinorRadius,
53  const Real a_ccDistance,
54  const Real a_shift,
55  const Real a_roundingRadius,
56  const int a_numLeft,
57  const int a_numRight,
58  const bool a_fluidInside);
59 
64  ProfileCylinderIF(const ProfileCylinderIF& a_inputIF);
65 
69  virtual ~ProfileCylinderIF();
70 
75  virtual Real
76  value(const RealVect& a_pos) const override;
77 
81  virtual BaseIF*
82  newImplicitFunction() const override;
83 
84 protected:
88  RefCountedPtr<BaseIF> m_baseIF;
89 };
90 
91 #include <CD_NamespaceFooter.H>
92 
93 #endif
Implicit function which takes the form of a cylinder with a surface profiles (grooves).
Definition: CD_ProfileCylinderIF.H:27
ProfileCylinderIF()=delete
No weak construction, use the full constructor.
virtual BaseIF * newImplicitFunction() const override
Factory method.
Definition: CD_ProfileCylinderIF.cpp:113
virtual ~ProfileCylinderIF()
Destructor (does nothing)
Definition: CD_ProfileCylinderIF.cpp:103
RefCountedPtr< BaseIF > m_baseIF
Implicit function. This is an intersection between a cylinder and several torii.
Definition: CD_ProfileCylinderIF.H:88
virtual Real value(const RealVect &a_pos) const override
Value function. Returns distance to object.
Definition: CD_ProfileCylinderIF.cpp:107