Spine mesh class derived from standard 2D mesh. The mesh contains a StraightLine GeomObject which defines the height of the left and right regions (0,2) and another GeomObject is passed to the constructor to define the height in the central region. More...
#include <channel_spine_mesh.template.h>
Public Member Functions | |
ChannelSpineMesh (const unsigned &nx0, const unsigned &nx1, const unsigned &nx2, const unsigned &ny, const double &lx0, const double &lx1, const double &lx2, const double &h, GeomObject *wall_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass number of elements in x-direction in regions 0,1 and 2, number of elements in y-direction, length in x direction in regions 0,1 and 2, height mesh, pointer to the GeomObject defining the heightof the central region and pointer to timestepper (defaults to Steady timestepper) More... | |
ChannelSpineMesh (const unsigned &nx0, const unsigned &nx1, const unsigned &nx2, const unsigned &ny, const double &lx0, const double &lx1, const double &lx2, const double &h, GeomObject *wall_pt, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass number of elements in x-direction in regions 0,1 and 2, number of elements in y-direction, length in x direction in regions 0,1 and 2, height mesh, pointer to the GeomObject defining the heightof the central region, a boolean flag to indicate whether or not the mesh is periodic and pointer to timestepper (defaults to Steady timestepper) More... | |
FiniteElement *& | left_element_pt (const unsigned long &i) |
Access functions for pointers to the -th element in the left region. More... | |
FiniteElement *& | centre_element_pt (const unsigned long &i) |
Access functions for pointers to the -th element in the centre region. More... | |
FiniteElement *& | right_element_pt (const unsigned long &i) |
Access functions for pointers to the -th element in the right region. More... | |
unsigned long | nleft () const |
Number of elements in left region. More... | |
unsigned long | ncentre () const |
Number of elements in centre region. More... | |
unsigned long | nright () const |
Number of elements in right region. More... | |
unsigned long | nbulk () const |
Number of elements in bulk. More... | |
void | element_reorder () |
Reorder the elements so we loop over them vertically first (advantageous in "wide" domains if a frontal solver is used). More... | |
virtual void | spine_node_update (SpineNode *spine_node_pt) |
General node update function implements pure virtual function defined in SpineMesh base class and performs specific node update actions: along vertical spines. 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... | |
Spine *& | left_spine_pt (const unsigned long &i) |
Access function for spines in left region. More... | |
Spine *& | centre_spine_pt (const unsigned long &i) |
Access function for spines in centre region. More... | |
Spine *& | right_spine_pt (const unsigned long &i) |
Access function for spines in right region. More... | |
unsigned | nleft_spine () |
Access function for the number of spines in the left region. More... | |
unsigned | ncentre_spine () |
Access function for the number of spines in the centre region. More... | |
unsigned | nright_spine () |
Access function for the number of spines in the right region. More... | |
GeomObject * | wall_pt () |
Access function to the GeomObject for upper wall. More... | |
GeomObject * | straight_wall_pt () |
Access function to the GeomObject for the straight upper wall. 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 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... | |
Protected Member Functions | |
virtual void | build_channel_spine_mesh (TimeStepper *time_stepper_pt) |
Helper function to actually build the channel-spine mesh (called from various constructors) More... | |
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 | |
Vector< FiniteElement * > | Left_element_pt |
Vector of pointers to element in the left region. More... | |
Vector< FiniteElement * > | Centre_element_pt |
Vector of pointers to element in the centre region. More... | |
Vector< FiniteElement * > | Right_element_pt |
Vector of pointers to element in the right region. More... | |
unsigned | Nx0 |
Number of elements in the left region. More... | |
unsigned | Nx1 |
Number of elements in the centre region. More... | |
unsigned | Nx2 |
Number of elements in the right region. More... | |
double | Lx0 |
Length of left region. More... | |
double | Lx1 |
Length of centre region. More... | |
double | Lx2 |
Length of right region. More... | |
unsigned | Nleft_spine |
Number of spines in left region. More... | |
unsigned | Ncentre_spine |
Number of spines in centre region. More... | |
unsigned | Nright_spine |
Number of spines in right region. More... | |
GeomObject * | Wall_pt |
GeomObject for upper wall. More... | |
GeomObject * | Straight_wall_pt |
GeomObject for the straight upper wall. 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... | |
Spine mesh class derived from standard 2D mesh. The mesh contains a StraightLine GeomObject which defines the height of the left and right regions (0,2) and another GeomObject is passed to the constructor to define the height in the central region.
Definition at line 42 of file channel_spine_mesh.template.h.
oomph::ChannelSpineMesh< ELEMENT >::ChannelSpineMesh | ( | const unsigned & | nx0, |
const unsigned & | nx1, | ||
const unsigned & | nx2, | ||
const unsigned & | ny, | ||
const double & | lx0, | ||
const double & | lx1, | ||
const double & | lx2, | ||
const double & | h, | ||
GeomObject * | wall_pt, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
Constructor: Pass number of elements in x-direction in regions 0,1 and 2, number of elements in y-direction, length in x direction in regions 0,1 and 2, height mesh, pointer to the GeomObject defining the heightof the central region and pointer to timestepper (defaults to Steady timestepper)
Constructor for spine 2D mesh: Pass number of elements in x-direction, number of elements in y-direction, axial length and height of layer, and pointer to timestepper (defaults to Static timestepper).
The mesh contains a layer of spinified fluid elements (of type ELEMENT; e.g SpineElement<QCrouzeixRaviartElement<2>) and a surface layer of corresponding Spine interface elements of type INTERFACE_ELEMENT, e.g. SpineLineFluidInterfaceElement<ELEMENT> for 2D planar problems.
Definition at line 48 of file channel_spine_mesh.template.cc.
References oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), and oomph::ChannelSpineMesh< ELEMENT >::Straight_wall_pt.
oomph::ChannelSpineMesh< ELEMENT >::ChannelSpineMesh | ( | const unsigned & | nx0, |
const unsigned & | nx1, | ||
const unsigned & | nx2, | ||
const unsigned & | ny, | ||
const double & | lx0, | ||
const double & | lx1, | ||
const double & | lx2, | ||
const double & | h, | ||
GeomObject * | wall_pt, | ||
const bool & | periodic_in_x, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
Constructor: Pass number of elements in x-direction in regions 0,1 and 2, number of elements in y-direction, length in x direction in regions 0,1 and 2, height mesh, pointer to the GeomObject defining the heightof the central region, a boolean flag to indicate whether or not the mesh is periodic and pointer to timestepper (defaults to Steady timestepper)
Constuctor for spine 2D mesh: Pass number of elements in x-direction, number of elements in y-direction, axial length and height of layer, a boolean flag to make the mesh periodic in the x-direction, and pointer to timestepper (defaults to Static timestepper).
The mesh contains a layer of elements (of type ELEMENT) and a surface layer of corresponding Spine interface elements (of type SpineLineFluidInterfaceElement<ELEMENT>).
Definition at line 103 of file channel_spine_mesh.template.cc.
References oomph::ChannelSpineMesh< ELEMENT >::build_channel_spine_mesh(), and oomph::ChannelSpineMesh< ELEMENT >::Straight_wall_pt.
|
protectedvirtual |
Helper function to actually build the channel-spine mesh (called from various constructors)
Helper function that actually builds the channel-spine mesh based on the parameters set in the various constructors.
Definition at line 153 of file channel_spine_mesh.template.cc.
References oomph::RectangularQuadMesh< ELEMENT >::build_mesh().
Referenced by oomph::ChannelSpineMesh< ELEMENT >::ChannelSpineMesh().
|
inline |
Access functions for pointers to the -th element in the centre region.
Definition at line 88 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Centre_element_pt.
|
inline |
Access function for spines in centre region.
Definition at line 214 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Ncentre_spine, and oomph::ChannelSpineMesh< ELEMENT >::Nleft_spine.
|
virtual |
Reorder the elements so we loop over them vertically first (advantageous in "wide" domains if a frontal solver is used).
Reorder the elements, so we loop over them vertically first (advantageous in "wide" domains if a frontal solver is used).
Reimplemented from oomph::RectangularQuadMesh< ELEMENT >.
Definition at line 694 of file channel_spine_mesh.template.cc.
|
inline |
Access functions for pointers to the -th element in the left region.
Definition at line 81 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Left_element_pt.
|
inline |
Access function for spines in left region.
Definition at line 200 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Nleft_spine.
|
inline |
Number of elements in bulk.
Definition at line 119 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Centre_element_pt, oomph::ChannelSpineMesh< ELEMENT >::Left_element_pt, and oomph::ChannelSpineMesh< ELEMENT >::Right_element_pt.
|
inline |
Number of elements in centre region.
Definition at line 107 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Centre_element_pt.
|
inline |
Access function for the number of spines in the centre region.
Definition at line 250 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Ncentre_spine.
|
inline |
Number of elements in left region.
Definition at line 101 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Left_element_pt.
|
inline |
Access function for the number of spines in the left region.
Definition at line 244 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Nleft_spine.
|
inline |
Number of elements in right region.
Definition at line 113 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Right_element_pt.
|
inline |
Access function for the number of spines in the right region.
Definition at line 256 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Nright_spine.
|
inline |
Access functions for pointers to the -th element in the right region.
Definition at line 95 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Right_element_pt.
|
inline |
Access function for spines in right region.
Definition at line 229 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Ncentre_spine, oomph::ChannelSpineMesh< ELEMENT >::Nleft_spine, and oomph::ChannelSpineMesh< ELEMENT >::Nright_spine.
|
inlinevirtual |
General node update function implements pure virtual function defined in SpineMesh base class and performs specific node update actions: along vertical spines.
Definition at line 133 of file channel_spine_mesh.template.h.
References oomph::RectangularQuadMesh< ELEMENT >::Ymin.
|
inline |
Access function to the GeomObject for the straight upper wall.
Definition at line 268 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Straight_wall_pt.
|
inline |
Access function to the GeomObject for upper wall.
Definition at line 262 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Wall_pt.
|
inlinevirtual |
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.
Reimplemented from oomph::RectangularQuadMesh< ELEMENT >.
Definition at line 156 of file channel_spine_mesh.template.h.
References oomph::ChannelSpineMesh< ELEMENT >::Lx0, oomph::ChannelSpineMesh< ELEMENT >::Lx1, oomph::ChannelSpineMesh< ELEMENT >::Lx2, oomph::RectangularQuadMesh< ELEMENT >::Np, oomph::ChannelSpineMesh< ELEMENT >::Nx0, oomph::ChannelSpineMesh< ELEMENT >::Nx1, oomph::ChannelSpineMesh< ELEMENT >::Nx2, and oomph::RectangularQuadMesh< ELEMENT >::Xmin.
|
protected |
Vector of pointers to element in the centre region.
Definition at line 278 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::centre_element_pt(), oomph::ChannelSpineMesh< ELEMENT >::nbulk(), and oomph::ChannelSpineMesh< ELEMENT >::ncentre().
|
protected |
Vector of pointers to element in the left region.
Definition at line 275 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::left_element_pt(), oomph::ChannelSpineMesh< ELEMENT >::nbulk(), and oomph::ChannelSpineMesh< ELEMENT >::nleft().
|
protected |
Length of left region.
Definition at line 297 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::x_spacing_function().
|
protected |
Length of centre region.
Definition at line 300 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::x_spacing_function().
|
protected |
Length of right region.
Definition at line 303 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::x_spacing_function().
|
protected |
Number of spines in centre region.
Definition at line 309 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::centre_spine_pt(), oomph::ChannelSpineMesh< ELEMENT >::ncentre_spine(), and oomph::ChannelSpineMesh< ELEMENT >::right_spine_pt().
|
protected |
Number of spines in left region.
Definition at line 306 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::centre_spine_pt(), oomph::ChannelSpineMesh< ELEMENT >::left_spine_pt(), oomph::ChannelSpineMesh< ELEMENT >::nleft_spine(), and oomph::ChannelSpineMesh< ELEMENT >::right_spine_pt().
|
protected |
Number of spines in right region.
Definition at line 312 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::nright_spine(), and oomph::ChannelSpineMesh< ELEMENT >::right_spine_pt().
|
protected |
Number of elements in the left region.
Definition at line 288 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::x_spacing_function().
|
protected |
Number of elements in the centre region.
Definition at line 291 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::x_spacing_function().
|
protected |
Number of elements in the right region.
Definition at line 294 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::x_spacing_function().
|
protected |
Vector of pointers to element in the right region.
Definition at line 281 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::nbulk(), oomph::ChannelSpineMesh< ELEMENT >::nright(), and oomph::ChannelSpineMesh< ELEMENT >::right_element_pt().
|
protected |
GeomObject for the straight upper wall.
Definition at line 318 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::ChannelSpineMesh(), and oomph::ChannelSpineMesh< ELEMENT >::straight_wall_pt().
|
protected |
GeomObject for upper wall.
Definition at line 315 of file channel_spine_mesh.template.h.
Referenced by oomph::ChannelSpineMesh< ELEMENT >::wall_pt().