![]() |
|
Collapsible channel domain. More...
#include <collapsible_channel_domain.h>
Public Types | |
typedef double(* | BLSquashFctPt) (const double &s) |
typedef double(* | AxialSpacingFctPt) (const double &xi) |
Public Member Functions | |
CollapsibleChannelDomain (const unsigned &nup, const unsigned &ncollapsible, const unsigned &ndown, const unsigned &ny, const double &lup, const double &lcollapsible, const double &ldown, const double &ly, GeomObject *wall_pt) | |
~CollapsibleChannelDomain () | |
Destructor: emtpy; cleanup done in base class. More... | |
unsigned | nup () |
Number of vertical columns of macro elements the upstream section. More... | |
unsigned | ncollapsible () |
Number of vertical clumns of macro elements in the "collapsible" segment. More... | |
unsigned | ndown () |
Number of vertical columns of macro elements in the downstream section. More... | |
unsigned | ny () |
Number of macro-elements across the channel. More... | |
double | l_up () |
Length of upstream section. More... | |
double | l_collapsible () |
Length of collapsible segment. More... | |
double | l_down () |
Length of downstream section. More... | |
double | l_y () |
Width of channel. More... | |
GeomObject *& | wall_pt () |
GeomObject * | wall_pt () const |
BLSquashFctPt & | bl_squash_fct_pt () |
double | s_squash (const double &s) |
AxialSpacingFctPt & | axial_spacing_fct_pt () |
double | axial_spacing_fct (const double &xi) |
void | macro_element_boundary (const unsigned &t, const unsigned &imacro, const unsigned &idirect, const Vector< double > &zeta, Vector< double > &r) |
void | enable_rotate_domain () |
Rotate the domain (for axisymmetric problems) More... | |
void | disable_rotate_domain () |
Undo rotation of the domain (for axisymmetric problems) More... | |
![]() | |
Domain () | |
Constructor. More... | |
Domain (const Domain &)=delete | |
Broken copy constructor. More... | |
void | operator= (const Domain &)=delete |
Broken assignment operator. More... | |
virtual | ~Domain () |
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) |
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) |
Static Public Member Functions | |
static double | default_BL_squash_fct (const double &s) |
Private Member Functions | |
void | r_N_straight (const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part) |
void | r_W_straight (const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part) |
void | r_S_straight (const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part) |
void | r_E_straight (const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part) |
void | r_N_collapsible (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro) |
void | r_W_collapsible (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro) |
void | r_S_collapsible (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro) |
void | r_E_collapsible (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro) |
Static Private Member Functions | |
static double | default_axial_spacing_fct (const double &xi) |
Private Attributes | |
BLSquashFctPt | BL_squash_fct_pt |
AxialSpacingFctPt | Axial_spacing_fct_pt |
unsigned | Nup |
Number of vertical element columns in upstream section. More... | |
unsigned | Ncollapsible |
Number of vertical element columns in "collapsible" section. More... | |
unsigned | Ndown |
Number of vertical element columns in downstream section. More... | |
unsigned | Ny |
Number of macro elements across channel. More... | |
double | Lup |
x-length in the upstream part of the channel More... | |
double | Lcollapsible |
x-length in the "collapsible" part of the channel More... | |
double | Ldown |
x-length in the downstream part of the channel More... | |
double | Ly |
Width. More... | |
GeomObject * | Wall_pt |
Pointer to the geometric object that parametrises the collapsible wall. More... | |
bool | Rotate_domain |
Rotate domain (for axisymmetric problems, say) More... | |
Additional Inherited Members | |
![]() | |
Vector< MacroElement * > | Macro_element_pt |
Vector of pointers to macro elements. More... | |
Collapsible channel domain.
Typedef for function pointer for function that implements axial spacing of macro elements
Typedef for function pointer for function that squashes the macro elements near the wall to help resolution of any wall boundary layers.
|
inline |
Constructor: Pass the number of (macro-)elements, the domain lengths in the x- and y-direction and the pointer to the geometric object that specifies the shape of the "collapsible" segment.
References i, Lcollapsible, Ldown, Lup, Mesh_Parameters::ly, Ly, oomph::Domain::Macro_element_pt, ncollapsible(), Ncollapsible, ndown(), Ndown, nup(), Nup, ny(), Ny, wall_pt(), and Wall_pt.
|
inline |
Function that implements axial spacing of macro elements
References Axial_spacing_fct_pt.
Referenced by r_E_straight(), r_N_straight(), r_S_straight(), and r_W_straight().
|
inline |
Function pointer for function that implements axial spacing of macro elements
References Axial_spacing_fct_pt.
Referenced by oomph::CollapsibleChannelMesh< ELEMENT >::axial_spacing_fct_pt().
|
inline |
Function pointer for function that squashes the macro elements near wall. Default mapping (identity) leaves the y-coordinate of the nodal points unchanged.
References BL_squash_fct_pt.
Referenced by oomph::AlgebraicCollapsibleChannelMesh< ELEMENT >::AlgebraicCollapsibleChannelMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::bl_squash_fct_pt(), and oomph::MyAlgebraicCollapsibleChannelMesh< ELEMENT >::MyAlgebraicCollapsibleChannelMesh().
|
inline |
Undo rotation of the domain (for axisymmetric problems)
References Rotate_domain.
|
inline |
Rotate the domain (for axisymmetric problems)
References Rotate_domain.
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Vector representation of the imacro-th macro element boundary idirect (N/S/W/E) at time level t (t=0: present; t>0: previous): \( {\bf r}({\bf zeta}) \) Note that the local coordinate zeta 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): \( {\bf r}({\bf zeta}) \) Note that the local coordinate zeta is a 1D Vector rather than a scalar – this is unavoidable because this function implements the pure virtual function in the Domain base class.
Implements oomph::Domain.
References Global_Physical_Variables::E, N, Ncollapsible, Ndown, Nup, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), r_W_straight(), UniformPSDSelfTest::radius, Rotate_domain, oomph::QuadTreeNames::S, plotPSD::t, oomph::QuadTreeNames::W, and Eigen::zeta().
|
inline |
Number of vertical clumns of macro elements in the "collapsible" segment.
References Ncollapsible.
Referenced by CollapsibleChannelDomain().
|
inline |
Number of vertical columns of macro elements in the downstream section.
References Ndown.
Referenced by CollapsibleChannelDomain().
|
inline |
Number of vertical columns of macro elements the upstream section.
References Nup.
Referenced by CollapsibleChannelDomain().
|
inline |
Number of macro-elements across the channel.
References Ny.
Referenced by CollapsibleChannelDomain().
|
private |
Eastern boundary of the macro element imacro in the collapsible section
Eastern edge of the macro element in the collapsible part of the channel; \( \zeta \in [-1,1] \)
References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, oomph::GeomObject::position(), UniformPSDSelfTest::r, s_squash(), plotPSD::t, Wall_pt, plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
|
private |
Eastern boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) sections
Eastern edge of the macro element in the straight parts of the channel; \( \zeta \in [-1,1] \) part=0 in the upstream part, part=1 in the downstream part
References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, s_squash(), plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
|
private |
Northern boundary of the macro element imacro in the collapsible section
Northern edge of the macro element in the collapsible part of the channel; \( \zeta \in [-1,1] \)
References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, oomph::GeomObject::position(), UniformPSDSelfTest::r, s_squash(), plotPSD::t, Wall_pt, plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
|
private |
Northern boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) sections
Northern edge of the macro element in the straight parts of the channel; \( \zeta \in [-1,1] \) part=0 in the left part, part=1 in the right part
References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, s_squash(), plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
|
private |
Southern boundary of the macro element imacro in the collapsible section
Southern edge of the macro element in the collapsible part of the channel; \( \zeta \in [-1,1] \)
References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, oomph::GeomObject::position(), UniformPSDSelfTest::r, s_squash(), plotPSD::t, Wall_pt, plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
|
private |
Southern boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) sections
Southern edge of the macro element in the straight parts of the channel; \( \zeta \in [-1,1] \) part=0 in the left part, part=1 in the right part
References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, s_squash(), plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
|
private |
Western boundary of the macro element imacro in the collapsible section
Western edge of the macro element in the collapsible part of the channel; \( \zeta \in [-1,1] \).
References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, oomph::GeomObject::position(), UniformPSDSelfTest::r, s_squash(), plotPSD::t, Wall_pt, plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
|
private |
Western boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) sections
Western edge of the macro element in the upstream (part=0) or downstream (part=1) parts of the channel; \( \zeta \in [-1,1] \)
References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, UniformPSDSelfTest::r, s_squash(), plotDoE::x, y, and Eigen::zeta().
Referenced by macro_element_boundary().
Function that squashes the macro elements near the wall. Input argument should vary between 0 and 1; function should return stretched/squashed coordinate in the same range. Default implementation is the identity; can be overloaded by specifying a different function pointer with bl_squash_fct_pt().
References BL_squash_fct_pt, and s.
Referenced by r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), and r_W_straight().
|
inline |
Access to pointer to the geometric object that parametrises the collapsible wall
References Wall_pt.
Referenced by CollapsibleChannelDomain().
|
inline |
|
private |
Function pointer for function that implements axial spacing of macro elements
Referenced by axial_spacing_fct(), and axial_spacing_fct_pt().
|
private |
Function pointer for function that squashes the macro elements near the walls
Referenced by bl_squash_fct_pt(), and s_squash().
|
private |
x-length in the "collapsible" part of the channel
Referenced by CollapsibleChannelDomain(), l_collapsible(), r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), and r_W_straight().
|
private |
x-length in the downstream part of the channel
Referenced by CollapsibleChannelDomain(), l_down(), r_E_straight(), r_N_straight(), r_S_straight(), and r_W_straight().
|
private |
x-length in the upstream part of the channel
Referenced by CollapsibleChannelDomain(), l_up(), r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), and r_W_straight().
|
private |
Width.
Referenced by CollapsibleChannelDomain(), l_y(), r_E_straight(), r_N_straight(), r_S_straight(), and r_W_straight().
|
private |
Number of vertical element columns in "collapsible" section.
Referenced by CollapsibleChannelDomain(), macro_element_boundary(), ncollapsible(), r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), and r_W_straight().
|
private |
Number of vertical element columns in downstream section.
Referenced by CollapsibleChannelDomain(), macro_element_boundary(), ndown(), r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), and r_W_straight().
|
private |
Number of vertical element columns in upstream section.
Referenced by CollapsibleChannelDomain(), macro_element_boundary(), nup(), r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), and r_W_straight().
|
private |
Number of macro elements across channel.
Referenced by CollapsibleChannelDomain(), ny(), r_E_collapsible(), r_E_straight(), r_N_collapsible(), r_N_straight(), r_S_collapsible(), r_S_straight(), r_W_collapsible(), and r_W_straight().
|
private |
Rotate domain (for axisymmetric problems, say)
Referenced by disable_rotate_domain(), enable_rotate_domain(), and macro_element_boundary().
|
private |
Pointer to the geometric object that parametrises the collapsible wall.
Referenced by CollapsibleChannelDomain(), r_E_collapsible(), r_N_collapsible(), r_S_collapsible(), r_W_collapsible(), and wall_pt().