Model insensetive when running pflotran from 2000 yr checkpoint file

51 views
Skip to first unread message

Bisesh Joshi

unread,
Oct 20, 2025, 9:20:22 AMOct 20
to pflotra...@googlegroups.com
Hi all,
I'm trying to reach an equilibrium state for mineralization of SOM that produces NH4+ and DOC at first, and then run a suite of biogeochemical reactions. Model results seem to be constant at around 2000 years. However,  if I use that point as a starting point, the model is insensitive to any changes in parameters such as logK values, mineral rate constant, SOM volume fraction  and permeability of soil layers. Also, I checked SOM rates and VF and they are zero, however, SI values are non-zero. 
The problem is I want to increase NH4+ concentration in the system to calibrate it to observed values in the middle of 2-D transect. But I'm unable to get it as the model is insensitive now. Also, I'm not sure if I can use this approach for scenario analysis, as the model is insensitive. 

Please let me know if anyone has any clue how to solve this problem.
Thank you.
Best regards,
Bisesh



--
Bisesh Joshi
PhD student
Water Science and Policy
Graduate College
University of Delaware

Hammond, Glenn E

unread,
Oct 20, 2025, 10:42:33 AMOct 20
to pflotra...@googlegroups.com
Bisesh,

Please send a brief description of the key mass action equations (A + B -> C) and mathematical rate expressions (rate = k[A][B]) so that we can better understand the conceptual model. Or you could send a SIMPLE input file. It sounds like a mineral should be formed through transition state theory, but it is not.

Glenn

From: pflotra...@googlegroups.com <pflotra...@googlegroups.com> on behalf of Bisesh Joshi <bjo...@udel.edu>
Date: Monday, October 20, 2025 at 6:20 AM
To: pflotra...@googlegroups.com <pflotra...@googlegroups.com>
Subject: [pflotran-users: 8596] Model insensetive when running pflotran from 2000 yr checkpoint file

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/CAEvi1yQK0Kqu%2BvM90dXGa%3DTgCrP43GAXyn2FkkVnMEZ7gmf4zw%40mail.gmail.com.

Bisesh Joshi

unread,
Oct 20, 2025, 11:35:59 AMOct 20
to pflotran-users
Hi Glenn, 
Thank you for your response.
Here are my simple input file with its other input blocks.
I look forward to hear from you soon.
Best regards,
Bisesh


Test_files.zip

Bisesh Joshi

unread,
Oct 21, 2025, 2:00:51 PMOct 21
to pflotra...@googlegroups.com
Hi all,
Also, a follow-up question: Model spinning up for 2000 years to reach equilibrium is consuming all the mineral mass. Is there a way to reach an equilibrium before that, or give a constant mineral source instead of a limited volume fraction (except the source-sink method)?
Thanks in advance!
Best regards,
Bisesh

Hammond, Glenn E

unread,
Oct 27, 2025, 7:38:18 PM (11 days ago) Oct 27
to pflotra...@googlegroups.com
 Bisesh,

As you may have already assessed, the insensitivity of your spun-up runs to log K, volume fraction (VF), and other variables is primarily a result of the absence of the targeted mineral along with the aqueous solution being undersaturated concerning this mineral, preventing any precipitation from occurring.

The primary challenge lies in the dynamic nature of your conceptual model. It is uncertain whether a steady-state, spun-up solution can be established under these circumstances. Were I to approach this problem myself, I would begin by simplifying the chemical framework to focus on a single set of soil organic matter (SOM). This would allow for a clearer pathway to appropriately spinning up the model. Once this simpler model is successfully stabilized, I would then proceed to introduce greater chemical complexity incrementally.

In addition, one method to achieve swift "equilibration" between aqueous chemistry and associated minerals during the spin-up process is to use larger reaction rate constants initially. Once the simulation is restarted, these rate constants can be reduced for more realistic scenarios, provided that the names and numbers of species within the system remain consistent across simulations. Notably, you can implement this adjustment using the following undocumented keyword:

CHEMISTRY 
    … 
    MINERAL_RATE_SCALING_FACTOR <float> 
END

This keyword facilitates global scaling of mineral reaction rate constants without necessitating individual modifications for each rate value.

Regards,

Glenn

Bisesh Joshi

unread,
Oct 28, 2025, 9:17:36 AM (10 days ago) Oct 28
to pflotra...@googlegroups.com
Hi Glenn,
Thanks for the suggestion. I will try that.
The mineral volume fraction is fully depleted  (i.e., it is changed from 0.075 to 0.0) with logK that I'm using (-31.01). However, lower logK values produce less NH4+ than its intended concentration.
Is there any keyword or code block for a constant mineral source in the system?
Also, can new minerals be introduced to the spun-up model? For example, I initially spin up a model for 2000 years with SOM in the system, but now I want to run different scenarios on the model using other minerals like pyrite, calcite etc?
Thanks again!
Best regards,
Bisesh


Hammond, Glenn E

unread,
Oct 28, 2025, 11:32:14 AM (10 days ago) Oct 28
to pflotra...@googlegroups.com
Date: Tuesday, October 28, 2025 at 6:17 AM
To: pflotra...@googlegroups.com <pflotra...@googlegroups.com>
Subject: Re: [pflotran-users: 8602] Model insensetive when running pflotran from 2000 yr checkpoint file

