26#ifndef OOMPH_RECTANGLE_WITH_HOLE_DOMAIN_HEADER
27#define OOMPH_RECTANGLE_WITH_HOLE_DOMAIN_HEADER
90 for (
unsigned i = 0;
i < 4;
i++)
106 for (
unsigned i = 0;
i < 2;
i++)
123#ifdef WARN_ABOUT_SUBTLY_CHANGED_OOMPH_INTERFACES
126 "Order of function arguments has changed between versions 0.8 and 0.85",
127 "RectangleWithHoleDomain::macro_element_boundary(...)",
137 using namespace QuadTreeNames;
148 xi[0] = 3.0 *
atan(1.0);
154 xi[0] = -3.0 *
atan(1.0);
164 xi[0] = 5.0 *
atan(1.0) - 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
190 xi[0] = 3.0 *
atan(1.0) - 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
195 xi[0] = 3.0 *
atan(1.0);
201 xi[0] = 1.0 *
atan(1.0);
224 xi[0] = 1.0 *
atan(1.0);
230 xi[0] = -1.0 *
atan(1.0);
236 xi[0] = -
atan(1.0) + 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
262 xi[0] = -3.0 *
atan(1.0) + 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
271 xi[0] = -3.0 *
atan(1.0);
277 xi[0] = -1.0 *
atan(1.0);
297 error_stream <<
"Wrong macro element number" <<
m << std::endl;
Base class for Domains with curvilinear and/or time-dependent boundaries. Domain boundaries are typic...
Vector< MacroElement * > Macro_element_pt
Vector of pointers to macro elements.
A geometric object is an object that provides a parametrised description of its shape via the functio...
virtual void position(const Vector< double > &zeta, Vector< double > &r) const =0
Parametrised position on object at current time: r(zeta).
An OomphLibError object which should be thrown when an run-time error is encountered....
An OomphLibWarning object which should be created as a temporary object to issue a warning....
Rectangular domain with circular whole.
Vector< double > Upper_mid_left
Where the "radial" line from circle meets upper boundary on left.
Vector< double > Upper_left
Upper left corner of rectangle.
Vector< double > Upper_right
Upper right corner of rectangle.
RectangleWithHoleDomain(GeomObject *cylinder_pt, const double &length)
Constructor. Pass pointer to geometric object that represents the cylinder, the length of the (square...
GeomObject * Cylinder_pt
Pointer to geometric object that represents the central cylinder.
void macro_element_boundary(const unsigned &time, const unsigned &m, const unsigned &direction, const Vector< double > &s, Vector< double > &f)
Parametrisation of macro element boundaries: f(s) is the position vector to macro-element m's boundar...
Vector< double > Lower_left
Lower left corner of rectangle.
void linear_interpolate(Vector< double > left, Vector< double > right, const double &s, Vector< double > &f)
Helper function to interpolate linearly between the "right" and "left" points; .
Vector< double > Lower_mid_right
Where the "radial" line from circle meets lower boundary on right.
Vector< double > Upper_mid_right
Where the "radial" line from circle meets upper boundary on right.
Vector< double > Lower_mid_left
Where the "radial" line from circle meets lower boundary on left.
Vector< double > Lower_right
Lower right corner of rectangle.
~RectangleWithHoleDomain()
Destructor: Empty; cleanup done in base class.
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).