///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// Driver for RectangularDrivenCavity test problem – test drive with two different types of element. Optional command line args specify multiplier for number of element rows/columns and flag to indicate if iterative solver is used. Multiplier and flag both default to 1.
428 MPI_Helpers::init(argc,argv);
436 unsigned element_multiplier=1;
437 bool use_iterative_solver=
true;
438 bool use_hypre_for_pressure=
true;
439 bool use_block_diagonal_for_momentum=
false;
440 bool use_hypre_for_momentum=
true;
447 oomph_info <<
"No command line arguments; running self-test"
455 use_iterative_solver=
false;
459 use_iterative_solver=
true;
463 oomph_info <<
"Second command line arg must be 0 or 1 for\n"
464 <<
"don't/do use iterative solver, but is"
470 use_hypre_for_momentum=
false;
474 use_hypre_for_momentum=
true;
478 oomph_info <<
"Third command line arg must be 0 or 1 for\n"
479 <<
"don't/do use hypre for momentum block solver, but is"
485 use_hypre_for_pressure=
false;
489 use_hypre_for_pressure=
true;
493 oomph_info <<
"Fourth command line arg must be 0 or 1 for\n"
494 <<
"don't/do use hypre for pressure block solver, but is"
515 oomph_info <<
"Fifth command line arg must be 0, 1 or 2 for\n"
516 <<
"run both (0) or only CR (1) or TH (2) elements, but is"
522 use_block_diagonal_for_momentum=
false;
526 use_block_diagonal_for_momentum=
true;
530 oomph_info <<
"Sixth command line arg must be 0 or 1 for\n"
531 <<
"don't/do use block diagonal for pressure solver, but is"
538 oomph_info <<
"Wrong number of command line arguments" << std::endl;
539 oomph_info <<
"Enter none (for default) or six" << std::endl;
540 oomph_info <<
"- multiplier for number of element rows/columns"
542 oomph_info <<
"- flag (0/1) for (don't/do) use iterative solver"
544 oomph_info <<
"- flag (0/1) for (don't/do) use hypre for pressure block"
546 oomph_info <<
"- flag (0/1) for (don't/do) use hypre for momentum block"
548 oomph_info <<
"- flag (0/1/2) run both (0) or only CR (1) or TH (2) "
549 <<
"elements" << std::endl;
550 oomph_info <<
"- flag (0/1) for (don't/do) use block diagonal for "
551 <<
"momentum block" << std::endl;
555 oomph_info <<
"Running with element multiplier: "
556 << element_multiplier << std::endl;
558 if (use_iterative_solver)
560 oomph_info <<
"Using iterative solver" << std::endl;
564 oomph_info <<
"Using direct solver" << std::endl;
567 if (use_hypre_for_pressure)
569 oomph_info <<
"Using hypre for pressure block" << std::endl;
573 oomph_info <<
"Using SuperLU for pressure block" << std::endl;
576 if (use_hypre_for_momentum)
578 oomph_info <<
"Using hypre for momentum block" << std::endl;
582 oomph_info <<
"Using SuperLU for momentum block" << std::endl;
585 if (use_block_diagonal_for_momentum)
587 oomph_info <<
"Using block diagonal for momentum block" << std::endl;
611 problem(element_multiplier,use_iterative_solver,
612 use_hypre_for_pressure,use_hypre_for_momentum,
613 use_block_diagonal_for_momentum);
614 cout <<
"Doing QCrouzeixRaviartElement<2>" << std::endl;
620 problem.doc_solution(doc_info);
633 problem(element_multiplier,use_iterative_solver,
634 use_hypre_for_pressure,use_hypre_for_momentum,
635 use_block_diagonal_for_momentum);
636 cout <<
"Doing QTaylorHoodElement<2>" << std::endl;
642 problem.doc_solution(doc_info);
650 MPI_Helpers::finalize();
Driven cavity problem in rectangular domain.
Definition: linear_solvers/driven_cavity.cc:77
Definition: oomph_utilities.h:499
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
void setup(Time *time_pt)
Create all GeomObjects needed to define the cylinder and the flag.
Definition: turek_flag_non_fsi.cc:277
char ** Argv
Arguments themselves.
Definition: oomph_utilities.cc:410
int Argc
Number of arguments + 1.
Definition: oomph_utilities.cc:407
OomphInfo oomph_info
Definition: oomph_definitions.cc:319
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213