27#ifndef OOMPH_QUAD_FROM_TRIANGLE_MESH_TEMPLATE_HEADER
28#define OOMPH_QUAD_FROM_TRIANGLE_MESH_TEMPLATE_HEADER
30#ifndef OOMPH_QUAD_FROM_TRIANGLE_MESH_HEADER
31#error __FILE__ should only be included from quad_from_triangle_mesh.h.
71 template<
class ELEMENT>
81 Element_pt.resize(3 *
nelem);
92 Boundary_element_pt.resize(
nbound);
93 Face_index_at_boundary.resize(
nbound);
127 for (
unsigned j = 0;
j < 4;
j++)
164 for (
unsigned e = 0;
e <
nelem;
e++)
171 for (
unsigned j = 0;
j < 3;
j++)
197 ELEMENT*
el0_pt =
new ELEMENT;
198 ELEMENT*
el1_pt =
new ELEMENT;
199 ELEMENT*
el2_pt =
new ELEMENT;
215 for (
unsigned j = 0;
j < 3;
j++)
388 for (
unsigned j = 0;
j < 3;
j++)
391 for (
unsigned k = 0;
k < 2;
k++)
998 Lookup_for_elements_next_boundary_is_setup =
true;
1001 for (
unsigned j = 0;
j < 4;
j++)
1018 template<
class ELEMENT>
1025#ifdef OOMPH_HAS_TRIANGLE_LIB
1029 this->snap_nodes_onto_geometric_objects();
virtual void local_coordinate_of_node(const unsigned &j, Vector< double > &s) const
Get local coordinates of node j in the element; vector sets its own size (broken virtual)
double size() const
Calculate the size of the element (length, area, volume,...) in Eulerian computational coordinates....
virtual Node * construct_node(const unsigned &n)
Construct the local node n and return a pointer to the newly created node object.
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
unsigned nnode() const
Return the number of nodes.
Node ** Node_pt
Storage for pointers to the nodes in the element.
virtual Node * construct_boundary_node(const unsigned &n)
Construct the local node n as a boundary node; that is a node that MAY be placed on a mesh boundary a...
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
virtual unsigned nnode_1d() const
Return the number of nodes along one edge of the element Default is to return zero — must be overload...
TimeStepper *& time_stepper_pt()
Access function for pointer to time stepper: Null if object is not time-dependent.
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
double & x(const unsigned &i)
Return the i-th nodal coordinate.
void build_from_scaffold(TriangleScaffoldMesh *tmp_mesh_pt, TimeStepper *time_stepper_pt, const bool &use_attributes)
Build the quad mesh from the given scaffold mesh.
void adapt(const Vector< double > &elem_error)
Overload the adapt function (to ensure nodes are snapped to the boundary)
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
TAdvectionDiffusionReactionElement()
Constructor: Call constructors for TElement and AdvectionDiffusionReaction equations.
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...
void adapt(const Vector< double > &elemental_error)
Adapt mesh: Refine elements whose error is lager than err_max and (try to) unrefine those whose error...
Triangle Mesh that is based on input files generated by the triangle mesh generator Triangle.
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).