Jump to content
Geochemist's Workbench Support Forum
Abdulaziz

Carbonate acidizing -(Matching ICP result ) - Help to setup initial rock sample and fluid constrains on the system

Recommended Posts

Greetings all,

I conducted  HCl ( acid ) core flooding experiments at room temperature on cylindrical limestone rock samples (2.5 cm in diameter 5 cm long) which are mainly composed of ( ~ 97 % calcite from XRD analysis ) and the produced water (effluent) was chemically analyzed for cations using Inductively Coupled Plasma (ICP) spectroscopy to assess the dissolution reaction phenomena.

the chemical equation is as follows : CaCO3 + 2HCl ---> CaCl2 + CO2 + H2O                                                        

My aim is to get the dissolution reaction rate constant and the diffusion coefficient for the conducted experiment by matching laboratory ICP result (Ca++)  with the model (X1t).

I have read transport reactive and other documentation but I am missing something. 

I used X1t app to simulate the acidized core flooding experiments and match the laboratory ICP result.

my concerns are the followings : 

How precisely can I put the constraints on the initial system for the rock sample and the injected acid solution? I am a little bit confused about the input units ( mg/kg, free kg, mmol/kg, ..etc). I am only aware of the limestone rock sample weight ( 50 g) , porosity (22%) and the concentration of the injected acid (pH, wt% ).  how would I put the value of the followings with their units:

  • H2O .... free kg
  • H+ ..... 4 (pH) .. for example !
  • Cl- ...  
  • Ca++ ( mineral ) ...
  • HCO3- ....
  • do I need to equilibrate the fluid and the rock in the initial pane in constraints on the initial system, and if so, how would I equilibrate them?
  • injection rate was 10 cm3/min. how would I mimic the laboratory injection rate within the X1t  the discharge ( injection rate) unit (cm/s, cm3/cm2/s, ..etc)?
  • The laboratory domain was a cylindrical core sample (2.5 cm in diameter 5 cm long) , how would I simulate that domain in the model, I used a spherical domain with r1: 1.25 cm, r2: 1.26 cm and nodes (Nx) = 5, please advise the appropriate way.

 

Your support in this matter is highly appreciated.

 

regards

Abdulaziz

Share this post


Link to post
Share on other sites

Hi Abdulaziz,

The main purpose of The Geochemist’s Workbench® software package is geochemical reaction modeling and reactive transport modeling using parameters like rate constants and diffusion constants. You may estimate their optimum values by trial and error, though. For example, the Microbial Populations lesson on the GWB Online Academy describes how to adjust the rate constant to visually match experimental data. 

You can set most basis entries as bulk or free constraints. For a bulk constraint, the value you set refers to the entire thermodynamic component, whereas for a free constraint, it refers to the particular species only. The Ca++ component, for example, might include the Ca++ species, as well as Ca(OH)2(aq), CaHCO3(aq), etc. If you set 10 “mg/kg” Ca++, the concentration is for the sum of those species. If you set 10 “free mg/kg” Ca++, though, the concentration refers only to the individual Ca++ species.

If you are looking at the reaction between the fluid, and the rock, as the fluid traverse through it, you don't probably need to equilibrate the fluid and rock. For more information, please read section 3.10 in the GWB Reaction Modeling Guide.

In a spherical domain, the length of the domain is r2-r1. Please read section 3.1 in the GWB Reactive Transport Modeling Guide.

In future, please don't post your question in different topics. If you need further help, please attach your script.

Thanks,

Melika Sharifi

Aqueous Solutions LLC

Share this post


Link to post
Share on other sites

Hi Melika,

Thanks for your reply. when I  submitted my case in the forum, an error message appeared and I ended up submitting the question 4 times without knowing it was posted at the first attempt. sorry about that.

I used X1t app to simulate the acidized core flooding experiments and match the laboratory ICP result.

the chemical equation is as follows : CaCO3 + 2HCl ---> CaCl2 + CO2 + H2O   

my concerns are the followings : 

