Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
oomph::CircularCylindricalShellMesh< ELEMENT > Class Template Reference

A 2D solid mesh for (topologically) circular cylindrical shells. The shell is represented by two Lagrangian coordinates that correspond to z and theta in cylindrical polars. The required mesh is therefore a 2D mesh and is therefore inherited from the generic RectangularQuadMesh. More...

#include <circular_shell_mesh.template.h>

Inheritance diagram for oomph::CircularCylindricalShellMesh< ELEMENT >:
oomph::RectangularQuadMesh< ELEMENT >

Public Types

typedef double(* AxialBLStretchingFctPt) (const double &x)
 Typedef for fct that defines the axial stretching fct. More...
 

Public Member Functions

 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. More...
 
 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 for better resolution of bending boundary layer. More...
 
 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 extent of the elements changes from lx/nx to delta_bl. More...
 
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. More...
 
AxialBLStretchingFctPt axial_bl_stretching_fct_pt () const
 Access to fct pointer to fct that defines the axial stretching fct. More...
 
- Public Member Functions inherited from oomph::RectangularQuadMesh< ELEMENT >
 RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
 Simple constructor: nx: number of elements in x direction; ny: number of elements in y direction; lx, length of domain in x direction (0,lx); ly, length of domain in y direction (0,ly) Also pass pointer to timestepper (defaults to Steady) More...
 
 RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &xmin, const double &xmax, const double &ymin, const double &ymax, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
 Constructor that allows the specification of minimum and maximum values of x and y coordinates. More...
 
 RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
 Simple constructor: nx: number of elements in x direction; ny: number of elements in y direction; lx, length of domain in x direction (0,lx); ly, length of domain in y direction (0,ly) Boolean flag specifies if the mesh is periodic in the x-direction. Also pass pointer to timestepper (defaults to Steady) More...
 
 RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &xmin, const double &xmax, const double &ymin, const double &ymax, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
 Constructor that allows the specification of minimum and maximum values of x and y coordinates. Boolean flag specifies if the mesh is periodic in the x-direction. More...
 
const unsigned & nx () const
 Return number of elements in x direction. More...
 
const unsigned & ny () const
 Return number of elements in y direction. More...
 
const double x_min () const
 Return the minimum value of x coordinate. More...
 
const double x_max () const
 Return the maximum value of x coordinate. More...
 
const double y_min () const
 Return the minimum value of y coordinate. More...
 
const double y_max () const
 Return the maximum value of y coordinate. More...
 
virtual void element_reorder ()
 Reorder the elements: By default they are ordered in "horizontal" layers (increasing in x, then in y). This function changes this to an ordering in the vertical direction (y first, then x). This is more efficient if a frontal solver is used and the mesh has more elements in the x than the y direction. Can be overloaded in specific derived meshes. More...
 
virtual double x_spacing_function (unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode)
 Return the value of the x-coordinate at the node given by the local node number (xnode, ynode) in the element (xelement,yelement). The description is in a "psudeo" two-dimensional coordinate system, so the range of xelement is [0,Nx-1], yelement is [0,Ny-1], and that of xnode and ynode is [0,Np-1]. The default is to return nodes that are equally spaced in the x coodinate. More...
 
virtual double y_spacing_function (unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode)
 Return the value of the y-coordinate at the node given by the local node number (xnode, ynode) in the element (xelement,yelement). The description is in a "psudeo" two-dimensional coordinate system, so the range of xelement is [0,Nx-1], yelement is [0,Ny-1], and that of xnode and ynode is [0,Np-1]. The default it to return nodes that are equally spaced in the y coordinate. More...
 

Private Member Functions

void build_mesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &ly)
 Mesh build helper fct. More...
 
double scaled_x (const double &x)
 Fct that defines the axial stretching to accomodate bending boundary layers. More...
 
double piecewise_linear_axial_bl_stretching_fct (const double &xi)
 Default axial scaling fct. More...
 

Private Attributes

AxialBLStretchingFctPt Axial_bl_stretching_fct_pt
 Fct pointer to fct that defines the axial stretching fct. More...
 
unsigned Nx_bl
 Number of azimuthal element layers that get squashed into each of the the two boundary layers at the ends of the tube. More...
 
double Delta_bl
 Axial extent of the squashed boundary layer part of the mesh occupied by Nx_bl elements (at each end of the tube) More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::RectangularQuadMesh< ELEMENT >
