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: Empty; cleanup done in base class. 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 &)=delete
 Broken copy constructor. More...
 
void operator= (const Domain &)=delete
 Broken assignment operator. More...
 
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. 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 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. 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...
 
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. 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...
 
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. 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 42 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 50 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: Empty; cleanup done in base class.

Definition at line 102 of file rectangle_with_hole_domain.h.

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 106 of file rectangle_with_hole_domain.h.

References i, and s.

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 122 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(), s, 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 336 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 312 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 318 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 321 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 315 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 324 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 330 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 333 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 327 of file rectangle_with_hole_domain.h.

Referenced by RectangleWithHoleDomain().


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