![]() |
|
#include <rectangle_with_moving_cylinder_mesh.template.h>
Public Member Functions | |
RectangleWithHoleAndAnnularRegionDomain (GeomObject *cylinder_pt, const double &annular_region_radius, const double &length) | |
~RectangleWithHoleAndAnnularRegionDomain () | |
Destructor: Empty; macro elements are deleted in base class destructor. More... | |
void | project_point_on_cylinder_to_annular_boundary (const unsigned &time, const Vector< double > &xi, Vector< double > &r) |
Rectangular domain with circular whole. More... | |
void | project_point_on_cylinder_to_annular_boundary (const double &time, const Vector< double > &xi, Vector< double > &r) |
void | linear_interpolate (const Vector< double > &left, const Vector< double > &right, const double &s, Vector< double > &f) |
void | macro_element_boundary (const double &time, const unsigned &m, const unsigned &direction, const Vector< double > &s, Vector< double > &f) |
void | macro_element_boundary (const unsigned &time, const unsigned &m, const unsigned &direction, const Vector< double > &s, Vector< double > &f) |
![]() | |
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... | |
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) |
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... | |
double | Annular_region_radius |
Additional Inherited Members | |
![]() | |
Vector< MacroElement * > | Macro_element_pt |
Vector of pointers to macro elements. More... | |
Rectangular domain with circular whole DRAIG: This looks like a redefinition of the RectangleWithHoleAndAnnularRegionDomain in src/meshes but it creates 8 macro-elements instead of 4 macro-elements and creates an annular region around the cylinder. It's probably a good idea to rename this class to avoid ambiguity and a name clash...
|
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.
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.
Referenced by oomph::RectangleWithHoleAndAnnularRegionMesh< ELEMENT >::RectangleWithHoleAndAnnularRegionMesh().
|
inline |
|
inline |
Helper function to interpolate linearly between the "right" and "left" points; \( s \in [-1,1] \)
Referenced by macro_element_boundary(), and oomph::RefineableQuadMeshWithMovingCylinder< MyRefineableQTaylorHoodElement >::RefineableQuadMeshWithMovingCylinder().
|
virtual |
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 specified discrete time level (time=0: present; time>0: previous)
Reimplemented from oomph::Domain.
References Eigen::bfloat16_impl::atan(), Global_Physical_Variables::E, f(), linear_interpolate(), Lower_mid_left, Lower_mid_right, m, N, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, project_point_on_cylinder_to_annular_boundary(), s, oomph::QuadTreeNames::S, oomph::Global_string_for_annotation::string(), Upper_mid_left, Upper_mid_right, and oomph::QuadTreeNames::W.
|
virtual |
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 specified discrete time level (time=0: present; time>0: previous)
Implements oomph::Domain.
References Eigen::bfloat16_impl::atan(), Cylinder_pt, Global_Physical_Variables::E, f(), linear_interpolate(), Lower_mid_left, Lower_mid_right, m, N, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::GeomObject::position(), project_point_on_cylinder_to_annular_boundary(), s, oomph::QuadTreeNames::S, Upper_mid_left, Upper_mid_right, and oomph::QuadTreeNames::W.
void oomph::RectangleWithHoleAndAnnularRegionDomain::project_point_on_cylinder_to_annular_boundary | ( | const double & | time, |
const Vector< double > & | xi, | ||
Vector< double > & | r | ||
) |
Helper function that, given the Lagrangian coordinate, xi, (associated with a point on the cylinder), returns the corresponding point on the outer boundary of the annular region (where the inner boundary is prescribed by the boundary of the cylinder)
References Annular_region_radius, Eigen::bfloat16_impl::atan(), cos(), Cylinder_pt, i, oomph::GeomObject::position(), UniformPSDSelfTest::r, and sin().
void oomph::RectangleWithHoleAndAnnularRegionDomain::project_point_on_cylinder_to_annular_boundary | ( | const unsigned & | time, |
const Vector< double > & | xi, | ||
Vector< double > & | r | ||
) |
Rectangular domain with circular whole.
Helper function that, given the Lagrangian coordinate, xi, (associated with a point on the cylinder), returns the corresponding point on the outer boundary of the annular region (where the inner boundary is prescribed by the boundary of the cylinder)
References Annular_region_radius, Eigen::bfloat16_impl::atan(), cos(), Cylinder_pt, i, oomph::GeomObject::position(), UniformPSDSelfTest::r, and sin().
Referenced by macro_element_boundary(), and oomph::RefineableQuadMeshWithMovingCylinder< MyRefineableQTaylorHoodElement >::RefineableQuadMeshWithMovingCylinder().
|
private |
The radius of the outer boundary of the annular region whose inner boundary is described by Cylinder_pt and outer boundary is a circle with radius lying between half the length of the bounding box and the radius cylinder
Referenced by project_point_on_cylinder_to_annular_boundary().
|
private |
Pointer to geometric object that represents the central cylinder.
Referenced by macro_element_boundary(), project_point_on_cylinder_to_annular_boundary(), and oomph::RefineableQuadMeshWithMovingCylinder< MyRefineableQTaylorHoodElement >::RefineableQuadMeshWithMovingCylinder().
Lower left corner of rectangle.
Referenced by RectangleWithHoleAndAnnularRegionDomain().
Where the "radial" line from circle meets lower boundary on left.
Referenced by macro_element_boundary(), and RectangleWithHoleAndAnnularRegionDomain().
Where the "radial" line from circle meets lower boundary on right.
Referenced by macro_element_boundary(), and RectangleWithHoleAndAnnularRegionDomain().
Lower right corner of rectangle.
Referenced by RectangleWithHoleAndAnnularRegionDomain().
Upper left corner of rectangle.
Referenced by RectangleWithHoleAndAnnularRegionDomain().
Where the "radial" line from circle meets upper boundary on left.
Referenced by macro_element_boundary(), and RectangleWithHoleAndAnnularRegionDomain().
Where the "radial" line from circle meets upper boundary on right.
Referenced by macro_element_boundary(), and RectangleWithHoleAndAnnularRegionDomain().
Upper right corner of rectangle.
Referenced by RectangleWithHoleAndAnnularRegionDomain().