Driver for Fp preconditioner.
///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
693 MPI_Helpers::init(argc,argv);
707 bool use_hypre_for_pressure=
true;
708 bool use_block_diagonal_for_momentum=
false;
709 bool use_hypre_for_momentum_diagonals=
false;
712 for (
unsigned problem_id=0;problem_id<2;problem_id++)
717 out_file.open(
"three_d_iter_driven_cavity.dat");
721 out_file.open(
"three_d_iter_through_flow.dat");
725 <<
"VARIABLES=\"nel_1d\","
728 <<
"\" Newton iteration\","
729 <<
"\"GMRES iterations\","
730 <<
"\"Linear solver time\","
742 for (
unsigned iprec=0;iprec<2;iprec++)
746 for (
unsigned icase=0;icase<=2;icase++)
749 bool use_adaptivity=
false;
758 use_adaptivity=
false;
765 use_adaptivity=
false;
770 header1=
" Refineable Bricks";
779 oomph_info <<
"Doing it with " << header1 << std::endl;
794 oomph_info <<
"Doing it with " << header2 <<
" preconditioner\n";
797 string header=
"ZONE T=\""+header1+header2+
"\"\n";
801 unsigned max_nel_1d=4;
802 if (argc>1) max_nel_1d=2;
803 for (
unsigned nel_1d = 2; nel_1d <= max_nel_1d; nel_1d*=2)
808 nel_1d,use_tets,use_adaptivity,use_lsc,
809 use_hypre_for_pressure,use_block_diagonal_for_momentum,
810 use_hypre_for_momentum_diagonals,problem_id);
820 unsigned nel=
problem.bulk_mesh_pt()->nelement();
824 elements_to_be_refined.push_back(
e);
827 problem.refine_selected_elements(0,elements_to_be_refined);
828 elements_to_be_refined.clear();
829 elements_to_be_refined.push_back(1);
830 problem.refine_selected_elements(0,elements_to_be_refined);
831 elements_to_be_refined.clear();
832 elements_to_be_refined.push_back(4);
833 problem.refine_selected_elements(0,elements_to_be_refined);
845 problem.create_refineable_traction_elements
857 double start_re = 0.0;
858 if (argc>1) start_re=50;
859 double end_re = 50.0;
860 for (
double re = start_re; re <= end_re; re+=50.0)
870 problem.doc_solution(doc_info);
874 unsigned ndof =
problem.ndof();
880 for (
unsigned j = j_lo;
j < iter;
j++)
889 << doc_info.
number()-1 <<
" "
904 MPI_Helpers::finalize();
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Test problem for Fp/PCD preconditioner.
Definition: three_d_fp.cc:114
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
Definition: navier_stokes_elements.h:2308
Definition: refineable_navier_stokes_elements.h:652
Definition: Tnavier_stokes_elements.h:741
Vector< unsigned > Iterations
Storage for number of iterations during Newton steps.
Definition: two_d_tilted_square.cc:111
Vector< double > Linear_solver_time
Storage for linear solver times during Newton steps.
Definition: three_d_fp.cc:86
double Re
Reynolds number.
Definition: two_d_tilted_square.cc:80
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
OomphInfo oomph_info
Definition: oomph_definitions.cc:319
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2