Driver code for vibrating drop problem.
1695 (
"--use_current_strainrate_for_viscosity");
1709 "--osc_body_force_multiplier",
1720 "--nprev_for_extrapolation_of_strain_rate",
1724 unsigned min_ntstep_per_period=40;
1726 "--min_ntstep_per_period",&min_ntstep_per_period);
1729 unsigned initial_ntstep_per_period=40;
1731 "--initial_ntstep_per_period",&initial_ntstep_per_period);
1734 unsigned nadapt_interval=1;
1736 "--manual_adapt",&nadapt_interval);
1740 "--uniform_element_area",
1745 double newtonian_viscosity_ratio=1.0;
1747 "--use_newtonian_constitutive_equation",
1748 &newtonian_viscosity_ratio);
1752 "--use_casson_constitutive_equation",
1757 "--use_herschel_bulkley_constitutive_equation",
1762 "--use_sisko_constitutive_equation",
1766 double epsilon_t=2.0e-7;
1768 "--epsilon_t",&epsilon_t);
1772 unsigned fixed_point_steps_before_aitken_extrapolation=0;
1774 "--use_fixed_point_iteration",
1775 &fixed_point_steps_before_aitken_extrapolation);
1790 oomph_info <<
"Using Newtonian constitutive equation with viscosity ratio: "
1791 << newtonian_viscosity_ratio << std::endl;
1796 (
"--use_casson_constitutive_equation"))
1798 oomph_info <<
"Using Casson constitutive equation"
1799 <<
" with cutoff strain rate: "
1813 (
"--use_herschel_bulkley_constitutive_equation"))
1815 oomph_info <<
"Using Herschel Bulkley constitutive equation"
1816 <<
" with cutoff strain rate: "
1831 (
"--use_sisko_constitutive_equation")) ||
1835 oomph_info <<
"Using Sisko constitutive equation"
1836 <<
" with cutoff strain rate: "
1852 oomph_info <<
"Please select constitutive equation!\n";
1861 fixed_point_steps_before_aitken_extrapolation=500;
1877 <<
"\"drop height\","
1878 <<
"\"body force\","
1880 <<
"\"number of elements\","
1881 <<
"\"max element area \","
1882 <<
"\"min element area \","
1883 <<
"\"max spatial error\","
1884 <<
"\"min spatial error\","
1885 <<
"\"norm of strain invariant\","
1886 <<
"\"norm of extrapolated strain invariant\","
1887 <<
"\"norm of error in extrapolated strain invariant\","
1888 <<
"\"min_invariant \","
1889 <<
"\"max_invariant \","
1890 <<
"\"min_viscosity \","
1891 <<
"\"max_viscosity \","
1892 <<
"\"norm of viscosity \","
1894 <<
"\"global temporal error norm\","
1908 ofstream constitutive_file;
1910 double invariant_min=1.0e-15;
1911 double invariant_max=1.0e2;
1912 unsigned nstep_per_decade=10;
1913 double ratio=
pow(0.1,
double(1.0/nstep_per_decade));
1914 double invariant=invariant_max;
1915 while (invariant>invariant_min)
1917 constitutive_file << invariant <<
" "
1922 constitutive_file.close();
1932 oomph_info <<
"Tolerance for adaptive timestepping: epsilon_t = "
1933 << epsilon_t << std::endl;
1936 double dt_new=1.0/
double(initial_ntstep_per_period);
1939 double dt_max=1.0/
double(min_ntstep_per_period);
1942 double t_max=500.25;
1945 double fixed_point_tol=1.0;
1968 problem.assign_initial_values_impulsive();
1970 oomph_info <<
"zeroth order extrapol (one prev value)" << std::endl;
1971 problem.set_nprev_for_extrapolation_of_strain_rate_for_all_elements(1);
1974 problem.unsteady_newton_solve(dt_new);
1981 <<
" steps with constant timestep and mesh " << std::endl;
1984 while (
problem.time_pt()->time()<t_max)
1991 oomph_info <<
"hierher: time for another adaptation at doc number ="
1998 oomph_info <<
"next order extrapol (two prev values)" << std::endl;
1999 problem.set_nprev_for_extrapolation_of_strain_rate_for_all_elements(2);
2002 oomph_info <<
"HIERHER: SKIPPING FOURTH ORDER STUFF!\n";
2013 dt_new=
problem.adaptive_unsteady_newton_solve(
problem.next_dt(),epsilon_t);
2016 cout <<
"Suggested new dt: " << dt_new << std::endl;
2020 cout<<
"dt limited (from above) to: "<<dt_new<<endl;
2037 oomph_info <<
"DOING FIXED POINT ITERATION\n";
2039 problem.enable_fixed_point_iteration_for_strain_rate_for_all_elements();
2042 double error_fixed_point_iteration = DBL_MAX;
2045 while(error_fixed_point_iteration > fixed_point_tol)
2047 if(i_fp == fixed_point_steps_before_aitken_extrapolation)
2049 oomph_info <<
"DOING AITKEN EXTRAPOLATION\n";
2050 problem.enable_aitken_extrapolation_for_all_elements();
2052 oomph_info <<
"FIXED POINT RE-SOLVE " << i_fp <<
" FOR t = "
2053 <<
problem.time_pt()->time() <<
"\n";
2056 error_fixed_point_iteration=
2057 problem.calculate_error_of_fixed_point_iteration();
2080 problem.update_latest_fixed_point_iteration_guess_for_strain_rate_for_all_elements();
2088 problem.disable_fixed_point_iteration_for_strain_rate_for_all_elements();
2104 oomph_info <<
"hierher bailing out after const timesteps\n";
2115 while (
problem.time_pt()->time()<t_max)
2118 dt_new=
problem.adaptive_unsteady_newton_solve(
problem.next_dt(),epsilon_t);
2121 cout <<
"Suggested new dt: " << dt_new << std::endl;
2125 cout<<
"dt limited (from above) to: "<<dt_new<<endl;
2140 oomph_info <<
"hierher: time for another adaptation at doc number ="
2150 unsigned max_adapt=1;
2152 dt_new=
problem.doubly_adaptive_unsteady_newton_solve(
problem.next_dt(),epsilon_t,
2156 cout <<
"Suggested new dt: " << dt_new << std::endl;
2160 cout<<
"dt limited (from above) to: "<<dt_new<<endl;
Array< double, 1, 3 > e(1./3., 0.5, 2.)
EIGEN_DEVICE_FUNC const GlobalUnaryPowReturnType< Derived, ScalarExponent > pow(const Eigen::ArrayBase< Derived > &x, const ScalarExponent &exponent)
Definition: GlobalFunctions.h:137
Problem class to simulate the settling of a viscous drop.
Definition: vibrating_shell_non_newtonian.cc:279
Definition: generalised_newtonian_constitutive_models.h:891
void set_directory(const std::string &directory)
Definition: oomph_utilities.cc:298
unsigned & number()
Number used (e.g.) for labeling output files.
Definition: oomph_utilities.h:554
Definition: constitutive_laws.h:699
virtual double viscosity(const double &second_invariant_of_rate_of_strain_tensor)=0
Definition: generalised_newtonian_constitutive_models.h:360
Overload TaylorHood element to modify output.
Definition: pressure_driven_torus.cc:98
Definition: generalised_newtonian_constitutive_models.h:72
Taylor Hood upgraded to become projectable.
Definition: generalised_newtonian_navier_stokes_elements.h:2450
Definition: generalised_newtonian_constitutive_models.h:685
string Directory
Directory.
Definition: all_foeppl_von_karman/axisym_displ_based_fvk.cc:70
void setup(Time *time_pt)
Create all GeomObjects needed to define the cylinder and the flag.
Definition: turek_flag_non_fsi.cc:277
ofstream Norm_file
Definition: refineable_two_layer_interface.cc:341
ofstream Trace_file
Trace file.
Definition: refineable_two_layer_interface.cc:335
ConstitutiveLaw * Constitutive_law_pt
Constitutive law used to determine the mesh deformation.
Definition: jeffery_orbit.cc:82
double St
Strouhal number.
Definition: jeffery_orbit.cc:62
double Nu
Pseudo-solid (mesh) Poisson ratio.
Definition: jeffery_orbit.cc:75
double Re
Reynolds number.
Definition: jeffery_orbit.cc:59
bool command_line_flag_has_been_set(const std::string &flag)
Definition: oomph_utilities.cc:501
void specify_command_line_flag(const std::string &command_line_flag, const std::string &doc)
Specify possible argument-free command line flag.
Definition: oomph_utilities.cc:451
void parse_and_assign(int argc, char *argv[], const bool &throw_on_unrecognised_args)
Definition: oomph_utilities.cc:760
void doc_specified_flags()
Document specified command line flags.
Definition: oomph_utilities.cc:610
std::string Restart_file
Name of restart file.
Definition: axisym_vibrating_shell_non_newtonian.cc:67
double C_St
Strouhal number.
Definition: axisym_vibrating_shell_non_newtonian.cc:161
double HB_Re
Reynolds number.
Definition: axisym_vibrating_shell_non_newtonian.cc:178
double Uniform_element_area
Uniform initial element area.
Definition: axisym_vibrating_shell_non_newtonian.cc:61
double S_St
Strouhal number.
Definition: axisym_vibrating_shell_non_newtonian.cc:201
double S_Re_St
Reynolds multiplied Strouhal.
Definition: axisym_vibrating_shell_non_newtonian.cc:204
double S_Re
Reynolds number.
Definition: axisym_vibrating_shell_non_newtonian.cc:198
double HB_Re_St
Reynolds multiplied Strouhal.
Definition: axisym_vibrating_shell_non_newtonian.cc:184
double S_flow_index
Flow index in Sisko model.
Definition: axisym_vibrating_shell_non_newtonian.cc:195
GeneralisedNewtonianConstitutiveEquation< 3 > * Const_eqn_pt
Fluid constitutive equation.
Definition: axisym_vibrating_shell_non_newtonian.cc:213
double HB_flow_index
Power law exponent.
Definition: axisym_vibrating_shell_non_newtonian.cc:175
DocInfo Doc_info_soln
Doc info solutions.
Definition: axisym_vibrating_shell_non_newtonian.cc:73
unsigned BDF_type
Which bdf timestepper do we use?
Definition: axisym_vibrating_shell_non_newtonian.cc:54
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
double C_yield_stress
Yield stress.
Definition: axisym_vibrating_shell_non_newtonian.cc:155
DocInfo Doc_info_trace
Doc info trace file.
Definition: axisym_vibrating_shell_non_newtonian.cc:70
double C_Re_St
Reynolds multiplied Strouhal.
Definition: axisym_vibrating_shell_non_newtonian.cc:164
unsigned Nprev_for_extrapolation_of_strain_rate
Definition: axisym_vibrating_shell_non_newtonian.cc:58
double C_Re
Reynolds number.
Definition: axisym_vibrating_shell_non_newtonian.cc:158
double Initial_settling_time
Time after which oscillation starts.
Definition: axisym_vibrating_shell_non_newtonian.cc:100
double HB_St
Strouhal number.
Definition: axisym_vibrating_shell_non_newtonian.cc:181
double Re_St
Reynolds multiplied Strouhal.
Definition: axisym_vibrating_shell_non_newtonian.cc:91
double Dt_min
Minimum allowable timestep.
Definition: axisym_vibrating_shell_non_newtonian.cc:103
double S_alpha
Pre-factor in Sisko model K / ( mu_inf T^(n-1) )
Definition: axisym_vibrating_shell_non_newtonian.cc:192
double HB_yield_stress
Yield stress.
Definition: axisym_vibrating_shell_non_newtonian.cc:172
double Oscillating_body_force_multiplier
Body force multiplier.
Definition: axisym_vibrating_shell_non_newtonian.cc:97
double Tolerable_error
Definition: unstructured_two_d_mesh_geometry_base.cc:1103
OomphInfo oomph_info
Definition: oomph_definitions.cc:319
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213