How precisely can I put the constraints on the initial system for the rock sample and the injected acid solution? I am a little bit confused about the input units ( mg/kg, free kg, mmol/kg, ..etc). 

I am only aware of the limestone rock sample weight ( 50 g) , porosity (22%) and the concentration of the injected acid (pH, wt% ).  how would I put the value of the followings with their units:

  • H2O .... free kg 
  • H+ ..... 4 (pH) .. for example !
  • Cl- ...  
  • Ca++ ( mineral or ... ) ...
  • HCO3- ....
  • do I need to equilibrate the fluid and the rock in the initial pane in constraints on the initial system, and if so, how would I equilibrate them?
  • injection rate was 10 cm3/min. how would I mimic the laboratory injection rate within the X1t  the discharge ( injection rate) unit (cm/s, cm3/cm2/s, ..etc)?
  • The laboratory domain was a cylindrical core sample (2.5 cm in diameter  5 cm long) , how would I simulate that domain in the model, I used a spherical domain with r1: 1.25 cm, r2: 1.26 cm and nodes (Nx) = 5, please advise the appropriate way.

 

I have attached 2 different files. please advise which one of them i should be simulating my lab work with. 

Carbonate acdizing.x1t

Aziz HCl.x1t

Share this post


Link to post
Share on other sites

Hi Abdulaziz,

As Melika stated in response to your question, you set the length of a spherical domain with the values of r1 and r2. For example, setting r1 to 1 cm and r2 to 6 cm will prescribe a spherical domain that’s 5 cm long. Such a configuration would not be appropriate for a cylindrical column, however, because the domain’s width is expanding, as you can see in the graphic in X1t’s Domain pane. You could "hack" the model by setting r1 and r2 so that they are very large, like 1001 cm and 1006 cm, thus defining a domain of the same length, but with a geometry much closer to a cylinder. This really defeats the purpose of using a spherical model, however. I'm only saying this so you get an understanding of how the two radius values are used to define the geometry of a spherical domain. For your model,  I recommend just using a linear 1D model. In that case, you set the length to 5cm, and you can choose values of deltay and deltaz that will give you the same cross-sectional area as your cylindrical column.

You have several options to set the flow field. You can set specific discharge directly. You can solve for the specific discharge by setting a hydraulic potential or hydraulic head drop across the domain, along with the permeability, in which case the program uses Darcy’s law to solve for specific discharge. Alternatively, you can tell the program how much of the initial pore water should be displaced in the time specific for the simulation (the pore volumes option).

The specific discharge is a volume flux, with units such as cm3/cm2/s. So, it’s the volume of water passing a cross-sectional area per unit time. You’ll notice that the discharge units can be simplified to velocity units, such as cm/s. The two sets of units can be used interchangeably here. It’s important to keep in mind that the specific discharge is not the groundwater velocity, because water molecules only move through pore space within the column. The velocity is the specific discharge divided by the porosity.  

You can divide your experimental flowrate by the cross-sectional area of the column to get the specific discharge. Alternatively, you can determine from your injection rate how many times the volume of fluid in your column (the total volume x the porosity) was displaced over the length of your experiment, then set that value for pore_volumes. 

It’s hard to say for sure, but I doubt you’ll be able to figure a diffusion coefficient from an experiment with such a high flowrate, and with data only at the outlet. When water flows at any appreciable rate, the effects of diffusion are insignificant compare to advection and hydrodynamic dispersion. As a result, changing the value of the diffusion coefficient won’t affect your results in any noticeable way. For that same reason, specifying a precise value for a diffusion coefficient is only useful in modeling systems with little or no flow. I think an experiment without reaction or flow, and with multiple sampling points at multiple times, would be ideal for determining a diffusion coefficient.

The rate constant, on the other hand, could possibly be calculated, but it really depends on your experimental setup. Most commonly rate constants are determined in simple batch systems. You’re adding complexity by trying to derive it from a column experiment.

For more information, please see sections 3.1 and 3.1 in the GWB Reactive Transport Modeling Guide.

Regards, 

Brian Farrell
Aqueous Solutions
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×