Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
oomph::ChannelWithLeafletDomain Class Reference

Rectangular domain with a leaflet blocking the lower half. More...

#include <channel_with_leaflet_domain.h>

+ Inheritance diagram for oomph::ChannelWithLeafletDomain:

Public Member Functions

 ChannelWithLeafletDomain (GeomObject *leaflet_pt, const double &lleft, const double &lright, const double &hleaflet, const double &htot, const unsigned &nleft, const unsigned &nright, const unsigned &ny1, const unsigned &ny2)
 Constructor: Pass pointer to GeomObject that represents the leaflet, the length of the domain to left and right of the leaflet, the height of the leaflet and the overall height of the channel, the number of element columns to the left and right of the leaflet, the number of rows of elements from the bottom of the channel to the end of the leaflet, the number of rows of elements above the end of the leaflet. More...
 
 ~ChannelWithLeafletDomain ()
 Destructor: Empty; cleanup done in base class. More...
 
double htot ()
 Total height of domain (width of channel) More...
 
double hleaflet ()
 Height of leaflet. More...
 
double lleft ()
 Length of domain to the left of leaflet. More...
 
double lright ()
 Length of domain to the right of leaflet. More...
 
GeomObject *& leaflet_pt ()
 Pointer to the wall. More...
 
void macro_element_boundary (const unsigned &t, const unsigned &imacro, const unsigned &idirect, const Vector< double > &zeta, Vector< double > &r)
 Parametrisation of macro element boundaries. 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...
 
MacroElementmacro_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...
 

Protected Member Functions

