Passing liquid saturation from ATS to PFLOTRAN for saturation-dependent reaction kinetics

45 views
Skip to first unread message

Xueyuan Kang

unread,
May 12, 2026, 5:20:54 PMMay 12
to Amanzi-ATS Users

Dear all,

I am working on an ATS–PFLOTRAN reactive transport model that includes microbially mediated carbon reactions. In my application, the reaction rates should depend on soil water content / liquid saturation, since microbial respiration and related organic carbon transformation processes are strongly modulated by moisture conditions.

I found this previous discussion about passing temperature from ATS to PFLOTRAN through Alquimia, so that PFLOTRAN reaction kinetics can use the ATS-computed temperature field:

https://groups.google.com/g/ats-users/c/KYH5cMQGgLo/m/e1xg5BvpCAAJ

My question is whether a similar workflow is possible for liquid saturation (S_w):

  1. Can ATS currently pass the dynamically simulated liquid saturation field to PFLOTRAN / Alquimia in a way that it can be used in reaction-rate calculations?

  2. If so, is there an existing ATS input option analogous to the temperature key used for temperature?

  3. If not, would this require modifying the ATS–Alquimia interface or adding a custom coupling mechanism?

From what I can tell, standard PFLOTRAN reaction cards do not appear to provide a direct built-in option for defining kinetics as an explicit function of liquid saturation. Therefore, I am considering implementing the saturation dependence through a custom reaction formulation, similar in spirit to a REACTION_SANDBOX approach, where the rate law would include a moisture response function such as (f(S_w)).

Before going further, I wanted to ask whether ATS already supports passing (S_w) to PFLOTRAN for this purpose, or whether anyone has implemented something similar.

Many thanks for any guidance or examples.

Best,
Xueyuan

Neelarun Mukherjee

unread,
May 13, 2026, 7:20:19 AMMay 13
to Xueyuan Kang, Amanzi-ATS Users
Hi Xueyuan,

Please check Glenn’s email in this conversation in the PFLOTRAN user group for an example:

-Neel. 

--
You received this message because you are subscribed to the Google Groups "Amanzi-ATS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ats-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ats-users/3a583625-40f1-4de4-b901-22069a31b2cfn%40googlegroups.com.

Coon, Ethan

unread,
May 13, 2026, 11:34:24 AMMay 13
to Neelarun Mukherjee, Xueyuan Kang, Amanzi-ATS Users
And yes, ATS already passes saturation to PFLOTRAN, so if it’s in the reaction network you should be good.

Ethan

From: ats-...@googlegroups.com <ats-...@googlegroups.com> on behalf of Neelarun Mukherjee <neel...@gmail.com>
Date: Wednesday, May 13, 2026 at 5:20 AM
To: Xueyuan Kang <xueyuan...@gmail.com>
Cc: Amanzi-ATS Users <ats-...@googlegroups.com>
Subject: [EXTERNAL] Re: Passing liquid saturation from ATS to PFLOTRAN for saturation-dependent reaction kinetics

This Message Is From an Untrusted Sender
You have not previously corresponded with this sender. If suspicious, use the Report Phish button in Outlook.
 

Xueyuan Kang

unread,
May 13, 2026, 12:38:43 PMMay 13
to Amanzi-ATS Users

Great! Thank you so much, Neel and Ethan.

Best,
Xueyuan


Sergi Molins Rafa

unread,
May 13, 2026, 1:15:48 PMMay 13
to Xueyuan Kang, Amanzi-ATS Users
For future reference, the Alquimia interface documentation outlines the data that is passed between driver and engine:  

https://github.com/LBL-EESA/alquimia-dev/blob/master/doc/api/APIv1_structures.rst#struct-alquimia-properties

This should generally apply to the ATS PFLOTRAN coupling but it is also documented in ATS:

https://amanzi.github.io/ats/stable/input_spec/process_kernels/physical/transport.html  (search for the “saturation liquid” key under pk-chemistry-alquimia-spec)

If not provided, the chemistry pk will default it to "saturation_liquid" but please be aware that ATS has a lot of flexibility so you can be very clever. For example, those using it for reactions in the surface domain (as in integrated hydrology problems) are already aware that the "saturation liquid key" you want to pass through Alquimia to ATS will not be an actual saturation but the ponded depth. See e.g.  


If you ever need to pass anything that is not part of AlquimiaState or AlquimiaProperties, please let me know as it can drive and/or inform Alquimia development.

Thanks

Sergi  

Reply all
Reply to author
Forward
0 new messages