Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
oomph::QuarterTubeDomain Class Reference

Quarter tube as domain. Domain is bounded by curved boundary which is represented by a GeomObject. Domain is parametrised by three macro elements in each of the nlayer slices. More...

#include <quarter_tube_domain.h>

Inheritance diagram for oomph::QuarterTubeDomain:

Public Types

typedef double(* 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. More...
 
typedef double(* AxialSpacingFctPt) (const double &xi)
 Typedef for function pointer for function that implements axial spacing of macro elements. More...
 

Public Member Functions

 QuarterTubeDomain (GeomObject *boundary_geom_object_pt, const Vector< double > &xi_lo, const double &fract_mid, const Vector< double > &xi_hi, const unsigned &nlayer)
 Constructor: Pass boundary object and start and end coordinates and fraction along boundary object where outer ring is divided. We form nlayer axial slices. More...
 
 QuarterTubeDomain (const QuarterTubeDomain &)=delete
 Broken copy constructor. More...
 
void operator= (const QuarterTubeDomain &)=delete
 Broken assignment operator. More...
 
 ~QuarterTubeDomain ()
 Destructor: empty; cleanup done in base class. More...
 
BLSquashFctPtbl_squash_fct_pt ()
 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. More...
 
double s_squashed (const double &s)
 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. More...
 
AxialSpacingFctPtaxial_spacing_fct_pt ()
 Function pointer for function that implements axial spacing of macro elements. More...
 
double axial_spacing_fct (const double &xi)
 Function that implements axial spacing of macro elements. More...
 
void macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)
 Vector representation of the i_macro-th macro element boundary i_direct (L/R/D/U/B/F) at time level t (t=0: present; t>0: previous): f(s). More...
 

Private Member Functions

