56 unsigned fp_n_val = 3;
58 unsigned n_intpt = integral_pt()->nweight();
62 for (
unsigned ipt=0;ipt<n_intpt;ipt++)
113 for (
unsigned i=0;
i<3;
i++)
115 for (
unsigned j=0;
j<3;
j++)
130 unsigned n_intpt = integral_pt()->nweight();
131 for (
unsigned ipt=0;ipt<n_intpt;ipt++)
133 for(
unsigned i=0;
i<2;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
134 this->strain_rate(
s,strain_rate);
135 for (
unsigned i=0;
i<3;
i++)
137 for (
unsigned j=0;
j<3;
j++)
148 for (
unsigned ipt=0;ipt<n_intpt;ipt++)
150 for (
unsigned i=0;
i<3;
i++)
152 for (
unsigned j=0;
j<3;
j++)
167 if(max_diff > 1.0e-16)
199 for(
unsigned i=0;
i<2;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
214 if ((strainrate.ncol()!=3)||(strainrate.nrow()!=3))
216 std::ostringstream error_message;
217 error_message <<
"The strain rate has incorrect dimensions "
218 << strainrate.ncol() <<
" x "
219 << strainrate.nrow() <<
" Not 3" << std::endl;
221 throw OomphLibError(error_message.str(),
229 Vector<DenseMatrix<double> >
233 previous_strain_rate[it].resize(3,3);
234 strain_rate(it+1,
s,previous_strain_rate[it]);
238 TimeStepper* time_stepper_pt=node_pt(0)->time_stepper_pt();
241 if (time_stepper_pt->nprev_values()<
244 oomph_info <<
"Won't work: " << time_stepper_pt->nprev_values()
259 strainrate=previous_strain_rate[0];
268 double dt=time_stepper_pt->time_pt()->dt(0);
269 double dt_minus_1=time_stepper_pt->time_pt()->dt(1);
272 for (
unsigned i=0;
i<3;
i++)
274 for (
unsigned j=0;
j<3;
j++)
276 double u_minus_one=previous_strain_rate[0](
i,
j);
277 double u_minus_two=previous_strain_rate[1](
i,
j);
280 double slope=(u_minus_one-u_minus_two)/dt_minus_1;
283 strainrate(
i,
j)=u_minus_one+slope*dt;
294 for (
unsigned i=0;
i<3;
i++)
296 for (
unsigned j=0;
j<3;
j++)
298 double u_minus_one =previous_strain_rate[0](
i,
j);
299 double u_minus_two =previous_strain_rate[1](
i,
j);
300 double u_minus_three=previous_strain_rate[2](
i,
j);
301 double u_minus_four =previous_strain_rate[3](
i,
j);
304 double dt=time_stepper_pt->time_pt()->dt(0);
305 double dt_minus_1=time_stepper_pt->time_pt()->dt(1);
306 double dt_minus_2=time_stepper_pt->time_pt()->dt(2);
307 double dt_minus_3=time_stepper_pt->time_pt()->dt(3);
310 double MapleGenVar1=0.0;
311 double MapleGenVar2=0.0;
312 double MapleGenVar3=0.0;
313 double MapleGenVar4=0.0;
314 double MapleGenVar5=0.0;
315 double MapleGenVar6=0.0;
316 double MapleGenVar7=0.0;
320 MapleGenVar7 = dt*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_four-dt*
321 dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_three-dt*dt*dt*dt_minus_1*
322 dt_minus_1*dt_minus_3*u_minus_three+dt*dt*dt*dt_minus_1*dt_minus_1*dt_minus_3*
323 u_minus_two+dt*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*u_minus_four-dt*dt*dt*
324 dt_minus_1*dt_minus_2*dt_minus_2*u_minus_three-2.0*dt*dt*dt*dt_minus_1*
325 dt_minus_2*dt_minus_3*u_minus_three+2.0*dt*dt*dt*dt_minus_1*dt_minus_2*
326 dt_minus_3*u_minus_two-dt*dt*dt*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_three+
327 dt*dt*dt*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_two;
328 MapleGenVar6 = -dt*dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*u_minus_one+dt*
329 dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*u_minus_two-dt*dt*dt*dt_minus_2*
330 dt_minus_3*dt_minus_3*u_minus_one+dt*dt*dt*dt_minus_2*dt_minus_3*dt_minus_3*
331 u_minus_two+2.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_four
332 -2.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_three-2.0*dt*dt*
333 dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*u_minus_three+2.0*dt*dt*dt_minus_1*
334 dt_minus_1*dt_minus_1*dt_minus_3*u_minus_two+3.0*dt*dt*dt_minus_1*dt_minus_1*
335 dt_minus_2*dt_minus_2*u_minus_four-3.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*
336 dt_minus_2*u_minus_three+MapleGenVar7;
337 MapleGenVar7 = -6.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
338 u_minus_three+6.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*u_minus_two
339 -3.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_three+3.0*dt*dt*
340 dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_two+dt*dt*dt_minus_1*
341 dt_minus_2*dt_minus_2*dt_minus_2*u_minus_four-dt*dt*dt_minus_1*dt_minus_2*
342 dt_minus_2*dt_minus_2*u_minus_three-3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*
343 dt_minus_3*u_minus_one-3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
344 u_minus_three+6.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*u_minus_two
345 -3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*u_minus_one;
346 MapleGenVar5 = -3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
347 u_minus_three+6.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*u_minus_two
348 -dt*dt*dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_three+dt*dt*
349 dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_two-2.0*dt*dt*dt_minus_2*
350 dt_minus_2*dt_minus_2*dt_minus_3*u_minus_one+2.0*dt*dt*dt_minus_2*dt_minus_2*
351 dt_minus_2*dt_minus_3*u_minus_two-3.0*dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*
352 dt_minus_3*u_minus_one+3.0*dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*dt_minus_3*
353 u_minus_two-dt*dt*dt_minus_2*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_one+dt*dt
354 *dt_minus_2*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_two+MapleGenVar6+
356 MapleGenVar7 = dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*
357 u_minus_four-dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*
358 u_minus_three-dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*
359 u_minus_three+dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*
360 u_minus_two+2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*
361 u_minus_four-2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*
362 u_minus_three-4.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
363 u_minus_three+4.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
364 u_minus_two-2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*
365 u_minus_three+2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*
367 MapleGenVar6 = dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
368 u_minus_four-dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
369 u_minus_three-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
370 u_minus_one-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
371 u_minus_three+6.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
372 u_minus_two-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
373 u_minus_one-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
374 u_minus_three+6.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
375 u_minus_two-dt*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*
376 u_minus_three+dt*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*
377 u_minus_two+MapleGenVar7;
378 MapleGenVar7 = -4.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
379 dt_minus_3*u_minus_one+4.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
380 dt_minus_3*u_minus_two-6.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
381 dt_minus_3*u_minus_one+6.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
382 dt_minus_3*u_minus_two-2.0*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
383 dt_minus_3*u_minus_one+2.0*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
384 dt_minus_3*u_minus_two-dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_2*
385 dt_minus_3*u_minus_one+dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_2*
386 dt_minus_3*u_minus_two-2.0*dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_3*
387 dt_minus_3*u_minus_one+2.0*dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_3*
388 dt_minus_3*u_minus_two-dt*dt_minus_2*dt_minus_2*dt_minus_3*dt_minus_3*
389 dt_minus_3*u_minus_one;
390 MapleGenVar4 = dt*dt_minus_2*dt_minus_2*dt_minus_3*dt_minus_3*dt_minus_3*
391 u_minus_two-dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
392 u_minus_one-dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
393 u_minus_one-2.0*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
394 dt_minus_3*u_minus_one-3.0*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*
395 dt_minus_3*dt_minus_3*u_minus_one-dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
396 dt_minus_3*dt_minus_3*u_minus_one-dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
397 dt_minus_2*dt_minus_3*u_minus_one-2.0*dt_minus_1*dt_minus_2*dt_minus_2*
398 dt_minus_2*dt_minus_3*dt_minus_3*u_minus_one-dt_minus_1*dt_minus_2*dt_minus_2*
399 dt_minus_3*dt_minus_3*dt_minus_3*u_minus_one+MapleGenVar5+MapleGenVar6+
401 MapleGenVar5 = 1/dt_minus_1;
402 MapleGenVar3 = MapleGenVar4*MapleGenVar5;
403 MapleGenVar1 = MapleGenVar2*MapleGenVar3;
404 MapleGenVar2 = 1/dt_minus_2/dt_minus_3/(dt_minus_1*dt_minus_1*dt_minus_2+
405 dt_minus_1*dt_minus_1*dt_minus_3+2.0*dt_minus_1*dt_minus_2*dt_minus_2+3.0*
406 dt_minus_1*dt_minus_2*dt_minus_3+dt_minus_1*dt_minus_3*dt_minus_3+dt_minus_2*
407 dt_minus_2*dt_minus_2+2.0*dt_minus_2*dt_minus_2*dt_minus_3+dt_minus_2*
408 dt_minus_3*dt_minus_3);
409 t0 = MapleGenVar1*MapleGenVar2;
464 txt+=
"\"invariant_of_strain_rate\",";
465 txt+=
"\"invariant_of_strain_rate_extrapol\",";
466 txt+=
"\"invariant_of_stress\",";
467 txt+=
"\"viscosity\",";
491 const unsigned &nplot)
501 Vector<double> dudt(
el_dim);
504 Vector<double> mesh_veloc(
el_dim,0.0);
507 outfile << tecplot_zone_string(nplot);
510 unsigned n_node = nnode();
517 DShape dpsifdx(n_node,
el_dim);
520 unsigned num_plot_points=nplot_points(nplot);
521 for (
unsigned iplot=0;iplot<num_plot_points;iplot++)
525 get_s_plot(iplot,nplot,
s);
528 dshape_eulerian(
s,psif,dpsifdx);
531 Vector<double> mesh_veloc(
el_dim,0.0);
532 Vector<double> int_x(
el_dim,0.0);
533 Vector<double> dudt(
el_dim,0.0);
534 Vector<double> dudt_ALE(
el_dim,0.0);
557 unsigned u_nodal_index = u_index_axi_nst(
i);
559 for(
unsigned l=0;l<n_node;l++)
561 dudt[
i]+=du_dt_axi_nst(l,u_nodal_index)*psif[l];
562 mesh_veloc[
i]+=dnodal_position_dt(l,
i)*psif[l];
570 unsigned u_nodal_index = u_index_axi_nst(
i);
572 for(
unsigned l=0;l<n_node;l++)
577 interpolated_dudx(
i,
j) += nodal_value(l,u_nodal_index)*
589 dudt_ALE[
i]-=mesh_veloc[
k]*interpolated_dudx(
i,
k);
596 this->strain_rate(
s,rate_of_strain);
600 if (Use_extrapolated_strainrate_to_compute_second_invariant)
606 double second_invariant_strain=
608 double second_invariant_strain_extrapol=
612 double viscosity=this->Constitutive_eqn_pt
613 ->viscosity(second_invariant_strain_extrapol);
619 for(
unsigned i=0;
i<3;
i++)
621 for(
unsigned j=0;
j<3;
j++)
623 stress(
i,
j)=viscosity*rate_of_strain(
i,
j);
627 double second_invariant_stress=
643 outfile << interpolated_x(
s,
i) <<
" ";
649 outfile << interpolated_u_axi_nst(
s,
i) <<
" ";
653 outfile << interpolated_p_axi_nst(
s) <<
" ";
658 outfile << dudt_ALE[
i] <<
" ";
703 outfile << second_invariant_strain <<
" ";
704 outfile << second_invariant_strain_extrapol <<
" ";
705 outfile << second_invariant_stress <<
" ";
707 outfile << viscosity <<
" ";
709 outfile << yield <<
" ";
711 outfile <<
Error <<
" ";
713 outfile <<
size() <<
" ";
736 outfile << std::endl;
741 write_tecplot_zone_footer(outfile,nplot);
747 const unsigned DIM=3;
749 unsigned num_entries=
DIM+(
DIM*(
DIM-1))/2;
750 if (
flux.size() < num_entries)
752 std::ostringstream error_message;
753 error_message <<
"The flux vector has the wrong number of entries, "
754 <<
flux.size() <<
", whereas it should be at least "
755 << num_entries << std::endl;
756 throw OomphLibError(error_message.str(),
757 "RefineableNavierStokesEquations::get_Z2_flux()",
766 this->strain_rate(
s,strainrate);
767 double second_invariant_strain=
771 double viscosity=this->Constitutive_eqn_pt
772 ->viscosity(second_invariant_strain);
775 for(
unsigned i=0;
i<
DIM;
i++)
777 for(
unsigned j=0;
j<
DIM;
j++)
779 stress(
i,
j)=viscosity*strainrate(
i,
j);
806 bool add_yield_bias=
false;
807 if (!add_yield_bias) yield=0.0;
810 for(
unsigned i=0;
i<
DIM;
i++)
816 flux[icount]=strainrate(
i,
i)+yield;
821 for(
unsigned i=0;
i<
DIM;
i++)
826 flux[icount]=strainrate(
i,
j)+yield;
836 double& extrapolated_norm_squared,
837 double& error_norm_squared)
841 extrapolated_norm_squared=0.0;
842 error_norm_squared=0.0;
846 unsigned n_intpt = integral_pt()->nweight();
852 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
855 for(
unsigned i=0;
i<2;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
858 double w = integral_pt()->weight(ipt);
861 double J = this->J_eulerian(
s);
868 this->strain_rate(
s,strainrate);
874 if (Use_extrapolated_strainrate_to_compute_second_invariant)
878 double extrapolated_invariant=
883 invariant*invariant*
W;
884 extrapolated_norm_squared+=
885 extrapolated_invariant*extrapolated_invariant*
W;
887 (extrapolated_invariant-invariant)*
888 (extrapolated_invariant-invariant)*
W;
900 double& extrapolated_norm_squared,
901 double& error_norm_squared)
905 extrapolated_norm_squared=0.0;
906 error_norm_squared=0.0;
910 unsigned n_intpt = integral_pt()->nweight();
916 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
919 for(
unsigned i=0;
i<2;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
922 double w = integral_pt()->weight(ipt);
925 double J = this->J_eulerian(
s);
932 this->strain_rate(
s,strainrate);
935 double viscosity=this->Constitutive_eqn_pt->viscosity(invariant);
940 if (Use_extrapolated_strainrate_to_compute_second_invariant)
944 double extrapolated_invariant=
947 double extrapolated_viscosity=
948 this->Constitutive_eqn_pt->viscosity(extrapolated_invariant);
952 viscosity*viscosity*
W;
953 extrapolated_norm_squared+=
954 extrapolated_viscosity*extrapolated_viscosity*
W;
956 (extrapolated_viscosity-viscosity)*
957 (extrapolated_viscosity-viscosity)*
W;
969 double& latest_guess_norm_squared,
970 double& error_norm_squared)
974 latest_guess_norm_squared=0.0;
975 error_norm_squared=0.0;
979 unsigned n_intpt = integral_pt()->nweight();
985 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
988 for(
unsigned i=0;
i<2;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
991 double w = integral_pt()->weight(ipt);
994 double J = this->J_eulerian(
s);
1001 this->strain_rate(
s,current_strainrate);
1009 latest_guess_strainrate);
1011 double latest_guess_invariant=
1016 invariant*invariant*
W;
1017 latest_guess_norm_squared+=
1018 latest_guess_invariant*latest_guess_invariant*
W;
1019 error_norm_squared+=
1020 (latest_guess_invariant-invariant)*
1021 (latest_guess_invariant-invariant)*
W;
1040 unsigned n_node = nnode();
1043 unsigned u_nodal_index[
el_dim+1];
1044 for(
unsigned i=0;
i<
el_dim+1;
i++) {u_nodal_index[
i] = u_index_axi_nst(
i);}
1048 DShape dpsidx(n_node,
el_dim);
1051 unsigned n_intpt = integral_pt()->nweight();
1057 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
1060 for(
unsigned i=0;
i<
el_dim;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
1063 double w = integral_pt()->weight(ipt);
1067 double J = this->dshape_eulerian_at_knot(ipt,psif,dpsidx);
1073 Vector<double> interpolated_u(
el_dim+1,0.0);
1076 for(
unsigned l=0;l<n_node;l++)
1082 double u_value = raw_nodal_value(l,u_nodal_index[
i]);
1083 interpolated_u[
i] += u_value*psif[l];
1090 sum+=interpolated_u[
i]*interpolated_u[
i]*
W;
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
Matrix< Scalar, Dynamic, Dynamic > DenseMatrix
Definition: BenchSparseUtil.h:23
int i
Definition: BiCGSTAB_step_by_step.cpp:9
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
RowVector3d w
Definition: Matrix_resize_int.cpp:3
Map< RowVectorXf > v2(M2.data(), M2.size())
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
#define max(a, b)
Definition: datatypes.h:23
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
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
Real fabs(const Real &a)
Definition: boostmultiprec.cpp:117
val
Definition: calibrate.py:119
int error
Definition: calibrate.py:297
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
double Critical_strain_rate
Critical strain rate.
Definition: axisym_vibrating_shell_non_newtonian.cc:210
double Yield_stress
have a generic yield stress, required for the output function
Definition: axisym_vibrating_shell_non_newtonian.cc:149
@ W
Definition: quadtree.h:63
double second_invariant(const DenseMatrix< double > &tensor)
Compute second invariant of tensor.
Definition: oomph_utilities.cc:163
OomphInfo oomph_info
Definition: oomph_definitions.cc:319
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
unsigned el_dim
dimension
Definition: overloaded_cartesian_element_body.h:30
bool Use_aitken_extrapolation
Definition: overloaded_element_body.h:42
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Get 'flux' for Z2 error recovery.
Definition: overloaded_element_body.h:745
void output(std::ostream &outfile, const unsigned &nplot)
Overload output function.
Definition: overloaded_element_body.h:490
unsigned Aitken_index
Definition: overloaded_element_body.h:1107
double square_of_norm_of_viscosity(double &norm_squared, double &extrapolated_norm_squared, double &error_norm_squared)
Definition: overloaded_element_body.h:899
double square_of_norm_of_strain_invariant(double &norm_squared, double &extrapolated_norm_squared, double &error_norm_squared)
Definition: overloaded_element_body.h:835
void set_error(const double &error)
Set error value for post-processing.
Definition: overloaded_element_body.h:432
double square_of_norm_of_fixed_point(double &norm_squared, double &latest_guess_norm_squared, double &error_norm_squared)
Definition: overloaded_element_body.h:968
void update_latest_fixed_point_iteration_guess_for_strain_rate()
Definition: overloaded_element_body.h:126
double Error
Storage for elemental error estimate – used for post-processing.
Definition: overloaded_element_body.h:30
void extrapolated_strain_rate(const unsigned &ipt, DenseMatrix< double > &strainrate) const
Definition: overloaded_element_body.h:189
double square_of_l2_norm()
Get square of L2 norm of velocity.
Definition: overloaded_element_body.h:1031
unsigned & nprev_for_extrapolation_of_strain_rate()
Definition: overloaded_element_body.h:74
void disable_aitken_extrapolation()
Disable use of Aitken extrapolation.
Definition: overloaded_element_body.h:103
Vector< Vector< DenseMatrix< double > > > Fixed_point_iteration_guess_for_strain_rate
Definition: overloaded_element_body.h:1103
std::string variable_identifier()
Return variable identifier.
Definition: overloaded_element_body.h:435
void disable_fixed_point_iteration_for_strain_rate()
Disable use of fixed point iteration.
Definition: overloaded_element_body.h:90
unsigned Nprev_for_extrapolation_of_strain_rate
Definition: overloaded_element_body.h:34
MyTaylorHoodElement()
Definition: overloaded_element_body.h:48
void enable_fixed_point_iteration_for_strain_rate()
Definition: overloaded_element_body.h:82
void enable_aitken_extrapolation()
Enable use of Aitken extrapolation.
Definition: overloaded_element_body.h:97
void latest_fixed_point_iteration_guess_for_strain_rate(const unsigned &ipt, DenseMatrix< double > &strainrate) const
Definition: overloaded_element_body.h:110
bool Use_fixed_point_for_strain_rate
Definition: overloaded_element_body.h:38
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2