38 template<
unsigned NNODE_1D>
39 TGauss<1, NNODE_1D> TElement<1, NNODE_1D>::Default_integration_scheme;
40 template<
unsigned NNODE_1D>
41 TGauss<2, NNODE_1D> TElement<2, NNODE_1D>::Default_integration_scheme;
42 template<
unsigned NNODE_1D>
43 TGauss<3, NNODE_1D> TElement<3, NNODE_1D>::Default_integration_scheme;
52 template<
unsigned NNODE_1D>
61 template<
unsigned NNODE_1D>
92 template<
unsigned NNODE_1D>
101 template<
unsigned NNODE_1D>
120 for (
unsigned i = 0;
i <
n_dim;
i++)
136 namespace TElement1FaceToBulkCoordinates
157 namespace TElement1BulkCoordinateDerivatives
176 template<
unsigned NNODE_1D>
255 std::ostringstream error_message;
256 error_message <<
"Face_index should only take "
257 <<
"the values +/-1, not " << face_index << std::endl;
276 {2, 4, 1}, {2, 5, 0}, {0, 3, 1}};
280 {2, 6, 5, 1}, {2, 7, 8, 0}, {0, 3, 4, 1}};
287 namespace TElement2FaceToBulkCoordinates
317 namespace TElement2BulkCoordinateDerivatives
369 template<
unsigned NNODE_1D>
478 std::ostringstream error_message;
479 error_message <<
"Face_index should only take "
480 <<
"the values 0, 1 or 2 not " << face_index << std::endl;
492 template<
unsigned NNODE_1D>
503 template<
unsigned NNODE_1D>
505 const unsigned&
nplot)
523 for (
unsigned i = 0;
i <
n_dim;
i++)
537 template<
unsigned NNODE_1D>
547 template<
unsigned NNODE_1D>
566 for (
unsigned i = 0;
i <
n_dim;
i++)
588 template<
unsigned NNODE_1D>
598 template<
unsigned NNODE_1D>
600 const unsigned&
nplot)
618 for (
unsigned i = 0;
i <
n_dim;
i++)
633 template<
unsigned NNODE_1D>
643 template<
unsigned NNODE_1D>
662 for (
unsigned i = 0;
i <
n_dim;
i++)
679 namespace TElement3FaceToBulkCoordinates
718 {1, 2, 3}, {0, 2, 3}, {0, 1, 3}, {1, 2, 0}};
732 template<
unsigned NNODE_1D>
842 std::ostringstream error_message;
843 error_message <<
"Face_index should only take "
844 <<
"the values 0, 1, 2 or 3, not " << face_index
857 template<
unsigned DIM>
874 const int& face_index,
FaceElement* face_element_pt)
894 const int& face_index,
FaceElement* face_element_pt)
917 unsigned bulk_number = Central_node_on_face[face_index];
936 const int& face_index,
FaceElement* face_element_pt)
944 ->set_lagrangian_dimension(
956 const int& face_index,
FaceElement* face_element_pt)
964 ->set_lagrangian_dimension(
FaceElements are elements that coincide with the faces of higher-dimensional "bulk" elements....
int & normal_sign()
Sign of outer unit normal (relative to cross-products of tangent vectors in the corresponding "bulk" ...
int & face_index()
Index of the face (a number that uniquely identifies the face in the element)
void bulk_node_number_resize(const unsigned &i)
Resize the storage for the bulk node numbers.
BulkCoordinateDerivativesFctPt & bulk_coordinate_derivatives_fct_pt()
Return the pointer to the function that returns the derivatives of the bulk coordinates wrt the face ...
unsigned & nbulk_value(const unsigned &n)
Return the number of values originally stored at local node n (before the FaceElement added additiona...
unsigned & bulk_node_number(const unsigned &n)
Return the bulk node number that corresponds to the n-th local node number.
FiniteElement *& bulk_element_pt()
Pointer to higher-dimensional "bulk" element.
CoordinateMappingFctPt & face_to_bulk_coordinate_fct_pt()
Return the pointer to the function that maps the face coordinate to the bulk coordinate.
void nbulk_value_resize(const unsigned &i)
Resize the storage for the number of values originally stored at the local nodes to i entries.
void set_nodal_dimension(const unsigned &nodal_dim)
Set the dimension of the nodes in the element. This will typically only be required when constructing...
virtual std::string tecplot_zone_string(const unsigned &nplot) const
Return string for tecplot zone header (when plotting nplot points in each "coordinate direction")
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
virtual void get_s_plot(const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const
Get cector of local coordinates of plot point i (when plotting nplot points in each "coordinate direc...
virtual unsigned nplot_points(const unsigned &nplot) const
Return total number of plot points (when plotting nplot points in each "coordinate direction")
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
unsigned nodal_dimension() const
Return the required Eulerian dimension of the nodes in this element.
virtual void write_tecplot_zone_footer(std::ostream &outfile, const unsigned &nplot) const
Add tecplot zone "footer" to output stream (when plotting nplot points in each "coordinate direction"...
int Non_halo_proc_ID
Non-halo processor ID for Data; -1 if it's not a halo.
void set_halo(const unsigned &non_halo_proc_ID)
Label the element as halo and specify processor that holds non-halo counterpart.
An OomphLibError object which should be thrown when an run-time error is encountered....
SolidFiniteElement class.
A Class for nodes that deform elastically (i.e. position is an unknown in the problem)....
unsigned nlagrangian() const
Return number of lagrangian coordinates.
void build_face_element(const int &face_index, FaceElement *face_element_pt)
Final override for function to setup geometrical information for lower-dimensional FaceElements (whic...
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
void output(std::ostream &outfile)
Output function: x,y,u or x,y,z,u.
unsigned required_nvalue(const unsigned &n) const
Access function for Nvalue: # of ‘values’ (pinned or dofs) at node n (always returns the same value a...
TAdvectionDiffusionReactionElement()
Constructor: Call constructors for TElement and AdvectionDiffusionReaction equations.
TElement class for which the shape functions have been enriched by a single bubble function of the ne...
void build_face_element(const int &face_index, FaceElement *face_element_pt)
The face element for is the same in the two-dimesional case.
const unsigned Node_on_face[3][2]
Assign the nodal translation schemes.
void faces0(const Vector< double > &s, DenseMatrix< double > &dsbulk_dsface, unsigned &interior_direction)
Function for both faces – the bulk coordinate is fixed on both.
void face0(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s0 = 0.0.
void face1(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s0 = 1.0.
void face0(const Vector< double > &s, DenseMatrix< double > &dsbulk_dsface, unsigned &interior_direction)
Function for the "left" face along which s0 is fixed.
void face1(const Vector< double > &s, DenseMatrix< double > &dsbulk_dsface, unsigned &interior_direction)
Function for the "bottom" face along which s1 is fixed.
void face2(const Vector< double > &s, DenseMatrix< double > &dsbulk_dsface, unsigned &interior_direction)
Function for the sloping face.
void face1(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s1 = 0.
void face2(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s2 = 0.
void face0(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s0 = 0.
void face1(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s1 = 0.
void face2(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s2 = 0.
void face0(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the face s0 = 0.
void face3(const Vector< double > &s, Vector< double > &s_bulk)
The translation scheme for the sloping face.
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).