1 #include "SinglePhase.hxx"
5 int main(int argc, char** argv)
7 //Preprocessing: mesh and group creation
8 cout << "Building cartesian mesh" << endl;
14 M.setGroupAtPlan(xsup,0,eps,"Outlet");
15 M.setGroupAtPlan(xinf,0,eps,"Wall");
16 int spaceDim = M.getSpaceDimension();
18 // set the initial field
19 double initialPressure=155e5;
20 double initialVelocityX=0;
21 double initialTemperature=573;
23 //set the boundary data for each boundary
24 double outletPressure=80e5;
25 double wallVelocityX=0;
26 double wallTemperature=573;
28 SinglePhase myProblem(Liquid,around155bars600K,spaceDim);
29 int nbPhase = myProblem.getNumberOfPhases();
31 // Prepare for the initial condition
32 int nVar = myProblem.getNumberOfVariables();
33 Vector VV_constant(nVar);
34 VV_constant(0) = initialPressure ;
35 VV_constant(1) = initialVelocityX;
36 VV_constant(2) = initialTemperature ;
38 cout << "Building initial data" << endl;
39 Field VV("Primitive", CELLS, M, nVar);
41 myProblem.setInitialFieldConstant(M,VV_constant);
43 //set the boundary conditions
44 myProblem.setWallBoundaryCondition("Wall", wallTemperature, wallVelocityX);
45 myProblem.setOutletBoundaryCondition("Outlet", outletPressure,vector<double>(1,xsup));
47 // set the numerical method
48 myProblem.setNumericalScheme(upwind, Explicit);
49 myProblem.setEntropicCorrection(true);
52 string fileName = "1DDepressurisation";
54 // parameters calculation
55 unsigned MaxNbOfTimeStep = 3;
59 double precision = 1e-8;
61 myProblem.setCFL(cfl);
62 myProblem.setPrecision(precision);
63 myProblem.setMaxNbOfTimeStep(MaxNbOfTimeStep);
64 myProblem.setTimeMax(maxTime);
65 myProblem.setFreqSave(freqSave);
66 myProblem.setFileName(fileName);
70 myProblem.initialize();
74 cout << "Simulation "<<fileName<<" is successful !" << endl;
76 cout << "Simulation "<<fileName<<" failed ! " << endl;
78 cout << "------------ End of calculation !!! -----------" << endl;
79 myProblem.terminate();