26 #ifndef OOMPH_CHANNEL_SPINE_MESH_HEADER
27 #define OOMPH_CHANNEL_SPINE_MESH_HEADER
30 #include "../generic/spines.h"
41 template<
class ELEMENT>
76 const bool& periodic_in_x,
147 spine_node_pt->
x(1) = this->
Ymin + W * position[1];
162 double xstep1 =
Lx0 / ((this->
Np - 1) *
Nx0);
165 double xstep2 =
Lx1 / ((this->
Np - 1) *
Nx1);
168 double xstep3 =
Lx2 / ((this->
Np - 1) *
Nx2);
174 return (this->
Xmin + xstep1 * ((this->
Np - 1) * xelement + xnode));
177 else if (xelement <
Nx0 +
Nx1)
180 return (
Lx0 + xstep2 * ((this->
Np - 1) * (xelement -
Nx0) + xnode));
187 xstep3 * ((this->
Np - 1) * (xelement -
Nx0 -
Nx1) + xnode));
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Definition: channel_spine_mesh.template.h:43
Vector< FiniteElement * > Centre_element_pt
Vector of pointers to element in the centre region.
Definition: channel_spine_mesh.template.h:278
virtual void build_channel_spine_mesh(TimeStepper *time_stepper_pt)
Definition: channel_spine_mesh.template.cc:153
virtual double x_spacing_function(unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode)
Definition: channel_spine_mesh.template.h:156
unsigned Nx0
Number of elements in the left region.
Definition: channel_spine_mesh.template.h:288
FiniteElement *& centre_element_pt(const unsigned long &i)
Definition: channel_spine_mesh.template.h:88
GeomObject * Straight_wall_pt
GeomObject for the straight upper wall.
Definition: channel_spine_mesh.template.h:318
double Lx1
Length of centre region.
Definition: channel_spine_mesh.template.h:300
double Lx0
Length of left region.
Definition: channel_spine_mesh.template.h:297
unsigned long ncentre() const
Number of elements in centre region.
Definition: channel_spine_mesh.template.h:107
unsigned Nx2
Number of elements in the right region.
Definition: channel_spine_mesh.template.h:294
unsigned nright_spine()
Access function for the number of spines in the right region.
Definition: channel_spine_mesh.template.h:256
double Lx2
Length of right region.
Definition: channel_spine_mesh.template.h:303
GeomObject * straight_wall_pt()
Access function to the GeomObject for the straight upper wall.
Definition: channel_spine_mesh.template.h:268
unsigned long nright() const
Number of elements in right region.
Definition: channel_spine_mesh.template.h:113
unsigned Nright_spine
Number of spines in right region.
Definition: channel_spine_mesh.template.h:312
unsigned Nleft_spine
Number of spines in left region.
Definition: channel_spine_mesh.template.h:306
unsigned Nx1
Number of elements in the centre region.
Definition: channel_spine_mesh.template.h:291
Spine *& centre_spine_pt(const unsigned long &i)
Access function for spines in centre region.
Definition: channel_spine_mesh.template.h:214
unsigned long nleft() const
Number of elements in left region.
Definition: channel_spine_mesh.template.h:101
GeomObject * wall_pt()
Access function to the GeomObject for upper wall.
Definition: channel_spine_mesh.template.h:262
Spine *& right_spine_pt(const unsigned long &i)
Access function for spines in right region.
Definition: channel_spine_mesh.template.h:229
FiniteElement *& left_element_pt(const unsigned long &i)
Definition: channel_spine_mesh.template.h:81
unsigned ncentre_spine()
Access function for the number of spines in the centre region.
Definition: channel_spine_mesh.template.h:250
unsigned long nbulk() const
Number of elements in bulk.
Definition: channel_spine_mesh.template.h:119
FiniteElement *& right_element_pt(const unsigned long &i)
Definition: channel_spine_mesh.template.h:95
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)
Definition: channel_spine_mesh.template.cc:48
Vector< FiniteElement * > Right_element_pt
Vector of pointers to element in the right region.
Definition: channel_spine_mesh.template.h:281
Vector< FiniteElement * > Left_element_pt
Vector of pointers to element in the left region.
Definition: channel_spine_mesh.template.h:275
void element_reorder()
Definition: channel_spine_mesh.template.cc:694
Spine *& left_spine_pt(const unsigned long &i)
Access function for spines in left region.
Definition: channel_spine_mesh.template.h:200
GeomObject * Wall_pt
GeomObject for upper wall.
Definition: channel_spine_mesh.template.h:315
virtual void spine_node_update(SpineNode *spine_node_pt)
Definition: channel_spine_mesh.template.h:133
unsigned nleft_spine()
Access function for the number of spines in the left region.
Definition: channel_spine_mesh.template.h:244
unsigned Ncentre_spine
Number of spines in centre region.
Definition: channel_spine_mesh.template.h:309
Definition: elements.h:1313
Definition: geom_objects.h:101
virtual void position(const Vector< double > &zeta, Vector< double > &r) const =0
Parametrised position on object at current time: r(zeta).
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
const unsigned & ny() const
Return number of elements in y direction.
Definition: rectangular_quadmesh.template.h:231
unsigned Np
Np: number of (linear) points in the element.
Definition: rectangular_quadmesh.template.h:67
double Ymin
Minimum value of y coordinate.
Definition: rectangular_quadmesh.template.h:75
double Xmin
Minimum value of x coordinate.
Definition: rectangular_quadmesh.template.h:70
Vector< Spine * > Spine_pt
A Spine mesh contains a Vector of pointers to spines.
Definition: spines.h:616
Spine *& spine_pt()
Access function to spine.
Definition: spines.h:372
double & fraction()
Set reference to fraction along spine.
Definition: spines.h:378
GeomObject *& geom_object_pt(const unsigned &i)
Definition: spines.h:244
double & geom_parameter(const unsigned &i)
Definition: spines.h:287
Definition: timesteppers.h:231
@ 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