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

Collapsible channel domain. More...

#include <collapsible_channel_domain.h>

Inheritance diagram for oomph::CollapsibleChannelDomain:

Public Types

typedef double(* BLSquashFctPt )(const double &s)
 Typedef for function pointer for function that squashes the macro elements near the wall to help resolution of any wall boundary layers. More...
 
typedef double(* AxialSpacingFctPt )(const double &xi)
 Typedef for function pointer for function that implements axial spacing of macro elements. More...
 

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)
 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. More...
 
 ~CollapsibleChannelDomain ()
 Destructor. 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 ()
 Access to pointer to the geometric object that parametrises the collapsible wall. More...
 
GeomObject * wall_pt () const
 Access to pointer to the geometric object that parametrises the collapsible wall (const version) More...
 
BLSquashFctPtbl_squash_fct_pt ()
 Function pointer for function that squashes the macro elements near wall. Default mapping (identity) leaves the y-coordinate of the nodal points unchanged. More...
 
double s_squash (const double &s)
 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(). 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 &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: 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. More...
 

Static Public Member Functions

static double default_BL_squash_fct (const double &s)
 Default for function that squashes the macro elements near the walls. Identity. More...
 

Private Member Functions

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) sections. More...
 
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. More...
 
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) sections. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Static Private Member Functions

static double default_axial_spacing_fct (const double &xi)
 Default for function that implements axial spacing of macro elements. More...
 

Private Attributes

BLSquashFctPt BL_squash_fct_pt
 Function pointer for function that squashes the macro elements near the walls. More...
 
AxialSpacingFctPt Axial_spacing_fct_pt
 Function pointer for function that implements axial spacing of macro elements. More...
 
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...
 

Detailed Description

Collapsible channel domain.

Definition at line 45 of file collapsible_channel_domain.h.

Member Typedef Documentation

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

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

Definition at line 187 of file collapsible_channel_domain.h.

typedef double(* oomph::CollapsibleChannelDomain::BLSquashFctPt)(const double &s)

Typedef for function pointer for function that squashes the macro elements near the wall to help resolution of any wall boundary layers.

Definition at line 157 of file collapsible_channel_domain.h.

Constructor & Destructor Documentation

oomph::CollapsibleChannelDomain::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 
)
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.

Definition at line 54 of file collapsible_channel_domain.h.

References Lcollapsible, Ldown, Lup, Ly, ncollapsible(), Ncollapsible, ndown(), Ndown, nup(), Nup, ny(), Ny, wall_pt(), and Wall_pt.

oomph::CollapsibleChannelDomain::~CollapsibleChannelDomain ( )
inline

Destructor.

Definition at line 89 of file collapsible_channel_domain.h.

References Ncollapsible, Ndown, Nup, and Ny.

Member Function Documentation

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

Function that implements axial spacing of macro elements.

Definition at line 198 of file collapsible_channel_domain.h.

References Axial_spacing_fct_pt.

Referenced by r_E_straight(), r_N_straight(), r_S_straight(), and r_W_straight().

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

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

Definition at line 191 of file collapsible_channel_domain.h.

References Axial_spacing_fct_pt.

Referenced by oomph::CollapsibleChannelMesh< ELEMENT >::axial_spacing_fct_pt().

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

Definition at line 170 of file collapsible_channel_domain.h.

References BL_squash_fct_pt.

Referenced by oomph::AlgebraicCollapsibleChannelMesh< ELEMENT >::AlgebraicCollapsibleChannelMesh(), and oomph::CollapsibleChannelMesh< ELEMENT >::bl_squash_fct_pt().

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

Default for function that implements axial spacing of macro elements.

Definition at line 287 of file collapsible_channel_domain.h.

static double oomph::CollapsibleChannelDomain::default_BL_squash_fct ( const double &  s)
inlinestatic

Default for function that squashes the macro elements near the walls. Identity.

Definition at line 162 of file collapsible_channel_domain.h.

double oomph::CollapsibleChannelDomain::l_collapsible ( )
inline

Length of collapsible segment.

Definition at line 128 of file collapsible_channel_domain.h.

References Lcollapsible.

double oomph::CollapsibleChannelDomain::l_down ( )
inline

Length of downstream section.

Definition at line 134 of file collapsible_channel_domain.h.

References Ldown.

double oomph::CollapsibleChannelDomain::l_up ( )
inline

Length of upstream section.

Definition at line 122 of file collapsible_channel_domain.h.

References Lup.

double oomph::CollapsibleChannelDomain::l_y ( )
inline

Width of channel.

Definition at line 140 of file collapsible_channel_domain.h.

References Ly.

void oomph::CollapsibleChannelDomain::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: 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.

Definition at line 335 of file collapsible_channel_domain.h.

References Ncollapsible, Ndown, 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().

unsigned oomph::CollapsibleChannelDomain::ncollapsible ( )
inline

Number of vertical clumns of macro elements in the "collapsible" segment.

Definition at line 104 of file collapsible_channel_domain.h.

References Ncollapsible.

Referenced by CollapsibleChannelDomain().

unsigned oomph::CollapsibleChannelDomain::ndown ( )
inline

Number of vertical columns of macro elements in the downstream section.

