33 #ifndef OOMPH_HERMITE_ELEMENT_QUAD_MESH_HEADER 34 #define OOMPH_HERMITE_ELEMENT_QUAD_MESH_HEADER 39 #include <oomph-lib-config.h> 43 #include "../generic/hermite_elements.h" 44 #include "../generic/mesh.h" 83 const bool &periodic_in_x =
false,
88 MeshChecker::assert_geometric_element<QHermiteElementBase,ELEMENT>(2);
123 const bool &periodic_in_x =
false,
127 MeshChecker::assert_geometric_element<QHermiteElementBase,ELEMENT>(2);
164 const unsigned& node_num_y,
168 macro_element_position[0] = 2*node_num_x/double(
Nelement[0])-1;
169 macro_element_position[1] = 2*node_num_y/double(
Nelement[1])-1;
175 (*Node_spacing_fn)(temp,macro_element_position);
193 const unsigned& node_num_y,
204 const unsigned& node_num_y,
221 std::ofstream outfile;
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors. ...
void set_position_of_node(const unsigned &node_num_x, const unsigned &node_num_y, Node *node_pt)
sets the generalised position of the node (i.e. - x_i, dx_i/ds_0, dx_i/ds_1 & d2x_i/ds_0ds_1 for i = ...
A two dimensional Hermite bicubic element quadrilateral mesh for a topologically rectangular domain...
~HermiteQuadMesh()
Destructor - does nothing - handled in mesh base class.
virtual void build_mesh(TimeStepper *time_stepper_pt)
Generic mesh construction function to build the mesh.
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
MeshSpacingFnPtr Node_spacing_fn
non uniform mesh spacing function pointer
void macro_coordinate_position(const unsigned &node_num_x, const unsigned &node_num_y, Vector< double > ¯o_element_position)
returns the macro element position of the node that is the x-th node along from the LHS and the y-th ...
virtual void setup_boundary_element_info()
void set_position_of_boundary_node(const unsigned &node_num_x, const unsigned &node_num_y, BoundaryNode< Node > *node_pt)
sets the generalised position of the node (i.e. - x_i, dx_i/ds_0, dx_i/ds_1 & d2x_i/ds_0ds_1 for i = ...
A template Class for BoundaryNodes; that is Nodes that MAY live on the boundary of a Mesh...
TopologicallyRectangularDomain * Domain_pt
Pointer to the topologically rectangular domain which prescribes the problem domain.
unsigned & nelement_in_dim(const unsigned &d)
Access function for number of elements in mesh in each dimension.
Topologically Rectangular Domain - a domain dexcribing a topologically rectangular problem - primaril...
HermiteQuadMesh(const unsigned &nx, const unsigned &ny, TopologicallyRectangularDomain *domain, const bool &periodic_in_x=false, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Mesh Constructor (for a uniformly spaced mesh). Takes the following arguments : nx : number of elemen...
Node *& node_pt(const unsigned long &n)
Return pointer to global node n.
bool Xperiodic
boolean variable to determine whether the mesh is periodic in the x-direction
void(* MeshSpacingFnPtr)(const Vector< double > &m_uniform_spacing, Vector< double > &m_non_uniform_spacing)
Mesh Spacing Function Pointer - an optional function pointer to prescibe the node spacing in a non-un...
HermiteQuadMesh(const unsigned &nx, const unsigned &ny, TopologicallyRectangularDomain *domain, const MeshSpacingFnPtr spacing_fn, const bool &periodic_in_x=false, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Mesh Constructor (for a non-uniformly spaced mesh). Takes the following arguments : nx : number of el...
void generalised_macro_element_position_of_node(const unsigned &node_num_x, const unsigned &node_num_y, DenseMatrix< double > &m_gen)
computes the generalised position of the node at position (node_num_x, node_num_y) in the macro eleme...
Vector< unsigned > Nelement
number of elements in each coordinate direction
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...