7 def DriftModel_1DBoilingAssembly():
10 # Prepare for the mesh
11 print("Building mesh " );
14 xinfcore=(xsup-xinf)/4
15 xsupcore=3*(xsup-xinf)/4
17 M=cm.Mesh(xinf,xsup,nx)
19 # set the limit field for each boundary
27 heatPowerField=cm.Field("heatPowerField", cm.CELLS, M, 1);
28 nbCells=M.getNumberOfCells();
30 for i in range (nbCells):
33 if (x> xinfcore) and (x< xsupcore):
37 heatPowerField.writeVTK("heatPowerField",True)
39 myProblem = cf.DriftModel(cf.around155bars600K,spaceDim);
40 nVar = myProblem.getNumberOfVariables();
42 # Prepare for the initial condition
43 VV_Constant =[0]*nVar;
46 VV_Constant[0] = inletConc;
47 VV_Constant[1] = outletPressure ;
48 VV_Constant[2] = inletVelocityX;
49 VV_Constant[3] = inletTemperature ;
52 #Initial field creation
53 print("Building initial data " );
54 myProblem.setInitialFieldConstant( spaceDim, VV_Constant, xinf, xsup, nx,"inlet","outlet");
56 # set the boundary conditions
57 myProblem.setInletBoundaryCondition("inlet",inletTemperature,inletConc,inletVelocityX)
58 myProblem.setOutletBoundaryCondition("outlet", outletPressure,[xsup]);
60 # set physical parameters
61 myProblem.setHeatPowerField(heatPowerField);
63 # set the numerical method
64 myProblem.setNumericalScheme(cf.upwind, cf.Explicit);
65 myProblem.setWellBalancedCorrection(True);
66 myProblem.setNonLinearFormulation(cf.VFFC)
69 fileName = "1DBoilingAssemblyUpwindWB";
71 # simulation parameters
78 myProblem.setCFL(cfl);
79 myProblem.setPrecision(precision);
80 myProblem.setMaxNbOfTimeStep(MaxNbOfTimeStep);
81 myProblem.setTimeMax(maxTime);
82 myProblem.setFreqSave(freqSave);
83 myProblem.setFileName(fileName);
84 myProblem.setNewtonSolver(precision,20);
85 myProblem.saveConservativeField(True);
88 myProblem.initialize();
92 print( "Simulation python " + fileName + " is successful !" );
95 print( "Simulation python " + fileName + " failed ! " );
98 print( "------------ End of calculation !!! -----------" );
100 myProblem.terminate();
103 if __name__ == """__main__""":
104 DriftModel_1DBoilingAssembly()