28 #ifndef OOMPH_GENERALISED_NEWTONIAN_NAVIER_STOKES_ELEMENTS_HEADER
29 #define OOMPH_GENERALISED_NEWTONIAN_NAVIER_STOKES_ELEMENTS_HEADER
33 #include <oomph-lib-config.h>
38 #include "../generic/Qelements.h"
39 #include "../generic/fsi.h"
40 #include "../generic/projection.h"
41 #include "../generic/generalised_newtonian_constitutive_models.h"
79 std::map<
Data*, std::vector<int>>& eqn_number_backup) = 0;
89 const unsigned& which_one = 0) = 0;
116 template<
unsigned DIM>
211 DShape& dtestdx)
const = 0;
221 DShape& dtestdx)
const = 0;
243 DShape& dptestdx)
const = 0;
260 for (
unsigned i = 0;
i <
DIM;
i++)
268 (*Body_force_fct_pt)(time,
x, result);
296 for (
unsigned i = 0;
i <
DIM;
i++)
300 for (
unsigned j = 0;
j <
DIM;
j++)
302 d_body_force_dx(
j,
i) =
354 double source_pls = 0.0;
356 for (
unsigned i = 0;
i <
DIM;
i++)
360 gradient[
i] = (source_pls -
source) / eps_fd;
386 double*
const& parameter_pt,
430 const double&
re()
const
562 double u_nst(
const unsigned&
n,
const unsigned&
i)
const
569 double u_nst(
const unsigned&
t,
const unsigned&
n,
const unsigned&
i)
const
606 const unsigned u_nodal_index = this->
u_index_nst(i);
611 for (
unsigned t = 0;
t < n_time;
t++)
639 virtual double p_nst(
const unsigned& n_p)
const = 0;
642 virtual double p_nst(
const unsigned&
t,
const unsigned& n_p)
const = 0;
645 virtual void fix_pressure(
const unsigned& p_dof,
const double& p_value) = 0;
661 double& max_invariant,
662 double& min_viscosity,
663 double& max_viscosity)
const;
752 const unsigned& which_one = 0);
765 const unsigned& nplot)
const
773 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
794 std::stringstream error_stream;
795 error_stream <<
"These Navier Stokes elements only store " <<
DIM + 1
797 <<
"but i is currently " <<
i << std::endl;
824 std::stringstream error_stream;
825 error_stream <<
"These Navier Stokes elements only store " <<
DIM + 1
827 <<
"but i is currently " <<
i << std::endl;
845 void output(std::ostream& outfile,
const unsigned& nplot);
857 void output(FILE* file_pt,
const unsigned& nplot);
871 void full_output(std::ostream& outfile,
const unsigned& nplot);
878 const unsigned& nplot,
890 const unsigned& nplot,
897 const unsigned& nplot,
953 residuals, jacobian, mass_matrix, 2);
973 double*
const& parameter_pt,
989 double*
const& parameter_pt,
996 parameter_pt, dres_dparam, djac_dparam, dmass_matrix_dparam, 2);
1002 std::map<
Data*, std::vector<int>>& eqn_number_backup)
1007 for (
unsigned j = 0;
j < nint;
j++)
1010 if (eqn_number_backup[data_pt].
size() == 0)
1012 unsigned nvalue = data_pt->
nvalue();
1013 eqn_number_backup[data_pt].resize(nvalue);
1014 for (
unsigned i = 0;
i < nvalue;
i++)
1017 eqn_number_backup[data_pt][
i] = data_pt->
eqn_number(
i);
1026 unsigned nnod = this->
nnode();
1027 for (
unsigned j = 0;
j < nnod;
j++)
1030 if (eqn_number_backup[nod_pt].
size() == 0)
1032 unsigned nvalue = nod_pt->
nvalue();
1033 eqn_number_backup[nod_pt].resize(nvalue);
1034 for (
unsigned i = 0;
i < nvalue;
i++)
1061 if (solid_nod_pt != 0)
1064 if (eqn_number_backup[solid_posn_data_pt].
size() == 0)
1066 unsigned nvalue = solid_posn_data_pt->
nvalue();
1067 eqn_number_backup[solid_posn_data_pt].resize(nvalue);
1068 for (
unsigned i = 0;
i < nvalue;
i++)
1071 eqn_number_backup[solid_posn_data_pt][
i] =
1075 solid_posn_data_pt->
pin(
i);
1097 unsigned n_node =
nnode();
1103 for (
unsigned i = 0;
i <
DIM;
i++)
1110 for (
unsigned l = 0; l < n_node; l++)
1121 unsigned n_node =
nnode();
1131 double interpolated_u = 0.0;
1133 for (
unsigned l = 0; l < n_node; l++)
1135 interpolated_u +=
nodal_value(l, u_nodal_index) * psi[l];
1138 return (interpolated_u);
1145 const unsigned&
i)
const
1148 unsigned n_node =
nnode();
1160 double interpolated_u = 0.0;
1162 for (
unsigned l = 0; l < n_node; l++)
1164 interpolated_u +=
nodal_value(
t, l, u_nodal_index) * psi[l];
1167 return (interpolated_u);
1181 unsigned n_node =
nnode();
1191 unsigned n_u_dof = 0;
1192 for (
unsigned l = 0; l < n_node; l++)
1196 if (global_eqn >= 0)
1203 du_ddata.resize(n_u_dof, 0.0);
1204 global_eqn_number.resize(n_u_dof, 0);
1209 for (
unsigned l = 0; l < n_node; l++)
1213 if (global_eqn >= 0)
1216 global_eqn_number[count] = global_eqn;
1218 du_ddata[count] = psi[l];
1237 double interpolated_p = 0.0;
1239 for (
unsigned l = 0; l < n_pres; l++)
1241 interpolated_p +=
p_nst(l) * psi[l];
1244 return (interpolated_p);
1259 double interpolated_p = 0.0;
1261 for (
unsigned l = 0; l < n_pres; l++)
1263 interpolated_p +=
p_nst(
t, l) * psi[l];
1266 return (interpolated_p);
1275 unsigned dim =
s.size();
1281 for (
unsigned i = 0;
i <
dim;
i++)
1301 template<
unsigned DIM>
1338 const unsigned& ipt,
1389 double p_nst(
const unsigned&
t,
const unsigned&
i)
const
1423 std::set<std::pair<Data*, unsigned>>& paired_load_data);
1434 std::set<std::pair<Data*, unsigned>>& paired_pressure_data);
1444 void output(std::ostream& outfile,
const unsigned& nplot)
1457 void output(FILE* file_pt,
const unsigned& nplot)
1495 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const;
1505 template<
unsigned DIM>
1506 inline double GeneralisedNewtonianQCrouzeixRaviartElement<
1514 double J = this->dshape_eulerian(
s, psi, dpsidx);
1527 template<
unsigned DIM>
1529 DIM>::dshape_and_dtest_eulerian_at_knot_nst(
const unsigned& ipt,
1536 double J = this->dshape_eulerian_at_knot(ipt, psi, dpsidx);
1557 const unsigned& ipt,
1567 const double J = this->dshape_eulerian_at_knot(
1568 ipt, psi, dpsidx, djacobian_dX, d_dpsidx_dX);
1572 for (
unsigned i = 0;
i < 9;
i++)
1576 for (
unsigned k = 0;
k < 2;
k++)
1578 dtestdx(
i,
k) = dpsidx(
i,
k);
1580 for (
unsigned p = 0;
p < 2;
p++)
1582 for (
unsigned q = 0;
q < 9;
q++)
1584 d_dtestdx_dX(
p,
q,
i,
k) = d_dpsidx_dX(
p,
q,
i,
k);
1607 const unsigned& ipt,
1617 const double J = this->dshape_eulerian_at_knot(
1618 ipt, psi, dpsidx, djacobian_dX, d_dpsidx_dX);
1622 for (
unsigned i = 0;
i < 27;
i++)
1626 for (
unsigned k = 0;
k < 3;
k++)
1628 dtestdx(
i,
k) = dpsidx(
i,
k);
1630 for (
unsigned p = 0;
p < 3;
p++)
1632 for (
unsigned q = 0;
q < 27;
q++)
1634 d_dtestdx_dX(
p,
q,
i,
k) = d_dpsidx_dX(
p,
q,
i,
k);
1677 dppsidx(0, 0) = 0.0;
1678 dppsidx(1, 0) = 1.0;
1679 dppsidx(2, 0) = 0.0;
1681 dppsidx(0, 1) = 0.0;
1682 dppsidx(1, 1) = 0.0;
1683 dppsidx(2, 1) = 1.0;
1689 dshape_local(
s, psi, dpsi);
1695 const double det = local_to_eulerian_mapping(dpsi, inverse_jacobian);
1699 transform_derivatives(inverse_jacobian, dppsidx);
1713 template<
unsigned DIM>
1718 this->pshape_nst(
s, psi);
1758 dppsidx(0, 0) = 0.0;
1759 dppsidx(1, 0) = 1.0;
1760 dppsidx(2, 0) = 0.0;
1761 dppsidx(3, 0) = 0.0;
1763 dppsidx(0, 1) = 0.0;
1764 dppsidx(1, 1) = 0.0;
1765 dppsidx(2, 1) = 1.0;
1766 dppsidx(3, 1) = 0.0;
1768 dppsidx(0, 2) = 0.0;
1769 dppsidx(1, 2) = 0.0;
1770 dppsidx(2, 2) = 0.0;
1771 dppsidx(3, 2) = 1.0;
1777 dshape_local(
s, psi, dpsi);
1783 const double det = local_to_eulerian_mapping(dpsi, inverse_jacobian);
1787 transform_derivatives(inverse_jacobian, dppsidx);
1856 template<
unsigned DIM>
1892 const unsigned& ipt,
1937 return static_cast<int>(
DIM);
1955 double p_nst(
const unsigned&
t,
const unsigned& n_p)
const
1963 return static_cast<unsigned>(
pow(2.0,
static_cast<int>(
DIM)));
1983 std::set<std::pair<Data*, unsigned>>& paired_load_data);
1995 std::set<std::pair<Data*, unsigned>>& paired_pressure_data);
2005 void output(std::ostream& outfile,
const unsigned& nplot)
2017 void output(FILE* file_pt,
const unsigned& nplot)
2037 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const;
2047 template<
unsigned DIM>
2048 inline double GeneralisedNewtonianQTaylorHoodElement<
2056 double J = this->dshape_eulerian(
s, psi, dpsidx);
2072 template<
unsigned DIM>
2074 DIM>::dshape_and_dtest_eulerian_at_knot_nst(
const unsigned& ipt,
2081 double J = this->dshape_eulerian_at_knot(ipt, psi, dpsidx);
2106 double psi1[2], psi2[2];
2107 double dpsi1[2], dpsi2[2];
2117 for (
unsigned i = 0;
i < 2;
i++)
2119 for (
unsigned j = 0;
j < 2;
j++)
2122 ppsi[2 *
i +
j] = psi2[
i] * psi1[
j];
2123 dppsidx(2 *
i +
j, 0) = psi2[
i] * dpsi1[
j];
2124 dppsidx(2 *
i +
j, 1) = dpsi2[
i] * psi1[
j];
2132 dshape_local(
s, psi, dpsi);
2138 const double det = local_to_eulerian_mapping(dpsi, inverse_jacobian);
2142 transform_derivatives(inverse_jacobian, dppsidx);
2165 const unsigned& ipt,
2175 const double J = this->dshape_eulerian_at_knot(
2176 ipt, psi, dpsidx, djacobian_dX, d_dpsidx_dX);
2180 for (
unsigned i = 0;
i < 9;
i++)
2184 for (
unsigned k = 0;
k < 2;
k++)
2186 dtestdx(
i,
k) = dpsidx(
i,
k);
2188 for (
unsigned p = 0;
p < 2;
p++)
2190 for (
unsigned q = 0;
q < 9;
q++)
2192 d_dtestdx_dX(
p,
q,
i,
k) = d_dpsidx_dX(
p,
q,
i,
k);
2215 const unsigned& ipt,
2225 const double J = this->dshape_eulerian_at_knot(
2226 ipt, psi, dpsidx, djacobian_dX, d_dpsidx_dX);
2230 for (
unsigned i = 0;
i < 27;
i++)
2234 for (
unsigned k = 0;
k < 3;
k++)
2236 dtestdx(
i,
k) = dpsidx(
i,
k);
2238 for (
unsigned p = 0;
p < 3;
p++)
2240 for (
unsigned q = 0;
q < 27;
q++)
2242 d_dtestdx_dX(
p,
q,
i,
k) = d_dpsidx_dX(
p,
q,
i,
k);
2262 double psi1[2], psi2[2];
2269 for (
unsigned i = 0;
i < 2;
i++)
2271 for (
unsigned j = 0;
j < 2;
j++)
2274 psi[2 *
i +
j] = psi2[
i] * psi1[
j];
2294 double psi1[2], psi2[2], psi3[2];
2295 double dpsi1[2], dpsi2[2], dpsi3[2];
2307 for (
unsigned i = 0;
i < 2;
i++)
2309 for (
unsigned j = 0;
j < 2;
j++)
2311 for (
unsigned k = 0;
k < 2;
k++)
2314 ppsi[4 *
i + 2 *
j +
k] = psi3[
i] * psi2[
j] * psi1[
k];
2315 dppsidx(4 *
i + 2 *
j +
k, 0) = psi3[
i] * psi2[
j] * dpsi1[
k];
2316 dppsidx(4 *
i + 2 *
j +
k, 1) = psi3[
i] * dpsi2[
j] * psi1[
k];
2317 dppsidx(4 *
i + 2 *
j +
k, 2) = dpsi3[
i] * psi2[
j] * psi1[
k];
2326 dshape_local(
s, psi, dpsi);
2332 const double det = local_to_eulerian_mapping(dpsi, inverse_jacobian);
2336 transform_derivatives(inverse_jacobian, dppsidx);
2355 double psi1[2], psi2[2], psi3[2];
2364 for (
unsigned i = 0;
i < 2;
i++)
2366 for (
unsigned j = 0;
j < 2;
j++)
2368 for (
unsigned k = 0;
k < 2;
k++)
2371 psi[4 *
i + 2 *
j +
k] = psi3[
i] * psi2[
j] * psi1[
k];
2381 template<
unsigned DIM>
2386 this->pshape_nst(
s, psi);
2447 template<
class TAYLOR_HOOD_ELEMENT>
2469 if (fld < this->
dim())
2472 unsigned nnod = this->
nnode();
2473 for (
unsigned j = 0;
j < nnod;
j++)
2476 data_values.push_back(std::make_pair(this->
node_pt(
j), fld));
2483 unsigned Pconv_size = this->
dim() + 1;
2484 for (
unsigned j = 0;
j < Pconv_size;
j++)
2487 unsigned vertex_index = this->Pconv[
j];
2488 data_values.push_back(
2489 std::make_pair(this->
node_pt(vertex_index), fld));
2501 return this->
dim() + 1;
2510 if (fld == this->
dim())
2534 unsigned n_dim = this->
dim();
2535 unsigned n_node = this->
nnode();
2540 this->pshape_nst(
s, psi);
2542 Shape psif(n_node), testf(n_node);
2543 DShape dpsifdx(n_node, n_dim), dtestfdx(n_node, n_dim);
2546 double J = this->dshape_and_dtest_eulerian_nst(
2547 s, psif, dpsifdx, testf, dtestfdx);
2552 Shape testf(n_node);
2553 DShape dpsifdx(n_node, n_dim), dtestfdx(n_node, n_dim);
2557 this->dshape_and_dtest_eulerian_nst(
s, psi, dpsifdx, testf, dtestfdx);
2566 const unsigned& fld,
2569 unsigned n_dim = this->
dim();
2570 unsigned n_node = this->
nnode();
2575 return this->interpolated_p_nst(
t,
s);
2581 unsigned u_nodal_index = this->u_index_nst(fld);
2587 this->
shape(s, psi);
2590 double interpolated_u = 0.0;
2593 for (
unsigned l = 0; l < n_node; l++)
2595 interpolated_u += this->
nodal_value(t, l, u_nodal_index) * psi[l];
2597 return interpolated_u;
2605 if (fld == this->
dim())
2607 return this->npres_nst();
2611 return this->
nnode();
2619 if (fld == this->
dim())
2621 return this->p_local_eqn(
j);
2625 const unsigned u_nodal_index = this->u_index_nst(fld);
2636 template<
class ELEMENT>
2649 template<
class ELEMENT>
2662 template<
class CROUZEIX_RAVIART_ELEMENT>
2683 if (fld < this->
dim())
2686 const unsigned n_node = this->
nnode();
2687 for (
unsigned n = 0;
n < n_node;
n++)
2690 data_values.push_back(std::make_pair(this->
node_pt(
n), fld));
2697 const unsigned n_press = this->npres_nst();
2699 for (
unsigned j = 0;
j < n_press;
j++)
2701 data_values.push_back(std::make_pair(
2714 return this->
dim() + 1;
2723 if (fld == this->
dim())
2747 unsigned n_dim = this->
dim();
2748 unsigned n_node = this->
nnode();
2753 this->pshape_nst(
s, psi);
2755 Shape psif(n_node), testf(n_node);
2756 DShape dpsifdx(n_node, n_dim), dtestfdx(n_node, n_dim);
2759 double J = this->dshape_and_dtest_eulerian_nst(
2760 s, psif, dpsifdx, testf, dtestfdx);
2765 Shape testf(n_node);
2766 DShape dpsifdx(n_node, n_dim), dtestfdx(n_node, n_dim);
2770 this->dshape_and_dtest_eulerian_nst(
s, psi, dpsifdx, testf, dtestfdx);
2779 const unsigned& fld,
2782 unsigned n_dim = this->
dim();
2787 return this->interpolated_p_nst(
s);
2792 return this->interpolated_u_nst(
t,
s, fld);
2800 if (fld == this->
dim())
2802 return this->npres_nst();
2806 return this->
nnode();
2814 if (fld == this->
dim())
2816 return this->p_local_eqn(
j);
2820 const unsigned u_nodal_index = this->u_index_nst(fld);
2831 template<
class ELEMENT>
2845 template<
class ELEMENT>
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
int data[]
Definition: Map_placement_new.cpp:1
void load(Archive &ar, ParticleHandler &handl)
Definition: Particles.h:21
float * p
Definition: Tutorial_Map_using.cpp:9
long & eqn_number(const unsigned &i)
Return the equation number of the i-th stored variable.
Definition: nodes.h:367
void pin(const unsigned &i)
Pin the i-th stored variable.
Definition: nodes.h:385
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
Definition: nodes.h:238
void set_value(const unsigned &i, const double &value_)
Definition: nodes.h:271
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
Definition: nodes.h:483
double value(const unsigned &i) const
Definition: nodes.h:293
unsigned ntstorage() const
Definition: nodes.cc:879
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:1829
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:1842
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2423
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2435
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2851
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2655
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:1806
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:1817
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2400
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2411
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2837
FaceGeometry()
Definition: generalised_newtonian_navier_stokes_elements.h:2641
Definition: elements.h:4998
Definition: elements.h:1313
virtual unsigned nplot_points_paraview(const unsigned &nplot) const
Definition: elements.h:2862
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
Definition: elements.h:2175
double nodal_value(const unsigned &n, const unsigned &i) const
Definition: elements.h:2593
double size() const
Definition: elements.cc:4290
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
virtual void shape(const Vector< double > &s, Shape &psi) const =0
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Definition: elements.h:1432
unsigned dim() const
Definition: elements.h:2611
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Definition: elements.h:1759
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
Definition: elements.h:1963
virtual void get_s_plot(const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const
Definition: elements.h:3148
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Definition: elements.h:1765
static double Default_fd_jacobian_step
Definition: elements.h:1198
Data *& internal_data_pt(const unsigned &i)
Return a pointer to i-th internal data object.
Definition: elements.h:622
unsigned ninternal_data() const
Return the number of internal data objects.
Definition: elements.h:823
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
A Base class defining the generalise Newtonian constitutive relation.
Definition: generalised_newtonian_constitutive_models.h:42
Definition: generalised_newtonian_navier_stokes_elements.h:120
virtual double dpshape_and_dptest_eulerian_nst(const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const =0
void(* NavierStokesBodyForceFctPt)(const double &time, const Vector< double > &x, Vector< double > &body_force)
Definition: generalised_newtonian_navier_stokes_elements.h:124
virtual void dinterpolated_u_nst_ddata(const Vector< double > &s, const unsigned &i, Vector< double > &du_ddata, Vector< unsigned > &global_eqn_number)
Definition: generalised_newtonian_navier_stokes_elements.h:1175
static double Default_Physical_Constant_Value
Navier–Stokes equations static data.
Definition: generalised_newtonian_navier_stokes_elements.h:147
double * ReInvFr_pt
Definition: generalised_newtonian_navier_stokes_elements.h:181
virtual double get_source_nst(const double &time, const unsigned &ipt, const Vector< double > &x)
Definition: generalised_newtonian_navier_stokes_elements.h:318
static bool Pre_multiply_by_viscosity_ratio
Definition: generalised_newtonian_navier_stokes_elements.h:159
void output(FILE *file_pt)
Definition: generalised_newtonian_navier_stokes_elements.h:849
NavierStokesBodyForceFctPt body_force_fct_pt() const
Access function for the body-force pointer. Const version.
Definition: generalised_newtonian_navier_stokes_elements.h:510
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: generalised_newtonian_navier_stokes_elements.h:946
void output_fct(std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Definition: generalised_newtonian_navier_stokes_elements.cc:357
unsigned n_u_nst() const
Definition: generalised_newtonian_navier_stokes_elements.h:587
double * Viscosity_Ratio_pt
Definition: generalised_newtonian_navier_stokes_elements.h:165
bool Use_extrapolated_strainrate_to_compute_second_invariant
Definition: generalised_newtonian_navier_stokes_elements.h:197
virtual void extrapolated_strain_rate(const unsigned &ipt, DenseMatrix< double > &strain_rate) const
Definition: generalised_newtonian_navier_stokes_elements.h:700
virtual void fix_pressure(const unsigned &p_dof, const double &p_value)=0
Pin p_dof-th pressure dof and set it to value specified by p_value.
bool ALE_is_disabled
Definition: generalised_newtonian_navier_stokes_elements.h:202
virtual void get_body_force_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &result)
Definition: generalised_newtonian_navier_stokes_elements.h:250
GeneralisedNewtonianConstitutiveEquation< DIM > * Constitutive_eqn_pt
Pointer to the generalised Newtonian constitutive equation.
Definition: generalised_newtonian_navier_stokes_elements.h:193
void output(std::ostream &outfile)
Definition: generalised_newtonian_navier_stokes_elements.h:837
virtual void fill_in_generic_residual_contribution_nst(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, unsigned flag)
Definition: generalised_newtonian_navier_stokes_elements.cc:1608
std::string scalar_name_paraview(const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:809
virtual double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
static Vector< double > Default_Gravity_vector
Static default value for the gravity vector.
Definition: generalised_newtonian_navier_stokes_elements.h:154
void max_and_min_invariant_and_viscosity(double &min_invariant, double &max_invariant, double &min_viscosity, double &max_viscosity) const
Definition: generalised_newtonian_navier_stokes_elements.cc:1559
virtual double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, RankFourTensor< double > &d_dpsidx_dX, Shape &test, DShape &dtestdx, RankFourTensor< double > &d_dtestdx_dX, DenseMatrix< double > &djacobian_dX) const =0
unsigned nscalar_paraview() const
Definition: generalised_newtonian_navier_stokes_elements.h:756
virtual double dshape_and_dtest_eulerian_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void get_traction(const Vector< double > &s, const Vector< double > &N, Vector< double > &traction)
Definition: generalised_newtonian_navier_stokes_elements.cc:887
virtual void get_body_force_gradient_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, DenseMatrix< double > &d_body_force_dx)
Definition: generalised_newtonian_navier_stokes_elements.h:277
virtual void get_dresidual_dnodal_coordinates(RankThreeTensor< double > &dresidual_dnodal_coordinates)
Definition: generalised_newtonian_navier_stokes_elements.cc:2131
void strain_rate(const Vector< double > &s, DenseMatrix< double > &strain_rate) const
Strain-rate tensor: 1/2 (du_i/dx_j + du_j/dx_i)
Definition: generalised_newtonian_navier_stokes_elements.cc:1012
const double & viscosity_ratio() const
Definition: generalised_newtonian_navier_stokes_elements.h:455
void enable_ALE()
Definition: generalised_newtonian_navier_stokes_elements.h:632
void fill_in_contribution_to_dresiduals_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam)
Compute the element's residual Vector.
Definition: generalised_newtonian_navier_stokes_elements.h:957
double pressure_integral() const
Integral of pressure over element.
Definition: generalised_newtonian_navier_stokes_elements.cc:1513
const Vector< double > & g() const
Vector of gravitational components.
Definition: generalised_newtonian_navier_stokes_elements.h:492
virtual void extrapolated_strain_rate(const Vector< double > &s, DenseMatrix< double > &strain_rate) const
Definition: generalised_newtonian_navier_stokes_elements.cc:1175
double * Density_Ratio_pt
Definition: generalised_newtonian_navier_stokes_elements.h:169
void full_output(std::ostream &outfile)
Definition: generalised_newtonian_navier_stokes_elements.h:862
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: generalised_newtonian_navier_stokes_elements.h:934
virtual unsigned u_index_nst(const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:580
double du_dt_nst(const unsigned &n, const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:594
GeneralisedNewtonianConstitutiveEquation< DIM > *& constitutive_eqn_pt()
Access function for the constitutive equation pointer.
Definition: generalised_newtonian_navier_stokes_elements.h:528
const double & re_invfr() const
Global inverse Froude number.
Definition: generalised_newtonian_navier_stokes_elements.h:480
static double Default_Physical_Ratio_Value
Navier–Stokes equations static data.
Definition: generalised_newtonian_navier_stokes_elements.h:151
NavierStokesSourceFctPt source_fct_pt() const
Access function for the source-function pointer. Const version.
Definition: generalised_newtonian_navier_stokes_elements.h:522
double dissipation() const
Return integral of dissipation over element.
Definition: generalised_newtonian_navier_stokes_elements.cc:830
double u_nst(const unsigned &n, const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:562
void get_pressure_and_velocity_mass_matrix_diagonal(Vector< double > &press_mass_diag, Vector< double > &veloc_mass_diag, const unsigned &which_one=0)
Definition: generalised_newtonian_navier_stokes_elements.cc:82
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute the element's residual Vector.
Definition: generalised_newtonian_navier_stokes_elements.h:921
void output_vorticity(std::ostream &outfile, const unsigned &nplot)
Definition: generalised_newtonian_navier_stokes_elements.cc:762
void use_current_strainrate_to_compute_second_invariant()
Switch to fully implict evaluation of non-Newtonian const eqn.
Definition: generalised_newtonian_navier_stokes_elements.h:534
double(* NavierStokesSourceFctPt)(const double &time, const Vector< double > &x)
Definition: generalised_newtonian_navier_stokes_elements.h:130
double *& density_ratio_pt()
Pointer to Density ratio.
Definition: generalised_newtonian_navier_stokes_elements.h:474
virtual double p_nst(const unsigned &t, const unsigned &n_p) const =0
Pressure at local pressure "node" n_p at time level t.
virtual void pshape_nst(const Vector< double > &s, Shape &psi) const =0
Compute the pressure shape functions at local coordinate s.
void get_vorticity(const Vector< double > &s, Vector< double > &vorticity) const
Compute the vorticity vector at local coordinate s.
void point_output_data(const Vector< double > &s, Vector< double > &data)
Definition: generalised_newtonian_navier_stokes_elements.h:1272
void use_extrapolated_strainrate_to_compute_second_invariant()
Use extrapolation for non-Newtonian const eqn.
Definition: generalised_newtonian_navier_stokes_elements.h:540
double interpolated_p_nst(const unsigned &t, const Vector< double > &s) const
Return FE interpolated pressure at local coordinate s at time level t.
Definition: generalised_newtonian_navier_stokes_elements.h:1249
double(* NavierStokesPressureAdvDiffSourceFctPt)(const Vector< double > &x)
Definition: generalised_newtonian_navier_stokes_elements.h:137
void fill_in_contribution_to_djacobian_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam)
Definition: generalised_newtonian_navier_stokes_elements.h:972
double d_kin_energy_dt() const
Get integral of time derivative of kinetic energy over element.
Definition: generalised_newtonian_navier_stokes_elements.cc:1415
GeneralisedNewtonianNavierStokesEquations()
Definition: generalised_newtonian_navier_stokes_elements.h:403
double *& re_invfr_pt()
Pointer to global inverse Froude number.
Definition: generalised_newtonian_navier_stokes_elements.h:486
void pin_all_non_pressure_dofs(std::map< Data *, std::vector< int >> &eqn_number_backup)
Pin all non-pressure dofs and backup eqn numbers.
Definition: generalised_newtonian_navier_stokes_elements.h:1001
double *& re_st_pt()
Pointer to product of Reynolds and Strouhal number (=Womersley number)
Definition: generalised_newtonian_navier_stokes_elements.h:448
void interpolated_u_nst(const Vector< double > &s, Vector< double > &veloc) const
Compute vector of FE interpolated velocity u at local coordinate s.
Definition: generalised_newtonian_navier_stokes_elements.h:1093
void fill_in_contribution_to_djacobian_and_dmass_matrix_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam)
Definition: generalised_newtonian_navier_stokes_elements.h:988
void scalar_value_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const
Definition: generalised_newtonian_navier_stokes_elements.h:763
static int Pressure_not_stored_at_node
Definition: generalised_newtonian_navier_stokes_elements.h:143
double interpolated_u_nst(const Vector< double > &s, const unsigned &i) const
Return FE interpolated velocity u[i] at local coordinate s.
Definition: generalised_newtonian_navier_stokes_elements.h:1118
NavierStokesBodyForceFctPt & body_force_fct_pt()
Access function for the body-force pointer.
Definition: generalised_newtonian_navier_stokes_elements.h:504
NavierStokesBodyForceFctPt Body_force_fct_pt
Pointer to body force function.
Definition: generalised_newtonian_navier_stokes_elements.h:187
Vector< double > *& g_pt()
Pointer to Vector of gravitational components.
Definition: generalised_newtonian_navier_stokes_elements.h:498
virtual int p_nodal_index_nst() const
Definition: generalised_newtonian_navier_stokes_elements.h:650
double u_nst(const unsigned &t, const unsigned &n, const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:569
static Vector< double > Gamma
Vector to decide whether the stress-divergence form is used or not.
Definition: generalised_newtonian_navier_stokes_elements.h:425
NavierStokesSourceFctPt & source_fct_pt()
Access function for the source-function pointer.
Definition: generalised_newtonian_navier_stokes_elements.h:516
virtual void fill_in_generic_dresidual_contribution_nst(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam, unsigned flag)
Definition: generalised_newtonian_navier_stokes_elements.cc:2094
virtual void get_source_gradient_nst(const double &time, const unsigned &ipt, const Vector< double > &x, Vector< double > &gradient)
Definition: generalised_newtonian_navier_stokes_elements.h:340
NavierStokesSourceFctPt Source_fct_pt
Pointer to volumetric source function.
Definition: generalised_newtonian_navier_stokes_elements.h:190
double kin_energy() const
Get integral of kinetic energy over element.
Definition: generalised_newtonian_navier_stokes_elements.cc:1366
virtual unsigned npres_nst() const =0
Function to return number of pressure degrees of freedom.
double *& viscosity_ratio_pt()
Pointer to Viscosity Ratio.
Definition: generalised_newtonian_navier_stokes_elements.h:461
void get_load(const Vector< double > &s, const Vector< double > &N, Vector< double > &load)
Definition: generalised_newtonian_navier_stokes_elements.h:734
const double & density_ratio() const
Definition: generalised_newtonian_navier_stokes_elements.h:468
double *& re_pt()
Pointer to Reynolds number.
Definition: generalised_newtonian_navier_stokes_elements.h:442
double * Re_pt
Pointer to global Reynolds number.
Definition: generalised_newtonian_navier_stokes_elements.h:174
double interpolated_u_nst(const unsigned &t, const Vector< double > &s, const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:1143
double * ReSt_pt
Pointer to global Reynolds number x Strouhal number (=Womersley)
Definition: generalised_newtonian_navier_stokes_elements.h:177
const double & re_st() const
Product of Reynolds and Strouhal number (=Womersley number)
Definition: generalised_newtonian_navier_stokes_elements.h:436
virtual double p_nst(const unsigned &n_p) const =0
virtual double interpolated_p_nst(const Vector< double > &s) const
Return FE interpolated pressure at local coordinate s.
Definition: generalised_newtonian_navier_stokes_elements.h:1227
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Definition: generalised_newtonian_navier_stokes_elements.cc:200
Vector< double > * G_pt
Pointer to global gravity Vector.
Definition: generalised_newtonian_navier_stokes_elements.h:184
const double & re() const
Reynolds number.
Definition: generalised_newtonian_navier_stokes_elements.h:430
void disable_ALE()
Definition: generalised_newtonian_navier_stokes_elements.h:623
void fill_in_contribution_to_hessian_vector_products(Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product)
Definition: generalised_newtonian_navier_stokes_elements.cc:2112
virtual void pshape_nst(const Vector< double > &s, Shape &psi, Shape &test) const =0
void output_veloc(std::ostream &outfile, const unsigned &nplot, const unsigned &t)
Definition: generalised_newtonian_navier_stokes_elements.cc:471
Definition: generalised_newtonian_navier_stokes_elements.h:1305
void full_output(std::ostream &outfile)
Definition: generalised_newtonian_navier_stokes_elements.h:1466
void output(std::ostream &outfile)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:1438
unsigned P_nst_internal_index
Definition: generalised_newtonian_navier_stokes_elements.h:1313
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Definition: generalised_newtonian_navier_stokes_elements.cc:2673
void output(FILE *file_pt)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:1451
void identify_load_data(std::set< std::pair< Data *, unsigned >> &paired_load_data)
Definition: generalised_newtonian_navier_stokes_elements.cc:2608
double dpshape_and_dptest_eulerian_nst(const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const
double dshape_and_dtest_eulerian_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: generalised_newtonian_navier_stokes_elements.h:1507
double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: generalised_newtonian_navier_stokes_elements.h:1529
void output(std::ostream &outfile, const unsigned &nplot)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:1444
double p_nst(const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:1381
void output(FILE *file_pt, const unsigned &nplot)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:1457
virtual unsigned required_nvalue(const unsigned &n) const
Number of values (pinned or dofs) required at local node n.
Definition: generalised_newtonian_navier_stokes_elements.cc:2591
void full_output(std::ostream &outfile, const unsigned &nplot)
Definition: generalised_newtonian_navier_stokes_elements.h:1474
unsigned ndof_types() const
Definition: generalised_newtonian_navier_stokes_elements.h:1483
double p_nst(const unsigned &t, const unsigned &i) const
Definition: generalised_newtonian_navier_stokes_elements.h:1389
void fix_pressure(const unsigned &p_dof, const double &p_value)
Pin p_dof-th pressure dof and set it to value specified by p_value.
Definition: generalised_newtonian_navier_stokes_elements.h:1408
void pshape_nst(const Vector< double > &s, Shape &psi) const
Pressure shape functions at local coordinate s.
static const unsigned Initial_Nvalue[]
Static array of ints to hold required number of variables at nodes.
Definition: generalised_newtonian_navier_stokes_elements.h:1308
int p_local_eqn(const unsigned &n) const
Return the local equation numbers for the pressure values.
Definition: generalised_newtonian_navier_stokes_elements.h:1402
GeneralisedNewtonianQCrouzeixRaviartElement()
Constructor, there are DIM+1 internal values (for the pressure)
Definition: generalised_newtonian_navier_stokes_elements.h:1358
double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, RankFourTensor< double > &d_dpsidx_dX, Shape &test, DShape &dtestdx, RankFourTensor< double > &d_dtestdx_dX, DenseMatrix< double > &djacobian_dX) const
void identify_pressure_data(std::set< std::pair< Data *, unsigned >> &paired_pressure_data)
Definition: generalised_newtonian_navier_stokes_elements.cc:2645
unsigned npres_nst() const
Return number of pressure values.
Definition: generalised_newtonian_navier_stokes_elements.h:1395
Definition: generalised_newtonian_navier_stokes_elements.h:1860
GeneralisedNewtonianQTaylorHoodElement()
Constructor, no internal data points.
Definition: generalised_newtonian_navier_stokes_elements.h:1913
double dshape_and_dtest_eulerian_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: generalised_newtonian_navier_stokes_elements.h:2049
virtual int p_nodal_index_nst() const
Set the value at which the pressure is stored in the nodes.
Definition: generalised_newtonian_navier_stokes_elements.h:1935
unsigned ndof_types() const
Definition: generalised_newtonian_navier_stokes_elements.h:2025
double dpshape_and_dptest_eulerian_nst(const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const
void identify_pressure_data(std::set< std::pair< Data *, unsigned >> &paired_pressure_data)
Definition: generalised_newtonian_navier_stokes_elements.cc:2811
void pshape_nst(const Vector< double > &s, Shape &psi) const
Pressure shape functions at local coordinate s.
void output(FILE *file_pt, const unsigned &nplot)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:2017
double p_nst(const unsigned &t, const unsigned &n_p) const
Definition: generalised_newtonian_navier_stokes_elements.h:1955
double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, RankFourTensor< double > &d_dpsidx_dX, Shape &test, DShape &dtestdx, RankFourTensor< double > &d_dtestdx_dX, DenseMatrix< double > &djacobian_dX) const
virtual unsigned required_nvalue(const unsigned &n) const
Definition: generalised_newtonian_navier_stokes_elements.h:1920
static const unsigned Pconv[]
Definition: generalised_newtonian_navier_stokes_elements.h:1868
int p_local_eqn(const unsigned &n) const
Return the local equation numbers for the pressure values.
Definition: generalised_newtonian_navier_stokes_elements.h:1941
void output(FILE *file_pt)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:2011
void identify_load_data(std::set< std::pair< Data *, unsigned >> &paired_load_data)
Definition: generalised_newtonian_navier_stokes_elements.cc:2775
unsigned npres_nst() const
Return number of pressure values.
Definition: generalised_newtonian_navier_stokes_elements.h:1961
double p_nst(const unsigned &n_p) const
Definition: generalised_newtonian_navier_stokes_elements.h:1948
void output(std::ostream &outfile)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:1999
void output(std::ostream &outfile, const unsigned &nplot)
Redirect output to NavierStokesEquations output.
Definition: generalised_newtonian_navier_stokes_elements.h:2005
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Definition: generalised_newtonian_navier_stokes_elements.cc:2839
static const unsigned Initial_Nvalue[]
Static array of ints to hold number of variables at node.
Definition: generalised_newtonian_navier_stokes_elements.h:1863
void fix_pressure(const unsigned &p_dof, const double &p_value)
Pin p_dof-th pressure dof and set it to value specified by p_value.
Definition: generalised_newtonian_navier_stokes_elements.h:1967
double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: generalised_newtonian_navier_stokes_elements.h:2074
Definition: generalised_newtonian_navier_stokes_elements.h:58
virtual void get_pressure_and_velocity_mass_matrix_diagonal(Vector< double > &press_mass_diag, Vector< double > &veloc_mass_diag, const unsigned &which_one=0)=0
virtual int p_nodal_index_nst() const =0
virtual void pin_all_non_pressure_dofs(std::map< Data *, std::vector< int >> &eqn_number_backup)=0
Pin all non-pressure dofs and backup eqn numbers of all Data.
GeneralisedNewtonianTemplateFreeNavierStokesEquationsBase()
Constructor (empty)
Definition: generalised_newtonian_navier_stokes_elements.h:61
virtual int p_local_eqn(const unsigned &n) const =0
virtual ~GeneralisedNewtonianTemplateFreeNavierStokesEquationsBase()
Virtual destructor (empty)
Definition: generalised_newtonian_navier_stokes_elements.h:64
TimeStepper *& time_stepper_pt()
Definition: geom_objects.h:192
virtual double knot(const unsigned &i, const unsigned &j) const =0
Return local coordinate s[j] of i-th integration point.
Definition: matrices.h:74
Definition: elements.h:5231
Definition: generalised_newtonian_constitutive_models.h:72
TimeStepper *& position_time_stepper_pt()
Return a pointer to the position timestepper.
Definition: nodes.h:1022
Definition: oomph_definitions.h:222
Definition: elements.h:3439
Definition: projection.h:183
Crouzeix Raviart upgraded to become projectable.
Definition: generalised_newtonian_navier_stokes_elements.h:2665
unsigned nhistory_values_for_coordinate_projection()
Definition: generalised_newtonian_navier_stokes_elements.h:2736
double get_field(const unsigned &t, const unsigned &fld, const Vector< double > &s)
Definition: generalised_newtonian_navier_stokes_elements.h:2778
int local_equation(const unsigned &fld, const unsigned &j)
Return local equation number of value j in field fld.
Definition: generalised_newtonian_navier_stokes_elements.h:2812
ProjectableGeneralisedNewtonianCrouzeixRaviartElement()
Definition: generalised_newtonian_navier_stokes_elements.h:2669
unsigned nfields_for_projection()
Definition: generalised_newtonian_navier_stokes_elements.h:2712
Vector< std::pair< Data *, unsigned > > data_values_of_field(const unsigned &fld)
Definition: generalised_newtonian_navier_stokes_elements.h:2677
unsigned nhistory_values_for_projection(const unsigned &fld)
Definition: generalised_newtonian_navier_stokes_elements.h:2721
double jacobian_and_shape_of_field(const unsigned &fld, const Vector< double > &s, Shape &psi)
Definition: generalised_newtonian_navier_stokes_elements.h:2743
unsigned nvalue_of_field(const unsigned &fld)
Return number of values in field fld.
Definition: generalised_newtonian_navier_stokes_elements.h:2798
Taylor Hood upgraded to become projectable.
Definition: generalised_newtonian_navier_stokes_elements.h:2450
unsigned nhistory_values_for_coordinate_projection()
Definition: generalised_newtonian_navier_stokes_elements.h:2523
double jacobian_and_shape_of_field(const unsigned &fld, const Vector< double > &s, Shape &psi)
Definition: generalised_newtonian_navier_stokes_elements.h:2530
unsigned nfields_for_projection()
Definition: generalised_newtonian_navier_stokes_elements.h:2499
Vector< std::pair< Data *, unsigned > > data_values_of_field(const unsigned &fld)
Definition: generalised_newtonian_navier_stokes_elements.h:2463
unsigned nvalue_of_field(const unsigned &fld)
Return number of values in field fld.
Definition: generalised_newtonian_navier_stokes_elements.h:2603
unsigned nhistory_values_for_projection(const unsigned &fld)
Definition: generalised_newtonian_navier_stokes_elements.h:2508
ProjectableGeneralisedNewtonianTaylorHoodElement()
Definition: generalised_newtonian_navier_stokes_elements.h:2454
double get_field(const unsigned &t, const unsigned &fld, const Vector< double > &s)
Definition: generalised_newtonian_navier_stokes_elements.h:2565
int local_equation(const unsigned &fld, const unsigned &j)
Return local equation number of value j in field fld.
Definition: generalised_newtonian_navier_stokes_elements.h:2617
Definition: Qelements.h:459
A Rank 4 Tensor class.
Definition: matrices.h:1701
A Rank 3 Tensor class.
Definition: matrices.h:1370
Data *const & variable_position_pt() const
Pointer to variable_position data (const version)
Definition: nodes.h:1765
Definition: timesteppers.h:231
unsigned ntstorage() const
Definition: timesteppers.h:601
virtual double weight(const unsigned &i, const unsigned &j) const
Access function for j-th weight for the i-th derivative.
Definition: timesteppers.h:594
bool is_steady() const
Definition: timesteppers.h:389
@ N
Definition: constructor.cpp:22
RealScalar s
Definition: level1_cplx_impl.h:130
char char char int int * k
Definition: level2_impl.h:374
#define DIM
Definition: linearised_navier_stokes_elements.h:44
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 pow(const bfloat16 &a, const bfloat16 &b)
Definition: BFloat16.h:625
EIGEN_DEVICE_FUNC const Scalar & q
Definition: SpecialFunctionsImpl.h:2019
void body_force(const double &time, const Vector< double > &x, Vector< double > &result)
Definition: axisym_linear_elasticity/cylinder/cylinder.cc:96
void source(const Vector< double > &x, Vector< double > &f)
Source function.
Definition: unstructured_two_d_circle.cc:46
int error
Definition: calibrate.py:297
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
void dshape< 2 >(const double &s, double *DPsi)
Derivatives of 1D shape functions specialised to linear order (2 Nodes)
Definition: shape.h:616
void shape< 2 >(const double &s, double *Psi)
1D shape functions specialised to linear order (2 Nodes)
Definition: shape.h:608
std::string to_string(T object, unsigned float_precision=8)
Definition: oomph_utilities.h:189
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
Definition: indexed_view.cpp:20
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
void product(const MatrixType &m)
Definition: product.h:42
void set(Container &c, Position position, const Value &value)
Definition: stdlist_overload.cpp:36
const char Y
Definition: test/EulerAngles.cpp:32
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2