unsteady_vmtk_fsi.cc File Reference
#include "generic.h"
#include "solid.h"
#include "constitutive.h"
#include "navier_stokes.h"
#include "poisson.h"
#include "linear_elasticity.h"
#include "meshes/tetgen_mesh.h"

Classes

class  UnstructuredFSIProblem< FLUID_ELEMENT, SOLID_ELEMENT >
 Unstructured 3D FSI problem. More...
 

Namespaces

 Global_Parameters
 Namespace for global parameters.
 

Enumerations

enum  { Global_Parameters::Parallel_flow_lagrange_multiplier_id , Global_Parameters::FSI_interface_displacement_lagrange_multiplier_id }
 

Functions

int main (int argc, char **argv)
 Demonstrate how to solve an unstructured 3D FSI problem. More...
 

Variables

bool Global_Parameters::Prescribe_pressure =false
 Boolean to choose if inflow pressure (true) or volume flux are prescribed. More...
 
double Global_Parameters::P_in_max =0.0025
 Max. inflow pressure (during periodic variation) More...
 
double Global_Parameters::Period =0.1
 Period of periodic variation in inflow pressure. More...
 
double Global_Parameters::P_in =0.0
 Fluid pressure on inflow boundary. More...
 
double Global_Parameters::P_out =-0.25
 Fluid pressure on outflow boundary. More...
 
double Global_Parameters::Peak_prescribed_flow_rate =-1.0
 Peak prescribed flow rate. More...
 
double Global_Parameters::Prescribed_flow_rate =Peak_prescribed_flow_rate
 Prescribed flow rate. More...
 
DataGlobal_Parameters::P_in_data_pt =0
 

Function Documentation

◆ main()

int main ( int argc  ,
char **  argv 
)

Demonstrate how to solve an unstructured 3D FSI problem.

1268 {
1269 
1270  // Store command line arguments
1271  CommandLineArgs::setup(argc,argv);
1272 
1273  // Relax tolerance
1274  TetMeshBase::Tolerance_for_boundary_finding = 1e-10;
1275 
1276  // Label for output
1277  DocInfo doc_info;
1278 
1279  // Output directory
1280  doc_info.set_directory("RESLT");
1281 
1282  // Create generalised Hookean constitutive equations
1285 
1286  //Set up the problem
1290 
1291  //Output initial configuration
1292  problem.doc_solution(doc_info);
1293  doc_info.number()++;
1294 
1295  //Set value of dt
1296  unsigned nsteps_per_period=40;
1297  double dt = Global_Parameters::Period/double(nsteps_per_period);
1298  problem.initialise_dt(dt);
1299 
1300  // Increment FSI parameter during steady runs
1301  unsigned nq=4;
1302  if (CommandLineArgs::Argc==2)
1303  {
1304  oomph_info << "Smaller number of steps for test\n";
1305  nq=1;
1306  }
1307 
1308  double q_increment=2.0e-6;
1309  for (unsigned iq=0;iq<nq;iq++)
1310  {
1311  // Bump up fsi parameter
1312  Global_Parameters::Q+=q_increment;
1313 
1314  // Doc parameters
1315  problem.doc_parameters();
1316 
1317  cout << "Steady solve...\n";
1318 
1319  // Solve the steady problem first
1320  problem.steady_newton_solve();
1321 
1322  //Output solution
1323  problem.doc_solution(doc_info);
1324  doc_info.number()++;
1325  }
1326 
1327  // Do timestepping
1328  unsigned nperiod=20;
1329  unsigned nstep=nperiod*nsteps_per_period;
1330  if (CommandLineArgs::Argc==2)
1331  {
1332  string arg=CommandLineArgs::Argv[1];
1333  oomph_info << "Smaller number of steps for test\n";
1334  nstep=1;
1335  }
1336 
1337  for (unsigned istep=0;istep<nstep;istep++)
1338  {
1339  cout << "Unsteady solve...\n";
1340 
1341  // Solve the problem
1342  problem.unsteady_newton_solve(dt);
1343 
1344  //Output solution
1345  problem.doc_solution(doc_info);
1346  doc_info.number()++;
1347  }
1348 
1349 } // end_of_main
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Unstructured 3D FSI problem.
Definition: unsteady_vmtk_fsi.cc:108
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: constitutive_laws.h:699
Definition: pseudosolid_node_update_elements.h:58
Definition: solid_elements.h:1756
void setup(Time *time_pt)
Create all GeomObjects needed to define the cylinder and the flag.
Definition: turek_flag_non_fsi.cc:277
double Nu
Define Poisson's ratio Nu.
Definition: axisym_linear_elasticity/cylinder/cylinder.cc:46
double Q
FSI parameter.
Definition: acoustic_fsi.cc:58
double Period
Period of periodic variation in inflow pressure.
Definition: unsteady_vmtk_fsi.cc:73
ConstitutiveLaw * Constitutive_law_pt
Pointer to constitutive law.
Definition: interaction/turek_flag/turek_flag.cc:87
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

References oomph::CommandLineArgs::Argc, oomph::CommandLineArgs::Argv, Global_Parameters::Constitutive_law_pt, e(), Global_Parameters::Nu, oomph::DocInfo::number(), oomph::oomph_info, Global_Parameters::Period, problem, Global_Parameters::Q, oomph::DocInfo::set_directory(), and Flag_definition::setup().