Re: Simulating headspace for a batch reactor system

35 views
Skip to first unread message

Hammond, Glenn E

unread,
Aug 21, 2025, 8:03:32 PMAug 21
to Kumar, Girish, pflotran-users
See my comments below in red.

Glenn

From: Kumar, Girish <girish...@austin.utexas.edu>
Date: Wednesday, August 20, 2025 at 3:09 PM
To: Hammond, Glenn E <glenn....@pnnl.gov>
Subject: RE: Simulating headspace for a batch reactor system

Check twice before you click! This email originated from outside PNNL.

Dear Glenn,

Hope you're doing well! 

I'm currently using PFLOTRAN to simulate a simple closed batch reaction system involving microbial (monod) reaction kinetics, but I'm stuck with some questions and unable to proceed. I posted this to the google group also just in case some of the users can help before you did. I'd highly appreciate if you or anybody from your PFLOTRAN support group can help clarify my questions. I've also attached the input deck and dbs file for reference.

volume of the closed system = 35 ml
volume of solution = 10 ml
volume of headspace = 35 - 10 = 25 ml

I have certain gas species in my system that partition to headspace and liquid assuming equilibrium partitioning via Henry's law and I have invoked appropriate primary and gas species in the dbs file. I'm having trouble understanding how to simulate headspace so that I know that when I constrain the aqueous forms of the gas species to certain partial pressure of the gas forms or directly specify their total concentrations, that the code will do equilibrium partitioning and distribute the mass of the species into headspace and liquid as the aqueous form of the species is being consumed during the course of the simulation (i.e., the mass/concentration of the species in the solution equilibrates with the mass in the headspace over the course of the simulation). 

Use solely transport, specify the REFERENCE_SATURATION and constraint against a gas partial pressure, and the code should distribute the mass.

I tried to specify a porosity of 1 and liquid saturation of 10 ml/35ml = 0.28 under MATERIAL_PROPERTY block so that PFLOTRAN knows there's headspace in the remaining pore space, but it doesn't allow me to specify LIQUID_SATURTAION under general mode. I'll have to perhaps use FLOW mode (RICHARDS) to specify saturation, but then I'm not sure how I would specify flow condition under such case since there's no flow involved in this batch system.

Here are my questions:

  1. Could you please help me understand/simulate this system with headspace and specific blocks correction I may have to introduce in the attached input deck?
Try the attached. I added the REFERENCE_SATURATION and GASES to CHEMISTRY OUTPUT.
  1. Do I need to include PASSIVE_GAS_SPECIES in addition to ACTIVE_GAS_SPECIES to simulate the gas partitioning appropriately. Frankly, I don't completely understand the difference between or the use cases for Active and Passive gas species blocks (i.e., when to use either or both). The documentation does explain a bit, but could you please further clarify?
Any gas species that is explicitly simulated as a gas species in the gas phase, needs to be an ACTIVE_GAS_SPECIES. PASSIVE_GAS_SPECIES are often needed when a gas is a reactant in a database reaction (e.g., O2(g) is often used in redox species for aqueous complexes and minerals). Passive gas species are also needed in CONSTRAINTS for constraining against a gas partial pressure.
  1. How can I print gas concentrations in the headspace in the output? It was definitely not possible in the General mode and was throwing me an error when I did, so I believe the option to print this opens up only in FLOW mode? 
Add the name of the gas species or GASES (for all) to the CHEMISTRY OUTPUT block.
  1. Also, how does PFLOTRAN exactly define the parameter "Yield" in Monod kinetics? What are the units of yield in PFLOTRAN? Any typical range of values you recommend for this parameter to start with (I've usually seen you use 1e-4 for this parameter in most examples)? I have usually come across yield coefficient being defined in terms of portion of electron/energy that goes to biomass growth vs substrate utilization (i.e., ratio of max substrate utilization rate to the biomass production/growth rate).
I agree with you. See Eq. 14 in the attached paper. Think of the yield as a stoichiometry.  For every mole of reaction, how many of those moles produce biomass. Let’s discuss further if this does not make sense. You can also see where yield is used in the code at:

Please let me know if any of my questions are unclear.

Thanks,
Girish

Girish Kumar, PhD
Research Associate
Maseeh Department of Civil, Architectural and Environmental Engineering

Cockrell School of Engineering  

The University of Texas at Austin

Work Email: girish...@austin.utexas.edu

Personal Email: girish...@gmail.com
Mobile: 312-721-7864


Hammond, 2022.pdf
pflotran.in

Kumar, Girish

unread,
Aug 25, 2025, 3:48:07 PMAug 25
to Hammond, Glenn E, pflotran-users
Hello Glenn, 

Thanks so much for your response and clarifications. The changes you suggested worked. I'll let you know if I run into any other issues.

Regards,
Girish





From: Hammond, Glenn E <glenn....@pnnl.gov>
Sent: Thursday, August 21, 2025 7:03 PM
To: Kumar, Girish <girish...@austin.utexas.edu>; pflotran-users <pflotra...@googlegroups.com>
Subject: Re: Simulating headspace for a batch reactor system
 
This message is from an external sender. Learn more about why this matters.

Reply all
Reply to author
Forward
0 new messages