27 #ifndef OOMPH_QUARTER_CIRCLE_SECTOR_DOMAIN_HEADER
28 #define OOMPH_QUARTER_CIRCLE_SECTOR_DOMAIN_HEADER
31 #include "../generic/quadtree.h"
32 #include "../generic/domain.h"
33 #include "../generic/geom_objects.h"
49 const double& fract_mid,
54 Wall_pt(boundary_geom_object_pt),
64 for (
unsigned i = 0;
i < nmacro;
i++)
113 const unsigned& i_macro,
114 const unsigned& i_direct,
221 const unsigned& imacro,
222 const unsigned& idirect,
226 #ifdef WARN_ABOUT_SUBTLY_CHANGED_OOMPH_INTERFACES
229 "Order of function arguments has changed between versions 0.8 and 0.85",
230 "QuarterCircleSectorDomain::macro_element_boundary(...)",
238 using namespace QuadTreeNames;
248 else if (idirect ==
S)
252 else if (idirect ==
W)
256 else if (idirect ==
E)
262 std::ostringstream error_stream;
263 error_stream <<
"idirect is " << idirect <<
" not one of N, S, E, W"
281 else if (idirect ==
S)
285 else if (idirect ==
W)
289 else if (idirect ==
E)
295 std::ostringstream error_stream;
296 error_stream <<
"idirect is " << idirect <<
" not one of N, S, E, W"
314 else if (idirect ==
S)
318 else if (idirect ==
W)
322 else if (idirect ==
E)
328 std::ostringstream error_stream;
329 error_stream <<
"idirect is " << idirect <<
" not one of N, S, E, W"
342 std::ostringstream error_stream;
343 error_stream <<
"Wrong imacro " << imacro << std::endl;
383 f[1] = 0.5 * r_top[1] * (1.0 +
s_squashed(0.5 * (
s[0] + 1.0)));
409 f[0] = 0.5 * r_bot[0] * 0.5 * (
s[0] + 1.0);
410 f[1] = 0.5 * r_top[1];
441 f[0] = 0.5 * (r_bot[0] +
s_squashed(0.5 * (
s[0] + 1.0)) *
442 (2.0 * r_half[0] - r_bot[0]));
443 f[1] = 0.5 * (r_top[1] +
s_squashed(0.5 * (
s[0] + 1.0)) *
444 (2.0 * r_half[1] - r_top[1]));
479 f[0] = 0.5 * r_bot[0];
480 f[1] = 0.5 * r_top[1] * 0.5 * (
s[0] + 1.0);
498 f[0] = 0.5 * r_bot[0] * (1.0 +
s_squashed(0.5 * (
s[0] + 1.0)));
554 f[0] = 0.5 * r_bot[0] * 0.5 * (
s[0] + 1.0);
574 f[1] = 0.5 * r_top[1] * 0.5 * (
s[0] + 1.0);
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
Definition: quarter_circle_sector_domain.h:43
void r_top_left_S(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left macro element zeta .
Definition: quarter_circle_sector_domain.h:390
QuarterCircleSectorDomain(const QuarterCircleSectorDomain &)=delete
Broken copy constructor.
void r_centr_N(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
Definition: quarter_circle_sector_domain.h:521
void r_centr_W(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
Definition: quarter_circle_sector_domain.h:562
void r_bot_right_S(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of bottom right macro element zeta .
Definition: quarter_circle_sector_domain.h:486
GeomObject * Wall_pt
Pointer to geometric object that represents the curved wall.
Definition: quarter_circle_sector_domain.h:130
double s_squashed(const double &s)
Definition: quarter_circle_sector_domain.h:100
double(* BLSquashFctPt)(const double &s)
Definition: quarter_circle_sector_domain.h:84
void operator=(const QuarterCircleSectorDomain &)=delete
Broken assignment operator.
void r_top_left_W(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left macro element zeta .
Definition: quarter_circle_sector_domain.h:370
void r_bot_right_W(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of bottom right macro element zeta .
Definition: quarter_circle_sector_domain.h:461
void r_top_left_E(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left macro element zeta .
Definition: quarter_circle_sector_domain.h:417
void macro_element_boundary(const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
Definition: quarter_circle_sector_domain.h:219
void r_centr_S(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
Definition: quarter_circle_sector_domain.h:543
double Xi_hi
Upper limit for the (1D) coordinates along the wall.
Definition: quarter_circle_sector_domain.h:127
void r_bot_right_E(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of bottom right macro element zeta .
Definition: quarter_circle_sector_domain.h:505
QuarterCircleSectorDomain(GeomObject *boundary_geom_object_pt, const double &xi_lo, const double &fract_mid, const double &xi_hi)
Definition: quarter_circle_sector_domain.h:47
BLSquashFctPt & bl_squash_fct_pt()
Definition: quarter_circle_sector_domain.h:91
void r_bot_right_N(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of bottom right macro element zeta .
Definition: quarter_circle_sector_domain.h:451
static double default_BL_squash_fct(const double &s)
Definition: quarter_circle_sector_domain.h:142
double Fract_mid
Fraction along wall where outer ring is to be divided.
Definition: quarter_circle_sector_domain.h:124
void r_centr_E(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of central box macro element zeta .
Definition: quarter_circle_sector_domain.h:532
BLSquashFctPt BL_squash_fct_pt
Definition: quarter_circle_sector_domain.h:136
~QuarterCircleSectorDomain()
Destructor: empty; cleanup done in base class.
Definition: quarter_circle_sector_domain.h:78
void r_top_left_N(const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
Boundary of top left macro element zeta .
Definition: quarter_circle_sector_domain.h:354
double Xi_lo
Lower limit for the (1D) coordinates along the wall.
Definition: quarter_circle_sector_domain.h:121
@ 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
EIGEN_STRONG_INLINE const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
Definition: SpecialFunctionsArrayAPI.h:152
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
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86