void macro_bound_I_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_I_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_I_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_I_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_II_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_II_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_II_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_II_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_III_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_III_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_III_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_III_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_IV_N (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_IV_S (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_IV_W (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void macro_bound_IV_E (const unsigned &t, const Vector< double > &zeta, Vector< double > &r, const unsigned &i, const unsigned &j)
 Helper function. More...
 
void slanted_bound_up (const unsigned &t, const Vector< double > &zeta, Vector< double > &r)
 Helper function. More...
 

Protected Attributes

double Lright
 Length of the domain to the right of the leaflet. More...
 
double Lleft
 Length of the domain to the left of the leaflet. More...
 
double Hleaflet
 Lagrangian coordinate at end of leaflet. More...
 
double Htot
 Total width of the channel. More...
 
unsigned Nright
 Number of macro element columnns to the right of the leaflet. More...
 
unsigned Nleft
 Number of macro element columns to the left of the leaflet. More...
 
unsigned Ny1
 Number of macro element rows up to the end of the leaflet. More...
 
unsigned Ny2
 Number of macro element rows above the leaflet. More...
 
double X_0
 Center of the domain : origin of the leaflet, extracted from GeomObject and stored for fast access. More...
 
GeomObjectLeaflet_pt
 Pointer to leaflet. More...
 
- Protected Attributes inherited from oomph::Domain
Vector< MacroElement * > Macro_element_pt
 Vector of pointers to macro elements. More...
 

Detailed Description

Rectangular domain with a leaflet blocking the lower half.

Definition at line 41 of file channel_with_leaflet_domain.h.

Constructor & Destructor Documentation

◆ ChannelWithLeafletDomain()

oomph::ChannelWithLeafletDomain::ChannelWithLeafletDomain ( GeomObject leaflet_pt,
const double &  lleft,
const double &  lright,
const double &  hleaflet,
const double &  htot,
const unsigned &  nleft,
const unsigned &  nright,
const unsigned &  ny1,
const unsigned &  ny2 
)
inline

Constructor: Pass pointer to GeomObject that represents the leaflet, the length of the domain to left and right of the leaflet, the height of the leaflet and the overall height of the channel, the number of element columns to the left and right of the leaflet, the number of rows of elements from the bottom of the channel to the end of the leaflet, the number of rows of elements above the end of the leaflet.

Definition at line 52 of file channel_with_leaflet_domain.h.

References hleaflet(), Hleaflet, htot(), Htot, i, leaflet_pt(), Leaflet_pt, lleft(), Lleft, lright(), Lright, oomph::Domain::Macro_element_pt, Nleft, Nright, Ny1, Ny2, oomph::GeomObject::position(), and X_0.

◆ ~ChannelWithLeafletDomain()

oomph::ChannelWithLeafletDomain::~ChannelWithLeafletDomain ( )
inline

Destructor: Empty; cleanup done in base class.

Definition at line 92 of file channel_with_leaflet_domain.h.

Member Function Documentation

◆ hleaflet()

double oomph::ChannelWithLeafletDomain::hleaflet ( )
inline

Height of leaflet.

Definition at line 101 of file channel_with_leaflet_domain.h.

References Hleaflet.

Referenced by ChannelWithLeafletDomain().

◆ htot()

double oomph::ChannelWithLeafletDomain::htot ( )
inline

Total height of domain (width of channel)

Definition at line 95 of file channel_with_leaflet_domain.h.

References Htot.

Referenced by ChannelWithLeafletDomain().

◆ leaflet_pt()

GeomObject *& oomph::ChannelWithLeafletDomain::leaflet_pt ( )
inline

Pointer to the wall.

Definition at line 119 of file channel_with_leaflet_domain.h.

References Leaflet_pt.

Referenced by ChannelWithLeafletDomain().

◆ lleft()

double oomph::ChannelWithLeafletDomain::lleft ( )
inline

Length of domain to the left of leaflet.

Definition at line 107 of file channel_with_leaflet_domain.h.

References Lleft.

Referenced by ChannelWithLeafletDomain().

◆ lright()

double oomph::ChannelWithLeafletDomain::lright ( )
inline

Length of domain to the right of leaflet.

Definition at line 113 of file channel_with_leaflet_domain.h.

References Lright.

Referenced by ChannelWithLeafletDomain().

◆ macro_bound_I_E()

void oomph::ChannelWithLeafletDomain::macro_bound_I_E ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

//////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////// Helper function for eastern boundary in lower left region

Final expression of r

Definition at line 415 of file channel_with_leaflet_domain.h.

References Hleaflet, i, Leaflet_pt, Lleft, Nleft, Ny1, oomph::GeomObject::position(), s, t, and X_0.

Referenced by macro_bound_I_N(), macro_bound_I_S(), and macro_element_boundary().

◆ macro_bound_I_N()

void oomph::ChannelWithLeafletDomain::macro_bound_I_N ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for northern boundary in lower left region.

Definition at line 501 of file channel_with_leaflet_domain.h.

References i, macro_bound_I_E(), macro_bound_I_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_I_S()

void oomph::ChannelWithLeafletDomain::macro_bound_I_S ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for southern boundary in lower left region.

Find the coordinates of the two corners of the south boundary

Definition at line 524 of file channel_with_leaflet_domain.h.

References i, macro_bound_I_E(), macro_bound_I_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_I_W()

void oomph::ChannelWithLeafletDomain::macro_bound_I_W ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for western boundary in lower left region.

Final expression of r

Definition at line 458 of file channel_with_leaflet_domain.h.

References Hleaflet, i, Leaflet_pt, Lleft, Nleft, Ny1, oomph::GeomObject::position(), s, t, and X_0.

Referenced by macro_bound_I_N(), macro_bound_I_S(), and macro_element_boundary().

◆ macro_bound_II_E()

void oomph::ChannelWithLeafletDomain::macro_bound_II_E ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

//////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////// Helper function for eastern boundary in lower right region

Final expression of r

Definition at line 554 of file channel_with_leaflet_domain.h.

References Hleaflet, i, Leaflet_pt, Lright, Nright, Ny1, oomph::GeomObject::position(), s, t, and X_0.

Referenced by macro_bound_II_N(), macro_bound_II_S(), and macro_element_boundary().

◆ macro_bound_II_N()

void oomph::ChannelWithLeafletDomain::macro_bound_II_N ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for northern boundary in lower right region.

Definition at line 643 of file channel_with_leaflet_domain.h.

References i, macro_bound_II_E(), macro_bound_II_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_II_S()

void oomph::ChannelWithLeafletDomain::macro_bound_II_S ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for southern boundary in lower right region.

Definition at line 666 of file channel_with_leaflet_domain.h.

References i, macro_bound_II_E(), macro_bound_II_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_II_W()

void oomph::ChannelWithLeafletDomain::macro_bound_II_W ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for western boundary in lower right region.

Definition at line 598 of file channel_with_leaflet_domain.h.

References Hleaflet, i, Leaflet_pt, Lright, Nright, Ny1, oomph::GeomObject::position(), s, t, and X_0.

Referenced by macro_bound_II_N(), macro_bound_II_S(), and macro_element_boundary().

◆ macro_bound_III_E()

void oomph::ChannelWithLeafletDomain::macro_bound_III_E ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for eastern boundary in upper left region.

Final expression of r

Definition at line 718 of file channel_with_leaflet_domain.h.

References Hleaflet, Htot, i, Lleft, Nleft, Ny2, s, slanted_bound_up(), t, and X_0.

Referenced by macro_bound_III_N(), macro_bound_III_S(), and macro_element_boundary().

◆ macro_bound_III_N()

void oomph::ChannelWithLeafletDomain::macro_bound_III_N ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for northern boundary in upper left region.

Definition at line 808 of file channel_with_leaflet_domain.h.

References i, macro_bound_III_E(), macro_bound_III_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_III_S()

void oomph::ChannelWithLeafletDomain::macro_bound_III_S ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for southern boundary in upper left region.

Definition at line 831 of file channel_with_leaflet_domain.h.

References i, macro_bound_III_E(), macro_bound_III_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_III_W()

void oomph::ChannelWithLeafletDomain::macro_bound_III_W ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for western boundary in upper left region.

Definition at line 763 of file channel_with_leaflet_domain.h.

References Hleaflet, Htot, i, Lleft, Nleft, Ny2, s, slanted_bound_up(), t, and X_0.

Referenced by macro_bound_III_N(), macro_bound_III_S(), and macro_element_boundary().

◆ macro_bound_IV_E()

void oomph::ChannelWithLeafletDomain::macro_bound_IV_E ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

//////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////// Helper function for eastern boundary in upper right region

Definition at line 861 of file channel_with_leaflet_domain.h.

References Hleaflet, Htot, i, Lright, Nright, Ny2, s, slanted_bound_up(), t, and X_0.

Referenced by macro_bound_IV_N(), macro_bound_IV_S(), and macro_element_boundary().

◆ macro_bound_IV_N()

void oomph::ChannelWithLeafletDomain::macro_bound_IV_N ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for northern boundary in upper right region.

Definition at line 951 of file channel_with_leaflet_domain.h.

References i, macro_bound_IV_E(), macro_bound_IV_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_IV_S()

void oomph::ChannelWithLeafletDomain::macro_bound_IV_S ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for southern boundary in upper right region.

Definition at line 974 of file channel_with_leaflet_domain.h.

References i, macro_bound_IV_E(), macro_bound_IV_W(), and t.

Referenced by macro_element_boundary().

◆ macro_bound_IV_W()

void oomph::ChannelWithLeafletDomain::macro_bound_IV_W ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r,
const unsigned &  i,
const unsigned &  j 
)
protected

Helper function.

Helper function for western boundary in upper right region.

Definition at line 906 of file channel_with_leaflet_domain.h.

References Hleaflet, Htot, i, Lright, Nright, Ny2, s, slanted_bound_up(), t, and X_0.

Referenced by macro_bound_IV_N(), macro_bound_IV_S(), and macro_element_boundary().

◆ macro_element_boundary()

void oomph::ChannelWithLeafletDomain::macro_element_boundary ( const unsigned &  t,
const unsigned &  imacro,
const unsigned &  idirect,
const Vector< double > &  zeta,
Vector< double > &  r 
)
virtual

◆ slanted_bound_up()

void oomph::ChannelWithLeafletDomain::slanted_bound_up ( const unsigned &  t,
const Vector< double > &  zeta,
Vector< double > &  r 
)
protected

Helper function.

//////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////// Describe the line between the boundary north of the domain (at x=X_0) and the top of the wall, when zeta goes from 0 to 1.

Definition at line 697 of file channel_with_leaflet_domain.h.

References Hleaflet, Htot, Leaflet_pt, oomph::GeomObject::position(), t, and X_0.

Referenced by macro_bound_III_E(), macro_bound_III_W(), macro_bound_IV_E(), and macro_bound_IV_W().

Member Data Documentation

◆ Hleaflet

double oomph::ChannelWithLeafletDomain::Hleaflet
protected

◆ Htot

double oomph::ChannelWithLeafletDomain::Htot
protected

◆ Leaflet_pt

GeomObject* oomph::ChannelWithLeafletDomain::Leaflet_pt
protected

◆ Lleft

double oomph::ChannelWithLeafletDomain::Lleft
protected

Length of the domain to the left of the leaflet.

Definition at line 253 of file channel_with_leaflet_domain.h.

Referenced by ChannelWithLeafletDomain(), lleft(), macro_bound_I_E(), macro_bound_I_W(), macro_bound_III_E(), and macro_bound_III_W().

◆ Lright

double oomph::ChannelWithLeafletDomain::Lright
protected

Length of the domain to the right of the leaflet.

Definition at line 250 of file channel_with_leaflet_domain.h.

Referenced by ChannelWithLeafletDomain(), lright(), macro_bound_II_E(), macro_bound_II_W(), macro_bound_IV_E(), and macro_bound_IV_W().

◆ Nleft

unsigned oomph::ChannelWithLeafletDomain::Nleft
protected

Number of macro element columns to the left of the leaflet.

Definition at line 265 of file channel_with_leaflet_domain.h.

Referenced by ChannelWithLeafletDomain(), macro_bound_I_E(), macro_bound_I_W(), macro_bound_III_E(), macro_bound_III_W(), and macro_element_boundary().

◆ Nright

unsigned oomph::ChannelWithLeafletDomain::Nright
protected

Number of macro element columnns to the right of the leaflet.

Definition at line 262 of file channel_with_leaflet_domain.h.

Referenced by ChannelWithLeafletDomain(), macro_bound_II_E(), macro_bound_II_W(), macro_bound_IV_E(), macro_bound_IV_W(), and macro_element_boundary().

◆ Ny1

unsigned oomph::ChannelWithLeafletDomain::Ny1
protected

Number of macro element rows up to the end of the leaflet.

Definition at line 268 of file channel_with_leaflet_domain.h.

Referenced by ChannelWithLeafletDomain(), macro_bound_I_E(), macro_bound_I_W(), macro_bound_II_E(), macro_bound_II_W(), and macro_element_boundary().

◆ Ny2

unsigned oomph::ChannelWithLeafletDomain::Ny2
protected

Number of macro element rows above the leaflet.

Definition at line 271 of file channel_with_leaflet_domain.h.

Referenced by ChannelWithLeafletDomain(), macro_bound_III_E(), macro_bound_III_W(), macro_bound_IV_E(), and macro_bound_IV_W().

◆ X_0

double oomph::ChannelWithLeafletDomain::X_0
protected

Center of the domain : origin of the leaflet, extracted from GeomObject and stored for fast access.

Definition at line 275 of file channel_with_leaflet_domain.h.

Referenced by ChannelWithLeafletDomain(), macro_bound_I_E(), macro_bound_I_W(), macro_bound_II_E(), macro_bound_II_W(), macro_bound_III_E(), macro_bound_III_W(), macro_bound_IV_E(), macro_bound_IV_W(), and slanted_bound_up().


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