![]() |
|
#include <domain.h>
Public Member Functions | |
Domain () | |
Constructor. More... | |
Domain (const Domain &)=delete | |
Broken copy constructor. More... | |
void | operator= (const Domain &)=delete |
Broken assignment operator. More... | |
virtual | ~Domain () |
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 |
virtual void | macro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
void | macro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
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) |
virtual void | dmacro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
void | dmacro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
virtual void | d2macro_element_boundary (const unsigned &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
virtual void | d2macro_element_boundary (const double &t, const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
void | d2macro_element_boundary (const unsigned &i_macro, const unsigned &i_direct, const Vector< double > &s, Vector< double > &f) |
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 |
Constructor.
References Macro_element_pt.
|
delete |
Broken copy constructor.
|
inlinevirtual |
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.
References i, and Macro_element_pt.
|
inlinevirtual |
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.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
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).
References d2macro_element_boundary(), f(), s, and plotPSD::t.
|
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.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), and 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 continuous time level t. Broken virtual.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
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).
References dmacro_element_boundary(), f(), s, and plotPSD::t.
|
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.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian(), oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), and dmacro_element_boundary().
|
inlinevirtual |
Vector representation of the i_macro-th macro element boundary i_direct (e.g. N/S/W/E in 2D) at continuous time, t
Reimplemented in oomph::RectangleWithHoleAndAnnularRegionDomain.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
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).
References f(), macro_element_boundary(), s, and plotPSD::t.
|
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::RectangleWithHoleAndAnnularRegionDomain, oomph::RectangleWithHoleDomain, oomph::CylinderWithFlagDomain, RectangleWithHoleDomain, CylinderAndInterfaceDomain, oomph::HalfRectangleWithHoleDomain, oomph::HalfRectangleWithHoleDomain, RectangleWithHoleDomain, RectangleWithHoleDomain, oomph::ExtrudedDomain, oomph::CollapsibleChannelDomain, oomph::ChannelWithLeafletDomain, oomph::EighthSphereDomain, oomph::FishDomain, oomph::TubeDomain, oomph::TopologicallyRectangularDomain, oomph::QuarterTubeDomain, oomph::QuarterPipeDomain, oomph::QuarterCircleSectorDomain, oomph::FullCircleDomain, oomph::AnnularDomain, and oomph::WarpedCubeDomain.
Referenced by oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian(), oomph::QMacroElement< 2 >::assemble_macro_to_eulerian_jacobian2(), macro_element_boundary(), oomph::ExtrudedDomain::macro_element_boundary(), oomph::QMacroElement< 2 >::macro_map(), oomph::QMacroElement< 3 >::macro_map(), oomph::QMacroElement< 2 >::output_macro_element_boundaries(), and oomph::QMacroElement< 3 >::output_macro_element_boundaries().
|
inline |
Access to i-th macro element.
References i, and Macro_element_pt.
Referenced by oomph::ChannelWithLeafletMesh< ELEMENT >::ChannelWithLeafletMesh(), oomph::CollapsibleChannelMesh< ELEMENT >::CollapsibleChannelMesh(), CylinderAndInterfaceMesh< ELEMENT >::CylinderAndInterfaceMesh(), oomph::EighthSphereMesh< ELEMENT >::EighthSphereMesh(), oomph::ElasticRefineableQuarterPipeMesh< ELEMENT >::ElasticRefineableQuarterPipeMesh(), oomph::FullCircleMesh< ELEMENT >::FullCircleMesh(), oomph::ExtrudedDomain::macro_element_boundary(), output_macro_element_boundaries(), oomph::QuarterCircleSectorMesh< ELEMENT >::QuarterCircleSectorMesh(), oomph::QuarterPipeMesh< ELEMENT >::QuarterPipeMesh(), oomph::QuarterTubeMesh< ELEMENT >::QuarterTubeMesh(), oomph::RectangleWithHoleMesh< ELEMENT >::RectangleWithHoleMesh(), oomph::RefineableEighthSphereMesh< ELEMENT >::RefineableEighthSphereMesh(), oomph::RefineableFullCircleMesh< ELEMENT >::RefineableFullCircleMesh(), oomph::RefineableQuarterTubeMesh< ELEMENT >::RefineableQuarterTubeMesh(), oomph::RefineableRectangleWithHoleAndAnnularRegionMesh< ELEMENT >::RefineableRectangleWithHoleAndAnnularRegionMesh(), oomph::RefineableRectangleWithHoleMesh< ELEMENT >::RefineableRectangleWithHoleMesh(), oomph::RefineableTubeMesh< ELEMENT >::RefineableTubeMesh(), oomph::RefineableTwoDAnnularMesh< ELEMENT >::RefineableTwoDAnnularMesh(), and oomph::TubeMesh< ELEMENT >::TubeMesh().
|
inline |
Number of macro elements in domain.
References Macro_element_pt.
Referenced by oomph::ExtrudedCubeMeshFromQuadMesh< ELEMENT >::build_mesh(), CylinderAndInterfaceMesh< ELEMENT >::CylinderAndInterfaceMesh(), oomph::ExtrudedDomain::ExtrudedDomain(), oomph::ExtrudedDomain::macro_element_boundary(), output_macro_element_boundaries(), oomph::RectangleWithHoleAndAnnularRegionMesh< ELEMENT >::RectangleWithHoleAndAnnularRegionMesh(), oomph::RectangleWithHoleMesh< ELEMENT >::RectangleWithHoleMesh(), and oomph::RefineableRectangleWithHoleAndAnnularRegionMesh< ELEMENT >::RefineableRectangleWithHoleAndAnnularRegionMesh().
|
delete |
Broken assignment operator.
|
inline |
Output macro elements.
References MergeRestartFiles::filename.
Referenced by main().
|
inline |
|
inline |
Output all macro element boundaries as tecplot zones.
References MergeRestartFiles::filename.
Referenced by main().
|
inline |
Output all macro element boundaries as tecplot zones.
References i, macro_element_pt(), nmacro_element(), and oomph::MacroElement::output_macro_element_boundaries().
|
protected |
Vector of pointers to macro elements.
Referenced by oomph::AnnularDomain::AnnularDomain(), oomph::ChannelWithLeafletDomain::ChannelWithLeafletDomain(), oomph::CollapsibleChannelDomain::CollapsibleChannelDomain(), oomph::CylinderWithFlagDomain::CylinderWithFlagDomain(), Domain(), oomph::EighthSphereDomain::EighthSphereDomain(), oomph::ExtrudedDomain::ExtrudedDomain(), oomph::FishDomain::FishDomain(), oomph::FullCircleDomain::FullCircleDomain(), macro_element_pt(), oomph::ExtrudedDomain::macro_element_pt(), nmacro_element(), oomph::ExtrudedDomain::nmacro_element(), output(), oomph::QuarterCircleSectorDomain::QuarterCircleSectorDomain(), oomph::QuarterPipeDomain::QuarterPipeDomain(), oomph::QuarterTubeDomain::QuarterTubeDomain(), oomph::RectangleWithHoleAndAnnularRegionDomain::RectangleWithHoleAndAnnularRegionDomain(), oomph::RectangleWithHoleDomain::RectangleWithHoleDomain(), oomph::TopologicallyRectangularDomain::TopologicallyRectangularDomain(), oomph::TubeDomain::TubeDomain(), oomph::WarpedCubeDomain::WarpedCubeDomain(), and ~Domain().