Multiple reacting inlet streams to a CSTR.

152 views
Skip to first unread message

Richard Colwell

unread,
Jan 13, 2021, 1:20:20 PM1/13/21
to Cantera Users' Group
Hello everyone, I am trying to model the reactor network shown below in the diagram. 

Capture.JPG

The blocks represent reactors. The inlet gas for the two reactors on the left is the same composition, but they react for different times and thus have different exit compositions gas1 and gas_n. 

I currently have gas1 and gas_n  as reservoirs. They are fed into the reactor on the right side of the diagram using mass flow controllers at 0.5 kg/s and 1 kg/s, per the mix1.py example. 

I have a few questions: 

1. When I initialize the downstream reactor, my first thought is that it should be empty. However, doing so causes the upstream mass flow controllers to throw an error. In looking at the results, I noticed that initializing the reactor with either gas1 or gas_n affects their exhaust concentrations, but does not affect the overall downstream exhaust concentration. Can someone explain this phenomenon? Does it really not matter with which gas the reactor is filled at the start, considering that they have the same species but in different concentrations?

2. I have the exhaust from the downstream reactor modelled as a reservoir, again with a mass flow controller set to 1.5 kg/s. However, initializing the downstream reservoir with either gas1 or gas_n does affect the overall composition of the downstream exhaust reservoir, so I don't trust the results I am given from this. Is there a way to get accurate results using reservoirs and mass flow controllers? How should I initialize the reservoir?

3. To get around the uncertainty about mixing the streams, I tried another way of mixing the streams using quantities. However, I am unable to initialize a reactor with a Quantity of gas; only Solution objects (phases) are accepted to intialize reactors. Is there another way around this?

My code is attached for your reference. Any advice would be much appreciated. Thank you. 
ReactorNetwork.txt

Bryan W. Weber

unread,
Jan 14, 2021, 9:38:02 AM1/14/21
to Cantera Users' Group
Hi,

I'm not sure about the terminology you're using here, and how they refer to the objects in your code and in your drawing. If I understand correctly, gas1 and firstVaneReactor refer to the upper left blue box, gas_n and nthVaneReactor refer to the bottom left, and downstream exhaust reservoir (?) and downstream reservoir (?) and diffuser refer to the bottom right box in your figure. Can you clarify what is meant to be a Reservoir (as Cantera means a reservoir, which is fixed state) and what is a Reactor (as Cantera means a reactor)? If you're getting a Cantera Reservoir to change state, something has gone horribly, horribly, wrong.

One other point... In the mix1.py example the equivalent of your "diffuser" is modeled as a constant volume reactor attached to a Valve object which preserves the pressure as constant. This is a more typical way of modelling reactors like this, because it allows the mass flow rate to adjust to maintain constant pressure as temperature changes. Otherwise, the volume of the reactor will change, which isn't usually what you want, and will usually also result in a somewhat stiff problem, because the volume can change quite rapidly. However, if your physical reactor is allowed to change volume then your model is appropriate!

Best,
Bryan
Reply all
Reply to author
Forward
0 new messages