27 #ifndef OOMPH_QUARTER_PIPE_MESH_TEMPLATE_HEADER
28 #define OOMPH_QUARTER_PIPE_MESH_TEMPLATE_HEADER
31 #include "../generic/mesh.h"
32 #include "../generic/brick_mesh.h"
33 #include "../generic/refineable_brick_mesh.h"
38 #include "../generic/macro_element.h"
39 #include "../generic/domain.h"
51 template<
class ELEMENT>
117 template<
class ELEMENT>
125 const unsigned& ntheta,
130 const double& length,
133 ntheta, nr,
nz, 1.0, 1.0, 1.0, time_stepper_pt),
135 ntheta, nr,
nz, rmin, rmax, length, time_stepper_pt)
140 for (
unsigned iel = 0; iel < (nr * ntheta *
nz); iel++)
143 ELEMENT* ref_el_pt =
dynamic_cast<ELEMENT*
>(el_pt);
145 trees_pt.push_back(octree_root_pt);
170 template<
class ELEMENT>
180 const unsigned& ntheta,
185 const double& length,
188 ntheta, nr,
nz, 1.0, 1.0, 1.0, time_stepper_pt),
190 ntheta, nr,
nz, rmin, rmax, length, time_stepper_pt)
208 template<
class ELEMENT>
219 const unsigned& ntheta,
224 const double& length,
227 ntheta, nr,
nz, 1.0, 1.0, 1.0, time_stepper_pt),
229 ntheta, nr,
nz, rmin, rmax, length, time_stepper_pt),
231 ntheta, nr,
nz, rmin, rmax, length, time_stepper_pt)
236 for (
unsigned iel = 0; iel < (nr * ntheta *
nz); iel++)
239 ELEMENT* ref_el_pt =
dynamic_cast<ELEMENT*
>(el_pt);
241 trees_pt.push_back(octree_root_pt);
246 unsigned n_element = this->
nelement();
247 for (
unsigned e = 0;
e < n_element;
e++)
250 ELEMENT* el_pt =
dynamic_cast<ELEMENT*
>(this->
element_pt(
e));
255 el_pt->set_undeformed_macro_elem_pt(
262 ->enable_use_of_undeformed_macro_element_for_new_lagrangian_coords();
MacroElement * macro_element_pt(const unsigned &i)
Access to i-th macro element.
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
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...
A general Finite Element class.
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors.
FiniteElement * finite_element_pt(const unsigned &e) const
Upcast (downcast?) to FiniteElement (needed to access FiniteElement member functions).
const Vector< GeneralisedElement * > & element_pt() const
Return reference to the Vector of elements.
unsigned long nelement() const
Return number of elements in the mesh.
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
OcTreeRoot is a OcTree that forms the root of a (recursive) octree. The "root node" is special as it ...
Domain representing a quarter pipe.
Non refineable quarter pipe mesh class Deform a simple cubic mesh into a quarter pipe r: radial direc...
QuarterPipeDomain * Domain_pt
Pointer to domain.
unsigned Nz
Number of elements axial direction.
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...
virtual ~QuarterPipeMesh()
Empty Destructor.
unsigned Nr
Number of elements radial direction.
QuarterPipeDomain * domain_pt()
Access function to domain.
unsigned Ntheta
Number of elements azimuthal direction.
QuarterPipeDomain * domain_pt() const
Access function to underlying domain.
Intermediate mesh class that implements the mesh adaptation functions specified in the TreeBasedRefin...
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
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...
virtual ~RefineableQuarterPipeMesh()
Destructor – delete forest.
Simple cubic 3D Brick mesh class.
const unsigned & nz() const
Access function for number of elements in y directions.
void set_lagrangian_nodal_coordinates()
Make the current configuration the undeformed one by setting the nodal Lagrangian coordinates to thei...
////////////////////////////////////////////////////////////////////// //////////////////////////////...
TreeForest * Forest_pt
Forest representation of the mesh.
A slight extension to the standard template vector class so that we can include "graceful" array rang...
//////////////////////////////////////////////////////////////////// ////////////////////////////////...