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>
118 const unsigned& nx_bl,
119 const double& delta_bl,
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.
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors. ...
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 ...
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...
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.