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>
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 &) | |
Broken copy constructor. More... | |
void | operator= (const QuarterTubeDomain &) |
Broken assignment operator. More... | |
~QuarterTubeDomain () | |
Destructor: Kill macro elements. 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... | |
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... | |
AxialSpacingFctPt & | axial_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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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 ![]() | |
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... | |
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 50 of file quarter_tube_domain.h.
typedef double(* oomph::QuarterTubeDomain::AxialSpacingFctPt) (const double &xi) |
Typedef for function pointer for function that implements axial spacing of macro elements.
Definition at line 130 of file quarter_tube_domain.h.
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 106 of file quarter_tube_domain.h.
|
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 58 of file quarter_tube_domain.h.
|
inline |
Broken copy constructor.
Definition at line 81 of file quarter_tube_domain.h.
|
inline |
Destructor: Kill macro elements.
Definition at line 94 of file quarter_tube_domain.h.
References Nlayer.
|
inline |
Function that implements axial spacing of macro elements.
Definition at line 142 of file quarter_tube_domain.h.
References Axial_spacing_fct_pt, and macro_element_boundary().
Referenced by r_bot_right_B(), r_bot_right_D(), r_bot_right_F(), 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_F(), r_top_left_L(), and r_top_left_U().
|
inline |
Function pointer for function that implements axial spacing of macro elements.
Definition at line 135 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().
|
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 113 of file quarter_tube_domain.h.
References BL_squash_fct_pt.
Referenced by oomph::QuarterTubeMesh< ELEMENT >::bl_squash_fct_pt().
|
inlinestaticprivate |
Default for function that implements axial spacing of macro elements.
Definition at line 200 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().
|
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 187 of file quarter_tube_domain.h.
void oomph::QuarterTubeDomain::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).
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 319 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().
Referenced by axial_spacing_fct().
|
inline |
Broken assignment operator.
Definition at line 87 of file quarter_tube_domain.h.
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 853 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 default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 781 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, s_squashed(), Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 894 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 default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 743 of file quarter_tube_domain.h.
References r_centr_R().
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 757 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 814 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 default_axial_spacing_fct(), macro_element_boundary(), and r_top_left_R().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 652 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 577 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 696 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 495 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 529 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), macro_element_boundary(), r_bot_right_B(), r_bot_right_F(), r_bot_right_L(), and r_bot_right_U().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 610 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), macro_element_boundary(), r_top_left_B(), r_top_left_D(), and r_top_left_F().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 1025 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 default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 988 of file quarter_tube_domain.h.
References r_centr_U().
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 1065 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 default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 936 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, s_squashed(), Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 969 of file quarter_tube_domain.h.
References r_bot_right_U().
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 1001 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, Wall_pt, Xi_hi, and Xi_lo.
Referenced by default_axial_spacing_fct(), and macro_element_boundary().
|
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 122 of file quarter_tube_domain.h.
References BL_squash_fct_pt.
Referenced by oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_lower_right_region(), oomph::AlgebraicRefineableQuarterTubeMesh< ELEMENT >::node_update_upper_left_region(), 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().
|
private |
Function pointer for function that implements axial spacing of macro elements.
Definition at line 195 of file quarter_tube_domain.h.
Referenced by axial_spacing_fct(), and axial_spacing_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 180 of file quarter_tube_domain.h.
Referenced by bl_squash_fct_pt(), and s_squashed().
|
private |
Fraction along wall where outer ring is to be divided.
Definition at line 164 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().
|
private |
Number of layers.
Definition at line 170 of file quarter_tube_domain.h.
Referenced by r_bot_right_B(), r_bot_right_D(), r_bot_right_F(), 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_F(), r_top_left_L(), r_top_left_U(), and ~QuarterTubeDomain().
|
private |
Pointer to geometric object that represents the curved wall.
Definition at line 173 of file quarter_tube_domain.h.
Referenced by r_bot_right_B(), r_bot_right_D(), r_bot_right_F(), 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_F(), r_top_left_L(), and r_top_left_U().
|
private |
Upper limit for the coordinates along the wall.
Definition at line 167 of file quarter_tube_domain.h.
Referenced by r_bot_right_B(), r_bot_right_D(), r_bot_right_F(), 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_F(), r_top_left_L(), and r_top_left_U().
|
private |
Lower limit for the coordinates along the wall.
Definition at line 161 of file quarter_tube_domain.h.
Referenced by r_bot_right_B(), r_bot_right_D(), r_bot_right_F(), 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_F(), r_top_left_L(), and r_top_left_U().