oomph::QuarterCircleSectorDomain Class Reference

#include <quarter_circle_sector_domain.h>

+ Inheritance diagram for oomph::QuarterCircleSectorDomain:

Public Types

typedef double(* BLSquashFctPt) (const double &s)
 

Public Member Functions

 QuarterCircleSectorDomain (GeomObject *boundary_geom_object_pt, const double &xi_lo, const double &fract_mid, const double &xi_hi)
 
 QuarterCircleSectorDomain (const QuarterCircleSectorDomain &)=delete
 Broken copy constructor. More...
 
void operator= (const QuarterCircleSectorDomain &)=delete
 Broken assignment operator. More...
 
 ~QuarterCircleSectorDomain ()
 Destructor: empty; cleanup done in base class. More...
 
BLSquashFctPtbl_squash_fct_pt ()
 
double s_squashed (const double &s)
 
void macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
- Public Member Functions inherited from oomph::Domain
 Domain ()
 Constructor. More...
 
 Domain (const Domain &)=delete
 Broken copy constructor. More...
 
void operator= (const Domain &)=delete
 Broken assignment operator. More...
 
virtual ~Domain ()
 
MacroElementmacro_element_pt (const unsigned &i)
 Access to i-th macro element. More...
 
unsigned nmacro_element ()
 Number of macro elements in domain. More...
 
void output (const std::string &filename, const unsigned &nplot)
 Output macro elements. More...
 
void output (std::ostream &outfile, const unsigned &nplot)
 Output macro elements. More...
 
virtual void macro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
void macro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
void output_macro_element_boundaries (const std::string &filename, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
void output_macro_element_boundaries (std::ostream &outfile, const unsigned &nplot)
 Output all macro element boundaries as tecplot zones. More...
 
virtual void dmacro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
virtual void dmacro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
void dmacro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
virtual void d2macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
virtual void d2macro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 
void d2macro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 

Private Member Functions

void r_top_left_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta \( \in [-1,1] \). More...
 
void r_top_left_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta \( \in [-1,1] \). More...
 
void r_top_left_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta \( \in [-1,1] \). More...
 
void r_top_left_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of top left macro element zeta \( \in [-1,1] \). More...
 
void r_bot_right_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta \( \in [-1,1] \). More...
 
void r_bot_right_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta \( \in [-1,1] \). More...
 
void r_bot_right_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta \( \in [-1,1] \). More...
 
void r_bot_right_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of bottom right macro element zeta \( \in [-1,1] \). More...
 
void r_centr_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta \( \in [-1,1] \). More...
 
void r_centr_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta \( \in [-1,1] \). More...
 
void r_centr_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta \( \in [-1,1] \). More...
 
void r_centr_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &f)
 Boundary of central box macro element zeta \( \in [-1,1] \). More...
 

Static Private Member Functions

static double default_BL_squash_fct (const double &s)
 

Private Attributes

double Xi_lo
 Lower limit for the (1D) coordinates along the wall. More...
 
double Fract_mid
 Fraction along wall where outer ring is to be divided. More...
 
double Xi_hi
 Upper limit for the (1D) coordinates along the wall. More...
 
GeomObjectWall_pt
 Pointer to geometric object that represents the curved wall. More...
 
BLSquashFctPt BL_squash_fct_pt
 

Additional Inherited Members

- Protected Attributes inherited from oomph::Domain
Vector< MacroElement * > Macro_element_pt
 Vector of pointers to macro elements. More...
 

Detailed Description

Circular sector as domain. Domain is bounded by curved boundary which is represented by a GeomObject. Domain is parametrised by three macro elements.

Member Typedef Documentation

◆ BLSquashFctPt

typedef double(* oomph::QuarterCircleSectorDomain::BLSquashFctPt) (const double &s)

Typedef for function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value

Constructor & Destructor Documentation

◆ QuarterCircleSectorDomain() [1/2]

oomph::QuarterCircleSectorDomain::QuarterCircleSectorDomain ( GeomObject boundary_geom_object_pt,
const double xi_lo,
const double fract_mid,
const double xi_hi 
)
inline

Constructor: Pass boundary object and start and end coordinates and fraction along boundary object where outer ring is divided.

