26 #ifndef OOMPH_RECTANGLE_WITH_HOLE_DOMAIN_HEADER
27 #define OOMPH_RECTANGLE_WITH_HOLE_DOMAIN_HEADER
31 #include "../generic/quadtree.h"
32 #include "../generic/geom_objects.h"
33 #include "../generic/macro_element.h"
34 #include "../generic/domain.h"
94 for (
unsigned i = 0;
i < 4;
i++)
111 for (
unsigned i = 0;
i < 2;
i++)
113 f[
i] = left[
i] + (right[
i] - left[
i]) * 0.5 * (
s + 1.0);
124 const unsigned& direction,
128 #ifdef WARN_ABOUT_SUBTLY_CHANGED_OOMPH_INTERFACES
131 "Order of function arguments has changed between versions 0.8 and 0.85",
132 "RectangleWithHoleDomain::macro_element_boundary(...)",
142 using namespace QuadTreeNames;
153 xi[0] = 3.0 *
atan(1.0);
159 xi[0] = -3.0 *
atan(1.0);
169 xi[0] = 5.0 *
atan(1.0) - 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
175 std::ostringstream error_stream;
176 error_stream <<
"Direction is incorrect: " << direction
195 xi[0] = 3.0 *
atan(1.0) - 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
200 xi[0] = 3.0 *
atan(1.0);
206 xi[0] = 1.0 *
atan(1.0);
213 std::ostringstream error_stream;
214 error_stream <<
"Direction is incorrect: " << direction
229 xi[0] = 1.0 *
atan(1.0);
235 xi[0] = -1.0 *
atan(1.0);
241 xi[0] = -
atan(1.0) + 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
251 std::ostringstream error_stream;
252 error_stream <<
"Direction is incorrect: " << direction
267 xi[0] = -3.0 *
atan(1.0) + 2.0 *
atan(1.0) * 0.5 * (1.0 +
s[0]);
276 xi[0] = -3.0 *
atan(1.0);
282 xi[0] = -1.0 *
atan(1.0);
289 std::ostringstream error_stream;
290 error_stream <<
"Direction is incorrect: " << direction
301 std::ostringstream error_stream;
302 error_stream <<
"Wrong macro element number" <<
m << std::endl;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Vector< MacroElement * > Macro_element_pt
Vector of pointers to macro elements.
Definition: domain.h:301
Definition: geom_objects.h:101
virtual void position(const Vector< double > &zeta, Vector< double > &r) const =0
Parametrised position on object at current time: r(zeta).
Definition: oomph_definitions.h:222
Definition: oomph_definitions.h:267
Definition: macro_element.h:279
Rectangular domain with circular whole.
Definition: rectangle_with_hole_domain.h:43
Vector< double > Upper_mid_left
Where the "radial" line from circle meets upper boundary on left.
Definition: rectangle_with_hole_domain.h:330
Vector< double > Lower_mid_left
Where the "radial" line from circle meets lower boundary on left.
Definition: rectangle_with_hole_domain.h:318
RectangleWithHoleDomain(GeomObject *cylinder_pt, const double &length)
Definition: rectangle_with_hole_domain.h:50
void macro_element_boundary(const unsigned &time, const unsigned &m, const unsigned &direction, const Vector< double > &s, Vector< double > &f)
Definition: rectangle_with_hole_domain.h:122
Vector< double > Lower_mid_right
Where the "radial" line from circle meets lower boundary on right.
Definition: rectangle_with_hole_domain.h:321
Vector< double > Upper_left
Upper left corner of rectangle.
Definition: rectangle_with_hole_domain.h:324
Vector< double > Lower_left
Lower left corner of rectangle.
Definition: rectangle_with_hole_domain.h:312
GeomObject * Cylinder_pt
Pointer to geometric object that represents the central cylinder.
Definition: rectangle_with_hole_domain.h:336
void linear_interpolate(Vector< double > left, Vector< double > right, const double &s, Vector< double > &f)
Definition: rectangle_with_hole_domain.h:106
Vector< double > Upper_mid_right
Where the "radial" line from circle meets upper boundary on right.
Definition: rectangle_with_hole_domain.h:333
Vector< double > Upper_right
Upper right corner of rectangle.
Definition: rectangle_with_hole_domain.h:327
Vector< double > Lower_right
Lower right corner of rectangle.
Definition: rectangle_with_hole_domain.h:315
~RectangleWithHoleDomain()
Destructor: Empty; cleanup done in base class.
Definition: rectangle_with_hole_domain.h:102
@ N
Definition: constructor.cpp:22
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
RealScalar s
Definition: level1_cplx_impl.h:130
int * m
Definition: level2_cplx_impl.h:294
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 atan(const bfloat16 &a)
Definition: BFloat16.h:636
double E
Elastic modulus.
Definition: TwenteMeshGluing.cpp:68
@ S
Definition: quadtree.h:62
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86