O2 aeration / gas exchange in ATS-PFLOTRAN coupling

20 views
Skip to first unread message

Neelarun Mukherjee

unread,
Apr 9, 2026, 6:38:54 PM (5 days ago) Apr 9
to pflotran-users
Hi all,

I am running coupled ATS-Alquimia-PFLOTRAN simulations of reactive transport in a 2D Arctic permafrost hillslope (a supra-permafrost aquifer with seasonal freeze-thaw). My reaction network includes aerobic respiration, fermentation, iron reduction, and methanogenesis with 10 primary species. The problem I am running into is with O2 delivery to the subsurface.

In my current setup, the only way O2 enters the subsurface is dissolved in rainfall infiltrating from the surface. When the water table drops and the active layer desaturates, no O2 enters the air-filled pores because the ATS-PFLOTRAN coupling is single-phase (aqueous only) and ATS transport PK does not handle gas-phase transport. This means the subsurface stays permanently anaerobic even during dry periods, which is not physical. In reality, atmospheric O2 should diffuse as subsurface unsaturates. And also degassing of CO2 and CH4 should happen simulataneously. 

I know that standalone PFLOTRAN can handle gas-phase transport, but with ATS, as PFLOTRAN acts as a batch reactor, I don't think I can use the gas transport part. Please let me know if there are any workarounds to use that as well. I am wondering if it is possible to approximate (fake) O2 aeration/ CO2 degassing using a reaction sandbox -maybe a saturation depndent source/sink?   Please let me know if anyone has done something like this or has any other workarounds. 

In teh attached files, I have an example of the reactions that I am using currently along with an example ATS input file. 

Thanks,
Neel. 

 


arctic-surface_all.in
arctic-subsurface_all.in
10D_non-freezing_permafrost-transect_RTM_IC_aerationv1.xml

Hammond, Glenn E

unread,
Apr 11, 2026, 3:45:43 PM (3 days ago) Apr 11
to pflotra...@googlegroups.com
Neel,

To achieve the desired functionality, you can modify reaction_sandbox_equilibrate.F90 so that the rate expression incorporates liquid saturation, specifically using (1 - liquid_saturation). This adjustment will allow you to account for saturation effects in your calculations.

You can find the relevant source code here:

Refer to line 199 for the rate expression:

In this implementation, the saturation-dependent rate is calculated as:
saturation_dependent_rate = original_rate * (1.d0 - global_aux%sat(LIQUID_PHASE))

When global_auxvar%sat(LIQUID_PHASE) reaches 1, indicating full liquid saturation, the rate becomes zero.

Glenn

From: pflotra...@googlegroups.com <pflotra...@googlegroups.com> on behalf of Neelarun Mukherjee <neel...@gmail.com>
Date: Thursday, April 9, 2026 at 4:39 PM
To: pflotran-users <pflotra...@googlegroups.com>
Subject: [pflotran-users: 8752] O2 aeration / gas exchange in ATS-PFLOTRAN coupling

You don't often get email from neel...@gmail.com. Learn why this is important
Check twice before you click! This email originated from outside PNNL.
--
You received this message because you are subscribed to the Google Groups "pflotran-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pflotran-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pflotran-users/e79c279e-d123-48a0-80a6-e915c8fa9348n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages