62 unsigned fp_n_val = 3;
64 unsigned n_intpt = integral_pt()->nweight();
68 for (
unsigned ipt=0;ipt<n_intpt;ipt++)
138 unsigned n_intpt = integral_pt()->nweight();
139 for (
unsigned ipt=0;ipt<n_intpt;ipt++)
141 for(
unsigned i=0;
i<
el_dim;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
142 this->strain_rate(
s,strain_rate);
156 for (
unsigned ipt=0;ipt<n_intpt;ipt++)
175 if(max_diff > 1.0e-16)
207 for(
unsigned i=0;
i<
el_dim;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
222 if ((strainrate.ncol()!=2)||(strainrate.nrow()!=2))
224 std::ostringstream error_message;
225 error_message <<
"The strain rate has incorrect dimensions "
226 << strainrate.ncol() <<
" x "
227 << strainrate.nrow() <<
" Not 2" << std::endl;
229 throw OomphLibError(error_message.str(),
237 Vector<DenseMatrix<double> >
242 strain_rate(it+1,
s,previous_strain_rate[it]);
246 TimeStepper* time_stepper_pt=node_pt(0)->time_stepper_pt();
249 if (time_stepper_pt->nprev_values()<
252 oomph_info <<
"Won't work: " << time_stepper_pt->nprev_values()
267 strainrate=previous_strain_rate[0];
276 double dt=time_stepper_pt->time_pt()->dt(0);
277 double dt_minus_1=time_stepper_pt->time_pt()->dt(1);
284 double u_minus_one=previous_strain_rate[0](
i,
j);
285 double u_minus_two=previous_strain_rate[1](
i,
j);
288 double slope=(u_minus_one-u_minus_two)/dt_minus_1;
291 strainrate(
i,
j)=u_minus_one+slope*dt;
306 double u_minus_one =previous_strain_rate[0](
i,
j);
307 double u_minus_two =previous_strain_rate[1](
i,
j);
308 double u_minus_three=previous_strain_rate[2](
i,
j);
309 double u_minus_four =previous_strain_rate[3](
i,
j);
312 double dt=time_stepper_pt->time_pt()->dt(0);
313 double dt_minus_1=time_stepper_pt->time_pt()->dt(1);
314 double dt_minus_2=time_stepper_pt->time_pt()->dt(2);
315 double dt_minus_3=time_stepper_pt->time_pt()->dt(3);
318 double MapleGenVar1=0.0;
319 double MapleGenVar2=0.0;
320 double MapleGenVar3=0.0;
321 double MapleGenVar4=0.0;
322 double MapleGenVar5=0.0;
323 double MapleGenVar6=0.0;
324 double MapleGenVar7=0.0;
328 MapleGenVar7 = dt*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_four-dt*
329 dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_three-dt*dt*dt*dt_minus_1*
330 dt_minus_1*dt_minus_3*u_minus_three+dt*dt*dt*dt_minus_1*dt_minus_1*dt_minus_3*
331 u_minus_two+dt*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*u_minus_four-dt*dt*dt*
332 dt_minus_1*dt_minus_2*dt_minus_2*u_minus_three-2.0*dt*dt*dt*dt_minus_1*
333 dt_minus_2*dt_minus_3*u_minus_three+2.0*dt*dt*dt*dt_minus_1*dt_minus_2*
334 dt_minus_3*u_minus_two-dt*dt*dt*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_three+
335 dt*dt*dt*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_two;
336 MapleGenVar6 = -dt*dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*u_minus_one+dt*
337 dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*u_minus_two-dt*dt*dt*dt_minus_2*
338 dt_minus_3*dt_minus_3*u_minus_one+dt*dt*dt*dt_minus_2*dt_minus_3*dt_minus_3*
339 u_minus_two+2.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_four
340 -2.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*u_minus_three-2.0*dt*dt*
341 dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*u_minus_three+2.0*dt*dt*dt_minus_1*
342 dt_minus_1*dt_minus_1*dt_minus_3*u_minus_two+3.0*dt*dt*dt_minus_1*dt_minus_1*
343 dt_minus_2*dt_minus_2*u_minus_four-3.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*
344 dt_minus_2*u_minus_three+MapleGenVar7;
345 MapleGenVar7 = -6.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
346 u_minus_three+6.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*u_minus_two
347 -3.0*dt*dt*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_three+3.0*dt*dt*
348 dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*u_minus_two+dt*dt*dt_minus_1*
349 dt_minus_2*dt_minus_2*dt_minus_2*u_minus_four-dt*dt*dt_minus_1*dt_minus_2*
350 dt_minus_2*dt_minus_2*u_minus_three-3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*
351 dt_minus_3*u_minus_one-3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
352 u_minus_three+6.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*u_minus_two
353 -3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*u_minus_one;
354 MapleGenVar5 = -3.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
355 u_minus_three+6.0*dt*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*u_minus_two
356 -dt*dt*dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_three+dt*dt*
357 dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_two-2.0*dt*dt*dt_minus_2*
358 dt_minus_2*dt_minus_2*dt_minus_3*u_minus_one+2.0*dt*dt*dt_minus_2*dt_minus_2*
359 dt_minus_2*dt_minus_3*u_minus_two-3.0*dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*
360 dt_minus_3*u_minus_one+3.0*dt*dt*dt_minus_2*dt_minus_2*dt_minus_3*dt_minus_3*
361 u_minus_two-dt*dt*dt_minus_2*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_one+dt*dt
362 *dt_minus_2*dt_minus_3*dt_minus_3*dt_minus_3*u_minus_two+MapleGenVar6+
364 MapleGenVar7 = dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*
365 u_minus_four-dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*
366 u_minus_three-dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*
367 u_minus_three+dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*
368 u_minus_two+2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*
369 u_minus_four-2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*
370 u_minus_three-4.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
371 u_minus_three+4.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
372 u_minus_two-2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*
373 u_minus_three+2.0*dt*dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*
375 MapleGenVar6 = dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
376 u_minus_four-dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
377 u_minus_three-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
378 u_minus_one-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
379 u_minus_three+6.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
380 u_minus_two-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
381 u_minus_one-3.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
382 u_minus_three+6.0*dt*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
383 u_minus_two-dt*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*
384 u_minus_three+dt*dt_minus_1*dt_minus_1*dt_minus_3*dt_minus_3*dt_minus_3*
385 u_minus_two+MapleGenVar7;
386 MapleGenVar7 = -4.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
387 dt_minus_3*u_minus_one+4.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
388 dt_minus_3*u_minus_two-6.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
389 dt_minus_3*u_minus_one+6.0*dt*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
390 dt_minus_3*u_minus_two-2.0*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
391 dt_minus_3*u_minus_one+2.0*dt*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
392 dt_minus_3*u_minus_two-dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_2*
393 dt_minus_3*u_minus_one+dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_2*
394 dt_minus_3*u_minus_two-2.0*dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_3*
395 dt_minus_3*u_minus_one+2.0*dt*dt_minus_2*dt_minus_2*dt_minus_2*dt_minus_3*
396 dt_minus_3*u_minus_two-dt*dt_minus_2*dt_minus_2*dt_minus_3*dt_minus_3*
397 dt_minus_3*u_minus_one;
398 MapleGenVar4 = dt*dt_minus_2*dt_minus_2*dt_minus_3*dt_minus_3*dt_minus_3*
399 u_minus_two-dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_3*
400 u_minus_one-dt_minus_1*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*dt_minus_3*
401 u_minus_one-2.0*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
402 dt_minus_3*u_minus_one-3.0*dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_2*
403 dt_minus_3*dt_minus_3*u_minus_one-dt_minus_1*dt_minus_1*dt_minus_2*dt_minus_3*
404 dt_minus_3*dt_minus_3*u_minus_one-dt_minus_1*dt_minus_2*dt_minus_2*dt_minus_2*
405 dt_minus_2*dt_minus_3*u_minus_one-2.0*dt_minus_1*dt_minus_2*dt_minus_2*
406 dt_minus_2*dt_minus_3*dt_minus_3*u_minus_one-dt_minus_1*dt_minus_2*dt_minus_2*
407 dt_minus_3*dt_minus_3*dt_minus_3*u_minus_one+MapleGenVar5+MapleGenVar6+
409 MapleGenVar5 = 1/dt_minus_1;
410 MapleGenVar3 = MapleGenVar4*MapleGenVar5;
411 MapleGenVar1 = MapleGenVar2*MapleGenVar3;
412 MapleGenVar2 = 1/dt_minus_2/dt_minus_3/(dt_minus_1*dt_minus_1*dt_minus_2+
413 dt_minus_1*dt_minus_1*dt_minus_3+2.0*dt_minus_1*dt_minus_2*dt_minus_2+3.0*
414 dt_minus_1*dt_minus_2*dt_minus_3+dt_minus_1*dt_minus_3*dt_minus_3+dt_minus_2*
415 dt_minus_2*dt_minus_2+2.0*dt_minus_2*dt_minus_2*dt_minus_3+dt_minus_2*
416 dt_minus_3*dt_minus_3);
417 t0 = MapleGenVar1*MapleGenVar2;
469 txt+=
"\"invariant_of_strain_rate\",";
470 txt+=
"\"invariant_of_strain_rate_extrapol\",";
471 txt+=
"\"invariant_of_stress\",";
472 txt+=
"\"viscosity\",";
493 const unsigned &nplot)
500 Vector<double> dudt(
el_dim);
503 Vector<double> mesh_veloc(
el_dim,0.0);
506 outfile << tecplot_zone_string(nplot);
509 unsigned n_node = nnode();
516 DShape dpsifdx(n_node,
el_dim);
519 unsigned num_plot_points=nplot_points(nplot);
520 for (
unsigned iplot=0;iplot<num_plot_points;iplot++)
524 get_s_plot(iplot,nplot,
s);
527 dshape_eulerian(
s,psif,dpsifdx);
530 Vector<double> mesh_veloc(
el_dim,0.0);
531 Vector<double> int_x(
el_dim,0.0);
532 Vector<double> dudt(
el_dim,0.0);
533 Vector<double> dudt_ALE(
el_dim,0.0);
556 unsigned u_nodal_index = u_index_nst(
i);
558 for(
unsigned l=0;l<n_node;l++)
560 dudt[
i]+=du_dt_nst(l,u_nodal_index)*psif[l];
561 mesh_veloc[
i]+=dnodal_position_dt(l,
i)*psif[l];
569 unsigned u_nodal_index = u_index_nst(
i);
571 for(
unsigned l=0;l<n_node;l++)
576 interpolated_dudx(
i,
j) += nodal_value(l,u_nodal_index)*
588 dudt_ALE[
i]-=mesh_veloc[
k]*interpolated_dudx(
i,
k);
595 this->strain_rate(
s,rate_of_strain);
599 if (Use_extrapolated_strainrate_to_compute_second_invariant)
606 double second_invariant_strain=
608 double second_invariant_strain_extrapol=
613 double viscosity=this->Constitutive_eqn_pt
614 ->viscosity(second_invariant_strain_extrapol);
624 stress(
i,
j)=viscosity*rate_of_strain(
i,
j);
628 double second_invariant_stress=
644 outfile << interpolated_x(
s,
i) <<
" ";
650 outfile << interpolated_u_nst(
s,
i) <<
" ";
654 outfile << interpolated_p_nst(
s) <<
" ";
659 outfile << dudt_ALE[
i] <<
" ";
700 outfile << second_invariant_strain <<
" ";
701 outfile << second_invariant_strain_extrapol <<
" ";
702 outfile << second_invariant_stress <<
" ";
704 outfile << viscosity <<
" ";
706 outfile << yield <<
" ";
708 outfile <<
Error <<
" ";
710 outfile <<
size() <<
" ";
730 outfile << std::endl;
735 write_tecplot_zone_footer(outfile,nplot);
746 if (
flux.size() < num_entries)
748 std::ostringstream error_message;
749 error_message <<
"The flux vector has the wrong number of entries, "
750 <<
flux.size() <<
", whereas it should be at least "
751 << num_entries << std::endl;
752 throw OomphLibError(error_message.str(),
753 "RefineableNavierStokesEquations::get_Z2_flux()",
763 this->strain_rate(
s,strainrate);
764 double second_invariant_strain=
768 double viscosity=this->Constitutive_eqn_pt
769 ->viscosity(second_invariant_strain);
776 stress(
i,
j)=viscosity*strainrate(
i,
j);
804 bool add_yield_bias=
false;
805 if (!add_yield_bias) yield=0.0;
814 flux[icount]=strainrate(
i,
i)+yield;
824 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<
el_dim;
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<
el_dim;
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 ipt, 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;
1037 unsigned n_node = nnode();
1040 unsigned u_nodal_index[
el_dim+1];
1041 for(
unsigned i=0;
i<
el_dim;
i++) {u_nodal_index[
i] = u_index_nst(
i);}
1045 DShape dpsidx(n_node,
el_dim);
1048 unsigned n_intpt = integral_pt()->nweight();
1054 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
1057 for(
unsigned i=0;
i<
el_dim;
i++)
s[
i] = integral_pt()->knot(ipt,
i);
1060 double w = integral_pt()->weight(ipt);
1064 double J = this->dshape_eulerian_at_knot(ipt,psif,dpsidx);
1070 Vector<double> interpolated_u(
el_dim,0.0);
1073 for(
unsigned l=0;l<n_node;l++)
1079 double u_value = raw_nodal_value(l,u_nodal_index[
i]);
1080 interpolated_u[
i] += u_value*psif[l];
1087 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
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
bool Use_aitken_extrapolation
Definition: overloaded_cartesian_element_body.h:45
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Get 'flux' for Z2 error recovery.
Definition: overloaded_cartesian_element_body.h:742
unsigned el_dim
dimension
Definition: overloaded_cartesian_element_body.h:30
void output(std::ostream &outfile, const unsigned &nplot)
Overload output function.
Definition: overloaded_cartesian_element_body.h:492
unsigned Aitken_index
Definition: overloaded_cartesian_element_body.h:1166
double square_of_norm_of_viscosity(double &norm_squared, double &extrapolated_norm_squared, double &error_norm_squared)
Definition: overloaded_cartesian_element_body.h:899
double square_of_norm_of_strain_invariant(double &norm_squared, double &extrapolated_norm_squared, double &error_norm_squared)
Definition: overloaded_cartesian_element_body.h:835
void set_error(const double &error)
Set error value for post-processing.
Definition: overloaded_cartesian_element_body.h:440
double square_of_norm_of_fixed_point(double &norm_squared, double &latest_guess_norm_squared, double &error_norm_squared)
Definition: overloaded_cartesian_element_body.h:968
void update_latest_fixed_point_iteration_guess_for_strain_rate()
Definition: overloaded_cartesian_element_body.h:134
double Error
Storage for elemental error estimate – used for post-processing.
Definition: overloaded_cartesian_element_body.h:33
void extrapolated_strain_rate(const unsigned &ipt, DenseMatrix< double > &strainrate) const
Definition: overloaded_cartesian_element_body.h:197
double square_of_l2_norm()
Get square of L2 norm of velocity.
Definition: overloaded_cartesian_element_body.h:1030
unsigned & nprev_for_extrapolation_of_strain_rate()
Definition: overloaded_cartesian_element_body.h:82
void disable_aitken_extrapolation()
Disable use of Aitken extrapolation.
Definition: overloaded_cartesian_element_body.h:111
Vector< Vector< DenseMatrix< double > > > Fixed_point_iteration_guess_for_strain_rate
Current best guess for strain rate tensor (fixed point iteration)
Definition: overloaded_cartesian_element_body.h:1163
std::string variable_identifier()
Return variable identifier.
Definition: overloaded_cartesian_element_body.h:443
void disable_fixed_point_iteration_for_strain_rate()
Disable use of fixed point iteration.
Definition: overloaded_cartesian_element_body.h:98
unsigned Nprev_for_extrapolation_of_strain_rate
Definition: overloaded_cartesian_element_body.h:37
MyTaylorHoodElement()
Definition: overloaded_cartesian_element_body.h:53
void enable_fixed_point_iteration_for_strain_rate()
Definition: overloaded_cartesian_element_body.h:90
void enable_aitken_extrapolation()
Enable use of Aitken extrapolation.
Definition: overloaded_cartesian_element_body.h:105
void latest_fixed_point_iteration_guess_for_strain_rate(const unsigned &ipt, DenseMatrix< double > &strainrate) const
Definition: overloaded_cartesian_element_body.h:118
bool Use_fixed_point_for_strain_rate
Definition: overloaded_cartesian_element_body.h:41
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2