30 #ifndef OOMPH_CYLINDER_WITH_FLAG_MESH_HEADER 31 #define OOMPH_CYLINDER_WITH_FLAG_MESH_HEADER 39 #include "../generic/refineable_quad_mesh.h" 40 #include "../generic/quad_mesh.h" 43 #include "../generic/algebraic_elements.h" 52 template<
class ELEMENT>
69 const double &flag_length,
70 const double &flag_height,
71 const double ¢re_x,
72 const double ¢re_y,
103 template<
class ELEMENT>
119 const double &length,
120 const double &height,
121 const double &flag_length,
122 const double &flag_height,
123 const double ¢re_x,
124 const double ¢re_y,
129 top_flag_pt,bottom_flag_pt,
130 tip_flag_pt,length,height,
131 flag_length,flag_height,centre_x,centre_y,
139 this->setup_quadtree_forest();
160 template<
class ELEMENT>
176 const double &length,
177 const double &height,
178 const double &flag_length,
179 const double &flag_height,
180 const double ¢re_x,
181 const double ¢re_y,
186 tip_flag_pt,length,height,
187 flag_length,flag_height,centre_x,centre_y,
189 Cylinder_pt(cylinder_pt),Top_flag_pt(top_flag_pt),
190 Bottom_flag_pt(bottom_flag_pt),Tip_flag_pt(tip_flag_pt),
191 Length(length),Height(height), Flag_length(flag_length),
192 Flag_height(flag_height),Centre_x(centre_x),Centre_y(centre_y),A(a)
201 setup_algebraic_node_update();
214 Bottom_flag_pt=bottom_flag_pt;
222 Top_flag_pt=top_flag_pt;
231 Tip_flag_pt=tip_flag_pt;
239 return Bottom_flag_pt;
271 void setup_algebraic_node_update();
274 void node_update_I(
const unsigned& t,
AlgebraicNode*& node_pt);
277 void node_update_II(
const unsigned& t,
AlgebraicNode*& node_pt);
280 void node_update_III(
const unsigned& t,
AlgebraicNode*& node_pt);
283 void node_update_IV(
const unsigned& t,
AlgebraicNode*& node_pt);
286 void node_update_V(
const unsigned& t,
AlgebraicNode*& node_pt);
289 void node_update_VI(
const unsigned& t,
AlgebraicNode*& node_pt);
292 void node_update_VII(
const unsigned& t,
AlgebraicNode*& node_pt);
295 void node_update_VIII(
const unsigned& t,
AlgebraicNode*& node_pt);
298 void node_update_IX(
const unsigned& t,
AlgebraicNode*& node_pt);
343 template<
class ELEMENT>
360 const double &length,
361 const double &height,
362 const double &flag_length,
363 const double &flag_height,
364 const double ¢re_x,
365 const double ¢re_y,
370 tip_flag_pt,length,height,
371 flag_length,flag_height,centre_x,centre_y,
375 tip_flag_pt,length,height,
377 flag_height, centre_x, centre_y, a,
381 this->setup_quadtree_forest();
Refineable version of AlgebraicCylinderWithFlagMesh.
GeomObject *& bottom_flag_pt()
Access fct to GeomObjects for top, bottom and tip.
void set_bottom_flag_pt(GeomObject *bottom_flag_pt)
Set geometric object that defines the bottom face of the flag.
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors. ...
double A
radius of the cylinder
GeomObject * tip_flag_pt() const
Read-only access to geometric object that defines the tip of the flag.
double Height
Height of the domain.
RefineableCylinderWithFlagMesh(Circle *cylinder_pt, GeomObject *top_flag_pt, GeomObject *bottom_flag_pt, GeomObject *tip_flag_pt, const double &length, const double &height, const double &flag_length, const double &flag_height, const double ¢re_x, const double ¢re_y, const double &a, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor. Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of t...
void add_geom_object_list_pt(GeomObject *geom_object_pt)
Add the specified GeomObject to the list of geometric objects associated with this AlgebraicMesh; rem...
GeomObject *& tip_flag_pt()
GeomObject * Cylinder_pt
Cylinder.
RefineableAlgebraicCylinderWithFlagMesh(Circle *cylinder_pt, GeomObject *top_flag_pt, GeomObject *bottom_flag_pt, GeomObject *tip_flag_pt, const double &length, const double &height, const double &flag_length, const double &flag_height, const double ¢re_x, const double ¢re_y, const double &a, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of t...
virtual ~CylinderWithFlagMesh()
Destructor: Kill the domain.
virtual ~AlgebraicCylinderWithFlagMesh()
Destructor: empty.
GeomObject * Tip_flag_pt
Tip flag.
GeomObject * bottom_flag_pt() const
Read-only access to geometric object that defines the bottom face of the flag.
double Length
Length of the domain.
CylinderWithFlagDomain * Domain_pt
Pointer to the domain.
void set_top_flag_pt(GeomObject *top_flag_pt)
Set the geometric object that defines the top face of the flag.
Algebraic version of CylinderWithFlagMesh.
GeomObject * Bottom_flag_pt
Bottom flag.
Domain for cylinder with flag as in Turek benchmark.
Node *& node_pt(const unsigned long &n)
Return pointer to global node n.
double Flag_length
Flag length.
void set_tip_flag_pt(GeomObject *tip_flag_pt)
Set the geometric object that defines the tip of the flag.
Base class for quad meshes (meshes made of 2D quad elements).
CylinderWithFlagDomain * domain_pt()
Access function to the domain.
CylinderWithFlagMesh(Circle *cylinder_pt, GeomObject *top_flag_pt, GeomObject *bottom_flag_pt, GeomObject *tip_flag_pt, const double &length, const double &height, const double &flag_length, const double &flag_height, const double ¢re_x, const double ¢re_y, const double &a, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor. Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of t...
virtual ~RefineableCylinderWithFlagMesh()
Destructor: Empty.
double Centre_y
x position of the centre of the cylinder
double Flag_height
Flag thickness.
AlgebraicCylinderWithFlagMesh(Circle *cylinder_pt, GeomObject *top_flag_pt, GeomObject *bottom_flag_pt, GeomObject *tip_flag_pt, const double &length, const double &height, const double &flag_length, const double &flag_height, const double ¢re_x, const double ¢re_y, const double &a, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor. Pass the pointers to the GeomObjects that parametrise the cylinder, the three edges of t...
GeomObject * Top_flag_pt
Top flag.
void update_node_update(AlgebraicNode *&node_pt)
Update the geometric references that are used to update node after mesh adaptation. Empty – no update of node update required without adaptativity.
GeomObject *& top_flag_pt()
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...
double Centre_x
x position of the centre of the cylinder
Refineable version of CylinderWithFlagMesh.
GeomObject * top_flag_pt() const
Read-only access to geometric object that defines the top face of the flag.