61 class RefineableBuoyantQAxisymCrouzeixRaviartElement :
62 public virtual RefineableQAxisymAdvectionDiffusionElement<3>,
63 public virtual RefineableAxisymmetricQCrouzeixRaviartElement
121 "This function hasn't been implemented for this element",
134 const unsigned& nplot)
const
137 "This function hasn't been implemented for this element",
158 void output(std::ostream &outfile,
const unsigned &nplot)
168 for (
unsigned iplot=0;iplot<num_plot_points;iplot++)
174 for(
unsigned i=0;
i<2;
i++)
178 for(
unsigned i=0;
i<3;
i++)
187 outfile << std::endl;
199 void output(FILE* file_pt,
const unsigned &n_plot)
203 void output_fct(std::ostream &outfile,
const unsigned &Nplot,
211 void output_fct(std::ostream &outfile,
const unsigned &Nplot,
259 for(
unsigned i=0;
i<3;
i++) {values.push_back(nst_values[
i]);}
262 values.push_back(advection_values[0]);
289 for(
unsigned i=0;
i<3;
i++) {values.push_back(nst_values[
i]);}
292 values.push_back(advection_values[0]);
339 this->Ra_pt = cast_father_element_pt->ra_pt();
362 unsigned n_fluid_flux =
369 unsigned n_temp_flux =
377 for(
unsigned i=0;
i<n_temp_flux;
i++)
379 flux[n_fluid_flux+
i] = temp_flux[
i];
393 unsigned n_fluid_flux =
396 unsigned n_temp_flux =
402 for(
unsigned i=0;
i<n_fluid_flux;
i++) {flux_index[
i] = 0;}
405 for(
unsigned i=0;
i<n_temp_flux;
i++) {flux_index[n_fluid_flux +
i] = 1;}
418 double&
error,
double& norm)
429 double&
error,
double& norm)
462 for (
unsigned i=0;
i<3;
i++)
486 #ifdef USE_FD_JACOBIAN_FOR_REFINEABLE_BUOYANT_Q_ELEMENT
511 residuals,jacobian,mass_matrix);
524 HangInfo *hang_info_pt=0, *hang_info2_pt=0;
528 unsigned u_nodal_axi_nst[3];
535 const unsigned n_node = this->
nnode();
538 Shape psif(n_node), testf(n_node);
539 DShape dpsifdx(n_node,2), dtestfdx(n_node,2);
545 double Ra = this->
ra();
546 double Pe = this->
pe();
550 int local_eqn=0, local_unknown=0;
553 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
574 for(
unsigned l=0;l<n_node;l++)
577 double u_value = this->
nodal_value(l,u_nodal_axi_adv_diff);
579 for(
unsigned j=0;
j<2;
j++)
581 interpolated_du_axi_adv_diff_dx[
j] += u_value*dpsifdx(l,
j);
592 for(
unsigned l=0;l<n_node;l++)
597 double hang_weight=1.0;
606 n_master = hang_info_pt->
nmaster();
615 for(
unsigned m=0;
m<n_master;
m++)
634 for(
unsigned i=0;
i<3;
i++)
654 unsigned n_master2=1;
655 double hang_weight2=1.0;
658 for(
unsigned l2=0;l2<n_node;l2++)
667 n_master2 = hang_info2_pt->nmaster();
676 for(
unsigned m2=0;
m2<n_master2;
m2++)
683 u_nodal_axi_adv_diff);
685 hang_weight2 = hang_info2_pt->master_weight(
m2);
691 u_nodal_axi_adv_diff);
696 if(local_unknown >= 0)
699 jacobian(local_eqn,local_unknown)
701 r*
W*hang_weight*hang_weight2;
717 u_nodal_axi_adv_diff);
730 unsigned n_master2=1;
731 double hang_weight2=1.0;
734 for(
unsigned l2=0;l2<n_node;l2++)
743 n_master2 = hang_info2_pt->nmaster();
752 for(
unsigned m2=0;
m2<n_master2;
m2++)
758 hang_weight2 = hang_info2_pt->master_weight(
m2);
768 for(
unsigned i2=0;i2<2;i2++)
776 u_nodal_axi_nst[i2]);
782 u_nodal_axi_nst[i2]);
786 if(local_unknown >= 0)
789 jacobian(local_eqn,local_unknown)
790 -=
Pe*psif(l2)*interpolated_du_axi_adv_diff_dx[i2]*testf(l)
791 *
r*
W*hang_weight*hang_weight2;
818 class FaceGeometry<RefineableBuoyantQAxisymCrouzeixRaviartElement>:
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
RowVector3d w
Definition: Matrix_resize_int.cpp:3
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
void disable_ALE()
Definition: axisym_advection_diffusion_elements.h:133
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: axisym_advection_diffusion_elements.h:427
const double & pe() const
Peclet number.
Definition: axisym_advection_diffusion_elements.h:299
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
void enable_ALE()
Definition: axisym_advection_diffusion_elements.h:143
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute the element's residual Vector.
Definition: axisym_navier_stokes_elements.h:780
const Vector< double > & g() const
Vector of gravitational components.
Definition: axisym_navier_stokes_elements.h:446
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: axisym_navier_stokes_elements.h:793
void interpolated_u_axi_nst(const Vector< double > &s, Vector< double > &veloc) const
Compute vector of FE interpolated velocity u at local coordinate s.
Definition: axisym_navier_stokes_elements.h:865
void disable_ALE()
Definition: axisym_navier_stokes_elements.h:560
double interpolated_p_axi_nst(const Vector< double > &s) const
Return FE interpolated pressure at local coordinate s.
Definition: axisym_navier_stokes_elements.h:1001
void enable_ALE()
Definition: axisym_navier_stokes_elements.h:569
virtual unsigned u_index_axi_nst(const unsigned &i) const
Definition: axisym_navier_stokes_elements.h:506
virtual unsigned required_nvalue(const unsigned &n) const
Number of values (pinned or dofs) required at local node n.
Definition: axisym_navier_stokes_elements.cc:3711
double dshape_and_dtest_eulerian_at_knot_axi_nst(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Definition: axisym_navier_stokes_elements.h:1408
FaceGeometry()
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:826
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.h:1735
virtual void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output an exact solution over the element.
Definition: elements.h:3104
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
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
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Definition: elements.h:1432
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
virtual void compute_error(FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Calculate the norm of the error and that of the exact solution.
Definition: elements.h:3198
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
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
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Definition: elements.h:1765
virtual void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: elements.cc:1322
double const & master_weight(const unsigned &i) const
Return weight for dofs on i-th master node.
Definition: nodes.h:808
Node *const & master_node_pt(const unsigned &i) const
Return a pointer to the i-th master node.
Definition: nodes.h:791
unsigned nmaster() const
Return the number of master nodes.
Definition: nodes.h:785
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.
HangInfo *const & hanging_pt() const
Definition: nodes.h:1228
bool is_hanging() const
Test whether the node is geometrically hanging.
Definition: nodes.h:1285
Definition: oomph_definitions.h:222
unsigned nplot_points(const unsigned &nplot) const
Definition: Qelements.h:1107
void get_s_plot(const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &use_equally_spaced_interior_sample_points=false) const
Definition: Qelements.h:1067
std::string tecplot_zone_string(const unsigned &nplot) const
Definition: Qelements.h:1098
Definition: Qelements.h:459
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Definition: refineable_axisym_advection_diffusion_elements.h:90
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Definition: refineable_axisym_advection_diffusion_elements.h:100
unsigned num_Z2_flux_terms()
Broken assignment operator.
Definition: refineable_axisym_advection_diffusion_elements.h:83
void further_build()
Further build: Copy source function pointer from father element.
Definition: refineable_axisym_advection_diffusion_elements.h:187
unsigned num_Z2_flux_terms()
Number of 'flux' terms for Z2 error estimation.
Definition: refineable_axisym_navier_stokes_elements.h:75
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Definition: refineable_axisym_navier_stokes_elements.h:83
Definition: refineable_axisym_navier_stokes_elements.h:765
void further_setup_hanging_nodes()
Definition: refineable_axisym_navier_stokes_elements.h:978
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Definition: refineable_axisym_navier_stokes_elements.h:918
void rebuild_from_sons(Mesh *&mesh_pt)
Rebuild from sons: Reconstruct pressure from the (merged) sons.
Definition: refineable_axisym_navier_stokes_elements.h:795
unsigned nrecovery_order()
Definition: refineable_axisym_navier_stokes_elements.h:897
void further_build()
Definition: refineable_axisym_navier_stokes_elements.h:984
Definition: axisym_heat_sphere/axisym_buoyant_navier_stokes.h:64
void output(FILE *file_pt)
C-style output function: Broken default.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:195
unsigned u_index_axi_adv_diff() const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:222
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:415
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:359
void further_build()
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:326
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Fill in the constituent elements' contribution to the residual vector.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:469
unsigned ncompound_fluxes()
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:386
void disable_ALE()
Final override for disable ALE.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:100
void get_interpolated_values(const unsigned &t, const Vector< double > &s, Vector< double > &values)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:271
unsigned ncont_interpolated_values() const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:236
void get_Z2_compound_flux_indices(Vector< unsigned > &flux_index)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:390
void output(std::ostream &outfile, const unsigned &nplot)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:158
unsigned nscalar_paraview() const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:118
void fill_in_off_diagonal_jacobian_blocks_analytic(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: axisym_heat_sphere/axisym_buoyant_navier_stokes.h:517
void rebuild_from_sons(Mesh *&mesh_pt)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:310
const double & ra() const
Access function for the Rayleigh number (const version)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:93
unsigned nvertex_node() const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:226
std::string scalar_name_paraview(const unsigned &i) const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:146
void get_wind_axi_adv_diff(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:436
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:427
void enable_ALE()
Final override for enable ALE.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:108
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:505
void scalar_value_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:132
unsigned nrecovery_order()
The recovery order is that of the NavierStokes elements.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:345
RefineableBuoyantQAxisymCrouzeixRaviartElement()
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:78
void further_setup_hanging_nodes()
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:300
static double Default_Physical_Constant_Value
The static default value of the Rayleigh number.
Definition: axisym_heat_sphere/axisym_buoyant_navier_stokes.h:72
void output(std::ostream &outfile)
Overload the standard output function with the broken default.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:153
double *& ra_pt()
Access function for the pointer to the Rayleigh number.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:96
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:483
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:242
double * Ra_pt
Pointer to a new physical variable, the Rayleigh number.
Definition: axisym_heat_sphere/axisym_buoyant_navier_stokes.h:69
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function: Broken default.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:199
void output_fct(std::ostream &outfile, const unsigned &Nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:211
double geometric_jacobian(const Vector< double > &x)
Fill in the geometric Jacobian, which in this case is r.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:318
Node * vertex_node_pt(const unsigned &j) const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:231
unsigned required_nvalue(const unsigned &n) const
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:88
unsigned num_Z2_flux_terms()
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:350
void output_fct(std::ostream &outfile, const unsigned &Nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output function for an exact solution: Broken default.
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:203
void get_body_force_axi_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &result)
Definition: b_convection_sphere/axisym_buoyant_navier_stokes.h:450
virtual RefineableElement * father_element_pt() const
Return a pointer to the father element.
Definition: refineable_elements.h:539
int local_hang_eqn(Node *const &node_pt, const unsigned &i)
Definition: refineable_elements.h:278
Definition: refineable_axisym_advection_diffusion_elements.h:365
void rebuild_from_sons(Mesh *&mesh_pt)
Rebuild from sons: empty.
Definition: refineable_axisym_advection_diffusion_elements.h:406
void further_setup_hanging_nodes()
Definition: refineable_axisym_advection_diffusion_elements.h:417
RealScalar s
Definition: level1_cplx_impl.h:130
int * m
Definition: level2_cplx_impl.h:294
double Pe
Peclet number.
Definition: axisym_heat_sphere.cc:59
double Ra
Rayleigh number.
Definition: axisym_heat_sphere.cc:62
void gravity(const double &t, const Vector< double > &xi, Vector< double > &b)
Definition: ConstraintElementsUnitTest.cpp:20
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
int error
Definition: calibrate.py:297
Definition: MortaringCantileverCompareToNonMortaring.cpp:176
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
@ 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
#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