chombo-discharge
Loading...
Searching...
No Matches
CD_ProfileCylinderIF.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_PROFILECYLINDERIF_H
14#define CD_PROFILECYLINDERIF_H
15
16// Chombo includes
17#include <BaseIF.H>
18
19// Our includes
20#include <CD_NamespaceHeader.H>
21
28class ProfileCylinderIF : public BaseIF
29{
30public:
35
50 ProfileCylinderIF(const RealVect& a_endPoint1,
51 const RealVect& a_endPoint2,
52 const Real a_cylinderRadius,
53 const Real a_torusMajorRadius,
54 const Real a_torusMinorRadius,
55 const Real a_ccDistance,
56 const Real a_shift,
57 const Real a_roundingRadius,
58 const int a_numLeft,
59 const int a_numRight,
60 const bool a_fluidInside);
61
66 ProfileCylinderIF(const ProfileCylinderIF& a_inputIF);
67
72
78 virtual Real
79 value(const RealVect& a_pos) const override;
80
85 virtual BaseIF*
86 newImplicitFunction() const override;
87
88protected:
92 RefCountedPtr<BaseIF> m_baseIF;
93};
94
95#include <CD_NamespaceFooter.H>
96
97#endif
Implicit function which takes the form of a cylinder with a surface profiles (grooves).
Definition CD_ProfileCylinderIF.H:29
ProfileCylinderIF()=delete
No weak construction, use the full constructor.
virtual BaseIF * newImplicitFunction() const override
Factory method.
Definition CD_ProfileCylinderIF.cpp:111
virtual ~ProfileCylinderIF()
Destructor (does nothing)
RefCountedPtr< BaseIF > m_baseIF
Implicit function. This is an intersection between a cylinder and several torii.
Definition CD_ProfileCylinderIF.H:92
virtual Real value(const RealVect &a_pos) const override
Value function. Returns distance to object.
Definition CD_ProfileCylinderIF.cpp:105