34 template<
unsigned DIM>
54 template<
unsigned DIM,
unsigned NNODE_1D>
66 template<
unsigned DIM>
99 double J = dshape_and_dtest_eulerian_at_knot_womersley(
106 double interpolated_u = 0.0;
120 for (
unsigned j = 0;
j <
DIM;
j++)
132 if (Pressure_gradient_data_pt == 0)
139 dpdz = Pressure_gradient_data_pt->value(0);
157 for (
unsigned k = 0;
k <
DIM;
k++)
180 for (
unsigned i = 0;
i <
DIM;
i++)
190 if ((Pressure_gradient_data_pt != 0) &&
191 (!Pressure_gradient_data_pt->is_pinned(0)))
218 template<
unsigned DIM>
256 double interpolated_u = 0.0;
269 flux += interpolated_u * W;
280 template<
unsigned DIM>
307 template<
unsigned DIM>
309 const unsigned&
nplot,
325 for (
unsigned i = 0;
i <
DIM;
i++)
330 outfile << interpolated_u_womersley(
s);
331 outfile <<
" 0.0 " << std::endl;
345 template<
unsigned DIM>
347 const unsigned&
nplot)
362 for (
unsigned i = 0;
i <
DIM;
i++)
366 outfile << interpolated_u_womersley(
s) << std::endl;
381 template<
unsigned DIM>
397 for (
unsigned i = 0;
i <
DIM;
i++)
417 template<
unsigned DIM>
420 const unsigned&
nplot,
449 for (
unsigned i = 0;
i <
DIM;
i++)
469 template<
unsigned DIM>
472 const unsigned&
nplot,
504 for (
unsigned i = 0;
i <
DIM;
i++)
523 template<
unsigned DIM>
549 outfile <<
"ZONE" << std::endl;
558 for (
unsigned i = 0;
i <
DIM;
i++)
576 double u_fe = interpolated_u_womersley(
s);
582 for (
unsigned i = 0;
i <
DIM;
i++)
602 template<
unsigned DIM>
631 outfile <<
"ZONE" << std::endl;
640 for (
unsigned i = 0;
i <
DIM;
i++)
658 double u_fe = interpolated_u_womersley(
s);
664 for (
unsigned i = 0;
i <
DIM;
i++)
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.
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")
virtual double dshape_eulerian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidx) const
Return the geometric shape functions and also first derivatives w.r.t. global coordinates at the ipt-...
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")
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
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 unsigned self_test()
Self-test: Check inversion of element & do self-test for GeneralisedElement. Return 0 if OK.
int external_local_eqn(const unsigned &i, const unsigned &j)
Return the local equation number corresponding to the j-th value stored at the i-th external data.
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.
static const unsigned Initial_Nvalue
Static array of ints to hold number of variables at nodes: Initial_Nvalue[n].
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...
TAdvectionDiffusionReactionElement()
Constructor: Call constructors for TElement and AdvectionDiffusionReaction equations.
static bool Suppress_warning_about_unpinned_nst_dofs
Static bool to suppress warning.
virtual double weight(const unsigned &i, const unsigned &j) const
Access function for j-th weight for the i-th derivative.
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Get error against and norm of exact solution.
virtual void fill_in_generic_residual_contribution_womersley(Vector< double > &residuals, DenseMatrix< double > &jacobian, unsigned flag)
Compute element residual Vector only (if flag=and/or element Jacobian matrix.
void output(std::ostream &outfile)
Output with default number of plot points.
static double Default_ReSt_value
Static default value for the Womersley number.
double get_volume_flux()
Compute total volume flux through element.
unsigned self_test()
Self-test: Return 0 for OK.
void output_fct(std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output exact soln: x,y,u_exact or x,y,z,u_exact at nplot^DIM plot points.
void output_3d(std::ostream &outfile, const unsigned &n_plot, const double &z_out)
Output function: x,y,z_out,0,0,u,0 to allow comparison against full Navier Stokes at n_nplot x n_plot...
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).