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 &)=delete | |
Broken copy constructor. More... | |
void | operator= (const QuarterTubeDomain &)=delete |
Broken assignment operator. More... | |
~QuarterTubeDomain () | |
Destructor: empty; cleanup done in base class. 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... | |
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 () |
Destructor: Strictly speaking, whoever creates an object dynamically should be responsible for the cleanup of said object but it makes sense here for the Domain to generically kill any MacroElements left over in the MacroElement container (if it hasn't already been done in the derived class) to avoid memory leaks. More... | |
MacroElement * | macro_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) |
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D) at continuous time, t. More... | |
void | macro_element_boundary (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 (e.g. N/S/W/E in 2D) at current time: f(s). More... | |
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) |
Vector representation of the i_macro-th macro element boundary derivatives i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. More... | |
virtual void | dmacro_element_boundary (const double &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 derivatives i_direct (e.g. N/S/W/E in 2D) at continuous time level t. Broken virtual. More... | |
void | dmacro_element_boundary (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 derivatives i_direct (e.g. N/S/W/E in 2D) at current time: f(s). More... | |
virtual void | d2macro_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 second derivatives i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s). Broken virtual. More... | |
virtual void | d2macro_element_boundary (const double &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 seocond derivatives i_direct (e.g. N/S/W/E in 2D) at continuous time level t. Broken virtual. More... | |
void | d2macro_element_boundary (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 second derivatives i_direct (e.g. N/S/W/E in 2D) at current time: 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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 . 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... | |
Additional Inherited Members | |
Protected Attributes inherited from oomph::Domain | |
Vector< MacroElement * > | Macro_element_pt |
Vector of pointers to 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 42 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 111 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 87 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 48 of file quarter_tube_domain.h.
References i, and oomph::Domain::Macro_element_pt.
|
delete |
Broken copy constructor.
|
inline |
Destructor: empty; cleanup done in base class.
Definition at line 81 of file quarter_tube_domain.h.
|
inline |
Function that implements axial spacing of macro elements.
Definition at line 123 of file quarter_tube_domain.h.
References Axial_spacing_fct_pt.
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 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().
|
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().
|
inlinestaticprivate |
Default for function that implements axial spacing of macro elements.
Definition at line 180 of file quarter_tube_domain.h.
|
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.
References s.
|
virtual |
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)
Implements oomph::Domain.
Definition at line 326 of file quarter_tube_domain.h.
References oomph::OcTreeNames::B, oomph::OcTreeNames::D, oomph::OcTreeNames::F, oomph::BinaryTreeNames::L, oomph::BinaryTreeNames::R, 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(), r_top_left_U(), s, t, and oomph::OcTreeNames::U.
|
delete |
Broken assignment operator.
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 832 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, oomph::GeomObject::position(), r_centr_R(), s_squashed(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 760 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), s_squashed(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 869 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, oomph::GeomObject::position(), r_centr_R(), s_squashed(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 725 of file quarter_tube_domain.h.
References r_centr_R(), and t.
Referenced by macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 738 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, oomph::GeomObject::position(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of bottom right box macro element in layer i_layer zeta .
Definition at line 792 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, oomph::GeomObject::position(), r_centr_R(), s_squashed(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary(), and r_top_left_R().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 642 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 567 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 682 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 489 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 521 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), t, 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().
|
private |
Boundary of central box macro element in layer i_layer zeta .
Definition at line 599 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), t, 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().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 994 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, oomph::GeomObject::position(), r_centr_U(), s_squashed(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 958 of file quarter_tube_domain.h.
References r_centr_U(), and t.
Referenced by macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 1033 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, oomph::GeomObject::position(), r_centr_U(), s_squashed(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 909 of file quarter_tube_domain.h.
References axial_spacing_fct(), Nlayer, oomph::GeomObject::position(), s_squashed(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 941 of file quarter_tube_domain.h.
References r_bot_right_U(), and t.
Referenced by macro_element_boundary().
|
private |
Boundary of top left box macro element in layer i_layer zeta .
Definition at line 971 of file quarter_tube_domain.h.
References axial_spacing_fct(), Fract_mid, Nlayer, oomph::GeomObject::position(), t, Wall_pt, Xi_hi, and Xi_lo.
Referenced by 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 103 of file quarter_tube_domain.h.
References BL_squash_fct_pt, and s.
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().
|
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().
|
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().
|
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().
|
private |
Number of layers.
Definition at line 150 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 |
Pointer to geometric object that represents the curved wall.
Definition at line 153 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 147 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 141 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().