Driver for Tuckerman counter-rotating lids problem.
////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
912 const unsigned base_n_r = 36;
913 const unsigned perturbed_n_r = 16;
916 const unsigned base_n_z = 36;
917 const unsigned perturbed_n_z = 16;
932 const double dt = 0.01;
936 const unsigned nstep = 1;
941 const double power_method_tolerance = 1
e-4;
944 const unsigned max_iter = 1000;
957 problem_TH(base_n_r,base_n_z,perturbed_n_r,perturbed_n_z,domain_height);
968 trace <<
"Re, dominating eigenvalue, n_power_method_iterations" << std::endl;
972 problem_TH.perturbed_state_problem_pt()->initialise_dt(dt);
975 problem_TH.set_initial_condition();
979 double eigenvalue = 0.0;
983 problem_TH.perturbed_state_problem_pt()->get_dofs(eigenvector);
989 problem_TH.base_state_problem_pt()->set_boundary_conditions();
992 problem_TH.base_state_problem_pt()->steady_newton_solve();
995 problem_TH.base_state_problem_pt()->doc_solution(doc_info);
1000 problem_TH.perturbed_state_problem_pt()->enable_jacobian_reuse();
1003 const unsigned n_power_method_iterations =
1004 problem_TH.perform_power_method(dt,nstep,doc_info,power_method_tolerance,
1005 max_iter,eigenvalue,eigenvector);
1007 cout <<
"\nDominating eigenvalue is " << eigenvalue << endl;
1011 << eigenvalue <<
" "
1012 << n_power_method_iterations << std::endl;
1023 problem_CR(base_n_r,base_n_z,perturbed_n_r,perturbed_n_z,domain_height);
1034 trace <<
"Re, dominating eigenvalue, n_power_method_iterations" << std::endl;
1038 problem_CR.perturbed_state_problem_pt()->initialise_dt(dt);
1041 problem_CR.set_initial_condition();
1045 double eigenvalue = 0.0;
1049 problem_CR.perturbed_state_problem_pt()->get_dofs(eigenvector);
1055 problem_CR.base_state_problem_pt()->set_boundary_conditions();
1058 problem_CR.base_state_problem_pt()->steady_newton_solve();
1061 problem_CR.base_state_problem_pt()->doc_solution(doc_info);
1066 problem_CR.perturbed_state_problem_pt()->enable_jacobian_reuse();
1069 const unsigned n_power_method_iterations =
1070 problem_CR.perform_power_method(dt,nstep,doc_info,power_method_tolerance,
1071 max_iter,eigenvalue,eigenvector);
1073 cout <<
"\nDominating eigenvalue is " << eigenvalue << endl;
1077 << eigenvalue <<
" "
1078 << n_power_method_iterations << std::endl;
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:186
Definition: demo_drivers/axisym_navier_stokes/counter_rotating_disks/multi_domain_linearised_axisym_navier_stokes_elements.h:54
Definition: axisym_navier_stokes/counter_rotating_disks/counter_rotating_disks.cc:702
Definition: axisym_navier_stokes_elements.h:1234
Definition: axisym_navier_stokes_elements.h:1532
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
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