29#ifndef OOMPH_AXISYMM_SOLID_TRACTION_ELEMENTS_HEADER
30#define OOMPH_AXISYMM_SOLID_TRACTION_ELEMENTS_HEADER
34#include <oomph-lib-config.h>
50 template<
class ELEMENT>
73 for (
unsigned i = 0;
i < 2;
i++)
81 (*Traction_fct_pt)(time, x,
n,
result);
156 template<
class ELEMENT>
157 void AxisymmetricSolidTractionElement<
161 unsigned n_node = nnode();
174 unsigned n_intpt = integral_pt()->nweight();
180 double w = integral_pt()->weight(
ipt);
198 for (
unsigned i = 0;
i < 2;
i++)
202 nodal_position_gen(
l, bulk_position_type(
k),
i) *
psi(
l,
k);
203 interpolated_xi[
i] +=
204 this->lagrangian_position_gen(
l, bulk_position_type(
k),
i) *
209 nodal_position_gen(
l, bulk_position_type(
k),
i) *
dpsids(
l,
k, 0);
210 interpolated_dxids[
i] +=
211 this->lagrangian_position_gen(
l, bulk_position_type(
k),
i) *
221 A(0, 1) = A(1, 0) = 0.0;
230 A(1, 1) = (interpolated_x[0] *
sin(interpolated_xi[1]) +
231 interpolated_x[1] *
cos(interpolated_xi[1])) *
232 (interpolated_x[0] *
sin(interpolated_xi[1]) +
233 interpolated_x[1] *
cos(interpolated_xi[1]));
237 double W = w *
sqrt(A(0, 0) * A(1, 1));
248 (interpolated_x[0] *
sin(interpolated_xi[1]) +
249 interpolated_x[1] *
cos(interpolated_xi[1])) *
254 (interpolated_x[0] *
sin(interpolated_xi[1]) +
255 interpolated_x[1] *
cos(interpolated_xi[1])) *
267 for (
unsigned i = 0;
i < 2;
i++)
272 for (
unsigned i = 0;
i < 2;
i++)
292 for (
unsigned i = 0;
i < 2;
i++)
294 local_eqn = this->position_local_eqn(
l, bulk_position_type(
k),
i);
A class for elements that allow the imposition of an applied traction in the principle of virtual dis...
void output(std::ostream &outfile, const unsigned &n_plot)
Output function: x,y,[z],u,v,[w],p in tecplot format.
void get_traction(const double &time, const Vector< double > &x, const Vector< double > &n, Vector< double > &result) const
Return the surface traction force.
void output(std::ostream &outfile)
Overload the output function.
void output(FILE *file_pt)
Overload the output function.
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Return the jacobian.
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Return the residuals.
void(*&)(const double &, const Vector< double > &, const Vector< double > &, Vector< double > &) traction_fct_pt()
Return the imposed traction pointer.
void output(FILE *file_pt, const unsigned &n_plot)
Output function: x,y,[z],u,v,[w],p in tecplot format.
AxisymmetricSolidTractionElement(FiniteElement *const &element_pt, const int &face_index)
Constructor, which takes a "bulk" element and the value of the index and its limit.
void(* Traction_fct_pt)(const double &time, const Vector< double > &x, const Vector< double > &n, Vector< double > &result)
Pointer to an imposed traction function.
A Class for the derivatives of shape functions The class design is essentially the same as Shape,...
FaceElements are elements that coincide with the faces of higher-dimensional "bulk" elements....
int & face_index()
Index of the face (a number that uniquely identifies the face in the element)
FaceGeometry class definition: This policy class is used to allow construction of face elements that ...
A general Finite Element class.
virtual void output(std::ostream &outfile)
Output the element data — typically the values at the nodes in a format suitable for post-processing.
virtual void build_face_element(const int &face_index, FaceElement *face_element_pt)
Function for building a lower dimensional FaceElement on the specified face of the FiniteElement....
A Class for shape functions. In simple cases, the shape functions have only one index that can be tho...
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).