Definition at line 110 of file collapsible_channel_domain.h.

References Ndown.

Referenced by CollapsibleChannelDomain().

unsigned oomph::CollapsibleChannelDomain::nup ( )
inline

Number of vertical columns of macro elements the upstream section.

Definition at line 98 of file collapsible_channel_domain.h.

References Nup.

Referenced by CollapsibleChannelDomain().

unsigned oomph::CollapsibleChannelDomain::ny ( )
inline

Number of macro-elements across the channel.

Definition at line 116 of file collapsible_channel_domain.h.

References Ny.

Referenced by CollapsibleChannelDomain().

void oomph::CollapsibleChannelDomain::r_E_collapsible ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro 
)
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] $

Definition at line 749 of file collapsible_channel_domain.h.

References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, s_squash(), and Wall_pt.

Referenced by macro_element_boundary().

void oomph::CollapsibleChannelDomain::r_E_straight ( const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro,
const unsigned &  part 
)
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.

Definition at line 538 of file collapsible_channel_domain.h.

References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, and s_squash().

Referenced by macro_element_boundary().

void oomph::CollapsibleChannelDomain::r_N_collapsible ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro 
)
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] $

Definition at line 787 of file collapsible_channel_domain.h.

References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, s_squash(), and Wall_pt.

Referenced by macro_element_boundary().

void oomph::CollapsibleChannelDomain::r_N_straight ( const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro,
const unsigned &  part 
)
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.

Definition at line 592 of file collapsible_channel_domain.h.

References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, and s_squash().

Referenced by macro_element_boundary().

void oomph::CollapsibleChannelDomain::r_S_collapsible ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro 
)
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] $

Definition at line 825 of file collapsible_channel_domain.h.

References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, s_squash(), and Wall_pt.

Referenced by macro_element_boundary().

void oomph::CollapsibleChannelDomain::r_S_straight ( const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro,
const unsigned &  part 
)
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.

Definition at line 649 of file collapsible_channel_domain.h.

References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, and s_squash().

Referenced by macro_element_boundary().

void oomph::CollapsibleChannelDomain::r_W_collapsible ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro 
)
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] $.

Definition at line 709 of file collapsible_channel_domain.h.

References Lcollapsible, Lup, Ncollapsible, Ndown, Nup, Ny, s_squash(), and Wall_pt.

Referenced by macro_element_boundary().

void oomph::CollapsibleChannelDomain::r_W_straight ( const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  imacro,
const unsigned &  part 
)
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] $.

Definition at line 483 of file collapsible_channel_domain.h.

References axial_spacing_fct(), Lcollapsible, Ldown, Lup, Ly, Ncollapsible, Ndown, Nup, Ny, and s_squash().

Referenced by macro_element_boundary().

double oomph::CollapsibleChannelDomain::s_squash ( const double &  s)
inline

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().

Definition at line 180 of file collapsible_channel_domain.h.

References BL_squash_fct_pt.

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().

GeomObject*& oomph::CollapsibleChannelDomain::wall_pt ( )
inline

Access to pointer to the geometric object that parametrises the collapsible wall.

Definition at line 147 of file collapsible_channel_domain.h.

References Wall_pt.

Referenced by CollapsibleChannelDomain().

GeomObject* oomph::CollapsibleChannelDomain::wall_pt ( ) const
inline

Access to pointer to the geometric object that parametrises the collapsible wall (const version)

Definition at line 152 of file collapsible_channel_domain.h.

References Wall_pt.

Member Data Documentation

AxialSpacingFctPt oomph::CollapsibleChannelDomain::Axial_spacing_fct_pt
private

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

Definition at line 283 of file collapsible_channel_domain.h.

Referenced by axial_spacing_fct(), and axial_spacing_fct_pt().

BLSquashFctPt oomph::CollapsibleChannelDomain::BL_squash_fct_pt
private

Function pointer for function that squashes the macro elements near the walls.

Definition at line 279 of file collapsible_channel_domain.h.

Referenced by bl_squash_fct_pt(), and s_squash().

double oomph::CollapsibleChannelDomain::Lcollapsible
private
double oomph::CollapsibleChannelDomain::Ldown
private

x-length in the downstream part of the channel

Definition at line 312 of file collapsible_channel_domain.h.

Referenced by CollapsibleChannelDomain(), l_down(), r_E_straight(), r_N_straight(), r_S_straight(), and r_W_straight().

double oomph::CollapsibleChannelDomain::Lup
private
double oomph::CollapsibleChannelDomain::Ly
private
unsigned oomph::CollapsibleChannelDomain::Ncollapsible
private
unsigned oomph::CollapsibleChannelDomain::Ndown
private
unsigned oomph::CollapsibleChannelDomain::Nup
private
unsigned oomph::CollapsibleChannelDomain::Ny
private
GeomObject* oomph::CollapsibleChannelDomain::Wall_pt
private

Pointer to the geometric object that parametrises the collapsible wall.

Definition at line 318 of file collapsible_channel_domain.h.

Referenced by CollapsibleChannelDomain(), r_E_collapsible(), r_N_collapsible(), r_S_collapsible(), r_W_collapsible(), and wall_pt().


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