Rectangular domain with a leaflet blocking the lower half. More...
#include <channel_with_leaflet_domain.h>
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... | |
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... | |
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... | |
GeomObject * | Leaflet_pt |
Pointer to leaflet. More... | |
Protected Attributes inherited from oomph::Domain | |
Vector< MacroElement * > | Macro_element_pt |
Vector of pointers to macro elements. More... | |
Rectangular domain with a leaflet blocking the lower half.
Definition at line 41 of file channel_with_leaflet_domain.h.
|
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.
|
inline |
Destructor: Empty; cleanup done in base class.
Definition at line 92 of file channel_with_leaflet_domain.h.
|
inline |
Height of leaflet.
Definition at line 101 of file channel_with_leaflet_domain.h.
References Hleaflet.
Referenced by ChannelWithLeafletDomain().
|
inline |
Total height of domain (width of channel)
Definition at line 95 of file channel_with_leaflet_domain.h.
References Htot.
Referenced by ChannelWithLeafletDomain().
|
inline |
Pointer to the wall.
Definition at line 119 of file channel_with_leaflet_domain.h.
References Leaflet_pt.
Referenced by ChannelWithLeafletDomain().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
virtual |
Parametrisation of macro element boundaries.
Implements oomph::Domain.
Definition at line 285 of file channel_with_leaflet_domain.h.
References oomph::QuadTreeNames::E, i, macro_bound_I_E(), macro_bound_I_N(), macro_bound_I_S(), macro_bound_I_W(), macro_bound_II_E(), macro_bound_II_N(), macro_bound_II_S(), macro_bound_II_W(), macro_bound_III_E(), macro_bound_III_N(), macro_bound_III_S(), macro_bound_III_W(), macro_bound_IV_E(), macro_bound_IV_N(), macro_bound_IV_S(), macro_bound_IV_W(), oomph::QuadTreeNames::N, Nleft, Nright, Ny1, oomph::QuadTreeNames::S, t, and oomph::QuadTreeNames::W.
|
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().
|
protected |
Lagrangian coordinate at end of leaflet.
Definition at line 256 of file channel_with_leaflet_domain.h.
Referenced by ChannelWithLeafletDomain(), hleaflet(), 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().
|
protected |
Total width of the channel.
Definition at line 259 of file channel_with_leaflet_domain.h.
Referenced by ChannelWithLeafletDomain(), htot(), macro_bound_III_E(), macro_bound_III_W(), macro_bound_IV_E(), macro_bound_IV_W(), and slanted_bound_up().
|
protected |
Pointer to leaflet.
Definition at line 278 of file channel_with_leaflet_domain.h.
Referenced by ChannelWithLeafletDomain(), leaflet_pt(), macro_bound_I_E(), macro_bound_I_W(), macro_bound_II_E(), macro_bound_II_W(), and slanted_bound_up().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().