Public Member Functions | Protected Attributes | List of all members
oomph::Domain Class Referenceabstract

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>

+ Inheritance diagram for oomph::Domain:

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...
 
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 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...
 

Detailed Description

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:

DomainWithMacroElementSketch.gif

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(...).

Definition at line 71 of file domain.h.

Constructor & Destructor Documentation

◆ Domain() [1/2]

oomph::Domain::Domain ( )
inline

Constructor.

Definition at line 77 of file domain.h.

References Macro_element_pt.

◆ Domain() [2/2]

oomph::Domain::Domain ( const Domain )
inline

Broken copy constructor.

Definition at line 84 of file domain.h.

References oomph::BrokenCopy::broken_copy().

◆ ~Domain()

virtual oomph::Domain::~Domain ( )
inlinevirtual

Virtual destructor: Empty.

Definition at line 96 of file domain.h.

Member Function Documentation

◆ d2macro_element_boundary() [1/2]

virtual void oomph::Domain::d2macro_element_boundary ( const unsigned &  t,
const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)
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().

◆ d2macro_element_boundary() [2/2]

void oomph::Domain::d2macro_element_boundary ( const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)
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().

◆ dmacro_element_boundary() [1/2]

virtual void oomph::Domain::dmacro_element_boundary ( const unsigned &  t,
const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)
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().

◆ dmacro_element_boundary() [2/2]

void oomph::Domain::dmacro_element_boundary ( const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)
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().

◆ macro_element_boundary() [1/2]

virtual void oomph::Domain::macro_element_boundary ( const unsigned &  t,
const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)
pure virtual

◆ macro_element_boundary() [2/2]

void oomph::Domain::macro_element_boundary ( const unsigned &  i_macro,
const unsigned &  i_direct,
const Vector< double > &  s,
Vector< double > &  f 
)
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().

◆ macro_element_pt()

MacroElement* oomph::Domain::macro_element_pt ( const unsigned &  i)
inline

◆ nmacro_element()

unsigned oomph::Domain::nmacro_element ( )
inline

◆ operator=()

void oomph::Domain::operator= ( const Domain )
inline

Broken assignment operator.

Definition at line 90 of file domain.h.

References oomph::BrokenCopy::broken_assign().

◆ output() [1/2]

void oomph::Domain::output ( const std::string &  filename,
const unsigned &  nplot 
)
inline

Output macro elements.

Definition at line 113 of file domain.h.

Referenced by oomph::FishMesh< ELEMENT >::build_mesh().

◆ output() [2/2]

void oomph::Domain::output ( std::ostream &  outfile,
const unsigned &  nplot 
)
inline

Output macro elements.

Definition at line 122 of file domain.h.

References macro_element_boundary(), Macro_element_pt, s, and t.

◆ output_macro_element_boundaries() [1/2]

void oomph::Domain::output_macro_element_boundaries ( const std::string &  filename,
const unsigned &  nplot 
)
inline

Output all macro element boundaries as tecplot zones.

Definition at line 157 of file domain.h.

Referenced by oomph::FishMesh< ELEMENT >::build_mesh().

◆ output_macro_element_boundaries() [2/2]

void oomph::Domain::output_macro_element_boundaries ( std::ostream &  outfile,
const unsigned &  nplot 
)
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().

Member Data Documentation

◆ Macro_element_pt

Vector<MacroElement*> oomph::Domain::Macro_element_pt
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().


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