compressed_square.cc File Reference
#include "generic.h"
#include "solid.h"
#include "meshes/rectangular_quadmesh.h"

Classes

class  oomph::MySolidElement< ELEMENT >
 Wrapper class for solid element to modify the output. More...
 
class  CompressedSquareProblem< ELEMENT >
 Problem class. More...
 

Namespaces

 oomph
 DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
 
 Global_Physical_Variables
 Global variables.
 

Functions

void Global_Physical_Variables::gravity (const double &time, const Vector< double > &xi, Vector< double > &b)
 Non-dimensional gravity as body force. More...
 
int main ()
 Driver for compressed square. More...
 

Function Documentation

◆ main()

int main ( )

Driver for compressed square.

422 {
423 
424  //Flag to indicate if we want the material to be incompressible
425  bool incompress=false;
426 
427  // Label for different cases
428  int case_number=-1;
429 
430  // Generalised Hookean constitutive equations
431  //===========================================
432  {
433  // Nu values
434  Vector<double> nu_value(3);
435  nu_value[0]=0.45;
436  nu_value[1]=0.499999;
437  nu_value[2]=0.5;
438 
439  // Loop over nu values
440  for (unsigned i=0;i<3;i++)
441  {
442  // Set Poisson ratio
444 
445  std::cout << "===========================================\n";
446  std::cout << "Doing Nu=" << Global_Physical_Variables::Nu
447  << std::endl;
448  std::cout << "===========================================\n";
449 
450  // Create constitutive equation
453 
454  // Displacement-based formulation
455  //--------------------------------
456  // (not for nu=1/2, obviously)
457  if (i!=2)
458  {
459  case_number++;
460  std::cout
461  << "Doing Generalised Hookean with displacement formulation: Case "
462  << case_number << std::endl;
463 
464  //Set up the problem with pure displacement based elements
465  incompress=false;
467  problem(incompress);
468 
469  // Run it
470  problem.run_it(case_number,incompress);
471  }
472 
473 
474  // Generalised Hookean with continuous pressure, compressible
475  //-----------------------------------------------------------
476  {
477  case_number++;
478  std::cout
479  << "Doing Generalised Hookean with displacement/cont pressure "
480  << "formulation: Case " << case_number << std::endl;
481 
482  //Set up the problem with continous pressure/displacement
483  incompress=false;
486  problem(incompress);
487 
488  // Run it
489  problem.run_it(case_number,incompress);
490  }
491 
492 
493  // Generalised Hookean with discontinuous pressure, compressible
494  //--------------------------------------------------------------
495  {
496  case_number++;
497  std::cout
498  << "Doing Generalised Hookean with displacement/discont pressure "
499  << "formulation: Case " << case_number << std::endl;
500 
501  //Set up the problem with discontinous pressure/displacement
503  QPVDElementWithPressure<2> > > problem(incompress);
504 
505  // Run it
506  problem.run_it(case_number,incompress);
507  }
508 
509 
510 
511  // Generalised Hookean with continous pressure/displacement;
512  //----------------------------------------------------------
513  // incompressible
514  //---------------
515  {
516  case_number++;
517  std::cout
518  << "Doing Generalised Hookean with displacement/cont pressure, "
519  << "incompressible formulation: Case " << case_number << std::endl;
520 
521  //Set up the problem with continous pressure/displacement
522  incompress=true;
525  problem(incompress);
526 
527  // Run it
528  problem.run_it(case_number,incompress);
529  }
530 
531 
532  // Generalised Hookean with discontinous pressure/displacement;
533  //-------------------------------------------------------------
534  // incompressible
535  //---------------
536  {
537  case_number++;
538  std::cout
539  << "Doing Generalised Hookean with displacement/discont pressure, "
540  << "incompressible formulation: Case " << case_number << std::endl;
541 
542  //Set up the problem with discontinous pressure/displacement
543  incompress=true;
545  QPVDElementWithPressure<2> > > problem(incompress);
546 
547  // Run it
548  problem.run_it(case_number,incompress);
549  }
550 
551  // Clean up
554 
555  }
556 
557  } // end generalised Hookean
558 
559 
560  // Incompressible Mooney Rivlin
561  //=============================
562  {
563 
564  // Create strain energy function
568 
569  // Define a constitutive law (based on strain energy function)
573 
574 
575  // Mooney-Rivlin with continous pressure/displacement;
576  //----------------------------------------------------
577  // incompressible
578  //---------------
579  {
580  case_number++;
581  std::cout
582  << "Doing Mooney Rivlin with cont pressure formulation: Case "
583  << case_number << std::endl;
584 
585  //Set up the problem with continous pressure/displacement
586  incompress=true;
589  problem(incompress);
590 
591  // Run it
592  problem.run_it(case_number,incompress);
593  }
594 
595 
596  // Mooney-Rivlin with discontinous pressure/displacement;
597  //-------------------------------------------------------
598  // incompressible
599  //---------------
600  {
601  case_number++;
602  std::cout
603  << "Doing Mooney Rivlin with discont pressure formulation: Case "
604  << case_number << std::endl;
605 
606  //Set up the problem with discontinous pressure/displacement
607  incompress=true;
610  problem(incompress);
611 
612  // Run it
613  problem.run_it(case_number,incompress);
614  }
615 
616 
617  // Clean up
620 
623 
624  }
625 
626 } //end of main
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Problem class.
Definition: compressed_square.cc:149
Definition: constitutive_laws.h:699
Definition: constitutive_laws.h:801
Definition: constitutive_laws.h:145
Wrapper class for solid element to modify the output.
Definition: mpi/distribution/airy_cantilever/airy_cantilever2.cc:53
Definition: solid_elements.h:1523
Definition: solid_elements.h:1332
double Nu
Poisson's ratio.
Definition: TwenteMeshGluing.cpp:71
ConstitutiveLaw * Constitutive_law_pt
Pointer to constitutive law.
Definition: TwenteMeshGluing.cpp:65
double C1
"Mooney Rivlin" coefficient for generalised Mooney Rivlin law
Definition: TwenteMeshGluing.cpp:74
StrainEnergyFunction * Strain_energy_function_pt
Pointer to strain energy function.
Definition: TwenteMeshGluing.cpp:62
double C2
"Mooney Rivlin" coefficient for generalised Mooney Rivlin law
Definition: mpi/distribution/airy_cantilever/airy_cantilever2.cc:156
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References Global_Physical_Variables::C1, Global_Physical_Variables::C2, Global_Physical_Variables::Constitutive_law_pt, i, Global_Physical_Variables::Nu, problem, and Global_Physical_Variables::Strain_energy_function_pt.