Jump to content
Geochemist's Workbench Support Forum

X2t: no convergence

Recommended Posts


The GWB is really an amazing tool! I have some experience with PHREEQC and PHT3D (Modflow) and am now exclusively using the GWB . I am simulating reactive transport of toluene with x2t package. The simulated biodegradation occurs by reduction of Fe (III) and methanogenesis pathways... I'm using first order kinetics to be similar to the
calibrated simulations of non-reactive transport with MT3DMS.

Forgive me if this subject has already been addressed, but I not found in this forum.

The problem is that when you increase the value of the kinetics, the simulation not converges. If I keep a value where the kinetic model converges and increase the size of the domain, the model also not converges.

Because of this, I believe the first order kinetics has convergence problems for very low values ​​of toluene. It is possible, I established that the kinetics of biodegradation occurs only values ​​above 0.000001 mg / l for example in the simulation?

I appreciate all the help.

Best regards!

Link to comment
Share on other sites

I noticed a few potential issues with your model. First, you've actually specified zero-order kinetics, not first-order kinetics. For example, your reaction "Toluene(aq) + 5*H2O -> 2.5*CO2(aq) + 4.5*Methane(aq)" will proceed according to the rate law: r = k * (1 - Q/K), where the (1-Q/K) term will be close to 1 far from equilibrium and equal to 0 when the reaction is at equilibrium (meaning the net rate of reaction is 0). The reaction rate does not depend on the amount of toluene in solution (as a first-order rate law implies) except for the effect on the ion activity product (Q) which is part of the (1-Q/K) term.


If a reaction proceeds according to a first-order rate law like r = k * molal concentration(Toluene) * (1 - Q/K), then you'll need to add Toluene as a promoting species for that reaction. To do so, you'll need to move to the kinetic rate law for the reaction and click "add" in the box labeled "power", then choose "Aqueous..." -> Toluene(aq). Leave the value for "power" at 1 and select the button next to "molality".


Secondly, you specified a very large hydraulic head drop across the domain (584 m over a distance of 33 m). Are you sure this is right? Also, I don't think you want to specify a head drop and the discharge at the right boundary. You should check your input.


Finally, it's probably a good idea to suppress Hematite (which is more stable than Goethite) in your example.


Hope this helps to get you started,


Link to comment
Share on other sites

Very nice! Thanks Mr. Farrel!

It's my first experience with X2T and made ​​many misconceptions. I thought by default the kinetics were first order. Actually, I found odd the concentration profile had a linear decay and was not compatible with first-order kinetics.

The difference in potential between the two contours is 5.86 me not 586. Another problem in the model. Now the model is rapidly converging.

Thank you!

Best regards

Link to comment
Share on other sites

  • 2 weeks later...
Hi Mr. Farrel.

After fixing the misconceptions in my simulation, the model converged without difficulty. But I came back to have problems. When increasing the size of the field or increase the simulation time, the model does not converge. When we decrease the rate of kinetics, the model converges. So the problem is related to the kinetics.

In PHREEQC may establish that the reaction will proceed only if the concentration is above a specified value. This is done to prevent the kinetic runs negative concentrations in very low concentrations. You can do this in X2T?

Since now, thank you!

Link to comment
Share on other sites



A first order rate-law should prevent non-negative concentrations because the concentration of the substrate approaches zero asymptotically. And if you're using the built-in rate law feature, the (1 - Q/K) term should also force the reaction to slow down because at equilibrium the forward and backward reaction rates will balance out. Are "order1" and "order2" still set to 1 in your rate law?


The GWB programs have a few settable parameters you can try to adjust to help the numerical solution. For example, you might try to adjust "delQ" under Config - Stepping. You can learn more about the various parameters in the Stepping and Iteration dialogs by searching for them in the GWB Reference Manual.


If you're running GWB10, you can check "explain steps" from the Stepping dialog, then check "follow output" on the Results pane in order to see what factors limit the length of each timestep in your run.


If you'd like, you can set a custom rate law so that the reaction only proceeds above a certain threshold concentration. Here's an example in pseudo-code:


if molality("Toluene(aq)") > 0.001, then rate = k * molality("Toluene(aq)") * (1 - Q/K)

else, rate = 0


The Custom Rate Laws section of the GWB Reaction Modeling Guide should be helpful here.


Hope this helps,


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...