71 throw OomphLibError(
"Computation of diagonal of pressure mass matrix is "
72 "not impmented yet.\n",
174 outfile <<
"ZONE" << std::endl;
180 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
183 for (
unsigned i = 0;
i < 2;
i++)
198 double W = w *
J * x[0];
204 for (
unsigned i = 0;
i < 3;
i++)
212 for (
unsigned i = 0;
i < 2;
i++)
218 for (
unsigned i = 0;
i < 3;
i++)
251 outfile <<
"ZONE" << std::endl;
257 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
260 for (
unsigned i = 0;
i < 2;
i++)
275 double W = w *
J * x[0];
281 for (
unsigned i = 0;
i < 3;
i++)
289 for (
unsigned i = 0;
i < 2;
i++)
295 for (
unsigned i = 0;
i < 3;
i++)
312 const unsigned&
nplot,
341 for (
unsigned i = 0;
i < 2;
i++)
367 const unsigned&
nplot,
397 for (
unsigned i = 0;
i < 2;
i++)
423 const unsigned&
nplot,
452 for (
unsigned i = 0;
i < 2;
i++)
463 for (
unsigned i = 0;
i < 3;
i++)
467 interpolated_u[
i] = 0.0;
476 for (
unsigned i = 0;
i < 2;
i++)
482 for (
unsigned i = 0;
i < 3;
i++)
484 outfile << interpolated_u[
i] <<
" ";
501 const unsigned&
nplot)
517 for (
unsigned i = 0;
i < 2;
i++)
523 for (
unsigned i = 0;
i < 3;
i++)
547 const unsigned&
nplot)
563 for (
unsigned i = 0;
i < 2;
i++)
570 for (
unsigned i = 0;
i < 3;
i++)
597 "Check the dissipation calculation for axisymmetric NSt",
611 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
614 for (
unsigned i = 0;
i < 2;
i++)
631 for (
unsigned i = 0;
i < 3;
i++)
633 for (
unsigned j = 0;
j < 3;
j++)
665 if ((N.size() == 3) && (N[2] != 0.0))
668 "Unit normal passed into this fct should either be 2D (r,z) or have a "
669 "zero component in the theta-direction",
683 for (
unsigned i = 0;
i < 3;
i++)
686 for (
unsigned j = 0;
j < 3;
j++)
700 "Check the dissipation calculation for axisymmetric NSt",
710 for (
unsigned i = 0;
i < 3;
i++)
712 for (
unsigned j = 0;
j < 3;
j++)
731 std::ostringstream error_message;
732 error_message <<
"The strain rate has incorrect dimensions "
734 <<
" Not 3" << std::endl;
767 for (
unsigned i = 0;
i < 3; ++
i)
824 "Check the kinetic energy calculation for axisymmetric NSt",
838 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
841 for (
unsigned i = 0;
i < 2;
i++)
854 for (
unsigned i = 0;
i < 3;
i++)
881 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
884 for (
unsigned i = 0;
i < 2;
i++)
931 for (
unsigned i = 0;
i < 3; ++
i)
963 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
986 double interpolated_p = 0.0;
1005 for (
unsigned i = 0;
i < 2;
i++)
1012 for (
unsigned i = 0;
i < 3;
i++)
1019 for (
unsigned j = 0;
j < 2;
j++)
1033 for (
unsigned i = 0;
i < 2;
i++)
1081 interpolated_dudx(0, 0) *
dtestfdx(
l, 0) * W;
1085 (interpolated_dudx(0, 1) +
Gamma[0] * interpolated_dudx(1, 0)) *
1089 interpolated_u[0] *
testf[
l] * W /
r;
1098 (
r * interpolated_u[0] * interpolated_dudx(0, 0) -
1099 interpolated_u[2] * interpolated_u[2] +
1100 r * interpolated_u[1] * interpolated_dudx(0, 1)) *
1106 for (
unsigned k = 0;
k < 2;
k++)
1109 interpolated_dudx(0,
k) *
testf[
l] * W;
1155 (
r *
psif[
l2] * interpolated_dudx(0, 0) +
1163 for (
unsigned k = 0;
k < 2;
k++)
1183 interpolated_dudx(0, 1) *
1239 (interpolated_dudx(1, 0) +
Gamma[1] * interpolated_dudx(0, 1)) *
1243 interpolated_dudx(1, 1) *
dtestfdx(
l, 1) * W;
1252 (
r * interpolated_u[0] * interpolated_dudx(1, 0) +
1253 r * interpolated_u[1] * interpolated_dudx(1, 1)) *
1259 for (
unsigned k = 0;
k < 2;
k++)
1262 interpolated_dudx(1,
k) *
testf[
l] * W;
1286 interpolated_dudx(1, 0) *
1324 r *
psif[
l2] * interpolated_dudx(1, 1) +
1332 for (
unsigned k = 0;
k < 2;
k++)
1379 (
r * interpolated_dudx(2, 0) -
Gamma[0] * interpolated_u[2]) *
1387 ((interpolated_u[2] /
r) -
Gamma[0] * interpolated_dudx(2, 0)) *
1398 (
r * interpolated_u[0] * interpolated_dudx(2, 0) +
1399 interpolated_u[0] * interpolated_u[2] +
1400 r * interpolated_u[1] * interpolated_dudx(2, 1)) *
1406 for (
unsigned k = 0;
k < 2;
k++)
1409 interpolated_dudx(2,
k) *
testf[
l] * W;
1430 (
r *
psif[
l2] * interpolated_dudx(2, 0) +
1431 psif[
l2] * interpolated_u[2]) *
1445 interpolated_dudx(2, 1) *
1486 interpolated_u[0] *
psif[
l2] +
1493 for (
unsigned k = 0;
k < 2;
k++)
1526 (interpolated_u[0] +
r * interpolated_dudx(0, 0) +
1527 r * interpolated_dudx(1, 1)) *
1587 for (
unsigned i = 0;
i < 3;
i++)
1645 for (
unsigned q = 0; q <
n_node; q++)
1651 if (
nod_pt->has_auxiliary_node_update_fct_pt())
1658 warning_stream <<
"\nThe functionality to evaluate the additional"
1659 <<
"\ncontribution to the deriv of the residual eqn"
1660 <<
"\nw.r.t. the nodal coordinates which comes about"
1661 <<
"\nif a node's values are updated using an auxiliary"
1662 <<
"\nnode update function has NOT been tested for"
1663 <<
"\naxisymmetric Navier-Stokes elements. Use at your"
1664 <<
"\nown risk" << std::endl;
1667 "AxisymmetricNavierStokesEquations::get_dresidual_dnodal_coordinates",
1672 for (
unsigned i = 0;
i < 3;
i++)
1678 for (
unsigned p = 0;
p < 2;
p++)
1688 nod_pt->perform_auxiliary_node_update_fct();
1691 for (
unsigned i = 0;
i < 3;
i++)
1702 nod_pt->perform_auxiliary_node_update_fct();
1714 for (
unsigned i = 0;
i < 2;
i++)
1742 double interpolated_p = 0.0;
1763 for (
unsigned i = 0;
i < 2;
i++)
1769 for (
unsigned i = 0;
i < 3;
i++)
1777 for (
unsigned j = 0;
j < 2;
j++)
1791 for (
unsigned i = 0;
i < 2;
i++)
1799 for (
unsigned q = 0; q <
n_node; q++)
1802 for (
unsigned p = 0;
p < 2;
p++)
1805 for (
unsigned i = 0;
i < 3;
i++)
1808 for (
unsigned k = 0;
k < 2;
k++)
1876 for (
unsigned p = 0;
p < 2;
p++)
1879 for (
unsigned q = 0; q <
n_node; q++)
1898 interpolated_dudx(0, 0) *
dtestfdx(
l, 0);
1902 (interpolated_dudx(0, 1) +
Gamma[0] * interpolated_dudx(1, 0)) *
1913 (
r * interpolated_u[0] * interpolated_dudx(0, 0) -
1914 interpolated_u[2] * interpolated_u[2] +
1915 r * interpolated_u[1] * interpolated_dudx(0, 1)) *
1921 for (
unsigned k = 0;
k < 2;
k++)
1924 interpolated_dudx(0,
k) *
testf_;
1966 (interpolated_dudx(0, 1) +
1967 Gamma[0] * interpolated_dudx(1, 0)) *
1975 (interpolated_dudx(0, 1) +
1976 Gamma[0] * interpolated_dudx(1, 0)) *
1981 for (
unsigned k = 0;
k < 2;
k++)
2025 for (
unsigned k = 0;
k < 2;
k++)
2077 for (
unsigned p = 0;
p < 2;
p++)
2080 for (
unsigned q = 0; q <
n_node; q++)
2100 (interpolated_dudx(1, 0) +
Gamma[1] * interpolated_dudx(0, 1)) *
2104 interpolated_dudx(1, 1) *
dtestfdx(
l, 1);
2111 (
r * interpolated_u[0] * interpolated_dudx(1, 0) +
2112 r * interpolated_u[1] * interpolated_dudx(1, 1)) *
2118 for (
unsigned k = 0;
k < 2;
k++)
2121 interpolated_dudx(1,
k) *
testf_;
2157 (interpolated_dudx(1, 0) +
2158 Gamma[1] * interpolated_dudx(0, 1)) *
2161 (1.0 +
Gamma[1]) * interpolated_dudx(1, 1) *
2167 Gamma[1] * interpolated_dudx(0, 1)) *
2169 (1.0 +
Gamma[1]) * interpolated_dudx(1, 1) *
2174 for (
unsigned k = 0;
k < 2;
k++)
2219 for (
unsigned k = 0;
k < 2;
k++)
2252 for (
unsigned p = 0;
p < 2;
p++)
2255 for (
unsigned q = 0; q <
n_node; q++)
2274 (
r * interpolated_dudx(2, 0) -
Gamma[0] * interpolated_u[2]) *
2281 ((interpolated_u[2] /
r) -
Gamma[0] * interpolated_dudx(2, 0)) *
2289 (
r * interpolated_u[0] * interpolated_dudx(2, 0) +
2290 interpolated_u[0] * interpolated_u[2] +
2291 r * interpolated_u[1] * interpolated_dudx(2, 1)) *
2297 for (
unsigned k = 0;
k < 2;
k++)
2300 interpolated_dudx(2,
k) *
testf_;
2347 for (
unsigned k = 0;
k < 2;
k++)
2403 for (
unsigned k = 0;
k < 2;
k++)
2447 for (
unsigned p = 0;
p < 2;
p++)
2450 for (
unsigned q = 0; q <
n_node; q++)
2456 double aux = -
r * source;
2459 aux += (interpolated_u[0] +
r * interpolated_dudx(0, 0) +
2460 r * interpolated_dudx(1, 1));
2481 (interpolated_dudx(0, 0) + interpolated_dudx(1, 1)) *
psif[q];
2522 <<
"Cannot compute analytic jacobian for parameter addressed by "
2546 diff_re_inv_fr =
true;
2550 diff_re_inv_ro =
true;
2562 for (
unsigned i = 0;
i < 3; ++
i)
2595 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
2618 double interpolated_p = 0.0;
2637 for (
unsigned i = 0;
i < 2;
i++)
2644 for (
unsigned i = 0;
i < 3;
i++)
2651 for (
unsigned j = 0;
j < 2;
j++)
2665 for (
unsigned i = 0;
i < 2;
i++)
2740 (
r * interpolated_u[0] * interpolated_dudx(0, 0) -
2741 interpolated_u[2] * interpolated_u[2] +
2742 r * interpolated_u[1] * interpolated_dudx(0, 1)) *
2751 for (
unsigned k = 0;
k < 2;
k++)
2754 interpolated_dudx(0,
k) *
testf[
l] *
2813 (
r *
psif[
l2] * interpolated_dudx(0, 0) +
2822 for (
unsigned k = 0;
k < 2;
k++)
2928 (
r * interpolated_u[0] * interpolated_dudx(1, 0) +
2929 r * interpolated_u[1] * interpolated_dudx(1, 1)) *
2938 for (
unsigned k = 0;
k < 2;
k++)
2941 interpolated_dudx(1,
k) *
testf[
l] *
3015 r *
psif[
l2] * interpolated_dudx(1, 1) +
3023 for (
unsigned k = 0;
k < 2;
k++)
3087 (
r * interpolated_u[0] * interpolated_dudx(2, 0) +
3088 interpolated_u[0] * interpolated_u[2] +
3089 r * interpolated_u[1] * interpolated_dudx(2, 1)) *
3098 for (
unsigned k = 0;
k < 2;
k++)
3101 interpolated_dudx(2,
k) *
testf[
l] *
3129 (
r *
psif[
l2] * interpolated_dudx(2, 0) +
3130 psif[
l2] * interpolated_u[2]) *
3200 interpolated_u[0] *
psif[
l2] +
3210 for (
unsigned k = 0;
k < 2;
k++)
3249 for (
unsigned i = 0;
i < 3; ++
i)
3281 for (
unsigned ipt = 0;
ipt < Nintpt;
ipt++)
3313 for (
unsigned i = 0;
i < 2;
i++)
3319 for (
unsigned i = 0;
i < 3;
i++)
3326 for (
unsigned j = 0;
j < 2;
j++)
3610 const unsigned n_vec = C.nrow();
3611 for (
unsigned i = 0;
i <
n_dof;
i++)
3613 for (
unsigned k = 0;
k <
n_dof;
k++)
3618 for (
unsigned v = 0;
v <
n_vec;
v++)
3682 for (
unsigned v = 0;
v <
nv;
v++)
3706 3, 3, 3, 3, 3, 3, 3, 3, 3};
3712 const unsigned&
n)
const
3757 for (
unsigned v = 0;
v <
nv;
v++)
3785 4, 3, 4, 3, 3, 3, 4, 3, 4};
double dissipation() const
Return integral of dissipation over element.
static Vector< double > Default_Gravity_vector
Static default value for the gravity vector.
double pressure_integral() const
Integral of pressure over element.
void traction(const Vector< double > &s, const Vector< double > &N, Vector< double > &traction) const
Compute traction (on the viscous scale) at local coordinate s for outer unit normal N.
const double & re() const
Reynolds number.
double *& re_st_pt()
Pointer to product of Reynolds and Strouhal number (=Womersley number)
virtual void fill_in_generic_dresidual_contribution_axi_nst(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam, unsigned flag)
Compute the derivative of residuals for the Navier–Stokes equations; with respect to a parameeter fla...
const double & re_invfr() const
Global inverse Froude number.
void fill_in_contribution_to_hessian_vector_products(Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product)
Compute the hessian tensor vector products required to perform continuation of bifurcations analytica...
void output_veloc(std::ostream &outfile, const unsigned &nplot, const unsigned &t)
Output function: x,y,[z],u,v,[w] in tecplot format. nplot points in each coordinate direction at time...
virtual double p_axi_nst(const unsigned &n_p) const =0
Pressure at local pressure "node" n_p Uses suitably interpolated value for hanging nodes.
double *& re_pt()
Pointer to Reynolds number.
void output_fct(std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output exact solution specified via function pointer at a given number of plot points....
double * Re_pt
Pointer to global Reynolds number.
virtual void pshape_axi_nst(const Vector< double > &s, Shape &psi) const =0
Compute the pressure shape functions at local coordinate s.
const double & re_invro() const
Global Reynolds number multiplied by inverse Rossby number.
virtual void get_viscosity_ratio_axisym_nst(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, double &visc_ratio)
Calculate the viscosity ratio relative to the viscosity used in the definition of the Reynolds number...
void interpolated_u_axi_nst(const Vector< double > &s, Vector< double > &veloc) const
Compute vector of FE interpolated velocity u at local coordinate s.
virtual double dshape_and_dtest_eulerian_at_knot_axi_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
Compute the shape functions and derivatives w.r.t. global coords at ipt-th integration point Return J...
const Vector< double > & g() const
Vector of gravitational components.
double get_source_fct(const double &time, const unsigned &ipt, const Vector< double > &x)
Calculate the source fct at given time and Eulerian position.
static int Pressure_not_stored_at_node
Static "magic" number that indicates that the pressure is not stored at a node.
double du_dt_axi_nst(const unsigned &n, const unsigned &i) const
i-th component of du/dt at local node n. Uses suitably interpolated value for hanging nodes.
static double Default_Physical_Ratio_Value
Static default value for the physical ratios (all are initialised to one)
double kin_energy() const
Get integral of kinetic energy over element.
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Validate against exact solution at given time Solution is provided via function pointer....
virtual unsigned npres_axi_nst() const =0
Function to return number of pressure degrees of freedom.
static double Default_Physical_Constant_Value
Static default value for the physical constants (all initialised to zero)
bool ALE_is_disabled
Boolean flag to indicate if ALE formulation is disabled when the time-derivatives are computed....
virtual void fill_in_generic_residual_contribution_axi_nst(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, unsigned flag)
Compute the residuals for the Navier–Stokes equations; flag=2 or 1 or 0: compute the Jacobian and/or ...
double *& re_invro_pt()
Pointer to global inverse Froude number.
virtual void get_source_fct_gradient(const double &time, const unsigned &ipt, const Vector< double > &x, Vector< double > &gradient)
Get gradient of source term at (Eulerian) position x. Computed via function pointer (if set) or by fi...
const double & viscosity_ratio() const
Viscosity ratio for element: Element's viscosity relative to the viscosity used in the definition of ...
const double & density_ratio() const
Density ratio for element: Element's density relative to the viscosity used in the definition of the ...
double *& re_invfr_pt()
Pointer to global inverse Froude number.
double interpolated_p_axi_nst(const Vector< double > &s) const
Return FE interpolated pressure at local coordinate s.
virtual void get_body_force_gradient_axi_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, DenseMatrix< double > &d_body_force_dx)
Get gradient of body force term at (Eulerian) position x. Computed via function pointer (if set) or b...
void get_pressure_and_velocity_mass_matrix_diagonal(Vector< double > &press_mass_diag, Vector< double > &veloc_mass_diag, const unsigned &which_one=0)
Compute the diagonal of the velocity/pressure mass matrices. If which one=0, both are computed,...
void strain_rate(const Vector< double > &s, DenseMatrix< double > &strain_rate) const
Strain-rate tensor: where (in that order)
virtual int p_local_eqn(const unsigned &n) const =0
Access function for the local equation number information for the pressure. p_local_eqn[n] = local eq...
const double & re_st() const
Product of Reynolds and Strouhal number (=Womersley number)
virtual void get_body_force_axi_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &result)
Calculate the body force fct at a given time and Eulerian position.
virtual void get_dresidual_dnodal_coordinates(RankThreeTensor< double > &dresidual_dnodal_coordinates)
Compute derivatives of elemental residual vector with respect to nodal coordinates....
virtual unsigned u_index_axi_nst(const unsigned &i) const
Return the index at which the i-th unknown velocity component is stored. The default value,...
void output(std::ostream &outfile)
Output function: x,y,[z],u,v,[w],p in tecplot format. Default number of plot points.
static Vector< double > Gamma
Vector to decide whether the stress-divergence form is used or not.
void get_traction(const Vector< double > &s, const Vector< double > &N, Vector< double > &traction) const
Compute traction at local coordinate s for outer unit normal N.
static const unsigned Initial_Nvalue[]
Static array of ints to hold required number of variables at nodes.
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const
Create a list of pairs for all unknowns in this element, so that the first entry in each pair contain...
unsigned npres_axi_nst() const
Return number of pressure values.
int p_local_eqn(const unsigned &n) const
Overload the access function for the pressure's local equation numbers.
virtual unsigned required_nvalue(const unsigned &n) const
Number of values (pinned or dofs) required at local node n.
static const unsigned Pconv[]
Static array of ints to hold conversion from pressure node numbers to actual node numbers.
void get_traction(const Vector< double > &s, const Vector< double > &N, Vector< double > &traction) const
Compute traction at local coordinate s for outer unit normal N.
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned > > &dof_lookup_list) const
Create a list of pairs for all unknowns in this element, so that the first entry in each pair contain...
static const unsigned Initial_Nvalue[]
Static array of ints to hold number of variables at node.
A Class for the derivatives of shape functions The class design is essentially the same as Shape,...
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
virtual double J_eulerian(const Vector< double > &s) const
Return the Jacobian of mapping from local to global coordinates at local position s.
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
double nodal_value(const unsigned &n, const unsigned &i) const
Return the i-th value stored at local node n. Produces suitably interpolated values for hanging nodes...
virtual std::string tecplot_zone_string(const unsigned &nplot) const
Return string for tecplot zone header (when plotting nplot points in each "coordinate direction")
double size() const
Calculate the size of the element (length, area, volume,...) in Eulerian computational coordinates....
virtual void shape(const Vector< double > &s, Shape &psi) const =0
Calculate the geometric shape functions at local coordinate s. This function must be overloaded for e...
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Return the local equation number corresponding to the i-th value at the n-th local node.
unsigned nnode() const
Return the number of nodes.
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Function pointer for function that computes vector-valued steady "exact solution" as .
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")
double nodal_position(const unsigned &n, const unsigned &i) const
Return the i-th coordinate at local node n. If the node is hanging, the appropriate interpolation is ...
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Compute the geometric shape functions and also first derivatives w.r.t. global coordinates at local c...
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
virtual double J_eulerian_at_knot(const unsigned &ipt) const
Return the Jacobian of the mapping from local to global coordinates at the ipt-th integration point.
double raw_dnodal_position_dt(const unsigned &n, const unsigned &i) const
Return the i-th component of nodal velocity: dx/dt at local node n. Do not use the hanging node repre...
double raw_nodal_value(const unsigned &n, const unsigned &i) const
Return the i-th value stored at local node n but do NOT take hanging nodes into account.
double raw_nodal_position(const unsigned &n, const unsigned &i) const
Return the i-th coordinate at local node n. Do not use the hanging node representation....
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"...
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Function pointer for function that computes Vector-valued time-dependent function as .
virtual void shape_at_knot(const unsigned &ipt, Shape &psi) const
Return the geometric shape function at the ipt-th integration point.
static double Default_fd_jacobian_step
Double used for the default finite difference step in elemental jacobian calculations.
unsigned ndof() const
Return the number of equations/dofs in the element.
unsigned long eqn_number(const unsigned &ieqn_local) const
Return the global equation number corresponding to the ieqn_local-th local equation number.
int local_eqn_number(const unsigned long &ieqn_global) const
Return the local equation number corresponding to the ieqn_global-th global equation number....
virtual double knot(const unsigned &i, const unsigned &j) const =0
Return local coordinate s[j] of i-th integration point.
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.
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
TimeStepper *& position_time_stepper_pt()
Return a pointer to the position timestepper.
An OomphLibError object which should be thrown when an run-time error is encountered....
An OomphLibWarning object which should be created as a temporary object to issue a warning....
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...
virtual double weight(const unsigned &i, const unsigned &j) const
Access function for j-th weight for the i-th derivative.
Time *const & time_pt() const
Access function for the pointer to time (const version)
double & time()
Return the current value of the continuous time.
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).