27 #ifndef OOMPH_FULL_CIRCLE_MESH_HEADER
28 #define OOMPH_FULL_CIRCLE_MESH_HEADER
31 #include "../generic/refineable_quad_mesh.h"
48 template<
class ELEMENT>
58 const Vector<double>& theta_positions,
59 const Vector<double>& radius_box,
60 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper);
110 template<
class ELEMENT>
112 public RefineableQuadMesh<ELEMENT>
126 const Vector<double>& theta_positions,
127 const Vector<double>& radius_box,
128 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper)
130 wall_pt, theta_positions, radius_box, time_stepper_pt)
133 for (
unsigned ielem = 0; ielem < FullCircleMesh<ELEMENT>::nelement();
136 dynamic_cast<RefineableQElement<2>*
>(
138 ->set_macro_elem_pt(this->
Domain_pt->macro_element_pt(ielem));
144 Vector<TreeRoot*> trees_pt;
145 for (
unsigned iel = 0; iel < FullCircleMesh<ELEMENT>::nelement(); iel++)
148 ELEMENT* ref_el_pt =
dynamic_cast<ELEMENT*
>(el_pt);
149 QuadTreeRoot* quadtree_root_pt =
new QuadTreeRoot(ref_el_pt);
150 trees_pt.push_back(quadtree_root_pt);
153 this->Forest_pt =
new QuadTreeForest(trees_pt);
157 unsigned success_flag =
158 dynamic_cast<QuadTreeForest*
>(this->Forest_pt)->self_test();
159 if (success_flag == 0)
161 oomph_info <<
"Successfully built quadtree forest " << std::endl;
165 throw OomphLibError(
"Trouble in building quadtree forest ",
166 OOMPH_CURRENT_FUNCTION,
167 OOMPH_EXCEPTION_LOCATION);
Topologically circular domain, e.g. a tube cross section. The entire domain must be defined by a Geom...
Full circle mesh class. The domain is specified by the GeomObject that identifies the entire area....
FullCircleDomain * Domain_pt
Pointer to domain.
GeomObject * Area_pt
Pointer to the geometric object that represents the entire domain.
GeomObject *& area_pt()
Access function to GeomObject representing wall.
virtual ~FullCircleMesh()
Destructor: empty.
FullCircleDomain * domain_pt()
Access function to domain.
FullCircleMesh(GeomObject *wall_pt, const Vector< double > &theta_positions, const Vector< double > &radius_box, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass pointer to geometric object that specifies the area; values of theta at which divid...
FullCircleDomain * domain_pt() const
Access function to underlying domain.
///////////////////////////////////////////////////////////////// ///////////////////////////////////...
RefineableFullCircleMesh(GeomObject *wall_pt, const Vector< double > &theta_positions, const Vector< double > &radius_box, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor for adaptive deformable quarter tube mesh class. Pass pointer to geometric object that sp...
virtual ~RefineableFullCircleMesh()
Destructor: empty.
////////////////////////////////////////////////////////////////////// //////////////////////////////...