27 #ifndef OOMPH_RECTANGULAR_QUADMESH_HEADER
28 #define OOMPH_RECTANGULAR_QUADMESH_HEADER
32 #include <oomph-lib-config.h>
36 #include "../generic/mesh.h"
37 #include "../generic/quad_mesh.h"
38 #include "../generic/refineable_quad_mesh.h"
57 template<
class ELEMENT>
100 const bool& periodic_in_x,
138 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
163 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
179 const bool& periodic_in_x,
190 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
206 const bool& periodic_in_x,
217 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
224 const unsigned&
nx()
const
231 const unsigned&
ny()
const
287 return (
Xmin + xstep * ((
Np - 1) * xelement + xnode));
303 return (
Ymin + ystep * ((
Np - 1) * yelement + ynode));
322 template<
class ELEMENT>
355 const bool& periodic_in_x,
358 nx,
ny,
lx,
ly, periodic_in_x, time_stepper_pt)
377 nx,
ny, xmin, xmax, ymin, ymax, time_stepper_pt)
394 const bool& periodic_in_x,
397 nx,
ny, xmin, xmax, ymin, ymax, periodic_in_x, time_stepper_pt)
419 template<
class ELEMENT>
439 unsigned nnod =
nnode();
440 for (
unsigned j = 0;
j < nnod;
j++)
489 const bool& periodic_in_x,
492 nx,
ny,
lx,
ly, periodic_in_x, time_stepper_pt)
517 for (
unsigned b = 0;
b < 3;
b += 2)
523 for (
unsigned i = 0;
i < n_nod;
i++)
535 for (
unsigned b = 1;
b < 4;
b += 2)
541 for (
unsigned i = 0;
i < n_nod;
i++)
569 template<
class ELEMENT>
604 const bool& periodic_in_x,
607 nx,
ny,
lx,
ly, periodic_in_x, time_stepper_pt),
609 nx,
ny,
lx,
ly, periodic_in_x, time_stepper_pt)
631 nx,
ny,
lx,
ly, origin, time_stepper_pt)
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Scalar * b
Definition: benchVecAdd.cpp:17
Definition: rectangular_quadmesh.template.h:423
void set_boundary_coordinates(const Vector< double > &origin)
Definition: rectangular_quadmesh.template.h:510
Definition: rectangular_quadmesh.template.h:573
unsigned long nboundary_node(const unsigned &ibound) const
Return number of nodes on a particular boundary.
Definition: mesh.h:833
static Steady< 0 > Default_TimeStepper
The Steady Timestepper.
Definition: mesh.h:75
std::vector< bool > Boundary_coordinate_exists
Definition: mesh.h:190
unsigned long nnode() const
Return number of nodes in the mesh.
Definition: mesh.h:596
double & x(const unsigned &i)
Return the i-th nodal coordinate.
Definition: nodes.h:1060
virtual void set_coordinates_on_boundary(const unsigned &b, const unsigned &k, const Vector< double > &boundary_zeta)
Definition: nodes.cc:2394
Base class for quad meshes (meshes made of 2D quad elements).
Definition: quad_mesh.h:57
Definition: rectangular_quadmesh.template.h:59
unsigned Nx
Nx: number of elements in x-direction.
Definition: rectangular_quadmesh.template.h:63
const double y_min() const
Return the minimum value of y coordinate.
Definition: rectangular_quadmesh.template.h:252
RectangularQuadMesh(const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Definition: rectangular_quadmesh.template.h:123
const double x_max() const
Return the maximum value of x coordinate.
Definition: rectangular_quadmesh.template.h:245
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)
Definition: rectangular_quadmesh.template.h:174
unsigned Ny
Ny: number of elements in y-direction.
Definition: rectangular_quadmesh.template.h:65
const double y_max() const
Return the maximum value of y coordinate.
Definition: rectangular_quadmesh.template.h:259
bool Xperiodic
Definition: rectangular_quadmesh.template.h:81
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 Ymax
Maximum value of y coordinate.
Definition: rectangular_quadmesh.template.h:77
const double x_min() const
Return the minimum value of x coordinate.
Definition: rectangular_quadmesh.template.h:238
double Xmax
Maximum value of x coordinate.
Definition: rectangular_quadmesh.template.h:72
const unsigned & nx() const
Return number of elements in x direction.
Definition: rectangular_quadmesh.template.h:224
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)
Definition: rectangular_quadmesh.template.h:199
virtual double x_spacing_function(unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode)
Definition: rectangular_quadmesh.template.h:279
double Ymin
Minimum value of y coordinate.
Definition: rectangular_quadmesh.template.h:75
virtual void element_reorder()
Definition: rectangular_quadmesh.template.cc:834
virtual double y_spacing_function(unsigned xelement, unsigned xnode, unsigned yelement, unsigned ynode)
Definition: rectangular_quadmesh.template.h:296
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)
Definition: rectangular_quadmesh.template.h:146
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)
Definition: rectangular_quadmesh.template.h:93
double Xmin
Minimum value of x coordinate.
Definition: rectangular_quadmesh.template.h:70
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
Definition: refineable_quad_mesh.h:53
void setup_quadtree_forest()
Definition: refineable_quad_mesh.h:88
Definition: rectangular_quadmesh.template.h:326
RefineableRectangularQuadMesh(const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, const bool &periodic_in_x, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Definition: rectangular_quadmesh.template.h:350
RefineableRectangularQuadMesh(const unsigned &nx, const unsigned &ny, const double &lx, const double &ly, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Definition: rectangular_quadmesh.template.h:332
RefineableRectangularQuadMesh(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)
Definition: rectangular_quadmesh.template.h:368
SolidNode * node_pt(const unsigned long &n)
Return a pointer to the n-th global SolidNode.
Definition: mesh.h:2594
void set_lagrangian_nodal_coordinates()
Definition: mesh.cc:9564
SolidNode * boundary_node_pt(const unsigned &b, const unsigned &n)
Return n-th SolidNodes on b-th boundary.
Definition: mesh.h:2612
double & xi(const unsigned &i)
Reference to i-th Lagrangian position.
Definition: nodes.h:1883
Definition: timesteppers.h:231
EIGEN_STRONG_INLINE const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
Definition: SpecialFunctionsArrayAPI.h:152
const double ly
Definition: ConstraintElementsUnitTest.cpp:34
const double lx
Definition: ConstraintElementsUnitTest.cpp:33
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2