void r_centr_L (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_centr_R (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_centr_D (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_centr_U (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_centr_B (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_centr_F (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_bot_right_L (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_bot_right_R (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_bot_right_D (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_bot_right_U (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_bot_right_B (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_bot_right_F (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_top_left_L (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_top_left_R (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_top_left_D (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_top_left_U (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_top_left_B (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 
void r_top_left_F (const unsigned &t, const Vector< double > &zeta, const unsigned &i_layer, Vector< double > &f)
 Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $. More...
 

Static Private Member Functions

static double default_BL_squash_fct (const double &s)
 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. More...
 
static double default_axial_spacing_fct (const double &xi)
 Default for function that implements axial spacing of macro elements. More...
 

Private Attributes

Vector< double > Xi_lo
 Lower limit for the coordinates along the wall. More...
 
double Fract_mid
 Fraction along wall where outer ring is to be divided. More...
 
Vector< double > Xi_hi
 Upper limit for the coordinates along the wall. More...
 
unsigned Nlayer
 Number of layers. More...
 
GeomObject * Wall_pt
 Pointer to geometric object that represents the curved wall. More...
 
BLSquashFctPt BL_squash_fct_pt
 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. More...
 
AxialSpacingFctPt Axial_spacing_fct_pt
 Function pointer for function that implements axial spacing of macro elements. More...
 

Detailed Description

Quarter tube as domain. Domain is bounded by curved boundary which is represented by a GeomObject. Domain is parametrised by three macro elements in each of the nlayer slices.

Definition at line 42 of file quarter_tube_domain.h.

Member Typedef Documentation

◆ AxialSpacingFctPt

typedef double(* oomph::QuarterTubeDomain::AxialSpacingFctPt) (const double &xi)

Typedef for function pointer for function that implements axial spacing of macro elements.

Definition at line 111 of file quarter_tube_domain.h.

◆ BLSquashFctPt

typedef double(* oomph::QuarterTubeDomain::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.

Definition at line 87 of file quarter_tube_domain.h.

Constructor & Destructor Documentation

◆ QuarterTubeDomain() [1/2]

oomph::QuarterTubeDomain::QuarterTubeDomain ( GeomObject *  boundary_geom_object_pt,
const Vector< double > &  xi_lo,
const double &  fract_mid,
const Vector< double > &  xi_hi,
const unsigned &  nlayer 
)
inline

Constructor: Pass boundary object and start and end coordinates and fraction along boundary object where outer ring is divided. We form nlayer axial slices.

Definition at line 48 of file quarter_tube_domain.h.

◆ QuarterTubeDomain() [2/2]

oomph::QuarterTubeDomain::QuarterTubeDomain ( const QuarterTubeDomain )
delete

Broken copy constructor.

◆ ~QuarterTubeDomain()

oomph::QuarterTubeDomain::~QuarterTubeDomain ( )
inline

Destructor: empty; cleanup done in base class.

Definition at line 81 of file quarter_tube_domain.h.

Member Function Documentation

◆ axial_spacing_fct()

double oomph::QuarterTubeDomain::axial_spacing_fct ( const double &  xi)
inline

◆ axial_spacing_fct_pt()

AxialSpacingFctPt& oomph::QuarterTubeDomain::axial_spacing_fct_pt ( )
inline

Function pointer for function that implements axial spacing of macro elements.

Definition at line 116 of file quarter_tube_domain.h.

References Axial_spacing_fct_pt.

Referenced by oomph::QuarterTubeMesh< ELEMENT >::axial_spacing_fct_pt(), and oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::axial_spacing_fct_pt().

◆ bl_squash_fct_pt()

BLSquashFctPt& oomph::QuarterTubeDomain::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.

Definition at line 94 of file quarter_tube_domain.h.

References BL_squash_fct_pt.

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

◆ default_axial_spacing_fct()

static double oomph::QuarterTubeDomain::default_axial_spacing_fct ( const double &  xi)
inlinestaticprivate

Default for function that implements axial spacing of macro elements.

Definition at line 180 of file quarter_tube_domain.h.

◆ default_BL_squash_fct()

static double oomph::QuarterTubeDomain::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.

Definition at line 167 of file quarter_tube_domain.h.

◆ macro_element_boundary()

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

Vector representation of the i_macro-th macro element boundary i_direct (L/R/D/U/B/F) at time level t (t=0: present; t>0: previous): f(s).

////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

Vector representation of the imacro-th macro element boundary idirect (L/R/D/U/B/F) at time level t (t=0: present; t>0: previous): f(s)

Definition at line 326 of file quarter_tube_domain.h.

References r_bot_right_B(), r_bot_right_D(), r_bot_right_F(), r_bot_right_L(), r_bot_right_R(), r_bot_right_U(), r_centr_B(), r_centr_D(), r_centr_F(), r_centr_L(), r_centr_R(), r_centr_U(), r_top_left_B(), r_top_left_D(), r_top_left_F(), r_top_left_L(), r_top_left_R(), and r_top_left_U().

◆ operator=()

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

Broken assignment operator.

◆ r_bot_right_B()

void oomph::QuarterTubeDomain::r_bot_right_B ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 832 of file quarter_tube_domain.h.

References axial_spacing_fct(), Fract_mid, Nlayer, r_centr_R(), s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_bot_right_D()

void oomph::QuarterTubeDomain::r_bot_right_D ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 760 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_bot_right_F()

void oomph::QuarterTubeDomain::r_bot_right_F ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 869 of file quarter_tube_domain.h.

References axial_spacing_fct(), Fract_mid, Nlayer, r_centr_R(), s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_bot_right_L()

void oomph::QuarterTubeDomain::r_bot_right_L ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 725 of file quarter_tube_domain.h.

References r_centr_R().

Referenced by macro_element_boundary().

◆ r_bot_right_R()

void oomph::QuarterTubeDomain::r_bot_right_R ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 738 of file quarter_tube_domain.h.

References axial_spacing_fct(), Fract_mid, Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_bot_right_U()

void oomph::QuarterTubeDomain::r_bot_right_U ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of bottom right box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 792 of file quarter_tube_domain.h.

References axial_spacing_fct(), Fract_mid, Nlayer, r_centr_R(), s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary(), and r_top_left_R().

◆ r_centr_B()

void oomph::QuarterTubeDomain::r_centr_B ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 642 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_centr_D()

void oomph::QuarterTubeDomain::r_centr_D ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 567 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_centr_F()

void oomph::QuarterTubeDomain::r_centr_F ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 682 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_centr_L()

void oomph::QuarterTubeDomain::r_centr_L ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 489 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_centr_R()

void oomph::QuarterTubeDomain::r_centr_R ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 521 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary(), r_bot_right_B(), r_bot_right_F(), r_bot_right_L(), and r_bot_right_U().

◆ r_centr_U()

void oomph::QuarterTubeDomain::r_centr_U ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of central box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 599 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary(), r_top_left_B(), r_top_left_D(), and r_top_left_F().

◆ r_top_left_B()

void oomph::QuarterTubeDomain::r_top_left_B ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 994 of file quarter_tube_domain.h.

References axial_spacing_fct(), Fract_mid, Nlayer, r_centr_U(), s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_top_left_D()

void oomph::QuarterTubeDomain::r_top_left_D ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 958 of file quarter_tube_domain.h.

References r_centr_U().

Referenced by macro_element_boundary().

◆ r_top_left_F()

void oomph::QuarterTubeDomain::r_top_left_F ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 1033 of file quarter_tube_domain.h.

References axial_spacing_fct(), Fract_mid, Nlayer, r_centr_U(), s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_top_left_L()

void oomph::QuarterTubeDomain::r_top_left_L ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 909 of file quarter_tube_domain.h.

References axial_spacing_fct(), Nlayer, s_squashed(), Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ r_top_left_R()

void oomph::QuarterTubeDomain::r_top_left_R ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 941 of file quarter_tube_domain.h.

References r_bot_right_U().

Referenced by macro_element_boundary().

◆ r_top_left_U()

void oomph::QuarterTubeDomain::r_top_left_U ( const unsigned &  t,
const Vector< double > &  zeta,
const unsigned &  i_layer,
Vector< double > &  f 
)
private

Boundary of top left box macro element in layer i_layer zeta $ \in [-1,1]^2 $.

Definition at line 971 of file quarter_tube_domain.h.

References axial_spacing_fct(), Fract_mid, Nlayer, Wall_pt, Xi_hi, and Xi_lo.

Referenced by macro_element_boundary().

◆ s_squashed()

double oomph::QuarterTubeDomain::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.

Definition at line 103 of file quarter_tube_domain.h.

References BL_squash_fct_pt.

Referenced by r_bot_right_B(), r_bot_right_D(), r_bot_right_F(), r_bot_right_U(), r_top_left_B(), r_top_left_F(), and r_top_left_L().

Member Data Documentation

◆ Axial_spacing_fct_pt

AxialSpacingFctPt oomph::QuarterTubeDomain::Axial_spacing_fct_pt
private

Function pointer for function that implements axial spacing of macro elements.

Definition at line 175 of file quarter_tube_domain.h.

Referenced by axial_spacing_fct(), and axial_spacing_fct_pt().

◆ BL_squash_fct_pt

BLSquashFctPt oomph::QuarterTubeDomain::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.

Definition at line 160 of file quarter_tube_domain.h.

Referenced by bl_squash_fct_pt(), and s_squashed().

◆ Fract_mid

double oomph::QuarterTubeDomain::Fract_mid
private

Fraction along wall where outer ring is to be divided.

Definition at line 144 of file quarter_tube_domain.h.

Referenced by r_bot_right_B(), r_bot_right_F(), r_bot_right_R(), r_bot_right_U(), r_top_left_B(), r_top_left_F(), and r_top_left_U().

◆ Nlayer

unsigned oomph::QuarterTubeDomain::Nlayer
private

◆ Wall_pt

GeomObject* oomph::QuarterTubeDomain::Wall_pt
private

◆ Xi_hi

Vector<double> oomph::QuarterTubeDomain::Xi_hi
private

◆ Xi_lo

Vector<double> oomph::QuarterTubeDomain::Xi_lo
private

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