///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// 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.
421 unsigned element_multiplier=1;
422 bool use_iterative_solver=
true;
423 bool use_hypre_for_pressure=
true;
424 bool use_block_diagonal_for_momentum=
false;
425 bool use_hypre_for_momentum=
true;
432 oomph_info <<
"No command line arguments; running self-test"
440 use_iterative_solver=
false;
444 use_iterative_solver=
true;
448 oomph_info <<
"Second command line arg must be 0 or 1 for\n"
449 <<
"don't/do use iterative solver, but is"
455 use_hypre_for_momentum=
false;
459 use_hypre_for_momentum=
true;
463 oomph_info <<
"Third command line arg must be 0 or 1 for\n"
464 <<
"don't/do use hypre for momentum block solver, but is"
470 use_hypre_for_pressure=
false;
474 use_hypre_for_pressure=
true;
478 oomph_info <<
"Fourth command line arg must be 0 or 1 for\n"
479 <<
"don't/do use hypre for pressure block solver, but is"
500 oomph_info <<
"Fifth command line arg must be 0, 1 or 2 for\n"
501 <<
"run both (0) or only CR (1) or TH (2) elements, but is"
507 use_block_diagonal_for_momentum=
false;
511 use_block_diagonal_for_momentum=
true;
515 oomph_info <<
"Sixth command line arg must be 0 or 1 for\n"
516 <<
"don't/do use block diagonal for pressure solver, but is"
523 oomph_info <<
"Wrong number of command line arguments" << std::endl;
524 oomph_info <<
"Enter none (for default) or six" << std::endl;
525 oomph_info <<
"- multiplier for number of element rows/columns"
527 oomph_info <<
"- flag (0/1) for (don't/do) use iterative solver"
529 oomph_info <<
"- flag (0/1) for (don't/do) use hypre for pressure block"
531 oomph_info <<
"- flag (0/1) for (don't/do) use hypre for momentum block"
533 oomph_info <<
"- flag (0/1/2) run both (0) or only CR (1) or TH (2) "
534 <<
"elements" << std::endl;
535 oomph_info <<
"- flag (0/1) for (don't/do) use block diagonal for "
536 <<
"momentum block" << std::endl;
540 oomph_info <<
"Running with element multiplier: "
541 << element_multiplier << std::endl;
543 if (use_iterative_solver)
545 oomph_info <<
"Using iterative solver" << std::endl;
549 oomph_info <<
"Using direct solver" << std::endl;
552 if (use_hypre_for_pressure)
554 oomph_info <<
"Using hypre for pressure block" << std::endl;
558 oomph_info <<
"Using SuperLU for pressure block" << std::endl;
561 if (use_hypre_for_momentum)
563 oomph_info <<
"Using hypre for momentum block" << std::endl;
567 oomph_info <<
"Using SuperLU for momentum block" << std::endl;
570 if (use_block_diagonal_for_momentum)
572 oomph_info <<
"Using block diagonal for momentum block" << std::endl;
596 problem(element_multiplier,use_iterative_solver,
597 use_hypre_for_pressure,use_hypre_for_momentum,
598 use_block_diagonal_for_momentum);
599 cout <<
"Doing QCrouzeixRaviartElement<2>" << std::endl;
605 problem.doc_solution(doc_info);
618 problem(element_multiplier,use_iterative_solver,
619 use_hypre_for_pressure,use_hypre_for_momentum,
620 use_block_diagonal_for_momentum);
621 cout <<
"Doing QTaylorHoodElement<2>" << std::endl;
627 problem.doc_solution(doc_info);
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