Jump to content
Geochemist's Workbench Support Forum

Error of "Newton-Raphson didn't converge after 999 iterations" in X1T module

Recommended Posts

Hello there,


Can anyone help with figuring out what is wrong with my reactive transport modeling work; I get the known error of “Newton-Raphson didn't converge after 999 iterations, max residual =    5.63e-11, Xi = 0.0102 Newton failed at node 0”?

I am trying to simulate weathering in soil with the weathering example (chapter 27.2 in the book) as the benchmark. The main difference is adding a silicate mineral (wollastonite) to see the effect on soil and leachate as well as calcite precipitation. Also, for the kinetic rates of minerals, I used the data reported in Palandri et al. I have attached my file, and I am using V8.R6+ thermo data set. I would appreciate it if you could please guide me.




Weathering in soil.x1t

Link to comment
Share on other sites

Hello Reza,

A few suggestions to help you start troubleshooting:

Kinetic models are best for modeling reactions that are slow but observable in the time span of your simulation. In X1t, you can perform a "Go initial" run to calculate the initial equilibrium state before any time steps take place. If you do so and plot the Dissolution rates under Reactant Properties for all minerals, you will see that Wollastonite has a very high initial dissolution rate compared to other minerals. Having a much faster rate is going to force the program to take smaller time steps for one but also may make it much more difficult to converge. If you have reactions that are occurring really fast, you might consider just constraining it as an equilibrium reaction instead of using kinetics.

Once I removed Wollastonite, X1t failed later in the simulation. I tried decreasing the step size, delxi, in the Stepping dialog to 0.001. Since there are only three nodes in your model, a smaller time step in general seems to have helped.

If you want to use the nucleus density for precipitation calculations where there is no mass for kinetic minerals present initially, you would want to include the nucleus density in your rate law scripts. If you don't, the nucleus density won't be considered for calculating a surface area for nucleation. Since you are using a script, you can add a simple IF statement that looks something like:

IF surface < nucleus * soln_volume THEN 20 ELSE 40
20: rate = -nucleus * [rest of your equation here]
40: rate = -surface*[rest of your equation here]
60: RETURN rate

In general, I would suggest you start by simplifying your simulation. You might want to remove the minerals and start with one reaction interval to see how far you get. You should also double check the values in the rate law to make sure they are correct.

Hope this helps,
Jia Wang
Aqueous Solutions LLC


  • Like 1
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...