1 #include "DriftModel.hxx"
5 int main(int argc, char** argv)
7 //setting mesh and groups
8 cout << "Building a regular grid " << endl;
14 M.setGroupAtPlan(xsup,0,eps,"Outlet");
15 M.setGroupAtPlan(xinf,0,eps,"Inlet");
16 int spaceDim = M.getSpaceDimension();
18 // setting boundary conditions
20 double inletVelocityX=1;
21 double inletEnthalpy=1.3e6;
22 double outletPressure=155e5;
24 // setting physical parameters
25 vector<double> gravite(spaceDim,0.) ;
28 DriftModel myProblem(around155bars600K,spaceDim);
29 int nbPhase = myProblem.getNumberOfPhases();
30 int nVar = myProblem.getNumberOfVariables();
32 // Prepare for the initial condition
33 Vector VV_Constant(nVar);
36 VV_Constant(1) = 155e5;
37 for (int idim=0; idim<spaceDim;idim++)
38 VV_Constant(2+idim) = 1;
39 VV_Constant(nVar-1) = 578;
41 //Initial field creation
42 cout << "Setting initial data " << endl;
43 myProblem.setInitialFieldConstant(M,VV_Constant);
45 //set the boundary conditions
46 myProblem.setInletEnthalpyBoundaryCondition("Inlet",inletEnthalpy,inletConc,inletVelocityX);
47 myProblem.setOutletBoundaryCondition("Outlet", outletPressure,vector<double>(1,xsup));
49 // physical parameters
50 myProblem.setGravity(gravite);
52 // set the numerical method
53 myProblem.setNumericalScheme(upwind, Implicit);
54 myProblem.setWellBalancedCorrection(true);
55 myProblem.setNonLinearFormulation(VFRoe);
57 // name the result file
58 string fileName = "Driftmodel_1DChannelGravity";
60 // setting numerical parameters
61 unsigned MaxNbOfTimeStep =3 ;
65 double precision = 1e-7;
67 myProblem.setCFL(cfl);
68 myProblem.setPrecision(precision);
69 myProblem.setMaxNbOfTimeStep(MaxNbOfTimeStep);
70 myProblem.setTimeMax(maxTime);
71 myProblem.setFreqSave(freqSave);
72 myProblem.setFileName(fileName);
73 myProblem.usePrimitiveVarsInNewton(true);
74 myProblem.saveAllFields(true);
75 myProblem.displayConditionNumber();
76 myProblem.setSaveFileFormat(CSV);
79 myProblem.initialize();
81 bool ok = myProblem.run();
83 cout << "Simulation "<<fileName<<" is successful !" << endl;
85 cout << "Simulation "<<fileName<<" failed ! " << endl;
87 cout << "------------ End of calculation -----------" << endl;
88 myProblem.terminate();