7 def SinglePhase_1DHeatedAssembly():
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
26 heatPowerField=cm.Field("heatPowerField", cm.CELLS, M, 1);
27 nbCells=M.getNumberOfCells();
29 for i in range (nbCells):
32 if (x> xinfcore) and (x< xsupcore):
36 heatPowerField.writeVTK("heatPowerField",True)
38 myProblem = cf.SinglePhase(cf.Liquid,cf.around155bars600K,spaceDim);
39 nVar = myProblem.getNumberOfVariables();
41 # Prepare for the initial condition
42 VV_Constant =[0]*nVar;
45 VV_Constant[0] = outletPressure ;
46 VV_Constant[1] = inletVelocityX;
47 VV_Constant[2] = inletTemperature ;
50 #Initial field creation
51 print("Building initial data " );
52 myProblem.setInitialFieldConstant( spaceDim, VV_Constant, xinf, xsup, nx,"inlet","outlet");
54 # set the boundary conditions
55 myProblem.setInletBoundaryCondition("inlet",inletTemperature,inletVelocityX)
56 myProblem.setOutletBoundaryCondition("outlet", outletPressure,[xsup]);
58 # set physical parameters
59 myProblem.setHeatPowerField(heatPowerField);
61 # set the numerical method
62 myProblem.setNumericalScheme(cf.upwind, cf.Explicit);
63 myProblem.setWellBalancedCorrection(True);
66 fileName = "1DHeatedChannelUpwindWB";
68 # simulation parameters
75 myProblem.setCFL(cfl);
76 myProblem.setPrecision(precision);
77 myProblem.setMaxNbOfTimeStep(MaxNbOfTimeStep);
78 myProblem.setTimeMax(maxTime);
79 myProblem.setFreqSave(freqSave);
80 myProblem.setFileName(fileName);
81 myProblem.setNewtonSolver(precision,20);
82 myProblem.saveConservativeField(True);
84 myProblem.saveVelocity();
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 SinglePhase_1DHeatedAssembly()