31 #ifndef OOMPH_QUARTER_PIPE_MESH_TEMPLATE_HEADER 32 #define OOMPH_QUARTER_PIPE_MESH_TEMPLATE_HEADER 35 #include "../generic/mesh.h" 36 #include "../generic/brick_mesh.h" 37 #include "../generic/refineable_brick_mesh.h" 42 #include "../generic/macro_element.h" 43 #include "../generic/domain.h" 58 template <
class ELEMENT>
67 const unsigned &ntheta,
const unsigned &nr,
const unsigned &
nz,
68 const double &rmin,
const double &rmax,
121 template <
class ELEMENT>
132 const unsigned &ntheta,
const unsigned &nr,
const unsigned &
nz,
133 const double &rmin,
const double &rmax,
const double &length,
136 QuarterPipeMesh<ELEMENT>(ntheta,nr,nz,rmin,rmax,length,time_stepper_pt)
142 for (
unsigned iel=0;iel<(nr*ntheta*
nz);iel++)
145 ELEMENT* ref_el_pt=
dynamic_cast<ELEMENT*
>(el_pt);
147 trees_pt.push_back(octree_root_pt);
157 delete this->Forest_pt;
174 template <
class ELEMENT>
188 const unsigned &
nz,
const double &rmin,
189 const double &rmax,
const double &length,
193 QuarterPipeMesh<ELEMENT>(ntheta,nr,nz,rmin,rmax,length,time_stepper_pt)
198 set_lagrangian_nodal_coordinates();
214 template <
class ELEMENT>
227 const unsigned &
nz,
const double &rmin,
228 const double &rmax,
const double &length,
232 QuarterPipeMesh<ELEMENT>(ntheta,nr,nz,rmin,rmax,length,time_stepper_pt),
239 for (
unsigned iel=0;iel<(nr*ntheta*
nz);iel++)
242 ELEMENT* ref_el_pt=
dynamic_cast<ELEMENT*
>(el_pt);
244 trees_pt.push_back(octree_root_pt);
249 unsigned n_element=this->
nelement();
250 for (
unsigned e=0;
e<n_element;
e++)
253 ELEMENT* el_pt=
dynamic_cast<ELEMENT*
>(this->
element_pt(
e));
258 el_pt->set_undeformed_macro_elem_pt(this->
264 el_pt->enable_use_of_undeformed_macro_element_for_new_lagrangian_coords();
QuarterPipeMesh(const unsigned &ntheta, const unsigned &nr, const unsigned &nz, const double &rmin, const double &rmax, const double &length, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass number of elements in various directions, the inner and outer radius and the length...
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors. ...
const unsigned & nz() const
Access function for number of elements in y directions.
ElasticQuarterPipeMesh(const unsigned &ntheta, const unsigned &nr, const unsigned &nz, const double &rmin, const double &rmax, const double &length, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass number of elements in various directions, the inner and outer radius and the length...
ElasticRefineableQuarterPipeMesh(const unsigned &ntheta, const unsigned &nr, const unsigned &nz, const double &rmin, const double &rmax, const double &length, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass number of elements in various directions, the inner and outer radius and the length...
Simple cubic 3D Brick mesh class.
QuarterPipeDomain * domain_pt() const
Access function to underlying domain.
Refineable elastic quarter pipe mesh class.
A general Finite Element class.
MacroElement * macro_element_pt(const unsigned &i)
Access to i-th macro element.
QuarterPipeDomain * Domain_pt
Pointer to domain.
unsigned long nelement() const
Return number of elements in the mesh.
QuarterPipeDomain * domain_pt()
Access function to domain.
unsigned Nz
Number of elements axial direction.
unsigned Nr
Number of elements radial direction.
Refineable quarter pipe mesh class.
RefineableQuarterPipeMesh(const unsigned &ntheta, const unsigned &nr, const unsigned &nz, const double &rmin, const double &rmax, const double &length, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass number of elements in various directions, the inner and outer radius and the length...
Domain representing a quarter pipe.
FiniteElement * finite_element_pt(const unsigned &e) const
Upcast (downcast?) to FiniteElement (needed to access FiniteElement member functions).
virtual ~QuarterPipeMesh()
Empty Destructor.
const Vector< GeneralisedElement * > & element_pt() const
Return reference to the Vector of elements.
unsigned Ntheta
Number of elements azimuthal direction.
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...
virtual ~RefineableQuarterPipeMesh()
Destructor – delete forest.