Driver code for vibrating drop problem.
1707 (
"--use_current_strainrate_for_viscosity");
1721 "--osc_body_force_multiplier",
1732 "--nprev_for_extrapolation_of_strain_rate",
1736 unsigned min_ntstep_per_period=40;
1738 "--min_ntstep_per_period",&min_ntstep_per_period);
1741 unsigned initial_ntstep_per_period=40;
1743 "--initial_ntstep_per_period",&initial_ntstep_per_period);
1746 unsigned nadapt_interval=1;
1748 "--manual_adapt",&nadapt_interval);
1752 "--uniform_element_area",
1757 double newtonian_viscosity_ratio=1.0;
1759 "--use_newtonian_constitutive_equation",
1760 &newtonian_viscosity_ratio);
1764 "--use_casson_constitutive_equation",
1769 "--use_herschel_bulkley_constitutive_equation",
1774 "--use_sisko_constitutive_equation",
1778 double epsilon_t=2.0e-7;
1780 "--epsilon_t",&epsilon_t);
1784 unsigned fixed_point_steps_before_aitken_extrapolation=0;
1786 "--use_fixed_point_iteration",
1787 &fixed_point_steps_before_aitken_extrapolation);
1801 oomph_info <<
"Using Newtonian constitutive equation with viscosity ratio: "
1802 << newtonian_viscosity_ratio << std::endl;
1807 (
"--use_casson_constitutive_equation"))
1809 oomph_info <<
"Using Casson constitutive equation"
1810 <<
" with cutoff strain rate: "
1824 (
"--use_herschel_bulkley_constitutive_equation"))
1826 oomph_info <<
"Using Herschel Bulkley constitutive equation"
1827 <<
" with cutoff strain rate: "
1842 (
"--use_sisko_constitutive_equation")) ||
1846 oomph_info <<
"Using Sisko constitutive equation"
1847 <<
" with cutoff strain rate: "
1863 oomph_info <<
"Please select constitutive equation!\n";
1872 fixed_point_steps_before_aitken_extrapolation=500;
1889 <<
"\"drop height\","
1890 <<
"\"body force\","
1892 <<
"\"number of elements\","
1893 <<
"\"max element area \","
1894 <<
"\"min element area \","
1895 <<
"\"max spatial error\","
1896 <<
"\"min spatial error\","
1897 <<
"\"norm of strain invariant\","
1898 <<
"\"norm of extrapolated strain invariant\","
1899 <<
"\"norm of error in extrapolated strain invariant\","
1900 <<
"\"min_invariant \","
1901 <<
"\"max_invariant \","
1902 <<
"\"min_viscosity \","
1903 <<
"\"max_viscosity \","
1904 <<
"\"norm of viscosity \","
1906 <<
"\"global temporal error norm\","
1921 ofstream constitutive_file;
1923 double invariant_min=1.0e-15;
1924 double invariant_max=1.0e2;
1925 unsigned nstep_per_decade=10;
1926 double ratio=
pow(0.1,
double(1.0/nstep_per_decade));
1927 double invariant=invariant_max;
1928 while (invariant>invariant_min)
1930 constitutive_file << invariant <<
" "
1935 constitutive_file.close();
1945 oomph_info <<
"Tolerance for adaptive timestepping: epsilon_t = "
1946 << epsilon_t << std::endl;
1949 double dt_new=1.0/
double(initial_ntstep_per_period);
1952 double dt_max=1.0/
double(min_ntstep_per_period);
1955 double t_max=500.25;
1958 double fixed_point_tol=1.0;
1981 problem.assign_initial_values_impulsive();
1983 oomph_info <<
"zeroth order extrapol (one prev value)" << std::endl;
1984 problem.set_nprev_for_extrapolation_of_strain_rate_for_all_elements(1);
1987 problem.unsteady_newton_solve(dt_new);
1994 <<
" steps with constant timestep and mesh " << std::endl;
1997 while (
problem.time_pt()->time()<t_max)
2004 oomph_info <<
"hierher: time for another adaptation at doc number ="
2011 oomph_info <<
"next order extrapol (two prev values)" << std::endl;
2012 problem.set_nprev_for_extrapolation_of_strain_rate_for_all_elements(2);
2015 oomph_info <<
"HIERHER: SKIPPING FOURTH ORDER STUFF!\n";
2026 dt_new=
problem.adaptive_unsteady_newton_solve(
problem.next_dt(),epsilon_t);
2029 cout <<
"Suggested new dt: " << dt_new << std::endl;
2033 cout<<
"dt limited (from above) to: "<<dt_new<<endl;
2050 oomph_info <<
"DOING FIXED POINT ITERATION\n";
2052 problem.enable_fixed_point_iteration_for_strain_rate_for_all_elements();
2055 double error_fixed_point_iteration = DBL_MAX;
2058 while(error_fixed_point_iteration > fixed_point_tol)
2060 if(i_fp == fixed_point_steps_before_aitken_extrapolation)
2062 oomph_info <<
"DOING AITKEN EXTRAPOLATION\n";
2063 problem.enable_aitken_extrapolation_for_all_elements();
2065 oomph_info <<
"FIXED POINT RE-SOLVE " << i_fp <<
" FOR t = "
2066 <<
problem.time_pt()->time() <<
"\n";
2069 error_fixed_point_iteration=
2070 problem.calculate_error_of_fixed_point_iteration();
2093 problem.update_latest_fixed_point_iteration_guess_for_strain_rate_for_all_elements();
2101 problem.disable_fixed_point_iteration_for_strain_rate_for_all_elements();
2118 oomph_info <<
"hierher bailing out after const timesteps\n";
2129 while (
problem.time_pt()->time()<t_max)
2132 dt_new=
problem.adaptive_unsteady_newton_solve(
problem.next_dt(),epsilon_t);
2135 cout <<
"Suggested new dt: " << dt_new << std::endl;
2139 cout<<
"dt limited (from above) to: "<<dt_new<<endl;
2154 oomph_info <<
"hierher: time for another adaptation at doc number ="
2164 unsigned max_adapt=1;
2166 dt_new=
problem.doubly_adaptive_unsteady_newton_solve(
problem.next_dt(),epsilon_t,
2170 cout <<
"Suggested new dt: " << dt_new << std::endl;
2174 cout<<
"dt limited (from above) to: "<<dt_new<<endl;
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Problem class to simulate the settling of a viscous drop.
Definition: axisym_vibrating_shell_non_newtonian.cc:282
EIGEN_DEVICE_FUNC const GlobalUnaryPowReturnType< Derived, ScalarExponent > pow(const Eigen::ArrayBase< Derived > &x, const ScalarExponent &exponent)
Definition: GlobalFunctions.h:137
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_axisym_navier_stokes_elements.h:1931
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
Definition: generalised_newtonian_constitutive_models.h:685
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 Directory
Output directory.
Definition: axisym_vibrating_shell_non_newtonian.cc:64
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