Rectangular domain with circular whole. More...
#include <rectangle_with_hole_domain.h>
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 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; . 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... | |
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 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... | |
GeomObject * | Cylinder_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... | |
Rectangular domain with circular whole.
Definition at line 42 of file rectangle_with_hole_domain.h.
|
inline |
Constructor. Pass pointer to geometric object that represents the cylinder, the length of the (square) domain. The GeomObject must be parametrised such that 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.
|
inline |
Destructor: Empty; cleanup done in base class.
Definition at line 102 of file rectangle_with_hole_domain.h.
|
inline |
Helper function to interpolate linearly between the "right" and "left" points; .
Definition at line 106 of file rectangle_with_hole_domain.h.
Referenced by macro_element_boundary().
|
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.
|
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().
|
private |
Lower left corner of rectangle.
Definition at line 312 of file rectangle_with_hole_domain.h.
Referenced by RectangleWithHoleDomain().
|
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().
|
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().
|
private |
Lower right corner of rectangle.
Definition at line 315 of file rectangle_with_hole_domain.h.
Referenced by RectangleWithHoleDomain().
|
private |
Upper left corner of rectangle.
Definition at line 324 of file rectangle_with_hole_domain.h.
Referenced by RectangleWithHoleDomain().
|
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().
|
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().
|
private |
Upper right corner of rectangle.
Definition at line 327 of file rectangle_with_hole_domain.h.
Referenced by RectangleWithHoleDomain().