Public Member Functions | Private Attributes | List of all members
oomph::RectangleWithHoleDomain Class Reference

Rectangular domain with circular whole. More...

#include <rectangle_with_hole_domain.h>

+ Inheritance diagram for oomph::RectangleWithHoleDomain:

Public Member Functions

 RectangleWithHoleDomain (GeomObject *cylinder_pt, const double &length)
 Constructor. Pass pointer to geometric object that represents the cylinder, the length of the (square) domain. The GeomObject must be parametrised such that $\zeta \in [0,2\pi]$ sweeps around the circumference in anticlockwise direction. More...
 
 ~RectangleWithHoleDomain ()
 Destructor: Kill macro elements, why isn't this generic? More...
 
void linear_interpolate (Vector< double > left, Vector< double > right, const double &s, Vector< double > &f)
 Helper function to interpolate linearly between the "right" and "left" points; $ s \in [-1,1] $. More...
 
void macro_element_boundary (const unsigned &time, const unsigned &m, const unsigned &direction, const Vector< double > &s, Vector< double > &f)
 Parametrisation of macro element boundaries: f(s) is the position vector to macro-element m's boundary in the specified direction [N/S/E/W] at the specfied discrete time level (time=0: present; time>0: previous) More...
 
- Public Member Functions inherited from oomph::Domain
 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...
 
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...
 

Private Attributes

Vector< double > Lower_left
 Lower left corner of rectangle. More...
 
Vector< double > Lower_right
 Lower right corner of rectangle. More...
 
Vector< double > Lower_mid_left
 Where the "radial" line from circle meets lower boundary on left. More...
 
Vector< double > Lower_mid_right
 Where the "radial" line from circle meets lower boundary on right. More...
 
Vector< double > Upper_left
 Upper left corner of rectangle. More...
 
Vector< double > Upper_right
 Upper right corner of rectangle. More...
 
Vector< double > Upper_mid_left
 Where the "radial" line from circle meets upper boundary on left. More...
 
Vector< double > Upper_mid_right
 Where the "radial" line from circle meets upper boundary on right. More...
 
GeomObjectCylinder_pt
 Pointer to geometric object that represents the central cylinder. More...
 

Additional Inherited Members

- Protected Attributes inherited from oomph::Domain
Vector< MacroElement * > Macro_element_pt
 Vector of pointers to macro elements. More...
 

Detailed Description

Rectangular domain with circular whole.

Definition at line 49 of file rectangle_with_hole_domain.h.

Constructor & Destructor Documentation

◆ RectangleWithHoleDomain()

oomph::RectangleWithHoleDomain::RectangleWithHoleDomain ( GeomObject cylinder_pt,
const double &  length 
)
inline

Constructor. Pass pointer to geometric object that represents the cylinder, the length of the (square) domain. The GeomObject must be parametrised such that $\zeta \in [0,2\pi]$ sweeps around the circumference in anticlockwise direction.

Definition at line 60 of file rectangle_with_hole_domain.h.

References i, Lower_left, Lower_mid_left, Lower_mid_right, Lower_right, oomph::Domain::Macro_element_pt, Upper_left, Upper_mid_left, Upper_mid_right, and Upper_right.

◆ ~RectangleWithHoleDomain()

oomph::RectangleWithHoleDomain::~RectangleWithHoleDomain ( )
inline

Destructor: Kill macro elements, why isn't this generic?

Definition at line 113 of file rectangle_with_hole_domain.h.

References i, and oomph::Domain::Macro_element_pt.

Member Function Documentation

◆ linear_interpolate()

void oomph::RectangleWithHoleDomain::linear_interpolate ( Vector< double >  left,
Vector< double >  right,
const double &  s,
Vector< double > &  f 
)
inline

Helper function to interpolate linearly between the "right" and "left" points; $ s \in [-1,1] $.

Definition at line 121 of file rectangle_with_hole_domain.h.

References i.

Referenced by macro_element_boundary().

◆ macro_element_boundary()

void oomph::RectangleWithHoleDomain::macro_element_boundary ( const unsigned &  time,
const unsigned &  m,
const unsigned &  direction,
const Vector< double > &  s,
Vector< double > &  f 
)
inlinevirtual

Parametrisation of macro element boundaries: f(s) is the position vector to macro-element m's boundary in the specified direction [N/S/E/W] at the specfied discrete time level (time=0: present; time>0: previous)

Implements oomph::Domain.

Definition at line 135 of file rectangle_with_hole_domain.h.

References Cylinder_pt, oomph::QuadTreeNames::E, linear_interpolate(), Lower_mid_left, Lower_mid_right, oomph::QuadTreeNames::N, oomph::GeomObject::position(), oomph::QuadTreeNames::S, Upper_mid_left, Upper_mid_right, and oomph::QuadTreeNames::W.

Member Data Documentation

◆ Cylinder_pt

GeomObject* oomph::RectangleWithHoleDomain::Cylinder_pt
private

Pointer to geometric object that represents the central cylinder.

Definition at line 348 of file rectangle_with_hole_domain.h.

Referenced by macro_element_boundary().

◆ Lower_left

Vector<double> oomph::RectangleWithHoleDomain::Lower_left
private

Lower left corner of rectangle.

Definition at line 324 of file rectangle_with_hole_domain.h.

Referenced by RectangleWithHoleDomain().

◆ Lower_mid_left

Vector<double> oomph::RectangleWithHoleDomain::Lower_mid_left
private

Where the "radial" line from circle meets lower boundary on left.

Definition at line 330 of file rectangle_with_hole_domain.h.

Referenced by macro_element_boundary(), and RectangleWithHoleDomain().

◆ Lower_mid_right

Vector<double> oomph::RectangleWithHoleDomain::Lower_mid_right
private

Where the "radial" line from circle meets lower boundary on right.

Definition at line 333 of file rectangle_with_hole_domain.h.

Referenced by macro_element_boundary(), and RectangleWithHoleDomain().

◆ Lower_right

Vector<double> oomph::RectangleWithHoleDomain::Lower_right
private

Lower right corner of rectangle.

Definition at line 327 of file rectangle_with_hole_domain.h.

Referenced by RectangleWithHoleDomain().

◆ Upper_left

Vector<double> oomph::RectangleWithHoleDomain::Upper_left
private

Upper left corner of rectangle.

Definition at line 336 of file rectangle_with_hole_domain.h.

Referenced by RectangleWithHoleDomain().

◆ Upper_mid_left

Vector<double> oomph::RectangleWithHoleDomain::Upper_mid_left
private

Where the "radial" line from circle meets upper boundary on left.

Definition at line 342 of file rectangle_with_hole_domain.h.

Referenced by macro_element_boundary(), and RectangleWithHoleDomain().

◆ Upper_mid_right

Vector<double> oomph::RectangleWithHoleDomain::Upper_mid_right
private

Where the "radial" line from circle meets upper boundary on right.

Definition at line 345 of file rectangle_with_hole_domain.h.

Referenced by macro_element_boundary(), and RectangleWithHoleDomain().

◆ Upper_right

Vector<double> oomph::RectangleWithHoleDomain::Upper_right
private

Upper right corner of rectangle.

Definition at line 339 of file rectangle_with_hole_domain.h.

Referenced by RectangleWithHoleDomain().


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