Hi Glenn,
Thanks for the suggestion. I will try that.
The mineral volume fraction is fully depleted  (i.e., it is changed from 0.075 to 0.0) with logK that I'm using (-31.01). However, lower logK values produce less NH4+ than its intended concentration.

I do not recommend modifying logKs in an attempt to preserve equilibrium in a dynamic system.

Is there any keyword or code block for a constant mineral source in the system?

Try adding OVERRIDE_MINERAL_MASS_ACTION to the CHEMISTRY block and set the stoichiometry of the mineral to  zero. E.g.,

CHEMISTRY
  ...
  OVERRIDE_MINERAL_MASS_ACTION
    Calcite
      REACTION 0. Calcite + H+ <-> Ca++ + 1. HCO3-
      LOGK 2.2257 1.8487 1.3330 0.7743 0.0999 -0.5838 -1.3262 -2.2154
    /
  /
END


My hope is that this trick will work. But note that you will have mass imbalance in your scenario as mineral will precipitate/dissolve with no change in mineral volume fraction. I also note that the code may crash (I have not tested zero stoichiometries).

Also, can new minerals be introduced to the spun-up model? For example, I initially spin up a model for 2000 years with SOM in the system, but now I want to run different scenarios on the model using other minerals like pyrite, calcite etc?

You can overwrite any concentration or mineral volume fraction in the restart file if you chose HDF5 (.h5) as the format. I recommend using HDFView to view the values and the Python package h5py to modify the dataset within the .h5 file. There are example scripts in PFLOTRAN_DIR/src/python/* that make similar modfications to .h5 files.

Glenn

Bisesh Joshi

unread,
Oct 29, 2025, 5:58:36 PM (9 days ago) Oct 29
to pflotra...@googlegroups.com
Hi Glenn,
Thanks for your timely reply and suggestions.
It seems the Pflotran version installed on my local machine does not support it?
Are there any other alternatives?
image.png
Best regards,
Bisesh

You received this message because you are subscribed to a topic in the Google Groups "pflotran-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pflotran-users/fa1CBDZc74A/unsubscribe.
To unsubscribe from this group and all its topics, send an email to pflotran-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pflotran-users/PH0PR09MB78365D9155A528F020D838F79AFDA%40PH0PR09MB7836.namprd09.prod.outlook.com.

Hammond, Glenn E

unread,
Oct 29, 2025, 7:09:33 PM (9 days ago) Oct 29
to pflotra...@googlegroups.com

Bisesh Joshi

unread,
Oct 30, 2025, 12:32:46 PM (8 days ago) Oct 30
to pflotra...@googlegroups.com
Hi Glenn,
Thanks for the suggestion
I have rebuilt Pflotran and tried OVERRIDE_MINERAL_MASS_ACTION. However,  it needs a unit value there:

ERROR: Non-unity reactive mineral stoichiometry in mass action override (i.e., \nu_m /= -1.): -0.000000E+00


Probably, I will have to work around it please let mw know if you have any other suggestions.


Best regards,

Bisesh 



Hammond, Glenn E

unread,
Oct 30, 2025, 1:14:20 PM (8 days ago) Oct 30
to pflotra...@googlegroups.com

Bisesh Joshi

unread,
Oct 31, 2025, 11:37:28 AM (7 days ago) Oct 31
to pflotra...@googlegroups.com
Hi Glenn,
Thanks for the reply.
Unfortunately, this also did not work. 
Also, is there a Python script to extract variables from Tec block I can work on? Outputs seem to be saved in the Tecblock in the updated PFLOTRAN version, even though I specify to save output as Tec point. My script for Tec point version does not work for this.
Best regards,
Bisesh 

Bisesh Joshi

unread,
Nov 3, 2025, 9:55:23 AM (4 days ago) Nov 3
to pflotra...@googlegroups.com
Hi Glenn, 
I hope you're doing well.
I'm able to develop the script for reading the Tecplot block outputs.
Thank you!

Hammond, Glenn E

unread,
Nov 3, 2025, 10:49:26 AM (4 days ago) Nov 3
to pflotra...@googlegroups.com
The Tecplot POINT format is supported exclusively in serial (single-process) because generating such files in parallel can require extensive inter-process communication and impose a significant memory burden on process 0.

Also, I recommend extracting information from the .h5 files using the h5py Python package as the data is binary (full 64-bit precision) and the access is straightforward, though I admit that the formatting of the .h5 group time stamps is a bit tricky.

Glenn

Bisesh Joshi

unread,
Nov 3, 2025, 11:46:00 AM (4 days ago) Nov 3
to pflotra...@googlegroups.com
Thanks for the timely reply, Glenn. 
 I'm trying to simulate the kinetic reaction of the Ferrihydrite/Goethite mineral with SOM  to produce Fe2+ + CO2 +NH4+ + H2O. But, since the log K value for iron mineral dissolution is low, it is constraining the reaction outputs.
 Is there a way to simulate this kinetically controlled  (without logK) biotic reaction? Also, can I simulate both reactions (kinetic and log K controlled ) together?
Best regards,
Bisesh

Reply all
Reply to author
Forward
0 new messages