26 #ifndef OOMPH_SUPG_ADV_DIFF_ELEMENTS_HEADER
27 #define OOMPH_SUPG_ADV_DIFF_ELEMENTS_HEADER
29 #include "../advection_diffusion/refineable_advection_diffusion_elements.h"
41 template<
unsigned DIM,
unsigned NNODE_1D>
73 unsigned n_node = this->
nnode();
89 for (
unsigned l = 0; l < n_node; l++)
92 for (
unsigned j = 0;
j <
DIM;
j++)
123 for (
unsigned i = 0;
i < 4;
i++)
145 for (
unsigned j = 0;
j <
DIM;
j++)
147 abs_wind += wind[
j] * wind[
j];
149 abs_wind =
sqrt(abs_wind);
152 double Pe_mesh = 0.5 * this->
pe() * h * abs_wind;
157 Tau_SUPG = h / (2.0 * abs_wind) * (1.0 - 1.0 / Pe_mesh);
169 void output(std::ostream& outfile,
const unsigned& nplot)
179 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
188 for (
unsigned i = 0;
i <
DIM;
i++)
190 outfile <<
x[
i] <<
" ";
199 for (
unsigned i = 0;
i <
DIM;
i++)
201 outfile << wind[
i] <<
" ";
225 void output(FILE* file_pt,
const unsigned& n_plot)
264 template<
unsigned DIM,
unsigned NNODE_1D>
316 return (NNODE_1D - 1);
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
int i
Definition: BiCGSTAB_step_by_step.cpp:9
double interpolated_u_adv_diff(const Vector< double > &s) const
Return FE representation of function value u(s) at local coordinate s.
Definition: advection_diffusion_elements.h:458
virtual void get_wind_adv_diff(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const
Definition: advection_diffusion_elements.h:366
const double & pe() const
Peclet number.
Definition: advection_diffusion_elements.h:318
virtual void output(std::ostream &outfile)
Definition: elements.h:3050
virtual std::string tecplot_zone_string(const unsigned &nplot) const
Definition: elements.h:3161
virtual unsigned nvertex_node() const
Definition: elements.h:2491
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
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
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
virtual Node * vertex_node_pt(const unsigned &j) const
Definition: elements.h:2500
virtual unsigned nplot_points(const unsigned &nplot) const
Definition: elements.h:3186
double nodal_position(const unsigned &n, const unsigned &i) const
Definition: elements.h:2317
virtual void write_tecplot_zone_footer(std::ostream &outfile, const unsigned &nplot) const
Definition: elements.h:3174
Definition: advection_diffusion_elements.h:610
Definition: Qelements.h:459
Definition: supg_advection_diffusion_elements.h:44
double dshape_and_dtest_eulerian_adv_diff(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: supg_advection_diffusion_elements.cc:49
void compute_stabilisation_parameter()
Compute stabilisation parameter for the element.
Definition: supg_advection_diffusion_elements.h:70
void output(std::ostream &outfile)
Output at default number of plot points.
Definition: supg_advection_diffusion_elements.h:213
void switch_off_stabilisation()
Set stabilisation parameter for the element to zero.
Definition: supg_advection_diffusion_elements.h:63
double get_Tau_SUPG()
Get stabilisation parameter for the element.
Definition: supg_advection_diffusion_elements.h:56
void output(FILE *file_pt)
C-style output.
Definition: supg_advection_diffusion_elements.h:219
void output(std::ostream &outfile, const unsigned &nplot)
Definition: supg_advection_diffusion_elements.h:169
double Tau_SUPG
SUPG stabilisation parameter.
Definition: supg_advection_diffusion_elements.h:250
void output(FILE *file_pt, const unsigned &n_plot)
C_style output at n_plot points.
Definition: supg_advection_diffusion_elements.h:225
QSUPGAdvectionDiffusionElement()
Definition: supg_advection_diffusion_elements.h:49
double dshape_and_dtest_eulerian_at_knot_adv_diff(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: supg_advection_diffusion_elements.cc:107
Definition: refineable_advection_diffusion_elements.h:58
Definition: refineable_elements.h:97
Definition: Qelements.h:2259
Definition: supg_advection_diffusion_elements.h:269
void rebuild_from_sons(Mesh *&mesh_pt)
Rebuild from sons: empty.
Definition: supg_advection_diffusion_elements.h:310
unsigned nvertex_node() const
Number of vertex nodes in the element.
Definition: supg_advection_diffusion_elements.h:298
unsigned nrecovery_order()
Definition: supg_advection_diffusion_elements.h:314
void operator=(const RefineableQSUPGAdvectionDiffusionElement< DIM, NNODE_1D > &)=delete
Broken assignment operator.
Node * vertex_node_pt(const unsigned &j) const
Pointer to the j-th vertex node in the element.
Definition: supg_advection_diffusion_elements.h:304
RefineableQSUPGAdvectionDiffusionElement()
Definition: supg_advection_diffusion_elements.h:273
unsigned ncont_interpolated_values() const
Number of continuously interpolated values: 1.
Definition: supg_advection_diffusion_elements.h:292
void further_setup_hanging_nodes()
Definition: supg_advection_diffusion_elements.h:321
RefineableQSUPGAdvectionDiffusionElement(const RefineableQSUPGAdvectionDiffusionElement< DIM, NNODE_1D > &dummy)=delete
Broken copy constructor.
RealScalar s
Definition: level1_cplx_impl.h:130
#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
squared absolute sa ArrayBase::abs2 DOXCOMMA MatrixBase::cwiseAbs2 sa Eigen::abs2 DOXCOMMA Eigen::pow DOXCOMMA ArrayBase::square nearest sa Eigen::floor DOXCOMMA Eigen::ceil DOXCOMMA ArrayBase::round nearest integer not less than the given sa Eigen::floor DOXCOMMA ArrayBase::ceil not a number test
Definition: GlobalFunctions.h:109
Real fabs(const Real &a)
Definition: boostmultiprec.cpp:117
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
list x
Definition: plotDoE.py:28
Definition: indexed_view.cpp:20
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2