Base class for Domains with curvilinear and/or time-dependent boundaries. Domain boundaries are typically represented by GeomObject s and the Domain itself is decomposed into a number of MacroElement s as shown in this 2D example: More...
#include <domain.h>
Public Member Functions | |
Domain () | |
Constructor. More... | |
Domain (const Domain &) | |
Broken copy constructor. More... | |
void | operator= (const Domain &) |
Broken assignment operator. More... | |
virtual | ~Domain () |
Virtual destructor: Empty. 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 unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f)=0 |
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s) 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... | |
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... | |
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 Attributes | |
Vector< MacroElement * > | Macro_element_pt |
Vector of pointers to macro elements. More... | |
Base class for Domains with curvilinear and/or time-dependent boundaries. Domain boundaries are typically represented by GeomObject s and the Domain itself is decomposed into a number of MacroElement s as shown in this 2D example:
Any instantiation of a specific Domain needs to implement the pure virtual member function
which returns a Vector representation of each of the MacroElement s' boundaries, parametrised by the coordinate(s) along this boundary. For instance, in the above example, the eastern boundary of MacroElement 1 is given by the appropriate fraction of the curvilinear boundary; its northern boundary (which coincides with the southern boundary of MacroElement 2) is given by the straight line emanating from the curvilinear boundary, etc. The MacroElement s obtain their boundary positions via member function pointers to Domain::macro_element_boundary
(...).
|
inline |
|
inline |
Broken copy constructor.
Definition at line 84 of file domain.h.
References oomph::BrokenCopy::broken_copy().
|
inlinevirtual |
|
inlinevirtual |
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.
Reimplemented in oomph::TopologicallyRectangularDomain.
Definition at line 209 of file domain.h.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), and d2macro_element_boundary().
|
inline |
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).
Definition at line 223 of file domain.h.
References d2macro_element_boundary().
|
inlinevirtual |
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.
Reimplemented in oomph::TopologicallyRectangularDomain.
Definition at line 182 of file domain.h.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian(), oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), and dmacro_element_boundary().
|
inline |
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).
Definition at line 195 of file domain.h.
References dmacro_element_boundary().
|
pure virtual |
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D) at time level t (t=0: present; t>0: previous): f(s)
Implemented in oomph::WarpedCubeDomain, oomph::CollapsibleChannelDomain, oomph::QuarterTubeDomain, oomph::TopologicallyRectangularDomain, oomph::RectangleWithHoleDomain, oomph::QuarterCircleSectorDomain, oomph::TubeDomain, oomph::FullCircleDomain, oomph::QuarterPipeDomain, oomph::FishDomain, oomph::ChannelWithLeafletDomain, oomph::AnnularDomain, oomph::EighthSphereDomain, and oomph::CylinderWithFlagDomain.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian(), oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), macro_element_boundary(), oomph::QMacroElement< 2 >::macro_map(), oomph::QMacroElement< 3 >::macro_map(), output(), oomph::QMacroElement< 2 >::output_macro_element_boundaries(), oomph::QMacroElement< 3 >::output_macro_element_boundaries(), and oomph::WarpedCubeDomain::~WarpedCubeDomain().
|
inline |
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).
Definition at line 144 of file domain.h.
References macro_element_boundary().
|
inline |
Access to i-th macro element.
Definition at line 100 of file domain.h.
References i, and Macro_element_pt.
Referenced by oomph::FishMesh< ELEMENT >::build_mesh(), oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_master_node_helper(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::ElasticRefineableQuarterPipeMesh< ELEMENT >::ElasticRefineableQuarterPipeMesh(), output_macro_element_boundaries(), oomph::QuarterPipeMesh< ELEMENT >::QuarterPipeMesh(), oomph::RectangleWithHoleMesh< ELEMENT >::RectangleWithHoleMesh(), oomph::RefineableEighthSphereMesh< ELEMENT >::RefineableEighthSphereMesh(), oomph::RefineableFullCircleMesh< ELEMENT >::RefineableFullCircleMesh(), oomph::RefineableQuarterTubeMesh< ELEMENT >::RefineableQuarterTubeMesh(), oomph::RefineableRectangleWithHoleMesh< ELEMENT >::RefineableRectangleWithHoleMesh(), and oomph::RefineableTubeMesh< ELEMENT >::RefineableTubeMesh().
|
inline |
Number of macro elements in domain.
Definition at line 107 of file domain.h.
References Macro_element_pt.
Referenced by output_macro_element_boundaries(), oomph::RectangleWithHoleMesh< ELEMENT >::RectangleWithHoleMesh(), and oomph::AnnularDomain::~AnnularDomain().
|
inline |
Broken assignment operator.
Definition at line 90 of file domain.h.
References oomph::BrokenCopy::broken_assign().
|
inline |
Output macro elements.
Definition at line 113 of file domain.h.
Referenced by oomph::FishMesh< ELEMENT >::build_mesh().
|
inline |
Output macro elements.
Definition at line 122 of file domain.h.
References macro_element_boundary(), Macro_element_pt, s, and t.
|
inline |
Output all macro element boundaries as tecplot zones.
Definition at line 157 of file domain.h.
Referenced by oomph::FishMesh< ELEMENT >::build_mesh().
|
inline |
Output all macro element boundaries as tecplot zones.
Definition at line 167 of file domain.h.
References i, macro_element_pt(), nmacro_element(), and oomph::MacroElement::output_macro_element_boundaries().
|
protected |
Vector of pointers to macro elements.
Definition at line 237 of file domain.h.
Referenced by oomph::AnnularDomain::AnnularDomain(), oomph::ChannelWithLeafletDomain::ChannelWithLeafletDomain(), oomph::CollapsibleChannelDomain::CollapsibleChannelDomain(), oomph::CylinderWithFlagDomain::CylinderWithFlagDomain(), Domain(), oomph::EighthSphereDomain::EighthSphereDomain(), oomph::FishDomain::FishDomain(), oomph::FullCircleDomain::FullCircleDomain(), macro_element_pt(), nmacro_element(), output(), oomph::QuarterCircleSectorDomain::QuarterCircleSectorDomain(), oomph::QuarterPipeDomain::QuarterPipeDomain(), oomph::QuarterTubeDomain::QuarterTubeDomain(), oomph::RectangleWithHoleDomain::RectangleWithHoleDomain(), oomph::TubeDomain::TubeDomain(), oomph::WarpedCubeDomain::WarpedCubeDomain(), oomph::AnnularDomain::~AnnularDomain(), oomph::ChannelWithLeafletDomain::~ChannelWithLeafletDomain(), oomph::CollapsibleChannelDomain::~CollapsibleChannelDomain(), oomph::CylinderWithFlagDomain::~CylinderWithFlagDomain(), oomph::EighthSphereDomain::~EighthSphereDomain(), oomph::FishDomain::~FishDomain(), oomph::FullCircleDomain::~FullCircleDomain(), oomph::QuarterCircleSectorDomain::~QuarterCircleSectorDomain(), oomph::QuarterPipeDomain::~QuarterPipeDomain(), oomph::QuarterTubeDomain::~QuarterTubeDomain(), oomph::RectangleWithHoleDomain::~RectangleWithHoleDomain(), oomph::TopologicallyRectangularDomain::~TopologicallyRectangularDomain(), oomph::TubeDomain::~TubeDomain(), and oomph::WarpedCubeDomain::~WarpedCubeDomain().