Single-layer spine mesh class derived from standard 2D mesh. The mesh contains a layer of spinified fluid elements (of type ELEMENT; e.g SpineElement<QCrouzeixRaviartElement<2>). It constructs the spines and contains the information on how to update the nodal positions within the mesh as a function of the spine lengths. Equations that determine the spine heights (even if they are pinned) must be specified externally or else there will be problems. More...
#include <single_layer_spine_mesh.template.h>
Public Member Functions | |
SingleLayerSpineMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &h, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass number of elements in x-direction, number of elements in y-direction, axial length, height of layer, and pointer to timestepper (defaults to Steady timestepper) More... | |
SingleLayerSpineMesh (const unsigned &nx, const unsigned &ny, const double &lx, const double &h, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Constructor: Pass number of elements in x-direction, number of elements in y-direction, axial length, height of layer, a boolean flag to make the mesh periodic in the x-direction, and a pointer to timestepper (defaults to Steady timestepper) 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... | |
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... | |
Protected Member Functions | |
virtual void | build_single_layer_mesh (TimeStepper *time_stepper_pt) |
Helper function to actually build the single-layer 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... | |
Additional Inherited Members | |
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... | |
Single-layer spine mesh class derived from standard 2D mesh. The mesh contains a layer of spinified fluid elements (of type ELEMENT; e.g SpineElement<QCrouzeixRaviartElement<2>). It constructs the spines and contains the information on how to update the nodal positions within the mesh as a function of the spine lengths. Equations that determine the spine heights (even if they are pinned) must be specified externally or else there will be problems.
Definition at line 45 of file single_layer_spine_mesh.template.h.
oomph::SingleLayerSpineMesh< ELEMENT >::SingleLayerSpineMesh | ( | const unsigned & | nx, |
const unsigned & | ny, | ||
const double & | lx, | ||
const double & | h, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
Constructor: Pass number of elements in x-direction, number of elements in y-direction, axial length, height of layer, 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 must be called with spinified elements and it constructs the spines and contains the information on how to update the nodal positions within the mesh as a function of the spine lengths. Equations that determine the spine heights (even if they are pinned) must be specified externally or else there will be problems.
Definition at line 48 of file single_layer_spine_mesh.template.cc.
References oomph::SingleLayerSpineMesh< ELEMENT >::build_single_layer_mesh().
oomph::SingleLayerSpineMesh< ELEMENT >::SingleLayerSpineMesh | ( | const unsigned & | nx, |
const unsigned & | ny, | ||
const double & | lx, | ||
const double & | h, | ||
const bool & | periodic_in_x, | ||
TimeStepper * | time_stepper_pt = &Mesh::Default_TimeStepper |
||
) |
Constructor: Pass number of elements in x-direction, number of elements in y-direction, axial length, height of layer, a boolean flag to make the mesh periodic in the x-direction, and a 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 must be called with spinified elements and it constructs the spines and contains the information on how to update the nodal positions within the mesh as a function of the spine lengths. Equations that determine the spine heights (even if they are pinned) must be specified externally or else there will be problems.
Definition at line 84 of file single_layer_spine_mesh.template.cc.
References oomph::SingleLayerSpineMesh< ELEMENT >::build_single_layer_mesh().
|
protectedvirtual |
Helper function to actually build the single-layer spine mesh (called from various constructors)
Helper function that actually builds the single-layer spine mesh based on the parameters set in the various constructors.
Definition at line 114 of file single_layer_spine_mesh.template.cc.
References oomph::RectangularQuadMesh< ELEMENT >::build_mesh().
Referenced by oomph::SingleLayerSpineMesh< ELEMENT >::SingleLayerSpineMesh().
|
inlinevirtual |
General node update function implements pure virtual function defined in SpineMesh base class and performs specific node update actions: along vertical spines.
Reimplemented in oomph::BrethertonSpineMesh< ELEMENT, INTERFACE_ELEMENT >.
Definition at line 75 of file single_layer_spine_mesh.template.h.
References Global_Physical_Variables::H, and oomph::RectangularQuadMesh< ELEMENT >::Ymin.