28 #ifndef OOMPH_AXISYM_ADV_DIFF_ELEMENTS_HEADER
29 #define OOMPH_AXISYM_ADV_DIFF_ELEMENTS_HEADER
34 #include <oomph-lib-config.h>
38 #include "../generic/nodes.h"
39 #include "../generic/Qelements.h"
40 #include "../generic/refineable_elements.h"
41 #include "../generic/oomph_utilities.h"
122 for (
unsigned t = 0;
t < n_time;
t++)
160 const unsigned& nplot)
const
167 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
186 file_out << wind[
i] << std::endl;
196 std::stringstream error_stream;
197 error_stream <<
"Advection Diffusion Elements only store 4 fields "
219 return "Advection Diffusion";
224 std::stringstream error_stream;
225 error_stream <<
"Advection Diffusion Elements only store 4 fields "
243 void output(std::ostream& outfile,
const unsigned& nplot);
255 void output(FILE* file_pt,
const unsigned& n_plot);
260 const unsigned& nplot,
299 inline const double&
pe()
const
323 inline const double&
d()
const
367 for (
unsigned i = 0;
i < 3;
i++)
375 (*Wind_fct_pt)(
x, wind);
383 const unsigned n_node =
nnode();
396 for (
unsigned j = 0;
j < 2;
j++)
402 for (
unsigned l = 0; l < n_node; l++)
404 const double u_value = this->
nodal_value(l, u_nodal_index);
406 flux[0] += u_value * dpsidx(l, 0);
407 flux[1] += u_value * dpsidx(l, 1);
440 const unsigned n_node =
nnode();
452 double interpolated_u = 0.0;
455 for (
unsigned l = 0; l < n_node; l++)
457 interpolated_u +=
nodal_value(l, u_nodal_index) * psi[l];
460 return (interpolated_u);
475 const unsigned n_node =
nnode();
487 unsigned n_u_dof = 0;
488 for (
unsigned l = 0; l < n_node; l++)
499 du_ddata.resize(n_u_dof, 0.0);
500 global_eqn_number.resize(n_u_dof, 0);
504 for (
unsigned l = 0; l < n_node; l++)
512 global_eqn_number[count] = global_eqn;
514 du_ddata[count] = psi[l];
533 DShape& dtestdx)
const = 0;
542 DShape& dtestdx)
const = 0;
594 template<
unsigned NNODE_1D>
596 :
public virtual QElement<2, NNODE_1D>,
636 void output(std::ostream& outfile,
const unsigned& n_plot)
651 void output(FILE* file_pt,
const unsigned& n_plot)
659 const unsigned& n_plot,
663 outfile, n_plot, exact_soln_pt);
697 template<
unsigned NNODE_1D>
706 double J = this->dshape_eulerian(
s, psi, dpsidx);
710 for (
unsigned i = 0;
i < NNODE_1D;
i++)
713 for (
unsigned j = 0;
j < 2;
j++)
715 dtestdx(
i,
j) = dpsidx(
i,
j);
731 template<
unsigned NNODE_1D>
740 double J = this->dshape_eulerian_at_knot(ipt, psi, dpsidx);
754 template<
unsigned NNODE_1D>
756 :
public virtual QElement<1, NNODE_1D>
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
Definition: axisym_advection_diffusion_elements.h:54
unsigned nscalar_paraview() const
Definition: axisym_advection_diffusion_elements.h:151
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Add the element's contribution to its residual vector (wrapper)
Definition: axisym_advection_diffusion_elements.h:413
AxisymAdvectionDiffusionSourceFctPt source_fct_pt() const
Access function: Pointer to source function. Const version.
Definition: axisym_advection_diffusion_elements.h:277
virtual void fill_in_generic_residual_contribution_axi_adv_diff(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix, unsigned flag)
Definition: axisym_advection_diffusion_elements.cc:50
double * PeSt_pt
Pointer to global Peclet number multiplied by Strouhal number.
Definition: axisym_advection_diffusion_elements.h:558
double *& d_pt()
Pointer to Peclet number multipled by Strouha number.
Definition: axisym_advection_diffusion_elements.h:329
void disable_ALE()
Definition: axisym_advection_diffusion_elements.h:133
unsigned self_test()
Self-test: Return 0 for OK.
Definition: axisym_advection_diffusion_elements.cc:245
void get_flux(const Vector< double > &s, Vector< double > &flux) const
Get flux: [du/dr,du/dz].
Definition: axisym_advection_diffusion_elements.h:380
AxisymAdvectionDiffusionSourceFctPt Source_fct_pt
Pointer to source function:
Definition: axisym_advection_diffusion_elements.h:564
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: axisym_advection_diffusion_elements.h:427
void(* AxisymAdvectionDiffusionSourceFctPt)(const Vector< double > &x, double &f)
Definition: axisym_advection_diffusion_elements.h:58
void(* AxisymAdvectionDiffusionWindFctPt)(const Vector< double > &x, Vector< double > &wind)
Definition: axisym_advection_diffusion_elements.h:64
virtual void get_wind_axi_adv_diff(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const
Definition: axisym_advection_diffusion_elements.h:359
virtual unsigned u_index_axi_adv_diff() const
Broken assignment operator.
Definition: axisym_advection_diffusion_elements.h:98
double du_dt_axi_adv_diff(const unsigned &n) const
Definition: axisym_advection_diffusion_elements.h:106
const double & pe() const
Peclet number.
Definition: axisym_advection_diffusion_elements.h:299
virtual double dshape_and_dtest_eulerian_at_knot_axi_adv_diff(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void output(FILE *file_pt)
C_style output with default number of plot points.
Definition: axisym_advection_diffusion_elements.h:247
void output_fct(std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output exact soln: r,z,u_exact at nplot^2 plot points.
Definition: axisym_advection_diffusion_elements.cc:364
AxisymAdvectionDiffusionWindFctPt Wind_fct_pt
Pointer to wind function:
Definition: axisym_advection_diffusion_elements.h:567
virtual void dinterpolated_u_axi_adv_diff_ddata(const Vector< double > &s, Vector< double > &du_ddata, Vector< unsigned > &global_eqn_number)
Definition: axisym_advection_diffusion_elements.h:469
static double Default_peclet_number
Static default value for the Peclet number.
Definition: axisym_advection_diffusion_elements.h:574
double *& pe_st_pt()
Pointer to Peclet number multipled by Strouha number.
Definition: axisym_advection_diffusion_elements.h:317
double interpolated_u_axi_adv_diff(const Vector< double > &s) const
Return FE representation of function value u(s) at local coordinate s.
Definition: axisym_advection_diffusion_elements.h:437
virtual double dshape_and_dtest_eulerian_axi_adv_diff(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Get error against and norm of exact solution.
Definition: axisym_advection_diffusion_elements.cc:415
AxisymAdvectionDiffusionWindFctPt & wind_fct_pt()
Access function: Pointer to wind function.
Definition: axisym_advection_diffusion_elements.h:284
const double & d() const
Peclet number multiplied by Strouhal number.
Definition: axisym_advection_diffusion_elements.h:323
void scalar_value_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const
Definition: axisym_advection_diffusion_elements.h:158
double *& pe_pt()
Pointer to Peclet number.
Definition: axisym_advection_diffusion_elements.h:305
AxisymAdvectionDiffusionEquations()
Definition: axisym_advection_diffusion_elements.h:70
AxisymAdvectionDiffusionWindFctPt wind_fct_pt() const
Access function: Pointer to wind function. Const version.
Definition: axisym_advection_diffusion_elements.h:291
static double Default_diffusion_parameter
Static default value for the Peclet number.
Definition: axisym_advection_diffusion_elements.h:577
bool ALE_is_disabled
Boolean flag to indicate whether AlE formulation is disable.
Definition: axisym_advection_diffusion_elements.h:570
AxisymAdvectionDiffusionSourceFctPt & source_fct_pt()
Access function: Pointer to source function.
Definition: axisym_advection_diffusion_elements.h:270
virtual void get_source_axi_adv_diff(const unsigned &ipt, const Vector< double > &x, double &source) const
Definition: axisym_advection_diffusion_elements.h:338
AxisymAdvectionDiffusionEquations(const AxisymAdvectionDiffusionEquations &dummy)=delete
Broken copy constructor.
double * D_pt
Pointer to global Diffusion parameter.
Definition: axisym_advection_diffusion_elements.h:561
void output(std::ostream &outfile)
Output with default number of plot points.
Definition: axisym_advection_diffusion_elements.h:235
void enable_ALE()
Definition: axisym_advection_diffusion_elements.h:143
std::string scalar_name_paraview(const unsigned &i) const
Definition: axisym_advection_diffusion_elements.h:209
const double & pe_st() const
Peclet number multiplied by Strouhal number.
Definition: axisym_advection_diffusion_elements.h:311
double * Pe_pt
Pointer to global Peclet number.
Definition: axisym_advection_diffusion_elements.h:555
long & eqn_number(const unsigned &i)
Return the equation number of the i-th stored variable.
Definition: nodes.h:367
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
Definition: nodes.h:238
FaceGeometry()
Definition: axisym_advection_diffusion_elements.h:761
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
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
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Definition: elements.h:1759
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
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3298
static DenseMatrix< double > Dummy_matrix
Definition: elements.h:227
TimeStepper *& time_stepper_pt()
Definition: geom_objects.h:192
Definition: oomph_definitions.h:222
Definition: axisym_advection_diffusion_elements.h:598
void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Definition: axisym_advection_diffusion_elements.h:658
QAxisymAdvectionDiffusionElement()
Definition: axisym_advection_diffusion_elements.h:607
void output(std::ostream &outfile, const unsigned &n_plot)
Definition: axisym_advection_diffusion_elements.h:636
static const unsigned Initial_Nvalue
Definition: axisym_advection_diffusion_elements.h:602
void output(std::ostream &outfile)
Definition: axisym_advection_diffusion_elements.h:629
double dshape_and_dtest_eulerian_at_knot_axi_adv_diff(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: axisym_advection_diffusion_elements.h:733
void output(FILE *file_pt, const unsigned &n_plot)
Definition: axisym_advection_diffusion_elements.h:651
QAxisymAdvectionDiffusionElement(const QAxisymAdvectionDiffusionElement< NNODE_1D > &dummy)=delete
Broken copy constructor.
double dshape_and_dtest_eulerian_axi_adv_diff(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: axisym_advection_diffusion_elements.h:699
void output(FILE *file_pt)
Definition: axisym_advection_diffusion_elements.h:644
unsigned required_nvalue(const unsigned &n) const
Broken assignment operator.
Definition: axisym_advection_diffusion_elements.h:622
Definition: Qelements.h:459
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
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
RealScalar s
Definition: level1_cplx_impl.h:130
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
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
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
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2