26 #ifndef OOMPH_TWO_LAYER_SPINE_MESH_HEADER
27 #define OOMPH_TWO_LAYER_SPINE_MESH_HEADER
31 #include "../generic/spines.h"
58 template<
class ELEMENT>
89 const bool& periodic_in_x,
106 const bool& periodic_in_x,
189 std::ostringstream error_message;
190 error_message <<
"Unknown id passed to spine_node_update " <<
id
247 double H = spine_node_pt->
h();
249 spine_node_pt->
x(1) = this->
Ymin + W *
H;
260 double H = spine_node_pt->
h();
263 spine_node_pt->
x(1) =
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
MatrixXf H
Definition: HessenbergDecomposition_matrixH.cpp:4
Definition: elements.h:1313
static Steady< 0 > Default_TimeStepper
The Steady Timestepper.
Definition: mesh.h:75
double & x(const unsigned &i)
Return the i-th nodal coordinate.
Definition: nodes.h:1060
Definition: oomph_definitions.h:222
Definition: rectangular_quadmesh.template.h:59
double Ymax
Maximum value of y coordinate.
Definition: rectangular_quadmesh.template.h:77
const unsigned & nx() const
Return number of elements in x direction.
Definition: rectangular_quadmesh.template.h:224
double Ymin
Minimum value of y coordinate.
Definition: rectangular_quadmesh.template.h:75
void build_mesh(TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Generic mesh construction function: contains all the hard work.
Definition: rectangular_quadmesh.template.cc:43
double & h()
Access function to spine height.
Definition: spines.h:397
unsigned & node_update_fct_id()
Access function to ID of node update function (within specific mesh)
Definition: spines.h:384
double & fraction()
Set reference to fraction along spine.
Definition: spines.h:378
Definition: timesteppers.h:231
Definition: two_layer_spine_mesh.template.h:61
Vector< FiniteElement * > Upper_layer_element_pt
Vector of pointers to element in the lower layer.
Definition: two_layer_spine_mesh.template.h:216
double H2
Height of the upper layer.
Definition: two_layer_spine_mesh.template.h:210
FiniteElement *& upper_layer_element_pt(const unsigned long &i)
Access functions for pointers to elements in upper layer.
Definition: two_layer_spine_mesh.template.h:111
TwoLayerSpineMesh(const unsigned &nx, const unsigned &ny1, const unsigned &ny2, const double &lx, const double &h1, const double &h2, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Definition: two_layer_spine_mesh.template.cc:49
Vector< FiniteElement * > Lower_layer_element_pt
Vector of pointers to element in the upper layer.
Definition: two_layer_spine_mesh.template.h:213
Vector< FiniteElement * > Interface_upper_boundary_element_pt
Definition: two_layer_spine_mesh.template.h:224
double y_spacing_function(unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode)
Definition: two_layer_spine_mesh.template.cc:227
int interface_upper_face_index_at_boundary(const unsigned &e)
Definition: two_layer_spine_mesh.template.h:160
int interface_lower_face_index_at_boundary(const unsigned &e)
Definition: two_layer_spine_mesh.template.h:167
unsigned Ny2
Number of elements in upper layer.
Definition: two_layer_spine_mesh.template.h:204
unsigned long ninterface_lower() const
Number of elements in top layer.
Definition: two_layer_spine_mesh.template.h:153
double x_spacing_function(unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode)
Definition: two_layer_spine_mesh.template.cc:211
unsigned Ny1
Number of elements in lower layer.
Definition: two_layer_spine_mesh.template.h:201
FiniteElement *& lower_layer_element_pt(const unsigned long &i)
Access functions for pointers to elements in bottom layer.
Definition: two_layer_spine_mesh.template.h:117
void spine_node_update_lower(SpineNode *spine_node_pt)
Update function for the lower part of the domain.
Definition: two_layer_spine_mesh.template.h:242
unsigned long nupper() const
Number of elements in upper layer.
Definition: two_layer_spine_mesh.template.h:123
FiniteElement *& interface_upper_boundary_element_pt(const unsigned long &i)
Access functions for pointers to elements in upper layer.
Definition: two_layer_spine_mesh.template.h:135
Vector< FiniteElement * > Interface_lower_boundary_element_pt
Definition: two_layer_spine_mesh.template.h:220
unsigned long nlower() const
Number of elements in top layer.
Definition: two_layer_spine_mesh.template.h:129
double H1
Height of the lower layer.
Definition: two_layer_spine_mesh.template.h:207
void spine_node_update(SpineNode *spine_node_pt)
Definition: two_layer_spine_mesh.template.h:175
virtual void build_two_layer_mesh(TimeStepper *time_stepper_pt)
Definition: two_layer_spine_mesh.template.cc:267
unsigned long ninterface_upper() const
Number of elements in upper layer.
Definition: two_layer_spine_mesh.template.h:147
void spine_node_update_upper(SpineNode *spine_node_pt)
Update function for the upper part of the domain.
Definition: two_layer_spine_mesh.template.h:254
FiniteElement *& interface_lower_boundary_element_pt(const unsigned long &i)
Access functions for pointers to elements in bottom layer.
Definition: two_layer_spine_mesh.template.h:141
const double lx
Definition: ConstraintElementsUnitTest.cpp:33
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86