f = FreeFlame(gas = gas, grid = initial_grid, tfix = 600.0) # set the upstream properties f.inlet.set(mole_fractions = comp, temperature = tin) f.set(tol = tol_ss, tol_time = tol_ts) f.showSolution() f.set(energy = 'off') f.setRefineCriteria(ratio = 10.0, slope = 1, curve = 1) f.setMaxJacAge(50, 50) f.setTimeStep(1.0e-5, [2, 5, 10, 20, 50]) f.solve(loglevel, refine_grid) f.save('ch4_adiabatic.xml','no_energy', 'solution with the energy equation disabled') f.set(energy = 'on') f.setRefineCriteria(ratio = 3.0, slope = 0.1, curve = 0.2) f.solve(loglevel, refine_grid) f.save('ch4_adiabatic.xml','energy', 'solution with the energy equation enabled') print 'mixture-averaged flamespeed = ',f.u()[0] gas.switchTransportModel('Multi') f.flame.setTransportModel(gas) f.solve(loglevel, refine_grid) f.save('ch4_adiabatic.xml','energy_multi', 'solution with the energy equation enabled and multicomponent transport') # write the velocity, temperature, density, and mole fractions to a CSV file
# set the properties at the inlet f.inlet.set(mole_fractions = comp, temperature = tin) f.set(tol = tol_ss, tol_time = tol_ts) f.setMaxJacAge(5, 10) f.set(energy = 'off') #f.init() f.showSolution() f.solve(loglevel, refine_grid) f.setRefineCriteria(ratio = 5.0, slope = 0.05, curve = 0.005, prune = 0.0) f.set(energy = 'on') f.solve(loglevel,refine_grid) f.save('freeflame1.xml') f.showSolution() # write the velocity, temperature, and mole fractions to a CSV file z = f.flame.grid() T = f.T() u = f.u() V = f.V() fcsv = open('freeflame1.csv','w') writeCSV(fcsv, ['z (m)', 'u (m/s)', 'V (1/s)', 'T (K)', 'rho (kg/m3)'] + list(gas.speciesNames())) for n in range(f.flame.nPoints()): f.setGasState(n) writeCSV(fcsv, [z[n], u[n], V[n], T[n], gas.density()] +list(gas.moleFractions()))
#f.solve(loglevel, refine_grid) #f.save('ch4_adiabatic.xml','no_energy', # 'solution with the energy equation disabled') #f.set(energy = 'on') #f.setRefineCriteria(ratio = 3.0, slope = 0.1, curve = 0.2) #f.solve(loglevel, refine_grid) #f.save('ch4_adiabatic.xml','energy', # 'solution with the energy equation enabled') gas.switchTransportModel('Mix') f.flame.setTransportModel(gas) f.solve(loglevel, refine_grid) f.save('CO_adiabatic.xml','energy_mix', 'solution with the energy equation enabled and multicomponent transport') # write the velocity, temperature, density, and mole fractions to a CSV file z = f.flame.grid() T = f.T() u = f.u() V = f.V() fcsv = open('CO_adiabatic.csv','w') writeCSV(fcsv, ['z (m)', 'u (m/s)', 'V (1/s)', 'T (K)', 'rho (kg/m3)'] + list(gas.speciesNames())) for n in range(f.flame.nPoints()): f.setGasState(n) writeCSV(fcsv, [z[n], u[n], V[n], T[n], gas.density()] +list(gas.moleFractions())) fcsv.close()