27 #ifndef OOMPH_SPACETIME_NAVIER_STOKES_ELEMENTS_HEADER
28 #define OOMPH_SPACETIME_NAVIER_STOKES_ELEMENTS_HEADER
32 #include <oomph-lib-config.h>
45 class FpPressureAdvDiffRobinBCSpaceTimeElementBase
46 :
public virtual FaceElement
61 const unsigned& compute_jacobian_flag) = 0;
76 template<
class ELEMENT>
89 const bool& called_from_refineable_constructor =
false)
98 if (!called_from_refineable_constructor)
101 if (element_pt->
dim() == 3)
114 std::ostringstream error_message_stream;
118 <<
"This flux element will not work correctly "
119 <<
"if nodes are hanging!" << std::endl;
143 const unsigned& flag);
150 std::ostringstream error_message;
153 error_message <<
"fill_in_contribution_to_residuals() must not be "
154 <<
"called directly.\nsince it uses the local equation "
155 <<
"numbering of the bulk element\nwhich calls the "
156 <<
"relevant helper function directly." << std::endl;
169 std::ostringstream error_message;
172 error_message <<
"fill_in_contribution_to_jacobian() must not be "
173 <<
"called directly.\nsince it uses the local equation "
174 <<
"numbering of the bulk element\nwhich calls the "
175 <<
"relevant helper function directly." << std::endl;
192 void output(std::ostream& outfile,
const unsigned& nplot)
210 template<
class ELEMENT>
213 Vector<double>& residuals,
215 const unsigned& flag)
218 throw OomphLibError(
"You shouldn't be using this yet!",
224 unsigned my_dim = this->dim();
227 Vector<double>
s(my_dim, 0.0);
230 Vector<double> s_bulk(my_dim + 1, 0.0);
234 Vector<double> unit_normal(my_dim + 1, 0.0);
238 Vector<double>
velocity(my_dim, 0.0);
241 unsigned n_intpt = this->integral_pt()->nweight();
247 int local_unknown = 0;
250 ELEMENT* bulk_el_pt =
dynamic_cast<ELEMENT*
>(this->bulk_element_pt());
253 unsigned n_pres = bulk_el_pt->npres_nst();
256 double re = bulk_el_pt->re();
265 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
268 double w = this->integral_pt()->weight(ipt);
271 for (
unsigned i = 0;
i < my_dim;
i++)
274 s[
i] = this->integral_pt()->knot(ipt,
i);
278 s_bulk = this->local_coordinate_in_bulk(
s);
284 this->outer_unit_normal(ipt, unit_normal);
287 bulk_el_pt->interpolated_u_nst(s_bulk,
velocity);
293 for (
unsigned i = 0;
i < my_dim;
i++)
307 double interpolated_press = bulk_el_pt->interpolated_p_nst(s_bulk);
310 bulk_el_pt->pshape_nst(s_bulk, psip, testp);
313 double J = this->J_eulerian(
s);
320 for (
unsigned l = 0; l < n_pres; l++)
323 local_eqn = bulk_el_pt->p_local_eqn(l);
329 residuals[local_eqn] -= re *
flux * interpolated_press * testp[l] *
W;
335 for (
unsigned l2 = 0; l2 < n_pres; l2++)
338 local_unknown = bulk_el_pt->p_local_eqn(l2);
341 if (local_unknown >= 0)
344 jacobian(local_eqn, local_unknown) -=
345 re *
flux * psip[l2] * testp[l] *
W;
362 class TemplateFreeSpaceTimeNavierStokesEquationsBase
363 :
public virtual NavierStokesElementWithDiagonalMassMatrices,
364 public virtual FiniteElement
406 std::map<
Data*, std::vector<int>>& eqn_number_backup) = 0;
413 const unsigned& face_index) = 0;
429 const unsigned& which_one = 0) = 0;
462 template<
unsigned DIM>
561 DShape& dtestdx)
const = 0;
572 DShape& dtestdx)
const = 0;
596 DShape& dptestdx)
const = 0;
619 (*Body_force_fct_pt)(time,
x, result);
652 for (
unsigned i = 0;
i <
DIM;
i++)
661 for (
unsigned j = 0;
j <
DIM;
j++)
664 d_body_force_dx(
j,
i) = (body_force_pls[
j] -
body_force[
j]) / eps_fd;
710 double source_pls = 0.0;
716 for (
unsigned i = 0;
i <
DIM;
i++)
725 for (
unsigned j = 0;
j <
DIM;
j++)
728 gradient[
i] = (source_pls -
source) / eps_fd;
744 const unsigned& flag);
753 const unsigned& flag);
761 double*
const& parameter_pt,
765 const unsigned& flag);
824 if (strouhal_data_pt == 0)
827 std::ostringstream error_message_stream;
831 <<
"User supplied Strouhal number as external data\n"
832 <<
"but the pointer provided is a null pointer!" << std::endl;
861 const double&
re()
const
883 unsigned data_index = 0;
886 unsigned re_st_index = 0;
907 unsigned data_index = 0;
910 unsigned re_st_index = 0;
1046 double u_nst(
const unsigned&
n,
const unsigned&
i)
const
1053 double u_nst(
const unsigned&
t,
const unsigned&
n,
const unsigned&
i)
const
1060 throw OomphLibError(
"Space-time elements cannot have history values!",
1082 std::ostringstream error_message_stream;
1085 error_message_stream <<
"Input index " <<
i <<
" does not correspond "
1086 <<
"to a velocity component when DIM=" <<
DIM
1087 <<
"!" << std::endl;
1139 const unsigned&
i)
const
1142 unsigned n_node =
nnode();
1155 double interpolated_dudt = 0.0;
1161 for (
unsigned l = 0; l < n_node; l++)
1164 interpolated_dudt +=
nodal_value(l, u_nodal_index) * dpsidx(l,
DIM);
1168 return interpolated_dudt;
1192 virtual double p_nst(
const unsigned& n_p)
const = 0;
1195 virtual double p_nst(
const unsigned&
t,
const unsigned& n_p)
const = 0;
1198 virtual void fix_pressure(
const unsigned& p_dof,
const double& p_value) = 0;
1277 const unsigned& which_one = 0);
1291 const unsigned& nplot)
const
1300 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
1322 std::stringstream error_stream;
1325 error_stream <<
"These Navier Stokes elements only store " <<
DIM + 1
1327 <<
"but i is currently " <<
i << std::endl;
1342 std::ofstream& file_out,
1344 const unsigned& nplot,
1352 std::stringstream error_stream;
1355 error_stream <<
"These Navier Stokes elements only store " <<
DIM + 1
1356 <<
" fields, but i is currently " <<
i << std::endl;
1368 double interpolated_t = 0.0;
1377 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
1383 for (
unsigned i = 0;
i <
DIM;
i++)
1399 (*exact_soln_pt)(interpolated_t, spatial_coordinates,
exact_soln);
1428 std::stringstream error_stream;
1431 error_stream <<
"These Navier Stokes elements only store " <<
DIM + 1
1432 <<
" fields,\nbut i is currently " <<
i << std::endl;
1449 unsigned n_plot = 5;
1458 void output(std::ostream& outfile,
const unsigned& n_plot);
1466 unsigned n_plot = 5;
1475 void output(FILE* file_pt,
const unsigned& n_plot);
1484 unsigned n_plot = 5;
1501 const unsigned& nplot,
1514 const unsigned& nplot,
1522 const unsigned& nplot,
1583 unsigned compute_jacobian_flag = 0;
1590 compute_jacobian_flag);
1600 unsigned compute_jacobian_flag = 1;
1607 compute_jacobian_flag);
1619 unsigned compute_matrices_flag = 2;
1623 residuals, jacobian, mass_matrix, compute_matrices_flag);
1633 unsigned compute_jacobian_flag = 0;
1641 compute_jacobian_flag);
1648 double*
const& parameter_pt,
1653 unsigned compute_jacobian_flag = 1;
1661 compute_jacobian_flag);
1668 double*
const& parameter_pt,
1674 unsigned compute_matrices_flag = 2;
1680 dmass_matrix_dparam,
1681 compute_matrices_flag);
1691 unsigned compute_jacobian_flag = 0;
1705 unsigned compute_jacobian_flag = 1;
1709 residuals, jacobian, compute_jacobian_flag);
1715 std::map<
Data*, std::vector<int>>& eqn_number_backup)
1720 for (
unsigned j = 0;
j < nint;
j++)
1723 if (eqn_number_backup[data_pt].
size() == 0)
1725 unsigned nvalue = data_pt->
nvalue();
1726 eqn_number_backup[data_pt].resize(nvalue);
1727 for (
unsigned i = 0;
i < nvalue;
i++)
1730 eqn_number_backup[data_pt][
i] = data_pt->
eqn_number(
i);
1739 unsigned nnod = this->
nnode();
1740 for (
unsigned j = 0;
j < nnod;
j++)
1743 if (eqn_number_backup[nod_pt].
size() == 0)
1745 unsigned nvalue = nod_pt->
nvalue();
1746 eqn_number_backup[nod_pt].resize(nvalue);
1747 for (
unsigned i = 0;
i < nvalue;
i++)
1774 if (solid_nod_pt != 0)
1777 if (eqn_number_backup[solid_posn_data_pt].
size() == 0)
1779 unsigned nvalue = solid_posn_data_pt->
nvalue();
1780 eqn_number_backup[solid_posn_data_pt].resize(nvalue);
1781 for (
unsigned i = 0;
i < nvalue;
i++)
1784 eqn_number_backup[solid_posn_data_pt][
i] =
1788 solid_posn_data_pt->
pin(
i);
1801 const unsigned& face_index) = 0;
1808 std::ostream& outfile)
1811 for (
unsigned e = 0;
e < nel;
e++)
1815 outfile <<
"ZONE" << std::endl;
1820 for (
unsigned ipt = 0; ipt <
n; ipt++)
1822 for (
unsigned i = 0;
i <
DIM;
i++)
1828 for (
unsigned i = 0;
i <
DIM + 1;
i++)
1830 outfile <<
x[
i] <<
" ";
1832 for (
unsigned i = 0;
i <
DIM;
i++)
1834 outfile << unit_normal[
i] <<
" ";
1836 outfile << std::endl;
1848 for (
unsigned e = 0;
e < nel;
e++)
1869 unsigned n_node =
nnode();
1878 for (
unsigned i = 0;
i <
DIM;
i++)
1887 for (
unsigned l = 0; l < n_node; l++)
1900 unsigned n_node =
nnode();
1912 double interpolated_u = 0.0;
1915 for (
unsigned l = 0; l < n_node; l++)
1918 interpolated_u +=
nodal_value(l, u_nodal_index) * psi[l];
1922 return interpolated_u;
1930 const unsigned&
i)
const
1933 std::ostringstream error_message_stream;
1936 error_message_stream <<
"This interface doesn't make sense in "
1937 <<
"space-time elements!" << std::endl;
1957 unsigned n_node =
nnode();
1969 unsigned n_u_dof = 0;
1972 for (
unsigned l = 0; l < n_node; l++)
1978 if (global_eqn >= 0)
1986 du_ddata.resize(n_u_dof, 0.0);
1987 global_eqn_number.resize(n_u_dof, 0);
1992 for (
unsigned l = 0; l < n_node; l++)
1996 if (global_eqn >= 0)
1999 global_eqn_number[count] = global_eqn;
2001 du_ddata[count] = psi[l];
2020 double interpolated_p = 0.0;
2022 for (
unsigned l = 0; l < n_pres; l++)
2024 interpolated_p +=
p_nst(l) * psi[l];
2027 return (interpolated_p);
2042 double interpolated_p = 0.0;
2044 for (
unsigned l = 0; l < n_pres; l++)
2046 interpolated_p +=
p_nst(
t, l) * psi[l];
2049 return (interpolated_p);
2061 for (
unsigned i = 0;
i <
DIM + 1;
i++)
2068 for (
unsigned i = 0;
i <
DIM;
i++)
2089 template<
unsigned DIM>
2090 class QTaylorHoodSpaceTimeElement
2091 :
public virtual QElement<DIM + 1, 3>,
2092 public virtual SpaceTimeNavierStokesEquations<DIM>
2101 static const unsigned Pconv[];
2127 const unsigned& ipt,
2176 return static_cast<int>(
DIM);
2199 double p_nst(
const unsigned&
t,
const unsigned& n_p)
const
2211 return static_cast<unsigned>(
pow(2.0,
static_cast<int>(
DIM + 1)));
2247 std::set<std::pair<Data*, unsigned>>& paired_load_data);
2259 std::set<std::pair<Data*, unsigned>>& paired_pressure_data);
2271 void output(std::ostream& outfile,
const unsigned& nplot)
2287 void output(FILE* file_pt,
const unsigned& nplot)
2321 template<
unsigned DIM>
2323 const Vector<double>&
s,
2327 DShape& dtestdx)
const
2330 double J = this->dshape_eulerian(
s, psi, dpsidx);
2347 template<
unsigned DIM>
2348 inline double QTaylorHoodSpaceTimeElement<
2349 DIM>::dshape_and_dtest_eulerian_at_knot_nst(
const unsigned& ipt,
2353 DShape& dtestdx)
const
2356 double J = this->dshape_eulerian_at_knot(ipt, psi, dpsidx);
2423 for (
unsigned i = 0;
i < 2;
i++)
2426 for (
unsigned j = 0;
j < 2;
j++)
2429 for (
unsigned k = 0;
k < 2;
k++)
2432 ppsi[4 *
i + 2 *
j +
k] = psi3[
i] * psi2[
j] * psi1[
k];
2436 dppsidx(4 *
i + 2 *
j +
k, 0) = psi3[
i] * psi2[
j] * dpsi1[
k];
2440 dppsidx(4 *
i + 2 *
j +
k, 1) = psi3[
i] * dpsi2[
j] * psi1[
k];
2444 dppsidx(4 *
i + 2 *
j +
k, 2) = dpsi3[
i] * psi2[
j] * psi1[
k];
2456 dshape_local(
s, psi, dpsi);
2462 const double det = local_to_eulerian_mapping(dpsi, inverse_jacobian);
2466 transform_derivatives(inverse_jacobian, dppsidx);
2490 const unsigned& ipt,
2500 const double J = this->dshape_eulerian_at_knot(
2501 ipt, psi, dpsidx, djacobian_dX, d_dpsidx_dX);
2504 for (
unsigned i = 0;
i < 27;
i++)
2510 for (
unsigned k = 0;
k < 3;
k++)
2513 dtestdx(
i,
k) = dpsidx(
i,
k);
2516 for (
unsigned p = 0;
p < 3;
p++)
2519 for (
unsigned q = 0;
q < 27;
q++)
2523 d_dtestdx_dX(
p,
q,
i,
k) = d_dpsidx_dX(
p,
q,
i,
k);
2565 for (
unsigned i = 0;
i < 2;
i++)
2568 for (
unsigned j = 0;
j < 2;
j++)
2571 for (
unsigned k = 0;
k < 2;
k++)
2574 psi[4 *
i + 2 *
j +
k] = psi3[
i] * psi2[
j] * psi1[
k];
2584 template<
unsigned DIM>
2589 this->pshape_nst(
s, psi);
2600 class FaceGeometry<QTaylorHoodSpaceTimeElement<2>>
2612 class FaceGeometry<FaceGeometry<QTaylorHoodSpaceTimeElement<2>>>
2627 template<
class TAYLOR_HOOD_ELEMENT>
2628 class ProjectableTaylorHoodSpaceTimeElement
2629 :
public virtual ProjectableElement<TAYLOR_HOOD_ELEMENT>
2648 if (fld < this->dim() - 1)
2651 unsigned nnod = this->nnode();
2654 for (
unsigned j = 0;
j < nnod;
j++)
2657 data_values.push_back(std::make_pair(this->node_pt(
j), fld));
2665 unsigned Pconv_size = this->dim();
2668 for (
unsigned j = 0;
j < Pconv_size;
j++)
2671 unsigned vertex_index = this->Pconv[
j];
2674 data_values.push_back(
2675 std::make_pair(this->node_pt(vertex_index), fld));
2699 if (fld == this->dim())
2702 return this->node_pt(0)->ntstorage();
2708 return this->node_pt(0)->ntstorage();
2718 return this->node_pt(0)->position_time_stepper_pt()->ntstorage();
2729 unsigned n_dim = this->dim();
2732 unsigned n_node = this->nnode();
2738 this->pshape_nst(
s, psi);
2744 Shape testf(n_node);
2747 DShape dpsifdx(n_node, n_dim);
2750 DShape dtestfdx(n_node, n_dim);
2753 double J = this->dshape_and_dtest_eulerian_nst(
2754 s, psif, dpsifdx, testf, dtestfdx);
2763 Shape testf(n_node);
2766 DShape dpsifdx(n_node, n_dim);
2769 DShape dtestfdx(n_node, n_dim);
2773 this->dshape_and_dtest_eulerian_nst(
s, psi, dpsifdx, testf, dtestfdx);
2784 const unsigned& fld,
2787 unsigned n_dim = this->dim();
2788 unsigned n_node = this->nnode();
2793 return this->interpolated_p_nst(
t,
s);
2799 unsigned u_nodal_index = this->u_index_nst(fld);
2805 this->
shape(s, psi);
2808 double interpolated_u = 0.0;
2811 for (
unsigned l = 0; l < n_node; l++)
2813 interpolated_u += this->nodal_value(
t, l, u_nodal_index) * psi[l];
2815 return interpolated_u;
2823 if (fld == this->dim())
2825 return this->npres_nst();
2829 return this->nnode();
2837 if (fld == this->dim())
2839 return this->p_local_eqn(
j);
2843 const unsigned u_nodal_index = this->u_index_nst(fld);
2844 return this->nodal_local_eqn(
j, u_nodal_index);
2854 template<
class ELEMENT>
2855 class FaceGeometry<ProjectableTaylorHoodSpaceTimeElement<ELEMENT>>
2856 :
public virtual FaceGeometry<ELEMENT>
2866 template<
class ELEMENT>
2868 FaceGeometry<ProjectableTaylorHoodSpaceTimeElement<ELEMENT>>>
2869 :
public virtual FaceGeometry<FaceGeometry<ELEMENT>>
Matrix< Scalar, Dynamic, Dynamic > DenseMatrix
Definition: BenchSparseUtil.h:23
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Array< double, 1, 3 > e(1./3., 0.5, 2.)
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
int data[]
Definition: Map_placement_new.cpp:1
RowVector3d w
Definition: Matrix_resize_int.cpp:3
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
double * value_pt(const unsigned &i) const
Definition: nodes.h:324
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
Definition: elements.h:4338
int & face_index()
Definition: elements.h:4626
void outer_unit_normal(const Vector< double > &s, Vector< double > &unit_normal) const
Compute outer unit normal at the specified local coordinate.
Definition: elements.cc:6006
double interpolated_x(const Vector< double > &s, const unsigned &i) const
Definition: elements.h:4528
FaceGeometry()
Definition: spacetime_navier_stokes_elements.h:2872
FaceGeometry()
Constructor; empty.
Definition: spacetime_navier_stokes_elements.h:2617
FaceGeometry()
Definition: spacetime_navier_stokes_elements.h:2859
FaceGeometry()
Constructor; empty.
Definition: spacetime_navier_stokes_elements.h:2605
Definition: elements.h:4998
Definition: elements.h:1313
virtual unsigned nplot_points_paraview(const unsigned &nplot) const
Definition: elements.h:2862
virtual void local_coordinate_of_node(const unsigned &j, Vector< double > &s) const
Definition: elements.h:1842
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
virtual void output(std::ostream &outfile)
Definition: elements.h:3050
double size() const
Definition: elements.cc:4290
virtual void build_face_element(const int &face_index, FaceElement *face_element_pt)
Definition: elements.cc:5132
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
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3298
bool has_hanging_nodes() const
Definition: elements.h:2470
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:47
virtual ~FpPressureAdvDiffRobinBCSpaceTimeElementBase()
Empty virtual destructor.
Definition: spacetime_navier_stokes_elements.h:53
FpPressureAdvDiffRobinBCSpaceTimeElementBase()
Constructor.
Definition: spacetime_navier_stokes_elements.h:50
virtual void fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &compute_jacobian_flag)=0
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:81
void output(std::ostream &outfile, const unsigned &nplot)
Output function: x,y,[z],u,v,[w],p in tecplot format.
Definition: spacetime_navier_stokes_elements.h:192
void output(std::ostream &outfile)
Overload the output function.
Definition: spacetime_navier_stokes_elements.h:184
void fill_in_contribution_to_residuals(Vector< double > &residuals)
This function returns just the residuals.
Definition: spacetime_navier_stokes_elements.h:147
virtual void fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:212
FpPressureAdvDiffRobinBCSpaceTimeElement(FiniteElement *const &element_pt, const int &face_index, const bool &called_from_refineable_constructor=false)
Definition: spacetime_navier_stokes_elements.h:86
~FpPressureAdvDiffRobinBCSpaceTimeElement()
Empty destructor.
Definition: spacetime_navier_stokes_elements.h:134
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
This function returns the residuals and the jacobian.
Definition: spacetime_navier_stokes_elements.h:165
virtual void fill_in_generic_residual_contribution_fp_press_adv_diff_robin_bc(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
static double Default_fd_jacobian_step
Definition: elements.h:1198
Data *& external_data_pt(const unsigned &i)
Return a pointer to i-th external data object.
Definition: elements.h:659
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
unsigned add_external_data(Data *const &data_pt, const bool &fd=true)
Definition: elements.cc:307
static DenseMatrix< double > Dummy_matrix
Definition: elements.h:227
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.
Definition: matrices.h:74
Definition: oomph_definitions.h:222
double get_field(const unsigned &t, const unsigned &fld, const Vector< double > &s)
Definition: spacetime_navier_stokes_elements.h:2783
unsigned nfields_for_projection()
Definition: spacetime_navier_stokes_elements.h:2686
unsigned nvalue_of_field(const unsigned &fld)
Return number of values in field fld.
Definition: spacetime_navier_stokes_elements.h:2821
unsigned nhistory_values_for_coordinate_projection()
Definition: spacetime_navier_stokes_elements.h:2715
Vector< std::pair< Data *, unsigned > > data_values_of_field(const unsigned &fld)
Definition: spacetime_navier_stokes_elements.h:2642
int local_equation(const unsigned &fld, const unsigned &j)
Return local equation number of value j in field fld.
Definition: spacetime_navier_stokes_elements.h:2835
double jacobian_and_shape_of_field(const unsigned &fld, const Vector< double > &s, Shape &psi)
Definition: spacetime_navier_stokes_elements.h:2724
ProjectableTaylorHoodSpaceTimeElement()
Definition: spacetime_navier_stokes_elements.h:2634
unsigned nhistory_values_for_projection(const unsigned &fld)
Definition: spacetime_navier_stokes_elements.h:2696
Definition: Qelements.h:459
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:2120
void output(std::ostream &outfile)
Redirect output to NavierStokesEquations output.
Definition: spacetime_navier_stokes_elements.h:2263
virtual int p_nodal_index_nst() const
Set the value at which the pressure is stored in the nodes.
Definition: spacetime_navier_stokes_elements.h:2173
void output(FILE *file_pt, const unsigned &nplot)
Redirect output to NavierStokesEquations output.
Definition: spacetime_navier_stokes_elements.h:2287
QTaylorHoodSpaceTimeElement()
Constructor, no internal data points.
Definition: spacetime_navier_stokes_elements.h:2148
double p_nst(const unsigned &t, const unsigned &n_p) const
Definition: spacetime_navier_stokes_elements.h:2199
static const unsigned Initial_Nvalue[]
Static array of ints to hold number of variables at node.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:2123
void pshape_nst(const Vector< double > &s, Shape &psi) const
Pressure shape functions at local coordinate s.
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: spacetime_navier_stokes_elements.h:2216
static const unsigned Pconv[]
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:2128
void output(std::ostream &outfile, const unsigned &nplot)
Redirect output to NavierStokesEquations output.
Definition: spacetime_navier_stokes_elements.h:2271
virtual unsigned required_nvalue(const unsigned &n) const
Definition: spacetime_navier_stokes_elements.h:2155
int p_local_eqn(const unsigned &n) const
Return the local equation numbers for the pressure values.
Definition: spacetime_navier_stokes_elements.h:2181
double p_nst(const unsigned &n_p) const
Definition: spacetime_navier_stokes_elements.h:2190
void pshape_nst(const Vector< double > &s, Shape &psi, Shape &test) const
Pressure shape and test functions at local coordinte s.
void build_fp_press_adv_diff_robin_bc_element(const unsigned &face_index)
Definition: spacetime_navier_stokes_elements.h:2230
void identify_load_data(std::set< std::pair< Data *, unsigned >> &paired_load_data)
void identify_pressure_data(std::set< std::pair< Data *, unsigned >> &paired_pressure_data)
double dpshape_and_dptest_eulerian_nst(const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const
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
double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
void output(FILE *file_pt)
Redirect output to NavierStokesEquations output.
Definition: spacetime_navier_stokes_elements.h:2279
unsigned npres_nst() const
Return number of pressure values.
Definition: spacetime_navier_stokes_elements.h:2207
double dshape_and_dtest_eulerian_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
A Rank 4 Tensor class.
Definition: matrices.h:1701
A Rank 3 Tensor class.
Definition: matrices.h:1370
Definition: refineable_elements.h:97
Data *const & variable_position_pt() const
Pointer to variable_position data (const version)
Definition: nodes.h:1765
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:466
virtual double dpshape_and_dptest_eulerian_nst(const Vector< double > &s, Shape &ppsi, DShape &dppsidx, Shape &ptest, DShape &dptestdx) const =0
NavierStokesBodyForceFctPt & body_force_fct_pt()
Access function for the body-force pointer.
Definition: spacetime_navier_stokes_elements.h:983
double *& re_st_pt()
Pointer to ReSt number (can only assign to private member data)
Definition: spacetime_navier_stokes_elements.h:925
void get_pressure_and_velocity_mass_matrix_diagonal(Vector< double > &press_mass_diag, Vector< double > &veloc_mass_diag, const unsigned &which_one=0)
virtual void dinterpolated_u_nst_ddata(const Vector< double > &s, const unsigned &i, Vector< double > &du_ddata, Vector< unsigned > &global_eqn_number)
Definition: spacetime_navier_stokes_elements.h:1951
void fill_in_pressure_advection_diffusion_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: spacetime_navier_stokes_elements.h:1701
static Vector< double > Gamma
Navier-Stokes equations static data.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:833
double * ReInvFr_pt
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:525
int Pinned_fp_pressure_eqn
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:552
void disable_ALE()
Definition: spacetime_navier_stokes_elements.h:1174
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm)
virtual void fill_in_generic_residual_contribution_nst(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, const unsigned &flag)
void get_traction(const Vector< double > &s, const Vector< double > &N, Vector< double > &traction)
NavierStokesBodyForceFctPt Body_force_fct_pt
Pointer to body force function.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:531
void compute_error(FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
void full_output(std::ostream &outfile)
Definition: spacetime_navier_stokes_elements.h:1481
double dissipation(const Vector< double > &s) const
Return dissipation at local coordinate s.
virtual double dshape_and_dtest_eulerian_nst(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
NavierStokesPressureAdvDiffSourceFctPt Press_adv_diff_source_fct_pt
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:538
virtual int p_nodal_index_nst() const
Definition: spacetime_navier_stokes_elements.h:1203
void delete_pressure_advection_diffusion_robin_elements()
Definition: spacetime_navier_stokes_elements.h:1845
void compute_norm(Vector< double > &norm)
Compute the vector norm of the FEM solution.
void output_fct(std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
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 n_u_nst() const
Definition: spacetime_navier_stokes_elements.h:1103
void compute_error(FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
const double & re_st() const
ReSt parameter (const. version)
Definition: spacetime_navier_stokes_elements.h:877
void get_vorticity(const Vector< double > &s, double &vorticity) const
Compute the vorticity vector at local coordinate s.
double * Density_Ratio_pt
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:509
Vector< double > * G_pt
Pointer to global gravity Vector.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:528
double du_dt_nst(const unsigned &n, const unsigned &i) const
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:1149
NavierStokesBodyForceFctPt body_force_fct_pt() const
Access function for the body-force pointer. Const version.
Definition: spacetime_navier_stokes_elements.h:989
virtual double interpolated_p_nst(const Vector< double > &s) const
Return FE interpolated pressure at local coordinate s.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:2037
static double Default_Physical_Constant_Value
Navier-Stokes equations static data.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:491
void fill_in_contribution_to_hessian_vector_products(Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product)
NavierStokesSourceFctPt & source_fct_pt()
Access function for the source-function pointer.
Definition: spacetime_navier_stokes_elements.h:995
virtual double dshape_and_dtest_eulerian_at_knot_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void output(FILE *file_pt)
Definition: spacetime_navier_stokes_elements.h:1463
const double & re() const
Reynolds number.
Definition: spacetime_navier_stokes_elements.h:861
double kin_energy() const
Get integral of kinetic energy over element.
void point_output_data(const Vector< double > &s, Vector< double > &data)
Definition: spacetime_navier_stokes_elements.h:2055
void output_fct(std::ostream &outfile, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
const double & density_ratio() const
Definition: spacetime_navier_stokes_elements.h:947
int & pinned_fp_pressure_eqn()
Definition: spacetime_navier_stokes_elements.h:1023
NavierStokesSourceFctPt source_fct_pt() const
Access function for the source-function pointer. Const version.
Definition: spacetime_navier_stokes_elements.h:1001
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute the element's residual Vector.
Definition: spacetime_navier_stokes_elements.h:1580
void(* NavierStokesBodyForceFctPt)(const double &time, const Vector< double > &x, Vector< double > &body_force)
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:470
void store_strouhal_as_external_data(Data *strouhal_data_pt)
Function that tells us whether the period is stored as external data.
Definition: spacetime_navier_stokes_elements.h:820
virtual void fill_in_generic_pressure_advection_diffusion_contribution_nst(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.cc:1812
Vector< FpPressureAdvDiffRobinBCSpaceTimeElementBase * > Pressure_advection_diffusion_robin_element_pt
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:548
virtual double p_nst(const unsigned &n_p) const =0
bool ReynoldsStrouhal_is_stored_as_external_data
Definition: spacetime_navier_stokes_elements.h:521
double * ReSt_pt
Pointer to global Reynolds number x Strouhal number (= Womersley)
Definition: spacetime_navier_stokes_elements.h:517
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, const unsigned &flag)
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.cc:2443
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: spacetime_navier_stokes_elements.h:1613
double interpolated_du_dt_nst(const Vector< double > &s, const unsigned &i) const
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:1164
virtual double p_nst(const unsigned &t, const unsigned &n_p) const =0
Pressure at local pressure "node" n_p at time level t.
void output(std::ostream &outfile, const unsigned &n_plot)
double * Viscosity_Ratio_pt
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:505
void fill_in_contribution_to_dresiduals_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam)
Definition: spacetime_navier_stokes_elements.h:1629
const Vector< double > & g() const
Vector of gravitational components.
Definition: spacetime_navier_stokes_elements.h:971
NavierStokesPressureAdvDiffSourceFctPt & source_fct_for_pressure_adv_diff()
Definition: spacetime_navier_stokes_elements.h:1008
static int Pressure_not_stored_at_node
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:487
virtual void get_body_force_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &result)
Definition: spacetime_navier_stokes_elements.h:603
bool is_reynolds_strouhal_stored_as_external_data() const
Are we storing the Strouhal number as external data?
Definition: spacetime_navier_stokes_elements.h:853
void output(std::ostream &outfile)
Definition: spacetime_navier_stokes_elements.h:1446
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
double d_kin_energy_dt() const
Get integral of time derivative of kinetic energy over element.
double dissipation() const
Return integral of dissipation over element.
double *& re_pt()
Pointer to Reynolds number.
Definition: spacetime_navier_stokes_elements.h:869
void fill_in_pressure_advection_diffusion_residuals(Vector< double > &residuals)
Definition: spacetime_navier_stokes_elements.h:1687
double * Re_pt
Pointer to global Reynolds number.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:514
virtual void pshape_nst(const Vector< double > &s, Shape &psi, Shape &test) const =0
virtual unsigned npres_nst() const =0
Function to return number of pressure degrees of freedom.
virtual void fill_in_generic_pressure_advection_diffusion_contribution_nst(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
double interpolated_u_nst(const Vector< double > &s, const unsigned &i) const
Return FE interpolated velocity u[i] at local coordinate s.
Definition: spacetime_navier_stokes_elements.h:1897
static Vector< double > Default_Gravity_vector
Static default value for the gravity vector.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:498
virtual void fill_in_generic_residual_contribution_nst(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, const unsigned &flag)
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.cc:1994
NavierStokesSourceFctPt Source_fct_pt
Pointer to volumetric source function.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:534
double(* NavierStokesSourceFctPt)(const double &time, const Vector< double > &x)
Function pointer to source function fct(t,x) (x is a Vector!)
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:475
void scalar_value_fct_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const
Definition: spacetime_navier_stokes_elements.h:1341
const double & re_invfr() const
Global inverse Froude number.
Definition: spacetime_navier_stokes_elements.h:959
void get_load(const Vector< double > &s, const Vector< double > &N, Vector< double > &load)
Definition: spacetime_navier_stokes_elements.h:1259
double u_nst(const unsigned &t, const unsigned &n, const unsigned &i) const
Definition: spacetime_navier_stokes_elements.h:1053
double *& density_ratio_pt()
Pointer to Density ratio.
Definition: spacetime_navier_stokes_elements.h:953
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: spacetime_navier_stokes_elements.h:1667
NavierStokesPressureAdvDiffSourceFctPt source_fct_for_pressure_adv_diff() const
Definition: spacetime_navier_stokes_elements.h:1015
unsigned nscalar_paraview() const
Definition: spacetime_navier_stokes_elements.h:1281
void get_traction(const Vector< double > &s, const Vector< double > &N, Vector< double > &traction_p, Vector< double > &traction_visc_n, Vector< double > &traction_visc_t)
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: spacetime_navier_stokes_elements.h:1714
void interpolated_u_nst(const Vector< double > &s, Vector< double > &velocity) const
Compute vector of FE interpolated velocity u at local coordinate s.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:1892
SpaceTimeNavierStokesEquations()
Definition: spacetime_navier_stokes_elements.h:778
double pressure_integral() const
Integral of pressure over element.
virtual void pshape_nst(const Vector< double > &s, Shape &psi) const =0
Compute the pressure shape functions at local coordinate s.
virtual unsigned u_index_nst(const unsigned &i) const
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:1102
virtual double get_source_nst(const double &time, const unsigned &ipt, const Vector< double > &x)
Calculate the source fct at a given time and Eulerian position.
Definition: spacetime_navier_stokes_elements.h:674
void output_veloc(std::ostream &outfile, const unsigned &nplot, const unsigned &t)
double interpolated_u_nst(const unsigned &t, const Vector< double > &s, const unsigned &i) const
Definition: spacetime_navier_stokes_elements.h:1928
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
double * re_st_pt() const
Pointer to Strouhal parameter (const. version)
Definition: spacetime_navier_stokes_elements.h:901
virtual void get_dresidual_dnodal_coordinates(RankThreeTensor< double > &dresidual_dnodal_coordinates)
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, const unsigned &flag)
void get_vorticity(const Vector< double > &s, Vector< double > &vorticity) const
Compute the vorticity vector at local coordinate s.
void output(FILE *file_pt, const unsigned &n_plot)
void fill_in_contribution_to_djacobian_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam)
Definition: spacetime_navier_stokes_elements.h:1647
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: spacetime_navier_stokes_elements.h:629
double u_nst(const unsigned &n, const unsigned &i) const
Definition: spacetime_navier_stokes_elements.h:1046
double(* NavierStokesPressureAdvDiffSourceFctPt)(const Vector< double > &x)
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:481
const double & viscosity_ratio() const
Definition: spacetime_navier_stokes_elements.h:934
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.
void output_pressure_advection_diffusion_robin_elements(std::ostream &outfile)
Definition: spacetime_navier_stokes_elements.h:1807
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)
double *& re_invfr_pt()
Pointer to global inverse Froude number.
Definition: spacetime_navier_stokes_elements.h:965
virtual void get_source_gradient_nst(const double &time, const unsigned &ipt, const Vector< double > &x, Vector< double > &gradient)
Definition: spacetime_navier_stokes_elements.h:698
static double Default_Physical_Ratio_Value
Navier-Stokes equations static data.
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:495
double *& viscosity_ratio_pt()
Pointer to Viscosity Ratio.
Definition: spacetime_navier_stokes_elements.h:940
void enable_ALE()
Definition: spacetime_navier_stokes_elements.h:1184
virtual void build_fp_press_adv_diff_robin_bc_element(const unsigned &face_index)=0
bool ALE_is_disabled
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:543
void full_output(std::ostream &outfile, const unsigned &n_plot)
Vector< double > *& g_pt()
Pointer to Vector of gravitational components.
Definition: spacetime_navier_stokes_elements.h:977
void scalar_value_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const
Definition: spacetime_navier_stokes_elements.h:1289
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: spacetime_navier_stokes_elements.h:1596
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: spacetime_navier_stokes_elements.h:2032
void output_vorticity(std::ostream &outfile, const unsigned &nplot)
std::string scalar_name_paraview(const unsigned &i) const
Definition: spacetime_navier_stokes_elements.h:1410
double get_du_dt(const unsigned &n, const unsigned &i) const
Definition: spacetime_navier_stokes_elements.h:1114
Definition: discontinuous_galerkin_equal_order_pressure_spacetime_navier_stokes_elements.h:365
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 void build_fp_press_adv_diff_robin_bc_element(const unsigned &face_index)=0
virtual void fill_in_pressure_advection_diffusion_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)=0
TemplateFreeSpaceTimeNavierStokesEquationsBase()
Constructor (empty)
Definition: spacetime_navier_stokes_elements.h:368
virtual ~TemplateFreeSpaceTimeNavierStokesEquationsBase()
Virtual destructor (empty)
Definition: spacetime_navier_stokes_elements.h:372
virtual int p_nodal_index_nst() const =0
virtual int p_local_eqn(const unsigned &n) 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.
virtual void delete_pressure_advection_diffusion_robin_elements()=0
virtual void fill_in_pressure_advection_diffusion_residuals(Vector< double > &residuals)=0
virtual int & pinned_fp_pressure_eqn()=0
void initialise(const _Tp &__value)
Iterate over all values and set to the desired value.
Definition: oomph-lib/src/generic/Vector.h:167
@ 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
double velocity(const double &t)
Angular velocity as function of time t.
Definition: jeffery_orbit.cc:107
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
void exact_soln(const double &time, const Vector< double > &x, Vector< double > &soln)
Definition: unstructured_two_d_curved.cc:301
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 shape(const double &s, double *Psi)
Definition: shape.h:564
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
@ W
Definition: quadtree.h:63
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