void build_mesh (TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
 Generic mesh construction function: contains all the hard work. More...
 
 RectangularQuadMesh (const unsigned &nx, const unsigned &ny, const double &xmin, const double &xmax, const double &ymin, const double &ymax, const bool &periodic_in_x, const bool &build, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
 Constructor that allows the specification of minimum and maximum values of x and y coordinates and does not build the mesh This is intend to be used in derived classes that overload the spacing functions. THis is scheduled to be changed, however. The reason why this MUST be done is because the virtual spacing functions cannot be called in the base constructur, because they will not have been overloaded yet!! More...
 
- Protected Attributes inherited from oomph::RectangularQuadMesh< ELEMENT >
unsigned Nx
 Nx: number of elements in x-direction. More...
 
unsigned Ny
 Ny: number of elements in y-direction. More...
 
unsigned Np
 Np: number of (linear) points in the element. More...
 
double Xmin
 Minimum value of x coordinate. More...
 
double Xmax
 Maximum value of x coordinate. More...
 
double Ymin
 Minimum value of y coordinate. More...
 
double Ymax
 Maximum value of y coordinate. More...
 
bool Xperiodic
 Boolean variable used to determine whether the mesh is periodic in the x-direction. More...
 

Detailed Description

template<class ELEMENT>
class oomph::CircularCylindricalShellMesh< ELEMENT >

A 2D solid mesh for (topologically) circular cylindrical shells. The shell is represented by two Lagrangian coordinates that correspond to z and theta in cylindrical polars. The required mesh is therefore a 2D mesh and is therefore inherited from the generic RectangularQuadMesh.

Definition at line 51 of file circular_shell_mesh.template.h.

Member Typedef Documentation

◆ AxialBLStretchingFctPt

template<class ELEMENT >
typedef double(* oomph::CircularCylindricalShellMesh< ELEMENT >::AxialBLStretchingFctPt) (const double &x)

Typedef for fct that defines the axial stretching fct.

Definition at line 57 of file circular_shell_mesh.template.h.

Constructor & Destructor Documentation

◆ CircularCylindricalShellMesh() [1/3]

template<class ELEMENT >
oomph::CircularCylindricalShellMesh< ELEMENT >::CircularCylindricalShellMesh ( const unsigned &  nx,
const unsigned &  ny,
const double &  lx,
const double &  ly,
TimeStepper *  time_stepper_pt = &Mesh::Default_TimeStepper 
)
inline

◆ CircularCylindricalShellMesh() [2/3]

template<class ELEMENT >
oomph::CircularCylindricalShellMesh< ELEMENT >::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 
)
inline

◆ CircularCylindricalShellMesh() [3/3]

template<class ELEMENT >
oomph::CircularCylindricalShellMesh< ELEMENT >::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 
)
inline

Constructor for the mesh. nx_bl azimuthal layers of elements near the ends are squashed to that axial extent of the elements changes from lx/nx to delta_bl.

Definition at line 106 of file circular_shell_mesh.template.h.

References oomph::CircularCylindricalShellMesh< ELEMENT >::Axial_bl_stretching_fct_pt, oomph::CircularCylindricalShellMesh< ELEMENT >::build_mesh(), oomph::CircularCylindricalShellMesh< ELEMENT >::Delta_bl, oomph::CircularCylindricalShellMesh< ELEMENT >::Nx_bl, and oomph::RectangularQuadMesh< ELEMENT >::ny().

Member Function Documentation

◆ assign_undeformed_positions()

template<class ELEMENT >
void oomph::CircularCylindricalShellMesh< ELEMENT >::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.

Set the undeformed coordinates of the nodes.

Definition at line 127 of file circular_shell_mesh.template.cc.

◆ axial_bl_stretching_fct_pt()

template<class ELEMENT >
AxialBLStretchingFctPt oomph::CircularCylindricalShellMesh< ELEMENT >::axial_bl_stretching_fct_pt ( ) const
inline

Access to fct pointer to fct that defines the axial stretching fct.

Definition at line 136 of file circular_shell_mesh.template.h.

References oomph::CircularCylindricalShellMesh< ELEMENT >::Axial_bl_stretching_fct_pt.

Referenced by oomph::CircularCylindricalShellMesh< ELEMENT >::CircularCylindricalShellMesh().

◆ build_mesh()

template<class ELEMENT >
void oomph::CircularCylindricalShellMesh< ELEMENT >::build_mesh ( const unsigned &  nx,
const unsigned &  ny,
const double &  lx,
const double &  ly 
)
private

Mesh build helper fct.

Mesh build fct.

Definition at line 41 of file circular_shell_mesh.template.cc.

Referenced by oomph::CircularCylindricalShellMesh< ELEMENT >::CircularCylindricalShellMesh().

◆ piecewise_linear_axial_bl_stretching_fct()

template<class ELEMENT >
double oomph::CircularCylindricalShellMesh< ELEMENT >::piecewise_linear_axial_bl_stretching_fct ( const double &  xi)
inlineprivate

◆ scaled_x()

template<class ELEMENT >
double oomph::CircularCylindricalShellMesh< ELEMENT >::scaled_x ( const double &  x)
inlineprivate

Member Data Documentation

◆ Axial_bl_stretching_fct_pt

template<class ELEMENT >
AxialBLStretchingFctPt oomph::CircularCylindricalShellMesh< ELEMENT >::Axial_bl_stretching_fct_pt
private

◆ Delta_bl

template<class ELEMENT >
double oomph::CircularCylindricalShellMesh< ELEMENT >::Delta_bl
private

Axial extent of the squashed boundary layer part of the mesh occupied by Nx_bl elements (at each end of the tube)

Definition at line 201 of file circular_shell_mesh.template.h.

Referenced by oomph::CircularCylindricalShellMesh< ELEMENT >::CircularCylindricalShellMesh(), and oomph::CircularCylindricalShellMesh< ELEMENT >::piecewise_linear_axial_bl_stretching_fct().

◆ Nx_bl

template<class ELEMENT >
unsigned oomph::CircularCylindricalShellMesh< ELEMENT >::Nx_bl
private

Number of azimuthal element layers that get squashed into each of the the two boundary layers at the ends of the tube.

Definition at line 197 of file circular_shell_mesh.template.h.

Referenced by oomph::CircularCylindricalShellMesh< ELEMENT >::CircularCylindricalShellMesh(), and oomph::CircularCylindricalShellMesh< ELEMENT >::piecewise_linear_axial_bl_stretching_fct().


The documentation for this class was generated from the following files: