1 #include "DriftModel.hxx"
5 int main(int argc, char** argv)
7 cout << "Building a regular grid " << endl;
15 M.setGroupAtPlan(xsup,0,eps,"Outlet");
16 M.setGroupAtPlan(xinf,0,eps,"Inlet");
19 double inletVelocityX =1;
20 double inletTemperature=563;
22 double outletPressure=155e5;
24 // physical parameters
25 Field pressureLossField("pressureLoss", FACES, M, 1);
26 pressureLossField(nx/4)=50;
27 pressureLossField(nx/2)=100;
28 pressureLossField(3*nx/4)=150;
30 DriftModel myProblem(around155bars600K,spaceDim);
31 int nVar = myProblem.getNumberOfVariables();
33 // Prepare for the initial condition
34 vector<double> VV_Constant(nVar);
36 VV_Constant[0] = inletConc;
37 VV_Constant[1] = outletPressure;
38 VV_Constant[2] = inletVelocityX;
39 VV_Constant[3] = inletTemperature;
41 cout << "Building initial data " << endl;
43 // generate initial condition
44 myProblem.setInitialFieldConstant( spaceDim, VV_Constant, xinf, xsup, nx,"inlet","outlet");
46 //set the boundary conditions
47 myProblem.setInletBoundaryCondition("inlet",inletTemperature,inletConc,inletVelocityX);
48 myProblem.setOutletBoundaryCondition("outlet", outletPressure,vector<double>(1,xsup));
50 // physical parameters
51 myProblem.setPressureLossField(pressureLossField);
53 // set the numerical method
54 myProblem.setNumericalScheme(upwind, Explicit);
55 myProblem.setWellBalancedCorrection(true);
58 string fileName = "1DPressureLossUpwindWB";
60 // parameters calculation
61 unsigned MaxNbOfTimeStep =3;
65 double precision = 1e-5;
67 myProblem.setCFL(cfl);
68 myProblem.setPrecision(precision);
69 myProblem.setMaxNbOfTimeStep(MaxNbOfTimeStep);
70 myProblem.setTimeMax(maxTime);
71 myProblem.setFreqSave(freqSave);
72 myProblem.setFileName(fileName);
75 myProblem.initialize();
77 bool ok = myProblem.run();
79 cout << "Simulation "<<fileName<<" is successful !" << endl;
81 cout << "Simulation "<<fileName<<" failed ! " << endl;
83 cout << "------------ End of calculation -----------" << endl;
84 myProblem.terminate();