14 #ifndef _IB_GEOMETRIES_H
15 #define _IB_GEOMETRIES_H
41 Hole2D(
double r = 1.0,
double x = 0.0,
double y = 0.0) :
R(r),
Xc(x),
Yc(y) {}
48 virtual double Alpha(
double X,
double Y,
double = 0.0)
const;
68 Oval2D(
double r,
double x0,
double y0,
double x1,
double y1);
71 virtual double Alpha(
double X,
double Y,
double)
const;
99 void addHole(
double r,
double x,
double y);
101 void addHole(
double r,
double x0,
double y0,
double x1,
double y1);
104 virtual double Alpha(
double X,
double Y,
double)
const;
125 virtual double Alpha(
const Vec3& X)
const;
Utilities for immersed boundary calculations.
Class for storage of a standard FE grid block.
Definition: ElementBlock.h:27
Class describing the immersed boundary as a scalar function.
Definition: IBGeometries.h:119
double threshold
Inside/outside threshold.
Definition: IBGeometries.h:130
double myExponent
The exponent to apply on the myAlpha function.
Definition: IBGeometries.h:129
GeoFunc2D(RealFunc *f=nullptr, double p=1.0, double eps=0.5)
Default constructor.
Definition: IBGeometries.C:165
RealFunc * myAlpha
Function describing the inside-outside state.
Definition: IBGeometries.h:128
virtual double Alpha(const Vec3 &X) const
Performs the inside-outside test for the geometric object.
Definition: IBGeometries.C:173
Class representing the perforated plate benchmark.
Definition: IBGeometries.h:38
double Yc
Y-coordinate of hole center.
Definition: IBGeometries.h:56
double Xc
X-coordinate of hole center.
Definition: IBGeometries.h:55
Hole2D(double r=1.0, double x=0.0, double y=0.0)
Default constructor initializing the radius and center of the hole.
Definition: IBGeometries.h:41
double R
Hole radius.
Definition: IBGeometries.h:54
virtual double Alpha(double X, double Y, double=0.0) const
Performs the inside-outside test for the perforated plate object.
Definition: IBGeometries.C:28
virtual ElementBlock * tesselate() const
Creates a finite element model of the geometry for visualization.
Definition: IBGeometries.C:75
Interface class representing a geometric object.
Definition: ImmersedBoundaries.h:45
Class representing a plate perforated by an oval hole.
Definition: IBGeometries.h:65
double LR
Auxilliary parameter used by method Alpha.
Definition: IBGeometries.h:80
double Y1
Y-coordinate of second circle center.
Definition: IBGeometries.h:78
Oval2D(double r, double x0, double y0, double x1, double y1)
Default constructor initializing the radius and center of the hole.
Definition: IBGeometries.C:19
virtual ElementBlock * tesselate() const
Creates a finite element model of the geometry for visualization.
Definition: IBGeometries.C:99
double X1
X-coordinate of second circle center.
Definition: IBGeometries.h:77
virtual double Alpha(double X, double Y, double) const
Performs the inside-outside test for the perforated plate object.
Definition: IBGeometries.C:45
double D2
Auxilliary parameter used by method Alpha.
Definition: IBGeometries.h:79
Class representing a plate perforated by multiple holes.
Definition: IBGeometries.h:89
virtual double Alpha(double X, double Y, double) const
Performs the inside-outside test for the perforated plate object.
Definition: IBGeometries.C:64
void addHole(double r, double x, double y)
Adds a hole to the perforated plate.
Definition: IBGeometries.C:151
virtual ElementBlock * tesselate() const
Creates a finite element model of the geometry for visualization.
Definition: IBGeometries.C:127
PerforatedPlate2D(Hole2D *hole)
Constructor creating a single hole.
Definition: IBGeometries.h:94
std::vector< Hole2D * > holes
The holes that perforate the plate.
Definition: IBGeometries.h:110
virtual ~PerforatedPlate2D()
The destructor deletes the holes.
Definition: IBGeometries.C:145
PerforatedPlate2D()
Default constructor.
Definition: IBGeometries.h:92
Scalar-valued unary function of a spatial point.
Definition: Function.h:193
Simple class for representing a point in 3D space.
Definition: Vec3.h:27