27 #ifndef OOMPH_AXISYMM_ELASTICITY_ELEMENTS_HEADER
28 #define OOMPH_AXISYMM_ELASTICITY_ELEMENTS_HEADER
32 #include <oomph-lib-config.h>
36 #include "../generic/Qelements.h"
37 #include "../generic/hermite_elements.h"
38 #include "../constitutive/constitutive_laws.h"
75 "Elements derived from AxisymmetricPVDEquations";
76 error_message +=
" must have a constitutive law :\n ";
78 "set one using the constitutive_law_pt() member function\n";
98 unsigned n_lagrangian = 2;
100 unsigned n_node =
nnode();
108 Shape psi(n_node, n_position_type);
109 DShape dpsidxi(n_node, n_position_type, n_lagrangian);
115 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
128 double interpolated_X[2] = {0.0, 0.0};
129 double interpolated_dXdxi[2][2];
132 for (
unsigned i = 0;
i < 2;
i++)
134 for (
unsigned j = 0;
j < 2;
j++)
136 interpolated_dXdxi[
i][
j] = 0.0;
141 for (
unsigned l = 0; l < n_node; l++)
144 for (
unsigned k = 0;
k < n_position_type;
k++)
147 for (
unsigned i = 0;
i < 2;
i++)
155 for (
unsigned j = 0;
j < 2;
j++)
158 interpolated_dXdxi[
i][
j] +=
183 W *=
sqrt(g(0, 0) * g(1, 1) * g(2, 2));
188 G(0, 0) = interpolated_dXdxi[0][0] * interpolated_dXdxi[0][0] +
189 interpolated_dXdxi[1][0] * interpolated_dXdxi[1][0];
190 G(0, 1) = interpolated_dXdxi[0][0] *
191 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
192 interpolated_dXdxi[1][0] *
193 (interpolated_dXdxi[1][1] + interpolated_X[0]);
197 G(1, 1) = (interpolated_dXdxi[0][1] - interpolated_X[1]) *
198 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
199 (interpolated_dXdxi[1][1] + interpolated_X[0]) *
200 (interpolated_dXdxi[1][1] + interpolated_X[0]);
219 for (
unsigned l = 0; l < n_node; l++)
222 for (
unsigned k = 0;
k < n_position_type;
k++)
231 residuals[local_eqn] +=
232 (
sigma(0, 1) * interpolated_dXdxi[1][0] +
233 sigma(1, 1) * (interpolated_dXdxi[1][1] + interpolated_X[0]) +
240 for (
unsigned j = 0;
j < 2;
j++)
242 residuals[local_eqn] +=
243 (
sigma(
j, 0) * interpolated_dXdxi[0][0] +
245 (interpolated_dXdxi[0][1] - interpolated_X[1])) *
246 dpsidxi(l,
k,
j) *
W;
257 residuals[local_eqn] +=
258 (-
sigma(0, 1) * interpolated_dXdxi[0][0] -
259 sigma(1, 1) * (interpolated_dXdxi[0][1] - interpolated_X[1]) +
266 for (
unsigned j = 0;
j < 2;
j++)
268 residuals[local_eqn] +=
269 (
sigma(
j, 0) * interpolated_dXdxi[1][0] +
271 (interpolated_dXdxi[1][1] + interpolated_X[0])) *
272 dpsidxi(l,
k,
j) *
W;
286 unsigned n_node =
nnode();
287 unsigned n_position_type = 1;
290 Shape psi(n_node, n_position_type);
291 DShape dpsidxi(n_node, n_position_type, 2);
300 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
313 double interpolated_X[2] = {0.0, 0.0};
314 double interpolated_dXdxi[2][2];
317 for (
unsigned i = 0;
i < 2;
i++)
319 for (
unsigned j = 0;
j < 2;
j++)
321 interpolated_dXdxi[
i][
j] = 0.0;
326 for (
unsigned l = 0; l < n_node; l++)
329 for (
unsigned k = 0;
k < n_position_type;
k++)
332 for (
unsigned i = 0;
i < 2;
i++)
340 for (
unsigned j = 0;
j < 2;
j++)
343 interpolated_dXdxi[
i][
j] +=
353 G(0, 0) = interpolated_dXdxi[0][0] * interpolated_dXdxi[0][0] +
354 interpolated_dXdxi[1][0] * interpolated_dXdxi[1][0];
355 G(0, 1) = interpolated_dXdxi[0][0] *
356 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
357 interpolated_dXdxi[1][0] *
358 (interpolated_dXdxi[1][1] + interpolated_X[0]);
362 G(1, 1) = (interpolated_dXdxi[0][1] - interpolated_X[1]) *
363 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
364 (interpolated_dXdxi[1][1] + interpolated_X[0]) *
365 (interpolated_dXdxi[1][1] + interpolated_X[0]);
376 double detG =
G(0, 0) *
G(1, 1) *
G(2, 2) -
G(0, 1) *
G(1, 0) *
G(2, 2);
380 sum +=
W *
sqrt(detG);
413 void output(std::ostream& outfile,
const unsigned& n_plot)
419 outfile <<
"ZONE I=" << n_plot <<
", J=" << n_plot << std::endl;
422 for (
unsigned l2 = 0; l2 < n_plot; l2++)
424 s[1] = -1.0 + l2 * 2.0 / (n_plot - 1);
425 for (
unsigned l1 = 0; l1 < n_plot; l1++)
427 s[0] = -1.0 + l1 * 2.0 / (n_plot - 1);
436 for (
unsigned i = 0;
i < 2;
i++)
438 for (
unsigned i = 0;
i < 2;
i++)
440 outfile << std::endl;
443 outfile << std::endl;
455 void output(FILE* file_pt,
const unsigned& n_plot)
461 fprintf(file_pt,
"ZONE I=%i, J=%i\n", n_plot, n_plot);
464 for (
unsigned l2 = 0; l2 < n_plot; l2++)
466 s[1] = -1.0 + l2 * 2.0 / (n_plot - 1);
467 for (
unsigned l1 = 0; l1 < n_plot; l1++)
469 s[0] = -1.0 + l1 * 2.0 / (n_plot - 1);
483 for (
unsigned i = 0;
i < 2;
i++)
485 for (
unsigned i = 0;
i < 2;
i++)
487 fprintf(file_pt,
"\n");
490 fprintf(file_pt,
"\n");
513 void output(std::ostream& outfile,
const unsigned& n_plot)
525 void output(FILE* file_pt,
const unsigned& n_plot)
561 void output(std::ostream& outfile,
const unsigned& n_plot)
567 outfile <<
"ZONE I=" << n_plot <<
", J=" << n_plot << std::endl;
570 for (
unsigned l2 = 0; l2 < n_plot; l2++)
572 s[1] = 0.0 + l2 * 1.0 / (n_plot - 1);
573 for (
unsigned l1 = 0; l1 < n_plot; l1++)
575 s[0] = 0.0 + l1 * 1.0 / (n_plot - 1);
584 for (
unsigned i = 0;
i < 2;
i++)
586 for (
unsigned i = 0;
i < 2;
i++)
588 outfile << std::endl;
591 outfile << std::endl;
603 void output(FILE* file_pt,
const unsigned& n_plot)
609 fprintf(file_pt,
"ZONE I=%i, J=%i\n", n_plot, n_plot);
612 for (
unsigned l2 = 0; l2 < n_plot; l2++)
614 s[1] = -1.0 + l2 * 2.0 / (n_plot - 1);
615 for (
unsigned l1 = 0; l1 < n_plot; l1++)
617 s[0] = -1.0 + l1 * 2.0 / (n_plot - 1);
631 for (
unsigned i = 0;
i < 2;
i++)
633 for (
unsigned i = 0;
i < 2;
i++)
635 fprintf(file_pt,
"\n");
638 fprintf(file_pt,
"\n");
699 double& pressure_stress,
707 "Elements derived from AxisymmetricPVDEquationsWithPressure";
708 error_message +=
" must have a constitutive law :\n ";
710 "set one using the constitutive_law_pt() member function\n";
717 g,
G,
sigma, Gup, pressure_stress, kappa);
733 "Elements derived from AxisymmetricPVDEquationsWithPressure";
734 error_message +=
" must have a constitutive law :\n ";
736 "set one using the constitutive_law_pt() member function\n";
768 virtual double solid_p(
const unsigned& l) = 0;
785 residuals, jacobian, 1);
796 unsigned n_lagrangian = 2;
798 unsigned n_node =
nnode();
805 int local_eqn = 0, local_unknown = 0;
808 Shape psi(n_node, n_position_type);
809 DShape dpsidxi(n_node, n_position_type, n_lagrangian);
812 Shape psisp(n_solid_pres);
818 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
834 double interpolated_X[2] = {0.0, 0.0};
835 double interpolated_dXdxi[2][2];
839 for (
unsigned i = 0;
i < 2;
i++)
841 for (
unsigned j = 0;
j < 2;
j++)
843 interpolated_dXdxi[
i][
j] = 0.0;
848 for (
unsigned l = 0; l < n_node; l++)
851 for (
unsigned k = 0;
k < n_position_type;
k++)
854 for (
unsigned i = 0;
i < 2;
i++)
862 for (
unsigned j = 0;
j < 2;
j++)
865 interpolated_dXdxi[
i][
j] +=
873 for (
unsigned l = 0; l < n_solid_pres; l++)
895 double detg = g(0, 0) * g(1, 1) * g(2, 2);
904 G(0, 0) = interpolated_dXdxi[0][0] * interpolated_dXdxi[0][0] +
905 interpolated_dXdxi[1][0] * interpolated_dXdxi[1][0];
906 G(0, 1) = interpolated_dXdxi[0][0] *
907 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
908 interpolated_dXdxi[1][0] *
909 (interpolated_dXdxi[1][1] + interpolated_X[0]);
913 G(1, 1) = (interpolated_dXdxi[0][1] - interpolated_X[1]) *
914 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
915 (interpolated_dXdxi[1][1] + interpolated_X[0]) *
916 (interpolated_dXdxi[1][1] + interpolated_X[0]);
929 double detG = 0.0, pressure_stress = 0.0, kappa = 0.0;
946 for (
unsigned l = 0; l < n_node; l++)
949 for (
unsigned k = 0;
k < n_position_type;
k++)
958 residuals[local_eqn] +=
960 interpolated_dXdxi[1][0] +
962 (interpolated_dXdxi[1][1] + interpolated_X[0]) +
970 for (
unsigned j = 0;
j < 2;
j++)
972 residuals[local_eqn] +=
974 interpolated_dXdxi[0][0] +
976 (interpolated_dXdxi[0][1] - interpolated_X[1])) *
977 dpsidxi(l,
k,
j) *
W;
984 for (
unsigned l2 = 0; l2 < n_solid_pres; l2++)
988 if (local_unknown >= 0)
990 jacobian(local_eqn, local_unknown) +=
991 (psisp[l2] * Gup(0, 1) * interpolated_dXdxi[1][0] +
992 psisp[l2] * Gup(1, 1) *
993 (interpolated_dXdxi[1][1] + interpolated_X[0]) +
1000 for (
unsigned j = 0;
j < 2;
j++)
1002 jacobian(local_eqn, local_unknown) +=
1003 (psisp[l2] * Gup(
j, 0) * interpolated_dXdxi[0][0] +
1004 psisp[l2] * Gup(
j, 1) *
1005 (interpolated_dXdxi[0][1] - interpolated_X[1])) *
1006 dpsidxi(l,
k,
j) *
W;
1020 residuals[local_eqn] +=
1022 interpolated_dXdxi[0][0] -
1024 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
1032 for (
unsigned j = 0;
j < 2;
j++)
1034 residuals[local_eqn] +=
1036 interpolated_dXdxi[1][0] +
1038 (interpolated_dXdxi[1][1] + interpolated_X[0])) *
1039 dpsidxi(l,
k,
j) *
W;
1046 for (
unsigned l2 = 0; l2 < n_solid_pres; l2++)
1050 if (local_unknown >= 0)
1053 jacobian(local_eqn, local_unknown) +=
1054 (-psisp[l2] * Gup(0, 1) * interpolated_dXdxi[0][0] -
1055 psisp[l2] * Gup(1, 1) *
1056 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
1063 for (
unsigned j = 0;
j < 2;
j++)
1065 jacobian(local_eqn, local_unknown) +=
1066 (psisp[l2] * Gup(
j, 0) * interpolated_dXdxi[1][0] +
1067 psisp[l2] * Gup(
j, 1) *
1068 (interpolated_dXdxi[1][1] + interpolated_X[0])) *
1069 dpsidxi(l,
k,
j) *
W;
1083 for (
unsigned l = 0; l < n_solid_pres; l++)
1093 residuals[local_eqn] += (detG / detg - 1.0) * psisp[l] *
W;
1102 residuals[local_eqn] +=
1109 for (
unsigned l2 = 0; l2 < n_solid_pres; l2++)
1113 if (local_unknown >= 0)
1115 jacobian(local_eqn, local_unknown) +=
1116 kappa * psisp[l2] * psisp[l] *
W;
1134 unsigned n_node =
nnode();
1135 unsigned n_position_type = 1;
1138 Shape psi(n_node, n_position_type);
1139 DShape dpsidxi(n_node, n_position_type, 2);
1148 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
1161 double interpolated_X[2] = {0.0, 0.0};
1162 double interpolated_dXdxi[2][2];
1165 for (
unsigned i = 0;
i < 2;
i++)
1167 for (
unsigned j = 0;
j < 2;
j++)
1169 interpolated_dXdxi[
i][
j] = 0.0;
1174 for (
unsigned l = 0; l < n_node; l++)
1177 for (
unsigned k = 0;
k < n_position_type;
k++)
1180 for (
unsigned i = 0;
i < 2;
i++)
1188 for (
unsigned j = 0;
j < 2;
j++)
1191 interpolated_dXdxi[
i][
j] +=
1201 G(0, 0) = interpolated_dXdxi[0][0] * interpolated_dXdxi[0][0] +
1202 interpolated_dXdxi[1][0] * interpolated_dXdxi[1][0];
1203 G(0, 1) = interpolated_dXdxi[0][0] *
1204 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
1205 interpolated_dXdxi[1][0] *
1206 (interpolated_dXdxi[1][1] + interpolated_X[0]);
1210 G(1, 1) = (interpolated_dXdxi[0][1] - interpolated_X[1]) *
1211 (interpolated_dXdxi[0][1] - interpolated_X[1]) +
1212 (interpolated_dXdxi[1][1] + interpolated_X[0]) *
1213 (interpolated_dXdxi[1][1] + interpolated_X[0]);
1224 double detG =
G(0, 0) *
G(1, 1) *
G(2, 2) -
G(0, 1) *
G(1, 0) *
G(2, 2);
1228 sum +=
W *
sqrt(detG);
1241 Shape psisp(n_solid_pres);
1248 for (
unsigned l = 0; l < n_solid_pres; l++)
1263 void output(std::ostream& outfile,
const unsigned& n_plot)
1269 outfile <<
"ZONE I=" << n_plot <<
", J=" << n_plot << std::endl;
1272 for (
unsigned l2 = 0; l2 < n_plot; l2++)
1274 s[1] = -1.0 + l2 * 2.0 / (n_plot - 1);
1275 for (
unsigned l1 = 0; l1 < n_plot; l1++)
1277 s[0] = -1.0 + l1 * 2.0 / (n_plot - 1);
1287 for (
unsigned i = 0;
i < 2;
i++)
1289 for (
unsigned i = 0;
i < 2;
i++)
1291 outfile << std::endl;
1294 outfile << std::endl;
1305 void output(FILE* file_pt,
const unsigned& n_plot)
1311 fprintf(file_pt,
"ZONE I=%i, J=%i\n", n_plot, n_plot);
1314 for (
unsigned l2 = 0; l2 < n_plot; l2++)
1316 s[1] = -1.0 + l2 * 2.0 / (n_plot - 1);
1317 for (
unsigned l1 = 0; l1 < n_plot; l1++)
1319 s[0] = -1.0 + l1 * 2.0 / (n_plot - 1);
1333 for (
unsigned i = 0;
i < 2;
i++)
1335 for (
unsigned i = 0;
i < 2;
i++)
1337 fprintf(file_pt,
"\n");
1340 fprintf(file_pt,
"\n");
1408 void output(std::ostream& outfile,
const unsigned& n_plot)
1421 void output(FILE* file_pt,
const unsigned& n_plot)
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
int i
Definition: BiCGSTAB_step_by_step.cpp:9
JacobiRotation< float > G
Definition: Jacobi_makeGivens.cpp:2
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
RowVector3d w
Definition: Matrix_resize_int.cpp:3
Definition: axisym_solid_elements.h:546
void output(std::ostream &outfile)
Overload the output function.
Definition: axisym_solid_elements.h:555
void output(FILE *file_pt)
Overload the output function.
Definition: axisym_solid_elements.h:596
void output(FILE *file_pt, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:603
AxisymDiagHermitePVDElement()
Constructor, there are no internal data points.
Definition: axisym_solid_elements.h:549
void output(std::ostream &outfile, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:561
Definition: axisym_solid_elements.h:1351
unsigned P_solid_internal_index
Definition: axisym_solid_elements.h:1354
void output(std::ostream &outfile)
Overload the output function.
Definition: axisym_solid_elements.h:1402
void output(FILE *file_pt, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:1421
double solid_p(const unsigned &l)
Return the l-th pressure value.
Definition: axisym_solid_elements.h:1383
AxisymQPVDElementWithPressure()
Constructor, there are 3 internal data items.
Definition: axisym_solid_elements.h:1374
int solid_p_local_eqn(const unsigned &i)
Overload the access function for the solid pressure equation numbers.
Definition: axisym_solid_elements.h:1357
void output(FILE *file_pt)
Overload the output function.
Definition: axisym_solid_elements.h:1415
void output(std::ostream &outfile, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:1408
unsigned nsolid_pres() const
Return number of pressure values.
Definition: axisym_solid_elements.h:1389
void solid_pshape(const Vector< double > &s, Shape &psi) const
Return the pressure shape functions.
Definition: axisym_solid_elements.h:1428
void fix_solid_pressure(const unsigned &l, const double &pvalue)
Fix the pressure dof l to the value pvalue.
Definition: axisym_solid_elements.h:1395
bool has_internal_solid_data()
Definition: axisym_solid_elements.h:1368
Definition: axisym_solid_elements.h:501
AxisymQPVDElement()
Constructor, there are no internal data points.
Definition: axisym_solid_elements.h:504
void output(std::ostream &outfile, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:513
void output(FILE *file_pt)
Overload the output function.
Definition: axisym_solid_elements.h:519
void output(std::ostream &outfile)
Overload the output function.
Definition: axisym_solid_elements.h:507
void output(FILE *file_pt, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:525
Definition: axisym_solid_elements.h:661
void solid_pshape_at_knot(const unsigned &ipt, Shape &psi) const
Return the stored solid shape functions at the knots.
Definition: axisym_solid_elements.cc:35
bool Incompressible
Boolean to determine whether the solid is incompressible or not.
Definition: axisym_solid_elements.h:667
void fill_in_generic_residual_contribution_axisym_pvd_with_pressure(Vector< double > &residuals, DenseMatrix< double > &jacobian, unsigned flag)
Definition: axisym_solid_elements.h:792
void output(FILE *file_pt, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:1305
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Return the residuals and the jacobian.
Definition: axisym_solid_elements.h:780
virtual unsigned nsolid_pres() const =0
Return the number of solid pressure degrees of freedom.
void output(std::ostream &outfile, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:1263
AxisymmetricPVDEquationsWithPressure()
Constructor, by default the element is not incompressible.
Definition: axisym_solid_elements.h:682
void set_incompressible()
Set the material to be incompressible.
Definition: axisym_solid_elements.h:753
ConstitutiveLaw * Constitutive_law_pt
Pointer to constitutive law.
Definition: axisym_solid_elements.h:664
virtual int solid_p_local_eqn(const unsigned &i)=0
bool is_incompressible() const
Return whether the material is incompressible.
Definition: axisym_solid_elements.h:747
double compute_physical_size() const
Overload/implement the size function.
Definition: axisym_solid_elements.h:1132
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Return the residuals.
Definition: axisym_solid_elements.h:771
virtual void solid_pshape(const Vector< double > &s, Shape &psi) const =0
Return the solid pressure shape functions.
void output(std::ostream &outfile)
Overload the output function.
Definition: axisym_solid_elements.h:1257
void output(FILE *file_pt)
Overload the output function.
Definition: axisym_solid_elements.h:1298
double interpolated_solid_p(const Vector< double > &s)
Return the interpolated_solid_pressure.
Definition: axisym_solid_elements.h:1236
virtual double solid_p(const unsigned &l)=0
Return the lth solid pressures.
ConstitutiveLaw *& constitutive_law_pt()
Return the constitutive law pointer.
Definition: axisym_solid_elements.h:688
void get_stress(const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma, DenseMatrix< double > &Gup, double &pressure_stress, double &kappa)
Definition: axisym_solid_elements.h:695
void get_stress(const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma, DenseMatrix< double > &Gup, double &detG)
Definition: axisym_solid_elements.h:722
void set_compressible()
Set the material to be compressible.
Definition: axisym_solid_elements.h:759
Definition: axisym_solid_elements.h:50
void fill_in_contribution_to_residuals_axisym_pvd(Vector< double > &residuals)
Return the residuals for the equations of solid mechanics.
Definition: axisym_solid_elements.h:94
void output(std::ostream &outfile, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:413
void output(FILE *file_pt)
Overload the output function.
Definition: axisym_solid_elements.h:448
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Fill in the residuals by calling the generic function.
Definition: axisym_solid_elements.h:88
ConstitutiveLaw * Constitutive_law_pt
Pointer to constitutive law.
Definition: axisym_solid_elements.h:53
void output(std::ostream &outfile)
Overload the output function.
Definition: axisym_solid_elements.h:407
void output(FILE *file_pt, const unsigned &n_plot)
Output function.
Definition: axisym_solid_elements.h:455
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Assign the contribution to the residual using only finite differences.
Definition: axisym_solid_elements.h:388
double compute_physical_size() const
Overload/implement the function to calculate the volume of the element.
Definition: axisym_solid_elements.h:284
AxisymmetricPVDEquations()
Constructor.
Definition: axisym_solid_elements.h:57
ConstitutiveLaw *& constitutive_law_pt()
Return the constitutive law pointer.
Definition: axisym_solid_elements.h:60
void get_stress(const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma)
Return the stress tensor, as calculated from the constitutive law.
Definition: axisym_solid_elements.h:66
Definition: constitutive_laws.h:471
virtual void calculate_second_piola_kirchhoff_stress(const DenseMatrix< double > &g, const DenseMatrix< double > &G, DenseMatrix< double > &sigma)=0
void pin(const unsigned &i)
Pin the i-th stored variable.
Definition: nodes.h:385
void set_value(const unsigned &i, const double &value_)
Definition: nodes.h:271
double value(const unsigned &i) const
Definition: nodes.h:293
FaceGeometry()
Definition: axisym_solid_elements.h:650
FaceGeometry()
Definition: axisym_solid_elements.h:1442
FaceGeometry()
Definition: axisym_solid_elements.h:536
Definition: elements.h:4998
virtual void output(std::ostream &outfile)
Definition: elements.h:3050
unsigned nnodal_position_type() const
Definition: elements.h:2463
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
Definition: elements.cc:3962
double nodal_position_gen(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2349
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
Definition: elements.h:1963
Data *& internal_data_pt(const unsigned &i)
Return a pointer to i-th internal data object.
Definition: elements.h:622
int internal_local_eqn(const unsigned &i, const unsigned &j) const
Definition: elements.h:267
static DenseMatrix< double > Dummy_matrix
Definition: elements.h:227
unsigned add_internal_data(Data *const &data_pt, const bool &fd=true)
Definition: elements.cc:62
virtual unsigned nweight() const =0
Return the number of integration points of the scheme.
virtual double weight(const unsigned &i) const =0
Return weight of i-th integration point.
Definition: oomph_definitions.h:222
Definition: hermite_elements.h:570
Definition: elements.h:3561
double lagrangian_position_gen(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:3912
bool Solve_for_consistent_newmark_accel_flag
Definition: elements.h:4302
int position_local_eqn(const unsigned &n, const unsigned &k, const unsigned &j) const
Definition: elements.h:4137
virtual double interpolated_xi(const Vector< double > &s, const unsigned &i) const
Definition: elements.cc:7104
virtual double dshape_lagrangian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidxi) const
Definition: elements.cc:6737
virtual void fill_in_jacobian_from_solid_position_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.cc:6985
void fill_in_jacobian_for_newmark_accel(DenseMatrix< double > &jacobian)
Definition: elements.cc:7227
Definition: Qelements.h:1742
RealScalar s
Definition: level1_cplx_impl.h:130
char char char int int * k
Definition: level2_impl.h:374
double theta
Definition: two_d_biharmonic.cc:236
int sigma
Definition: calibrate.py:179
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
const double Pi
50 digits from maple
Definition: oomph_utilities.h:157
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2