Jump to content
Geochemist's Workbench Support Forum

Tips for helping x1t to converge

Recommended Posts

I am trying to run x1t scripts that include kinetic mineral dissolution reactions as well as the rare earth elements. I have modified the thermo.tdat database for REE aqueous speciation. I have also written custom kinetic reaction scripts for several minerals. The chief minerals that appear to be reacting are K-feldspar, Quartz, Muscovite, and Kaolinite. When I don't include the REEs, the x1t scripts run fine. But when I add in the REEs, x1t wont converge unless I only have K-spar dissolving or K-spar and quartz. I should say that I also added the REEs to each of the four mineral above in the modified thermo.tdat database, which I now am calling thermo_REE_kinetic.tdat. One thing that may be problematic is that I have estimated the surface areas of kaolinite and muscovite to be quite large based in Beckingham et al. (2016) Geochimica et Cosmochimica Acta 188, 310-329 (https://www.sciencedirect.com/science/article/pii/S0016703716303003). For example, based on this study and some others, I have estimated a surface area of 132,000 cm2/g for kaolinite and 47,400 cm2/g for kaolinite. The surface areas I have used for K-spar and Quartz are 1460 and 890 cm2/g. Although these run fine for my script without the REEs, the script with REEs won't converge.  I am attaching my script that runs (minus the REEs) and the custom rate laws. The plot "Initial weathering.jpg" shows the results of the Carrizo_Infiltration_4a.xt1 script. 

The main differences are the order of magnitude to 2 orders of magnitude differences in the surface areas for muscovite and kaolinite, which may or may not be the reason why the script wont converge when I include the REEs. As I note above, it I just run the script with kinetic kaolinite and quartz and the REEs, it converges. Do you all have any suggestions?

Tomorrow, I plan to edit the Carrizo_Infiltration-4a.x1t script by decreasing the reactive surface areas of kaolinite and muscovite to see how well it reproduced the Initial weathering.jpg plots.


Non convergences 1.jpg

Initial weathering.JPG

Carrizo_Infiltration_4a.x1t K-feldspar_Rate.bas Kaolinite_Rate.bas Muscovite_Rate.bas Quartz_Rate.bas

Link to comment
Share on other sites

Hello Karen,

It is difficult to say what might exactly be the issue here. To troubleshoot, you can turn on "explain steps" in the Stepping dialog and check "Follow output" on the Results pane before running the simulation. This will report the rate limiting factor constraining your reaction and you can investigate further.

You can adjust some of the parameters but I would advise that you familiarize yourself with how they work before doing so. Parameters like the Courant and Xstable are stability criteria that should never be set greater than 1. The epsilon parameter sets the convergence criterion for the newton-raphson iteration, which is how closely solutions in subsequent iterations must match. Other parameters like delxi and dx_init adjusts the maximum step size and the initial step size in the simulation. I would recommend looking in the Command Reference to see how each parameter affects the simulation. I would recommend troubleshooting the input before playing with these parameters. You can see equations for mass transport in section 3.3 in the Reactive Transport Modeling Guide. If you have a copy of the Geochemical and Biogeochemical Reaction Modeling text, you can find details regarding the transport equations in chapter 23 Transport in Flowing Groundwater.

Hope this helps,
Jia Wang
Aqueous Solutions LLC

Link to comment
Share on other sites

Hi Jia,

Thank you for the tip. I didn't know about the "explain steps". That said, I don't know what it is trying to tell me. If I only run the model with kinetic K-spar and Kaolinite, each step is constrained by change in Q/K for kaolinite. I know what Q/K is and I assume this telling me something about how kaolinite is impacting the simulation. When I include kinetic K-spar, quartz, kaolinite, and muscovite, then the same message appears but with the change in Q/K for muscovite constrains each step. So, I don't what is telling me, or more importantly how to fix the system to converge. What specifically does the Xi parameter represent? I assume it has to do with the stepping. It some kind of unit less distance? I notice that it grows as the simulation progresses. Also, what specially is Co? I assume this could be an initially concentrations or maybe something related to the Courant number. The simulation always seems to fail at nodes 1, 34, and 67. Does that tell you something. The script involves 100 nodes, so the 34 and 67 nodes are close to 1/3 and 2/3 the simulated flow path. 

If I remove kinetic Kaolinite and kinetic Muscovite, the model converges. This suggests to me that I can continue with this approach if I eliminate those two minerals. That's unfortunate because the model predicts that kaolinite precipitates along the entire length of the flow path. I am interested in evaluating if this has any effect on the aqueous REE concentrations. K-spar would seem to be an important source of REEs to the groundwaters, whereas the REE content of quartz is really low. The major sink of the REEs will likely be adsorption and I will eventually include my surface complexation models (SCM) for the REEs. Maybe the release of REEs from K-feldspar followed by adsorption onto the aquifer minerals will be able to explain the REE concentrations I have measured. However, I would like to include Kaolinite in these simulations.

The first attached document shows the results with the explain steps turned on for the case of only kinetic K-feldspar and kinetic kaolinite. The second document is for when I run Carrizo_Infiltration_5b.x1t. In this case the steps are constrained by change in Q/K for both muscovite and kaolinite. It keeps flipping back and forth.

I am sending the 5b script as well as the thermo_REE_kinetic.tdat database in case you have some spare time to run it yourself. The basic kinetic scripts are attached above.

I'll keep plugging away, but I think I need some insights into what the "explains steps" is telling me, and more importantly what can do to address these issues.

Best wishes,



With explain step on.pdf 5b.pdf Earlier 5b.pdf Carrizo_Infiltration_5b.x1t thermo_REE_kinetic.tdat

Link to comment
Share on other sites

  • 2 weeks later...

Hello Karen,

Thank you for all the attachments and input files. We are still taking a closer look at the issue. Just a few quick answers to your questions. The explain step and follow output can generally give you some clue about what is causing the issue. In this case, the Q/K limitation of various minerals is indicative of this being a chemistry problem. Since your simulation does run to start, you can always look at the Q/K of various minerals and see if anything stands out. Since you previously inquired about the parameters on the Stepping dialog, it was good to check whether you are having issues on the transport side or the chemistry side. Diagnosing root causes of issues in a reactive transport model can be tricky. Xi the progress variable through your simulation. At the beginning, it is 0 and varies to 1, which stands for the end of the simulation. You can set the maximum value that the program can take by adjust delxi in the stepping dialog. The Co number shown in the Results pane is the grid courant number. This is informs you of the number of nodal blocks traversed by the fluid over the course of a time step.

Best regards,

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...