Driver for Tuckerman counter-rotating lids problem.
////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
973 const unsigned base_n_r = 4;
974 const unsigned perturbed_n_r = 4;
977 const unsigned base_n_z = 4;
978 const unsigned perturbed_n_z = 4;
993 const double dt = 0.01;
997 const unsigned nstep = 1;
1002 const double power_method_tolerance = 1
e-4;
1005 const unsigned max_iter = 1000;
1018 problem_TH(base_n_r,base_n_z,perturbed_n_r,perturbed_n_z,domain_height);
1029 trace <<
"Re, dominating eigenvalue, n_power_method_iterations" << std::endl;
1032 problem_TH.base_state_problem_pt()->refine_uniformly();
1033 problem_TH.perturbed_state_problem_pt()->refine_uniformly();
1036 const unsigned temp_array[22]
1037 = {0,1,4,5,8,9,12,13,15,29,31,45,47,50,51,54,55,58,59,61,62,63};
1039 for(
unsigned i=0;
i<22;
i++) { els_to_refine.push_back(temp_array[
i]); }
1042 problem_TH.base_state_problem_pt()->refine_selected_elements(els_to_refine);
1043 problem_TH.perturbed_state_problem_pt()
1044 ->refine_selected_elements(els_to_refine);
1048 problem_TH.perturbed_state_problem_pt()->initialise_dt(dt);
1051 problem_TH.set_initial_condition();
1055 double eigenvalue = 0.0;
1059 problem_TH.perturbed_state_problem_pt()->get_dofs(eigenvector);
1065 problem_TH.base_state_problem_pt()->set_boundary_conditions();
1068 problem_TH.base_state_problem_pt()->steady_newton_solve();
1071 problem_TH.base_state_problem_pt()->doc_solution(doc_info);
1076 problem_TH.perturbed_state_problem_pt()->enable_jacobian_reuse();
1079 const unsigned n_power_method_iterations =
1080 problem_TH.perform_power_method(dt,nstep,doc_info,power_method_tolerance,
1081 max_iter,eigenvalue,eigenvector);
1083 cout <<
"\nDominating eigenvalue is " << eigenvalue << endl;
1087 << eigenvalue <<
" "
1088 << n_power_method_iterations << std::endl;
1099 problem_CR(base_n_r,base_n_z,perturbed_n_r,perturbed_n_z,domain_height);
1110 trace <<
"Re, dominating eigenvalue, n_power_method_iterations" << std::endl;
1113 problem_CR.base_state_problem_pt()->refine_uniformly();
1114 problem_CR.perturbed_state_problem_pt()->refine_uniformly();
1117 const unsigned temp_array[22]
1118 = {0,1,4,5,8,9,12,13,15,29,31,45,47,50,51,54,55,58,59,61,62,63};
1120 for(
unsigned i=0;
i<22;
i++) { els_to_refine.push_back(temp_array[
i]); }
1123 problem_CR.base_state_problem_pt()->refine_selected_elements(els_to_refine);
1124 problem_CR.perturbed_state_problem_pt()
1125 ->refine_selected_elements(els_to_refine);
1129 problem_CR.perturbed_state_problem_pt()->initialise_dt(dt);
1132 problem_CR.set_initial_condition();
1136 double eigenvalue = 0.0;
1140 problem_CR.perturbed_state_problem_pt()->get_dofs(eigenvector);
1146 problem_CR.base_state_problem_pt()->set_boundary_conditions();
1149 problem_CR.base_state_problem_pt()->steady_newton_solve();
1152 problem_CR.base_state_problem_pt()->doc_solution(doc_info);
1157 problem_CR.perturbed_state_problem_pt()->enable_jacobian_reuse();
1160 const unsigned n_power_method_iterations =
1161 problem_CR.perform_power_method(dt,nstep,doc_info,power_method_tolerance,
1162 max_iter,eigenvalue,eigenvector);
1164 cout <<
"\nDominating eigenvalue is " << eigenvalue << endl;
1168 << eigenvalue <<
" "
1169 << n_power_method_iterations << std::endl;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Definition: demo_drivers/axisym_navier_stokes/counter_rotating_disks/multi_domain_linearised_axisym_navier_stokes_elements.h:456
Definition: demo_drivers/axisym_navier_stokes/counter_rotating_disks/multi_domain_linearised_axisym_navier_stokes_elements.h:320
Definition: axisym_navier_stokes/counter_rotating_disks/counter_rotating_disks.cc:702
Definition: oomph_utilities.h:499
std::string directory() const
Output directory.
Definition: oomph_utilities.h:524
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: double_vector.h:58
Definition: refineable_axisym_navier_stokes_elements.h:765
Definition: refineable_axisym_navier_stokes_elements.h:407
double Re
Reynolds number.
Definition: axisym_navier_stokes/counter_rotating_disks/counter_rotating_disks.cc:61
double Gamma
Aspect ratio (cylinder height / cylinder radius)
Definition: axisym_navier_stokes/counter_rotating_disks/counter_rotating_disks.cc:70
Vector< double > G(3)
Direction of gravity.
string filename
Definition: MergeRestartFiles.py:39