SeriesReaction

class thermosteam.reaction.SeriesReaction(reactions)[source]

Create a ParallelReaction object from Reaction objects. When called, it returns the change in material due to all reactions in series.

Parameters

reactions (Iterable[Reaction]) –

force_reaction(material)[source]

React material ignoring feasibility checks.

adiabatic_reaction(stream)[source]

React stream material adiabatically, accounting for the change in enthalpy due to the heat of reaction.

Examples

Note how the stream temperature changed after the reaction due to the heat of reaction:

>>> import thermosteam as tmo
>>> chemicals = tmo.Chemicals(['CH4', 'CO','O2', 'CO2', 'H2O'], cache=True)
>>> tmo.settings.set_thermo(chemicals)
>>> reaction = tmo.SeriesReaction([
...     #            Reaction definition                 Reactant       Conversion
...     tmo.Reaction('2CH4 + 3O2 -> 2CO + 4H2O',       reactant='CH4',    X=0.7),
...     tmo.Reaction('2CO + O2 -> 2CO2',               reactant='CO',     X=0.1)
...     ])
>>> s1 = tmo.Stream('s1', CH4=5, O2=100, H2O=100, T=373.15, phase='g')
>>> s1.show() # Before reaction
Stream: s1
 phase: 'g', T: 373.15 K, P: 101325 Pa
 flow (kmol/hr): CH4  5
                 O2   100
                 H2O  100
>>> reaction.show()
SeriesReaction (by mol):
index  stoichiometry               reactant    X[%]
[0]    CH4 + 1.5 O2 -> CO + 2 H2O  CH4        70.00
[1]    CO + 0.5 O2 -> CO2          CO         10.00
>>> reaction.adiabatic_reaction(s1)
>>> s1.show() # After adiabatic reaction
Stream: s1
 phase: 'g', T: 649.84 K, P: 101325 Pa
 flow (kmol/hr): CH4  1.5
                 CO   3.15
                 O2   94.6
                 CO2  0.35
                 H2O  107
property X_net

[ChemicalIndexer] Net reaction conversion of reactants.