30 #ifndef OOMPH_TUBE_MESH_HEADER 31 #define OOMPH_TUBE_MESH_HEADER 34 #include "../generic/refineable_brick_mesh.h" 35 #include "../generic/macro_element.h" 36 #include "../generic/domain.h" 37 #include "../generic/algebraic_elements.h" 38 #include "../generic/brick_mesh.h" 39 #include "../generic/macro_element_node_update_element.h" 61 template <
class ELEMENT>
78 const unsigned& nlayer,
130 template<
class ELEMENT>
150 const unsigned& nlayer,
153 TubeMesh<ELEMENT>(wall_pt,centreline_limits,theta_positions,
155 nlayer,time_stepper_pt)
158 for (
unsigned ielem=0;ielem<TubeMesh<ELEMENT>::nelement();ielem++)
169 for (
unsigned iel=0;iel<TubeMesh<ELEMENT>::nelement();iel++)
172 ELEMENT* ref_el_pt=
dynamic_cast<ELEMENT*
>(el_pt);
174 trees_pt.push_back(octree_root_pt);
180 unsigned success_flag=
184 oomph_info <<
"Successfully built octree forest " << std::endl;
189 "Trouble in building octree forest ",
190 OOMPH_CURRENT_FUNCTION,
191 OOMPH_EXCEPTION_LOCATION);
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors. ...
TubeMesh(GeomObject *wall_pt, const Vector< double > ¢reline_limits, const Vector< double > &theta_positions, const Vector< double > &radius_box, const unsigned &nlayer, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass pointer to geometric object that specifies the volume, start and end coordinates fo...
Base class for brick meshes (meshes made of 3D brick elements).
RefineableTubeMesh(GeomObject *wall_pt, const Vector< double > ¢reline_limits, const Vector< double > &theta_positions, const Vector< double > &radius_box, const unsigned &nlayer, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor for adaptive deformable quarter tube mesh class. Pass pointer to geometric object that sp...
A general Finite Element class.
MacroElement * macro_element_pt(const unsigned &i)
Access to i-th macro element.
unsigned self_test()
Self-test: Check elements and nodes. Return 0 for OK.
TubeDomain * domain_pt()
Access function to domain.
TubeDomain * domain_pt() const
Access function to underlying domain.
Tube as a domain. The entire domain must be defined by a GeomObject with the following convention: ze...
virtual ~RefineableTubeMesh()
Destructor: empty.
GeomObject * Volume_pt
Pointer to the geometric object that represents the curved wall.
TubeDomain * Domain_pt
Pointer to domain.
GeomObject *& volume_pt()
Access function to GeomObject representing wall.
FiniteElement * finite_element_pt(const unsigned &e) const
Upcast (downcast?) to FiniteElement (needed to access FiniteElement member functions).
virtual ~TubeMesh()
Destructor: empty.
3D tube mesh class. The domain is specified by the GeomObject that identifies the entire volume...
const Vector< GeneralisedElement * > & element_pt() const
Return reference to the Vector of elements.
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...