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. | |
~ChannelWithLeafletDomain () | |
Destructor: Empty; cleanup done in base class. | |
double | htot () |
Total height of domain (width of channel) | |
double | hleaflet () |
Height of leaflet. | |
double | lleft () |
Length of domain to the left of leaflet. | |
double | lright () |
Length of domain to the right of leaflet. | |
GeomObject *& | leaflet_pt () |
Pointer to the wall. | |
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. | |
![]() | |
Domain () | |
Constructor. | |
Domain (const Domain &)=delete | |
Broken copy constructor. | |
void | operator= (const Domain &)=delete |
Broken assignment operator. | |
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. | |
MacroElement * | macro_element_pt (const unsigned &i) |
Access to i-th macro element. | |
unsigned | nmacro_element () |
Number of macro elements in domain. | |
void | output (const std::string &filename, const unsigned &nplot) |
Output macro elements. | |
void | output (std::ostream &outfile, const unsigned &nplot) |
Output macro elements. | |
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. | |
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). | |
void | output_macro_element_boundaries (const std::string &filename, const unsigned &nplot) |
Output all macro element boundaries as tecplot zones. | |
void | output_macro_element_boundaries (std::ostream &outfile, const unsigned &nplot) |
Output all macro element boundaries as tecplot zones. | |
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. | |
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. | |
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). | |
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. | |
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. | |
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). | |
Protected Attributes | |
double | Lright |
Length of the domain to the right of the leaflet. | |
double | Lleft |
Length of the domain to the left of the leaflet. | |
double | Hleaflet |
Lagrangian coordinate at end of leaflet. | |
double | Htot |
Total width of the channel. | |
unsigned | Nright |
Number of macro element columnns to the right of the leaflet. | |
unsigned | Nleft |
Number of macro element columns to the left of the leaflet. | |
unsigned | Ny1 |
Number of macro element rows up to the end of the leaflet. | |
unsigned | Ny2 |
Number of macro element rows above the leaflet. | |
double | X_0 |
Center of the domain : origin of the leaflet, extracted from GeomObject and stored for fast access. | |
GeomObject * | Leaflet_pt |
Pointer to leaflet. | |
![]() | |
Vector< MacroElement * > | Macro_element_pt |
Vector of pointers to macro elements. | |
Rectangular domain with a leaflet blocking the lower half.
Definition at line 40 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 51 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 91 of file channel_with_leaflet_domain.h.
|
inline |
Height of leaflet.
Definition at line 100 of file channel_with_leaflet_domain.h.
References Hleaflet.
Referenced by ChannelWithLeafletDomain().
|
inline |
Total height of domain (width of channel)
Definition at line 94 of file channel_with_leaflet_domain.h.
References Htot.
Referenced by ChannelWithLeafletDomain().
|
inline |
Pointer to the wall.
Definition at line 118 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 106 of file channel_with_leaflet_domain.h.
References Lleft.
Referenced by ChannelWithLeafletDomain().
|
inline |
Length of domain to the right of leaflet.
Definition at line 112 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 411 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 495 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 517 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 453 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 546 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 633 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 655 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 589 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 705 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 793 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 815 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 749 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 844 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 932 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 954 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 888 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 282 of file channel_with_leaflet_domain.h.
References 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(), Nleft, Nright, Ny1, and t.
|
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 685 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 254 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 257 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 276 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 251 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 248 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 263 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 260 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 266 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 269 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 273 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().