#!/usr/bin/python import re import numpy as np import sys import ChemUtils as ch #print ch.str2composition( sys.argv[1] ) #sides = ch.parseReaction( 'Fe+O2=Fe2O3' ) #sides = ch.parseReaction( 'C12H22O11+KNO3=H2O+CO2+K2CO3+N2' ) #print sides #print ch.reaction2string( sides ) #print ch.balanceReactionString( 'Fe+O2=Fe2O3' ) print ch.balanceReactionString( 'C12H22O11+KNO3=H2O+CO2+K2CO3+N2' ) #print atomicBalance( reaction[0], reaction[1] )
#!/usr/bin/python import re import numpy as np import sys import ChemUtils as ch #print ch.str2composition( sys.argv[1] ) #sides = ch.parseReaction( 'Fe+O2=Fe2O3' ) #sides = ch.parseReaction( 'C12H22O11+KNO3=H2O+CO2+K2CO3+N2' ) #print sides #print ch.reaction2string( sides ) #print ch.balanceReactionString( 'Fe+O2=Fe2O3' ) print ch.balanceReactionString('C12H22O11+KNO3=H2O+CO2+K2CO3+N2') #print atomicBalance( reaction[0], reaction[1] )
#!/usr/bin/python import re import numpy as np import sys import ChemUtils as ch ''' names = ( 'sucrose', 'potassium nitrate', 'potassium carbonate', 'carbon dioxide', 'water', 'nitrogen' ) print "============" comps = ch.names2comps( names, ch.substance_dict ) ch.printNiceMap( names, comps ) print "============" masses = ch.comps2mass ( comps, ch.element_dict ) ch.printNiceMap( names, masses ) print "============" coefs = ch.atomicBalance( names, comps, pivot=0 ) ch.printNiceMap( names, coefs ) print "============" Hs = ch.takeSubstanceParam( names, 'enthalpy' ) ch.printNiceMap( names, Hs ) Htot = sum( coefs * np.array(Hs) ) print " enthalpy_change = ", Htot, " kJ/mol " coefs_left = -np.fmin( coefs, 0 ); coefs_right = np.fmax( coefs, 0 ) Mtot = sum( coefs_left * np.array( masses ) )
( '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()
('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()
#!/usr/bin/python import re import numpy as np import sys import ChemUtils as ch ''' names = ( 'sucrose', 'potassium nitrate', 'potassium carbonate', 'carbon dioxide', 'water', 'nitrogen' ) print "============" comps = ch.names2comps( names, ch.substance_dict ) ch.printNiceMap( names, comps ) print "============" masses = ch.comps2mass ( comps, ch.element_dict ) ch.printNiceMap( names, masses ) print "============" coefs = ch.atomicBalance( names, comps, pivot=0 ) ch.printNiceMap( names, coefs ) print "============" Hs = ch.takeSubstanceParam( names, 'enthalpy' ) ch.printNiceMap( names, Hs ) Htot = sum( coefs * np.array(Hs) ) print " enthalpy_change = ", Htot, " kJ/mol " coefs_left = -np.fmin( coefs, 0 );