30 #ifndef OOMPH_CIRCULAR_SHELL_MESH_HEADER    31 #define OOMPH_CIRCULAR_SHELL_MESH_HEADER    35   #include <oomph-lib-config.h>    39 #include "../generic/mesh.h"    40 #include "../generic/matrices.h"    41 #include "../generic/quadtree.h"    42 #include "../generic/quad_mesh.h"    56  template <
class ELEMENT>
    59   public virtual SolidMesh
    71                                 TimeStepper* time_stepper_pt=
    72                                 &Mesh::Default_TimeStepper) :
    96                                  TimeStepper* time_stepper_pt=
    97                                  &Mesh::Default_TimeStepper) :
   118                                 const unsigned& nx_bl,
   119                                 const double& delta_bl,
   120                                 TimeStepper* time_stepper_pt=
   121                                 &Mesh::Default_TimeStepper) :
   141                                      undeformed_midplane_pt);
   156                     const double &lx, 
const double &ly);
   180      double old_delta_bl=double(
Nx_bl)*lx/double(this->
Nx);
   187      else if (xi<(lx-old_delta_bl))
   189        tmp_xi=
Delta_bl+(xi-old_delta_bl)/(lx-2.0*old_delta_bl)*
   195        tmp_xi=end_x+(xi-(lx-old_delta_bl))/old_delta_bl*
Delta_bl;
 AxialBLStretchingFctPt axial_bl_stretching_fct_pt() const
Access to fct pointer to fct that defines the axial stretching fct. 
 
const unsigned & nx() const
Return number of elements in x direction. 
 
CircularCylindricalShellMesh(const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor for the mesh – uniformly spaced elements. 
 
CircularCylindricalShellMesh(const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, AxialBLStretchingFctPt axial_bl_stretching_fct_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor for the mesh – specify fct that maps axial Lagr. coordinates to new positions to allow f...
 
const unsigned & ny() const
Return number of elements in y direction. 
 
unsigned Nx
Nx: number of elements in x-direction. 
 
double piecewise_linear_axial_bl_stretching_fct(const double &xi)
Default axial scaling fct. 
 
AxialBLStretchingFctPt Axial_bl_stretching_fct_pt
Fct pointer to fct that defines the axial stretching fct. 
 
void build_mesh(const unsigned &nx, const unsigned &ny, const double &lx, const double &ly)
Mesh build helper fct. 
 
CircularCylindricalShellMesh(const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, const unsigned &nx_bl, const double &delta_bl, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor for the mesh. nx_bl azimuthal layers of elements near the ends are squashed to that axial...
 
double Delta_bl
Axial extent of the squashed boundary layer part of the mesh occupied by Nx_bl elements (at each end ...
 
double Xmin
Minimum value of x coordinate. 
 
unsigned Nx_bl
Number of azimuthal element layers that get squashed into each of the the two boundary layers at the ...
 
double(* AxialBLStretchingFctPt)(const double &x)
Typedef for fct that defines the axial stretching fct. 
 
double Xmax
Maximum value of x coordinate. 
 
void assign_undeformed_positions(GeomObject *const &undeformed_midplane_pt)
In all elastic problems, the nodes must be assigned an undeformed, or reference, position, corresponding to the stress-free state of the elastic body. This function assigns the undeformed position for the nodes on the elastic tube. 
 
double scaled_x(const double &x)
Fct that defines the axial stretching to accomodate bending boundary layers.