27#ifndef OOMPH_COLLAPSIBLE_CHANNEL_DOMAIN_HEADER
28#define OOMPH_COLLAPSIBLE_CHANNEL_DOMAIN_HEADER
31#include "generic/quadtree.h"
32#include "generic/domain.h"
33#include "generic/geom_objects.h"
49 const unsigned&
ndown,
227 const unsigned&
part);
234 const unsigned&
part);
241 const unsigned&
part);
248 const unsigned&
part);
348#ifdef WARN_ABOUT_SUBTLY_CHANGED_OOMPH_INTERFACES
351 "Order of function arguments has changed between versions 0.8 and 0.85",
352 "CollapsibleChannelDomain::macro_element_boundary(...)",
488 const unsigned&
part)
539 const unsigned&
part)
590 const unsigned&
part)
643 const unsigned&
part)
Collapsible channel domain.
void r_N_collapsible(const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro)
Northern boundary of the macro element imacro in the collapsible section.
double l_collapsible()
Length of collapsible segment.
unsigned ndown()
Number of vertical columns of macro elements in the downstream section.
AxialSpacingFctPt & axial_spacing_fct_pt()
Function pointer for function that implements axial spacing of macro elements.
void r_S_straight(const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part)
Southern boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) section...
unsigned Ny
Number of macro elements across channel.
unsigned Nup
Number of vertical element columns in upstream section.
double Lup
x-length in the upstream part of the channel
void r_S_collapsible(const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro)
Southern boundary of the macro element imacro in the collapsible section.
void r_E_straight(const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part)
Eastern boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) sections...
unsigned Ndown
Number of vertical element columns in downstream section.
~CollapsibleChannelDomain()
Destructor: emtpy; cleanup done in base class.
double(* BLSquashFctPt)(const double &s)
Typedef for function pointer for function that squashes the macro elements near the wall to help reso...
void macro_element_boundary(const unsigned &t, const unsigned &imacro, const unsigned &idirect, const Vector< double > &zeta, Vector< double > &r)
Vector representation of the imacro-th macro element boundary idirect (N/S/W/E) at time level t (t=0:...
GeomObject * wall_pt() const
Access to pointer to the geometric object that parametrises the collapsible wall (const version)
bool Rotate_domain
Rotate domain (for axisymmetric problems, say)
double(* AxialSpacingFctPt)(const double &xi)
Typedef for function pointer for function that implements axial spacing of macro elements.
double l_up()
Length of upstream section.
static double default_axial_spacing_fct(const double &xi)
Default for function that implements axial spacing of macro elements.
BLSquashFctPt BL_squash_fct_pt
Function pointer for function that squashes the macro elements near the walls.
static double default_BL_squash_fct(const double &s)
Default for function that squashes the macro elements near the walls. Identity.
GeomObject *& wall_pt()
Access to pointer to the geometric object that parametrises the collapsible wall.
unsigned ncollapsible()
Number of vertical clumns of macro elements in the "collapsible" segment.
unsigned Ncollapsible
Number of vertical element columns in "collapsible" section.
unsigned ny()
Number of macro-elements across the channel.
double s_squash(const double &s)
Function that squashes the macro elements near the wall. Input argument should vary between 0 and 1; ...
void disable_rotate_domain()
Undo rotation of the domain (for axisymmetric problems)
GeomObject * Wall_pt
Pointer to the geometric object that parametrises the collapsible wall.
AxialSpacingFctPt Axial_spacing_fct_pt
Function pointer for function that implements axial spacing of macro elements.
unsigned nup()
Number of vertical columns of macro elements the upstream section.
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)
Constructor: Pass the number of (macro-)elements, the domain lengths in the x- and y-direction and th...
void enable_rotate_domain()
double l_down()
Length of downstream section.
void r_W_straight(const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part)
Western boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) sections...
double Lcollapsible
x-length in the "collapsible" part of the channel
void r_W_collapsible(const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro)
Western boundary of the macro element imacro in the collapsible section.
double l_y()
Width of channel.
double axial_spacing_fct(const double &xi)
Function that implements axial spacing of macro elements.
BLSquashFctPt & bl_squash_fct_pt()
Function pointer for function that squashes the macro elements near wall. Default mapping (identity) ...
double Ldown
x-length in the downstream part of the channel
void r_N_straight(const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro, const unsigned &part)
Northern boundary of the macro element imacro in the upstream (part=0) or downstream (part=1) section...
void r_E_collapsible(const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &imacro)
Eastern boundary of the macro element imacro in the collapsible section.
Unstructured refineable Triangle Mesh.