coefs_right = np.fmax( coefs, 0 ) Mtot = sum( coefs_left * np.array( masses ) ) print " total mass = ", Mtot, " g/mol " print " Energy density = ", Htot / Mtot, " MJ/kg " #ch.atomicBalance( names, comps, pivot=0 ) ''' print print print "============= sucrose + potassium nitrate " print "=============" ch.reactionEnthalpy([ 'sucrose', 'potassium nitrate', 'potassium hydroxide', 'carbon monoxide', 'water', 'nitrogen' ]) print "=============" ch.reactionEnthalpy([ 'sucrose', 'potassium nitrate', 'potassium hydroxide', 'carbon dioxide', 'water', 'nitrogen' ]) print "=============" ch.reactionEnthalpy([ 'sucrose', 'potassium nitrate', 'potassium carbonate', 'carbon dioxide', 'water', 'nitrogen' ]) print print print "============= glycerol + potassium nitrate "
('aluminium', 'potassium permanganate', ['potassium aluminate', 'aluminium oxide', 'manganese']), ('aluminium', 'potassium nitrate', ['potassium aluminate', 'aluminium oxide', 'nitrogen']), ('aluminium', 'ammonium nitrate', ['aluminium oxide', 'water', 'nitrogen']), (None, 'ammonium nitrate', ['water', 'nitrogen', 'oxygen']), ('amonium chloride', 'ammonium nitrate', ['water', 'nitrogen', 'hydrochloric acid']), ('carbon', 'ammonium nitrate', ['carbon monoxide', 'water', 'nitrogen']), ('carbon', 'ammonium nitrate', ['carbon dioxide', 'water', 'nitrogen']), ('sucrose', 'ammonium nitrate', ['carbon monoxide', 'water', 'nitrogen']), ('sucrose', 'ammonium nitrate', ['carbon dioxide', 'water', 'nitrogen']), ] fout = open('rocket_fuels.csv', 'w') for reaction in reactions: fuel = reaction[0] oxidizer = reaction[1] if fuel is None: names = [oxidizer] + reaction[2] else: names = [fuel] + [oxidizer] + reaction[2] results = ch.reactionEnthalpy(names, echo=False) s = str(fuel) + '; ' + oxidizer + '; ' + ch.list2csv(results, separator='; ') fout.write(s + '\n') fout.close()
( 'citric acid', 'calcium nitrate', [ 'calcium carbonate', 'carbon dioxide', 'water', 'nitrogen' ] ), ( 'aluminium', 'potassium permanganate', [ 'potassium aluminate', 'aluminium oxide', 'manganese' ] ), ( 'aluminium', 'potassium nitrate', [ 'potassium aluminate', 'aluminium oxide', 'nitrogen' ] ), ( 'aluminium', 'ammonium nitrate', [ 'aluminium oxide', 'water', 'nitrogen' ] ), ( None, 'ammonium nitrate', ['water', 'nitrogen', 'oxygen' ] ), ( 'amonium chloride', 'ammonium nitrate', ['water', 'nitrogen', 'hydrochloric acid'] ), ( 'carbon', 'ammonium nitrate', [ 'carbon monoxide', 'water', 'nitrogen' ] ), ( 'carbon', 'ammonium nitrate', [ 'carbon dioxide', 'water', 'nitrogen' ] ), ( 'sucrose', 'ammonium nitrate', [ 'carbon monoxide', 'water', 'nitrogen' ] ), ( 'sucrose', 'ammonium nitrate', [ 'carbon dioxide', 'water', 'nitrogen' ] ), ] fout = open( 'rocket_fuels.csv','w') for reaction in reactions: fuel = reaction[0] oxidizer = reaction[1] if fuel is None: names = [oxidizer] + reaction[2] else: names = [fuel] + [oxidizer] + reaction[2] results = ch.reactionEnthalpy( names, echo=False ) s = str(fuel) + '; ' + oxidizer + '; ' + ch.list2csv( results, separator='; ' ) fout.write( s + '\n') fout.close()
coefs_right = np.fmax( coefs, 0 ) Mtot = sum( coefs_left * np.array( masses ) ) print " total mass = ", Mtot, " g/mol " print " Energy density = ", Htot / Mtot, " MJ/kg " #ch.atomicBalance( names, comps, pivot=0 ) ''' print print print "============= sucrose + potassium nitrate " print "============="; ch.reactionEnthalpy( [ 'sucrose', 'potassium nitrate', 'potassium hydroxide', 'carbon monoxide', 'water', 'nitrogen' ] ) print "============="; ch.reactionEnthalpy( [ 'sucrose', 'potassium nitrate', 'potassium hydroxide', 'carbon dioxide', 'water', 'nitrogen' ] ) print "============="; ch.reactionEnthalpy( [ 'sucrose', 'potassium nitrate', 'potassium carbonate', 'carbon dioxide', 'water', 'nitrogen' ] ) print print print "============= glycerol + potassium nitrate " print "============="; ch.reactionEnthalpy( [ 'glycerol', 'potassium nitrate', 'potassium hydroxide', 'carbon monoxide', 'water', 'nitrogen' ] ) print "============="; ch.reactionEnthalpy( [ 'glycerol', 'potassium nitrate', 'potassium hydroxide', 'carbon dioxide', 'water', 'nitrogen' ] ) print "============="; ch.reactionEnthalpy( [ 'glycerol', 'potassium nitrate', 'potassium carbonate', 'carbon dioxide', 'water', 'nitrogen' ] ) print print print "============= citric acid + potassium nitrate " print "============="; ch.reactionEnthalpy( [ 'citric acid', 'potassium nitrate', 'potassium hydroxide', 'carbon monoxide', 'water', 'nitrogen' ] ) print "============="; ch.reactionEnthalpy( [ 'citric acid', 'potassium nitrate', 'potassium hydroxide', 'carbon dioxide', 'water', 'nitrogen' ] )