circular_driven_cavity_hp_adapt.cc File Reference

Classes

class  QuarterCircleDrivenCavityProblem< ELEMENT >
 

Namespaces

 Global_Physical_Variables
 Global variables.
 

Functions

Vector< doubleGlobal_Physical_Variables::Gravity (2)
 Gravity vector. More...
 
void Global_Physical_Variables::body_force (const double &time, const Vector< double > &x, Vector< double > &result)
 Functional body force. More...
 
void Global_Physical_Variables::zero_body_force (const double &time, const Vector< double > &x, Vector< double > &result)
 Zero functional body force. More...
 
int main ()
 Driver for QuarterCircleDrivenCavityProblem test problem. More...
 

Function Documentation

◆ main()

int main ( )

Driver for QuarterCircleDrivenCavityProblem test problem.

333 {
334  //Drive straight and curved boundaries in turn
335  for(unsigned driven_bdry=0; driven_bdry<2; driven_bdry++)
336  {
337  // Set output directory
338  DocInfo doc_info;
339  if(driven_bdry==0)
340  doc_info.set_directory("RESLT_circ_bdry0");
341  else
342  doc_info.set_directory("RESLT_circ_bdry1");
343 
344  // Solve problem 1 with hp-refineable Crouzeix-Raviart elements
345  //-------------------------------------------------------------
346  {
347  // Set up downwards-Gravity vector
350 
351  // Set up Gamma vector for stress-divergence form
354 
355  // Build problem with Gravity vector in stress divergence form,
356  // using zero body force function
359 
360  //Set initial doc_info number
361  doc_info.number()=10;
362 
363  // Initial refinement level
364  problem.refine_uniformly();
365  problem.refine_uniformly();
366  problem.p_refine_uniformly();
367 
368  problem.newton_solve();
369  cout << "output file: " << doc_info.number() << endl;
370  problem.doc_solution(doc_info);
371  doc_info.number()++;
372 
373  problem.adapt();
374  problem.newton_solve();
375  cout << "output file: " << doc_info.number() << endl;
376  problem.doc_solution(doc_info);
377  doc_info.number()++;
378 
379  problem.p_adapt();
380  problem.newton_solve();
381  cout << "output file: " << doc_info.number() << endl;
382  problem.doc_solution(doc_info);
383  doc_info.number()++;
384 
385  problem.adapt();
386  problem.newton_solve();
387  cout << "output file: " << doc_info.number() << endl;
388  problem.doc_solution(doc_info);
389  doc_info.number()++;
390 
391  //Doc again for check
392  doc_info.number()=0;
393  problem.doc_solution(doc_info);
394 
395  } // end of problem 1
396 
397 
398  // Solve problem 2 with hp-refineable Crouzeix-Raviart elements
399  //-------------------------------------------------------------
400  {
401  // Set up zero-Gravity vector
404 
405  // Set up Gamma vector for simplified form
408 
409  // Build problem with body force function and simplified form,
410  // using body force function
413 
414  //Set initial doc_info number
415  doc_info.number()=20;
416 
417  // Initial refinement level
418  problem.refine_uniformly();
419  problem.refine_uniformly();
420  problem.p_refine_uniformly();
421 
422  problem.newton_solve();
423  cout << "output file: " << doc_info.number() << endl;
424  problem.doc_solution(doc_info);
425  doc_info.number()++;
426 
427  problem.adapt();
428  problem.newton_solve();
429  cout << "output file: " << doc_info.number() << endl;
430  problem.doc_solution(doc_info);
431  doc_info.number()++;
432 
433  problem.p_adapt();
434  problem.newton_solve();
435  cout << "output file: " << doc_info.number() << endl;
436  problem.doc_solution(doc_info);
437  doc_info.number()++;
438 
439  problem.adapt();
440  problem.newton_solve();
441  cout << "output file: " << doc_info.number() << endl;
442  problem.doc_solution(doc_info);
443  doc_info.number()++;
444 
445  //Doc again for check
446  doc_info.number()=1;
447  problem.doc_solution(doc_info);
448 
449  } // end of problem 2
450 
451  }//end of both boundaries
452 
453 } // end_of_main
Definition: mpi/distribution/circular_driven_cavity/circular_driven_cavity.cc:85
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:395
void body_force(const double &time, const Vector< double > &x, Vector< double > &result)
Functional body force.
Definition: mpi/distribution/circular_driven_cavity/circular_driven_cavity.cc:58
double Gravity
Non-dim gravity.
Definition: meshing/quad_from_triangle_mesh/unstructured_two_d_solid.cc:214
void zero_body_force(const double &time, const Vector< double > &x, Vector< double > &result)
Zero functional body force.
Definition: mpi/distribution/circular_driven_cavity/circular_driven_cavity.cc:66
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References Global_Physical_Variables::body_force(), Global_Physical_Variables::Gravity, oomph::DocInfo::number(), problem, oomph::DocInfo::set_directory(), and Global_Physical_Variables::zero_body_force().