1D calcite reaction column

Dear OpenGeosys users and developers,

I am currently doing a simulation based on a 1D calcite reaction column and I have changed the concentration of the initial conditions. The changed conditions are that one section of the column contains crush calcite, and the MgCl solution still flows in from the left side. But when running ogs to calculate chemical reactions, I encounter the problem of negative concentration values.What causes this problem?

Best regards,
Minouc

Dear Minouc,

Thank you for your message. I got your input files also from Yajie. Let me try to answer your question.

The negative concentration issue is typically caused by oscillations associated with Finite Element formulation. When you have a strong advection (in comparison to diffusion/dispersion), the FEM-based numerical simulation will start to oscillate, especially at the front of the advection front. In reactive transport simulations, this is very annoying because the chemical solvers can not accept negative concentrations.

There are several approaches that you can adopt to mitigate this issue.
(1) Apply mass lumping

Mass lumping has been tested in Heat_Conduction process, as illustrated in the above example. Please check whether it works with ComponentTransport process or not.

(2) Apply upwind scheme
Check the following example. The upwind scheme should help to suppress the oscillations.

(3) Apply Flux-Corrected-Transport
This feature is not yet integrated into OGS-6 official version, but we are working on it. The good news is that it is on our priority list and we have a working branch which works very well. I suggest that you wait a couple of weeks for its final integration. We plan to finish the merge before Xmas 2023.

Best,
Haibing

Dear Haibing,

Thank you for your careful and thoughtful reply, I have been stuck on this issue for a long time. Your reply helped me tremendously and I will work to implement all of your suggestions.

Best,
Minouc

Dear Minouc,

The flux corrected transport (FCT) scheme has been integrated into the latest OGS development version. Please give a try on it. Here is a benchmark case showing how to use it.

Let me know how it works with your model.

Best,
Haibing