51  : Xi_lo(xi_lo),
52  Fract_mid(fract_mid),
53  Xi_hi(xi_hi),
54  Wall_pt(boundary_geom_object_pt),
56  {
57  // There are three macro elements
58  unsigned nmacro = 3;
59 
60  // Resize
61  Macro_element_pt.resize(nmacro);
62 
63  // Create macro elements
64  for (unsigned i = 0; i < nmacro; i++)
65  {
66  Macro_element_pt[i] = new QMacroElement<2>(this, i);
67  }
68  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Vector< MacroElement * > Macro_element_pt
Vector of pointers to macro elements.
Definition: domain.h:301
GeomObject * Wall_pt
Pointer to geometric object that represents the curved wall.
Definition: quarter_circle_sector_domain.h:130
double Xi_hi
Upper limit for the (1D) coordinates along the wall.
Definition: quarter_circle_sector_domain.h:127
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
BLSquashFctPt BL_squash_fct_pt
Definition: quarter_circle_sector_domain.h:136
double Xi_lo
Lower limit for the (1D) coordinates along the wall.
Definition: quarter_circle_sector_domain.h:121

References i, and oomph::Domain::Macro_element_pt.

◆ QuarterCircleSectorDomain() [2/2]

oomph::QuarterCircleSectorDomain::QuarterCircleSectorDomain ( const QuarterCircleSectorDomain )
delete

Broken copy constructor.

◆ ~QuarterCircleSectorDomain()

oomph::QuarterCircleSectorDomain::~QuarterCircleSectorDomain ( )
inline

Destructor: empty; cleanup done in base class.

78 {}

Member Function Documentation

◆ bl_squash_fct_pt()

BLSquashFctPt& oomph::QuarterCircleSectorDomain::bl_squash_fct_pt ( )
inline

Function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value

92  {
93  return BL_squash_fct_pt;
94  }

References BL_squash_fct_pt.

Referenced by oomph::QuarterCircleSectorMesh< ELEMENT >::bl_squash_fct_pt().

◆ default_BL_squash_fct()

static double oomph::QuarterCircleSectorDomain::default_BL_squash_fct ( const double s)
inlinestaticprivate

Default for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value: Identity.

143  {
144  return s;
145  }
RealScalar s
Definition: level1_cplx_impl.h:130

References s.

◆ macro_element_boundary()

void oomph::QuarterCircleSectorDomain::macro_element_boundary ( const unsigned t,
const unsigned imacro,
const unsigned idirect,
const Vector< double > &  s,
Vector< double > &  f 
)
virtual

Vector representation of the i_macro-th macro element boundary i_direct (N/S/W/E) at time level t (t=0: present; t>0: previous): f(s). Note that the local coordinate s is a 1D Vector rather than a scalar – this is unavoidable because this function implements the pure virtual function in the Domain base class.

////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// Vector representation of the imacro-th macro element boundary idirect (N/S/W/E) at time level t (t=0: present; t>0: previous): f(s)

Implements oomph::Domain.

225  {
226 #ifdef WARN_ABOUT_SUBTLY_CHANGED_OOMPH_INTERFACES
227  // Warn about time argument being moved to the front
228  OomphLibWarning(
229  "Order of function arguments has changed between versions 0.8 and 0.85",
230  "QuarterCircleSectorDomain::macro_element_boundary(...)",
232 #endif
233 
234  // Which macro element?
235  // --------------------
236  switch (imacro)
237  {
238  using namespace QuadTreeNames;
239 
240  // Macro element 0: Central box
241  case 0:
242 
243  // Which direction?
244  if (idirect == N)
245  {
246  r_centr_N(t, s, f);
247  }
248  else if (idirect == S)
249  {
250  r_centr_S(t, s, f);
251  }
252  else if (idirect == W)
253  {
254  r_centr_W(t, s, f);
255  }
256  else if (idirect == E)
257  {
258  r_centr_E(t, s, f);
259  }
260  else
261  {
262  std::ostringstream error_stream;
263  error_stream << "idirect is " << idirect << " not one of N, S, E, W"
264  << std::endl;
265 
266  throw OomphLibError(error_stream.str(),
269  }
270 
271  break;
272 
273  // Macro element 1: Bottom right
274  case 1:
275 
276  // Which direction?
277  if (idirect == N)
278  {
279  r_bot_right_N(t, s, f);
280  }
281  else if (idirect == S)
282  {
283  r_bot_right_S(t, s, f);
284  }
285  else if (idirect == W)
286  {
287  r_bot_right_W(t, s, f);
288  }
289  else if (idirect == E)
290  {
291  r_bot_right_E(t, s, f);
292  }
293  else
294  {
295  std::ostringstream error_stream;
296  error_stream << "idirect is " << idirect << " not one of N, S, E, W"
297  << std::endl;
298 
299  throw OomphLibError(error_stream.str(),
302  }
303 
304  break;
305 
306  // Macro element 2:Top left
307  case 2:
308 
309  // Which direction?
310  if (idirect == N)
311  {
312  r_top_left_N(t, s, f);
313  }
314  else if (idirect == S)
315  {
316  r_top_left_S(t, s, f);
317  }
318  else if (idirect == W)
319  {
320  r_top_left_W(t, s, f);
321  }
322  else if (idirect == E)
323  {
324  r_top_left_E(t, s, f);
325  }
326  else
327  {
328  std::ostringstream error_stream;
329  error_stream << "idirect is " << idirect << " not one of N, S, E, W"
330  << std::endl;
331 
332  throw OomphLibError(error_stream.str(),
335  }
336 
337  break;
338 
339  default:
340 
341  // Error
342  std::ostringstream error_stream;
343  error_stream << "Wrong imacro " << imacro << std::endl;
344 
345  throw OomphLibError(
346  error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
347  }
348  }
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
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
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 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
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
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
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
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
@ N
Definition: constructor.cpp:22
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
double E
Elastic modulus.
Definition: TwenteMeshGluing.cpp:68
@ S
Definition: quadtree.h:62
@ W
Definition: quadtree.h:63
t
Definition: plotPSD.py:36
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86

References Global_Physical_Variables::E, f(), N, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, r_bot_right_E(), r_bot_right_N(), r_bot_right_S(), r_bot_right_W(), r_centr_E(), r_centr_N(), r_centr_S(), r_centr_W(), r_top_left_E(), r_top_left_N(), r_top_left_S(), r_top_left_W(), s, oomph::QuadTreeNames::S, plotPSD::t, and oomph::QuadTreeNames::W.

◆ operator=()

void oomph::QuarterCircleSectorDomain::operator= ( const QuarterCircleSectorDomain )
delete

Broken assignment operator.

◆ r_bot_right_E()

void oomph::QuarterCircleSectorDomain::r_bot_right_E ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta \( \in [-1,1] \).

Eastern edge of bottom right macro element.

508  {
509  Vector<double> x(1);
510 
511  // Coordinate along wall
512  x[0] = Xi_lo + (Fract_mid * (Xi_hi - Xi_lo) - Xi_lo) * (s[0] + 1.0) * 0.5;
513 
514  Wall_pt->position(t, x, f);
515  }
virtual void position(const Vector< double > &zeta, Vector< double > &r) const =0
Parametrised position on object at current time: r(zeta).
list x
Definition: plotDoE.py:28

References f(), Fract_mid, oomph::GeomObject::position(), s, plotPSD::t, Wall_pt, plotDoE::x, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_bot_right_N()

void oomph::QuarterCircleSectorDomain::r_bot_right_N ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta \( \in [-1,1] \).

Northern edge of bottom right macro element.

454  {
455  r_top_left_E(t, s, f);
456  }

References f(), r_top_left_E(), s, and plotPSD::t.

Referenced by macro_element_boundary().

◆ r_bot_right_S()

void oomph::QuarterCircleSectorDomain::r_bot_right_S ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta \( \in [-1,1] \).

Southern edge of bottom right macro element.

489  {
490  Vector<double> x(1);
491 
492  // Bottom right corner
493  Vector<double> r_bot(2);
494  x[0] = Xi_lo;
495  Wall_pt->position(t, x, r_bot);
496 
497 
498  f[0] = 0.5 * r_bot[0] * (1.0 + s_squashed(0.5 * (s[0] + 1.0)));
499  f[1] = 0.0;
500  }
double s_squashed(const double &s)
Definition: quarter_circle_sector_domain.h:100

References f(), oomph::GeomObject::position(), s, s_squashed(), plotPSD::t, Wall_pt, plotDoE::x, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_bot_right_W()

void oomph::QuarterCircleSectorDomain::r_bot_right_W ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of bottom right macro element zeta \( \in [-1,1] \).

Western edge of bottom right macro element.

464  {
465  Vector<double> x(1);
466 
467  // Top left corner
468  Vector<double> r_top(2);
469  x[0] = Xi_hi;
470 
471  Wall_pt->position(t, x, r_top);
472 
473  // Bottom right corner
474  Vector<double> r_bot(2);
475  x[0] = Xi_lo;
476 
477  Wall_pt->position(t, x, r_bot);
478 
479  f[0] = 0.5 * r_bot[0];
480  f[1] = 0.5 * r_top[1] * 0.5 * (s[0] + 1.0);
481  }

References f(), oomph::GeomObject::position(), s, plotPSD::t, Wall_pt, plotDoE::x, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary(), and r_centr_E().

◆ r_centr_E()

void oomph::QuarterCircleSectorDomain::r_centr_E ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta \( \in [-1,1] \).

Eastern edge of central box.

535  {
536  r_bot_right_W(t, s, f);
537  }

References f(), r_bot_right_W(), s, and plotPSD::t.

Referenced by macro_element_boundary().

◆ r_centr_N()

void oomph::QuarterCircleSectorDomain::r_centr_N ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta \( \in [-1,1] \).

Northern edge of central box.

524  {
525  r_top_left_S(t, s, f);
526  }

References f(), r_top_left_S(), s, and plotPSD::t.

Referenced by macro_element_boundary().

◆ r_centr_S()

void oomph::QuarterCircleSectorDomain::r_centr_S ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta \( \in [-1,1] \).

Southern edge of central box.

546  {
547  Vector<double> x(1);
548 
549  // Bottom right corner
550  Vector<double> r_bot(2);
551  x[0] = Xi_lo;
552  Wall_pt->position(t, x, r_bot);
553 
554  f[0] = 0.5 * r_bot[0] * 0.5 * (s[0] + 1.0);
555  f[1] = 0.0;
556  }

References f(), oomph::GeomObject::position(), s, plotPSD::t, Wall_pt, plotDoE::x, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_centr_W()

void oomph::QuarterCircleSectorDomain::r_centr_W ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of central box macro element zeta \( \in [-1,1] \).

Western edge of central box.

565  {
566  Vector<double> x(1);
567 
568  // Top left corner
569  Vector<double> r_top(2);
570  x[0] = Xi_hi;
571  Wall_pt->position(t, x, r_top);
572 
573  f[0] = 0.0;
574  f[1] = 0.5 * r_top[1] * 0.5 * (s[0] + 1.0);
575  }

References f(), oomph::GeomObject::position(), s, plotPSD::t, Wall_pt, plotDoE::x, and Xi_hi.

Referenced by macro_element_boundary().

◆ r_top_left_E()

void oomph::QuarterCircleSectorDomain::r_top_left_E ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta \( \in [-1,1] \).

Eastern edge of top left macro element \( s \in [-1,1] \).

420  {
421  Vector<double> x(1);
422 
423  // Top left corner
424  Vector<double> r_top(2);
425  x[0] = Xi_hi;
426 
427  Wall_pt->position(t, x, r_top);
428 
429  // Bottom right corner
430  Vector<double> r_bot(2);
431  x[0] = Xi_lo;
432 
433  Wall_pt->position(t, x, r_bot);
434 
435  // Halfway along wall
436  Vector<double> r_half(2);
437  x[0] = Xi_lo + Fract_mid * (Xi_hi - Xi_lo);
438 
439  Wall_pt->position(t, x, r_half);
440 
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]));
445  }

References f(), Fract_mid, oomph::GeomObject::position(), s, s_squashed(), plotPSD::t, Wall_pt, plotDoE::x, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary(), and r_bot_right_N().

◆ r_top_left_N()

void oomph::QuarterCircleSectorDomain::r_top_left_N ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta \( \in [-1,1] \).

Northern edge of top left macro element \( s \in [-1,1] \).

357  {
358  Vector<double> x(1);
359 
360  // Coordinate along wall
361  x[0] = Xi_hi + (Fract_mid * (Xi_hi - Xi_lo) - Xi_hi) * 0.5 * (s[0] + 1.0);
362 
363  Wall_pt->position(t, x, f);
364  }

References f(), Fract_mid, oomph::GeomObject::position(), s, plotPSD::t, Wall_pt, plotDoE::x, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_top_left_S()

void oomph::QuarterCircleSectorDomain::r_top_left_S ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta \( \in [-1,1] \).

Southern edge of top left macro element \( s \in [-1,1] \).

393  {
394  Vector<double> x(1);
395 
396  // Top left corner
397  Vector<double> r_top(2);
398  x[0] = Xi_hi;
399 
400  Wall_pt->position(t, x, r_top);
401 
402 
403  // Bottom right corner
404  Vector<double> r_bot(2);
405  x[0] = 0.0;
406 
407  Wall_pt->position(t, x, r_bot);
408 
409  f[0] = 0.5 * r_bot[0] * 0.5 * (s[0] + 1.0);
410  f[1] = 0.5 * r_top[1];
411  }

References f(), oomph::GeomObject::position(), s, plotPSD::t, Wall_pt, plotDoE::x, and Xi_hi.

Referenced by macro_element_boundary(), and r_centr_N().

◆ r_top_left_W()

void oomph::QuarterCircleSectorDomain::r_top_left_W ( const unsigned t,
const Vector< double > &  zeta,
Vector< double > &  f 
)
private

Boundary of top left macro element zeta \( \in [-1,1] \).

Western edge of top left macro element \(s \in [-1,1] \).

373  {
374  Vector<double> x(1);
375 
376  // Top left corner
377  Vector<double> r_top(2);
378  x[0] = Xi_hi;
379 
380  Wall_pt->position(t, x, r_top);
381 
382  f[0] = 0.0;
383  f[1] = 0.5 * r_top[1] * (1.0 + s_squashed(0.5 * (s[0] + 1.0)));
384  }

References f(), oomph::GeomObject::position(), s, s_squashed(), plotPSD::t, Wall_pt, plotDoE::x, and Xi_hi.

Referenced by macro_element_boundary().

◆ s_squashed()

double oomph::QuarterCircleSectorDomain::s_squashed ( const double s)
inline

Function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value

101  {
102  return BL_squash_fct_pt(s);
103  }

References BL_squash_fct_pt, and s.

Referenced by r_bot_right_S(), r_top_left_E(), and r_top_left_W().

Member Data Documentation

◆ BL_squash_fct_pt

BLSquashFctPt oomph::QuarterCircleSectorDomain::BL_squash_fct_pt
private

Function pointer for function that squashes the outer two macro elements towards the wall by mapping the input value of the "radial" macro element coordinate to the return value

Referenced by bl_squash_fct_pt(), and s_squashed().

◆ Fract_mid

double oomph::QuarterCircleSectorDomain::Fract_mid
private

Fraction along wall where outer ring is to be divided.

Referenced by r_bot_right_E(), r_top_left_E(), and r_top_left_N().

◆ Wall_pt

GeomObject* oomph::QuarterCircleSectorDomain::Wall_pt
private

Pointer to geometric object that represents the curved wall.

Referenced by r_bot_right_E(), r_bot_right_S(), r_bot_right_W(), r_centr_S(), r_centr_W(), r_top_left_E(), r_top_left_N(), r_top_left_S(), and r_top_left_W().

◆ Xi_hi

double oomph::QuarterCircleSectorDomain::Xi_hi
private

Upper limit for the (1D) coordinates along the wall.

Referenced by r_bot_right_E(), r_bot_right_W(), r_centr_W(), r_top_left_E(), r_top_left_N(), r_top_left_S(), and r_top_left_W().

◆ Xi_lo

double oomph::QuarterCircleSectorDomain::Xi_lo
private

Lower limit for the (1D) coordinates along the wall.

Referenced by r_bot_right_E(), r_bot_right_S(), r_bot_right_W(), r_centr_S(), r_top_left_E(), and r_top_left_N().


The documentation for this class was generated from the following file: