Jump to content
Geochemist's Workbench Support Forum

About the Kaolinite sorption setting


zixuan

Recommended Posts

Sorry, I got in a new problem. When I attempted to find the adsorption rates of Sb and Cr on HFO at pH=7.5 and 8, the error that "pivot: diagonalization failed" came out. It was assumed HFO adsorbed Cr firstly, and then the Sb(V). So after adsorption os Cr(VI), the Sb(V) was added into the react files. I checked some references, but cannot find the reasons.

 

C=1e-4M.rea IN6+OU1 num2.sdat thermo.tdat

Link to comment
Share on other sites

Hello Zixuan,

I wasn't able to reproduce the same error by running your input file.  Could you please double check that you attached the correct React file and surface dataset? The React script you attached loads the surface dataset "IN6+OU1 num2.sdat" but the one you attached is "1269196283_IN6OU1num2.sdat". 

Best regards,
Jia

Link to comment
Share on other sites

Hello Wang,

Thanks for your reply.  I downloaded the filed uploaded, and combined them. It still turned out wrong with same error at pH=7.5 and 8. 

Now that there wasn't an error in your examination, I think it may because of my steps.

Steps: 

1. run the program directly to get an endpoint of adsorption of Cr

2. run→pickup→system→entire

3. add Sb,swap it to Sb(OH)6- in aqueous (C=1e-4M)

4. run the program

I'm not sure which step or setting is wrong. 

 

Link to comment
Share on other sites

Hello Zixuan,

Thank you for the clarification. I think there was some issue with the forum with adding extra characters to the title of your surface dataset. I think you have attached the right surface file. My apologies for that. 

I was able to reproduce the error in GWB 2021 when I tried to pick up the fluid. I believe this error is fixed in the latest release GWB 2022. To get the update, click on the Check for updates tile under the Support tab in the GWB 2021 dashboard. Once your GWB has been updated, please try repeating your calculations again. 

Just a one more thought for your consideration. I noticed that you have swapped in redox species (Fe+++ and CrO4--) into your Basis pane. Please note that swapping in a redox species does not decouple it from its basis species, therefore the total concentration specified for that component is still being distributed across various species of redox states. For example, React will find the equilibrium distribution of mass between all ferrous and ferric species given the bulk concentration you specified in the Basis pane. If you would like to constrain the mass for each oxidation state separately, then you should decouple the redox reaction under Config -> Redox Couples.... Once you have done so, you can add in the redox species from the "add" dropdown menu. For more information about redox couples, please see section 2.4 Redox couples and 7.3 Redox disequilibrium in the GWB Essentials User Guide.

Hope this helps,
Jia

Link to comment
Share on other sites

On 4/7/2022 at 3:01 AM, Jia Wang said:

Hello Zixuan,

You're welcome. I hope the rest of your project goes smoothly. 

Best regards,
Jia

Hello Wang,

Here I have a new question. I'm researching about the influence of sequence of addition on adsorption rates of Sb and Cr on HFO.

I have mentioned my operation steps before:

On 3/31/2022 at 9:33 AM, zixuan said:

1. run the program directly to get an endpoint of adsorption of Sb at a certain pH

2. run→pickup→system→entire

3. add Cr,swap it to CrO4-- in aqueous 

4. run the program

But when I checked the outcome file, I found the total amount of chromium was larger than what I set. For example, I used 0.05g/L HFO to adsorb 1e-5M Sb at pH=3. And then the 1e-5M CrO4-- will be added.  Why the later addition ions will be larger than what it should be? I'm confused.

Elemental composition       In fluid                  Sorbed
                  total moles     moles       mg/kg        moles       mg/kg
 -------------------------------------------------------------------------------
   Chromium         7.115e-05    1.004e-05      0.5220    6.111e-05       3.177
   Hydrogen             111.0        111.0   1.119e+05    0.0001504      0.1516
   Iron             0.0004698    1.008e-12   5.629e-08
   Nitrogen         0.0009833    0.0009827       13.76    6.302e-07    0.008826
   Oxygen               55.51        55.51   8.881e+05    0.0002830       4.527
   Potassium         0.001008     0.001008       39.41    8.086e-09   0.0003161
   antimony         9.227e-06    1.700e-07     0.02070    9.057e-06       1.103

SC.rea IN6+OU1 num2.sdat thermo.tdat

Link to comment
Share on other sites

Dear Zixuan,

If you would like for the software to distribute the component concentration you set in the basis  between the fluid and sorbed surfaces, please use the sorbate include command. By default, the concentration you set would only be the portion in the fluid. The software will populate the corresponding amount sorbed in the surfaces in equilibrium with the amount in the fluid. When you do a pickup command, the sorbate include parameter is reset and therefore you have to enable it again before your second run. I suspect that this is your problem. 

Best regards,
Jia

 

Link to comment
Share on other sites

4 hours ago, Jia Wang said:

Dear Zixuan,

If you would like for the software to distribute the component concentration you set in the basis  between the fluid and sorbed surfaces, please use the sorbate include command. By default, the concentration you set would only be the portion in the fluid. The software will populate the corresponding amount sorbed in the surfaces in equilibrium with the amount in the fluid. When you do a pickup command, the sorbate include parameter is reset and therefore you have to enable it again before your second run. I suspect that this is your problem. 

Best regards,
Jia

Dear Wang,

Thanks for your reply. It helped me.

But I found when I included the sorbate in options, the system seems not include preadsorbed antimonate because the total Sb concentration is the value after pickup instead of 1e-5M. I want to research the result after twice adsorption. 

Link to comment
Share on other sites

Hello,

If I understand correctly, I think you can simplify your setup by adding a reaction path for the second component that you wish to model surface complexation with. Since your reaction rate for your Fe(OH)3(ppd) is 0, the kinetic mineral is simply there to provide a surface. There's no dissolution or precipitation of the mineral. In this case, when you trigger your run, you are just calculating a static speciation calculation in your fluid. I would suggest that you set the other component that you would like to sorb (Cr or Sb) in the basis at an extremely small concentration (like 1e-25 mol/l). In the Reactants pane, set up a simple reactant of the second component you like to sorb and set the quantity you want to titrate in (1e-5 mol/l). When you trigger the calculation using the go command, you can look at the result at the start of your simulation vs the end. For example, in SC.rea, you would add in CrO4-- to your basis at a really small concentration and then in the Reactants pane, add in the endpoint amount as a simple aqueous reactant.

Also, in the SC.rea file you attached, Cr+++/CrO4-- is decoupled, so you should be adding in CrO4-- directly and not swapping. Please double check that you are using the same file as you uploaded. 

Hope this helps,
Jia Wang

Link to comment
Share on other sites

  • 5 months later...

Hello, 

Recently I am applying the surface complexation model in X1t. But when I added my model, it showed the following information. After I clicked YES, the model still cannot be added to the program. But I tried other models offered by official software, there is no problem.

image.png.e8af42b974f32a3f00a4f2e4558ca749.png

 

And I checked the X1t has read the proper thermo database

image.png.bad850caf594d97a1702a237ca1c1abf.png

 

My model is also in the same situation, and it could be added to React program.

image.thumb.png.852f6a92a999d308621e84d2912449c7.png

Link to comment
Share on other sites

Hello,

Thanks for alerting us to this issue. The issue here has to do with the specification of the full path of the thermo dataset at the top of the surface dataset. Our team is working on resolving this and we will alert you when a fix is available.

To get around this issue right now, there are a couple of options that I can think of.

One is to edit your surface dataset using a text editor or TEdit to change the full path to just the file name. So instead of " G:\GWB\Gtdata\thermo.tdat", just use "thermo.tdat". If you encounter the dialog that asks you to load the thermo dataset again, you should be able to navigate to the correct thermo dataset and load it. The surface dataset should load automatically after the thermo dataset.

Alternatively, you can first load the thermo dataset used by your surface dataset before loading the surface dataset. This way, when X1t asks if you would like to load "G:\GWB\Gtdata\thermo.tdat", you can select "No" and your surface dataset should load properly.

Best regards,
Jia

Link to comment
Share on other sites

5 hours ago, Jia Wang said:

Hello,

Thanks for alerting us to this issue. The issue here has to do with the specification of the full path of the thermo dataset at the top of the surface dataset. Our team is working on resolving this and we will alert you when a fix is available.

To get around this issue right now, there are a couple of options that I can think of.

One is to edit your surface dataset using a text editor or TEdit to change the full path to just the file name. So instead of " G:\GWB\Gtdata\thermo.tdat", just use "thermo.tdat". If you encounter the dialog that asks you to load the thermo dataset again, you should be able to navigate to the correct thermo dataset and load it. The surface dataset should load automatically after the thermo dataset.

Alternatively, you can first load the thermo dataset used by your surface dataset before loading the surface dataset. This way, when X1t asks if you would like to load "G:\GWB\Gtdata\thermo.tdat", you can select "No" and your surface dataset should load properly.

Best regards,
Jia

Jia,

 

Thanks for your reply. I have solved it with your approach. That's really helpful!

 

Best regards,

Zhang

Link to comment
Share on other sites

Excuse me. There is another problem on X1t. I want to use wastewater flow to contaminate the soil and then apply acid rainwater to the soil. I have checked all ions composition in the initial pore water system and both inlet fluids. (This data was provided by previous studies. If there is no data about specific ions, it would be assigned to 1e-24, which could be ignored.) But it showed that there was a large residual.

Solving for initial state of each nodal block.
Residuals too large, 855-th interation
Largest residual(s):
                       Resid     Resid/Totmol   Cbasis
---------------------------------------------------------
 CrO4--             -8.314e-29   1.964e+200   3.028e-238
---------------------------------------------------------
 

I assumed this was caused by some mistakes in initial pane or something, because I used another solution containing only NaCl, and the same problem happened. But I am still wondering about the specific reason. In my initial plane, the chromate was closed to zero.

Or it caused by the shortage of some important ion concentrations? But I checked the charge balance in SpeCE8.  

I attached my x1t and sorbing surface files. I really appreciate if you can help me.

 

transport.x1t Kaolinite 2Cr.sdat HFO.sdat thermo.tdat

Link to comment
Share on other sites

Hello,

Glad to hear that helped.

I took a quick look at your input file and I suspect the issue here is that you have designated a very small amount of some basis components in the Initial pane, such that the program can't find a stable solution when trying to calculate mass distribution between mineral surfaces and the fluid. If I remove your surface reaction datasets from your input file and run the Go initial command, X1t has no issues finding equilibrium state for your initial system. Taking a look at your surface datasets, I didn't spot any apparent issues. When you tested your fluid composition from the initial pane in SpecE8, did you also load your surface datasets?

If I go back to your original input file and increase the bulk concentration for CrO4-- and  PO4-- to 1E-12 mg/l and 1E-15 mg/l respectively, X1t didn't seem to have issues with running to completion. I noticed that you have assigned different units to various component concentrations with the 1E-24. Please note that 1E-24 mmol/kg vs 1E-24 mg/l for an analyte can be quite different. You might want to double check if these units are consistent for the concentration you want to assign.

Hope this helps,
Jia

Link to comment
Share on other sites

8 hours ago, Jia Wang said:

Hello,

Glad to hear that helped.

I took a quick look at your input file and I suspect the issue here is that you have designated a very small amount of some basis components in the Initial pane, such that the program can't find a stable solution when trying to calculate mass distribution between mineral surfaces and the fluid. If I remove your surface reaction datasets from your input file and run the Go initial command, X1t has no issues finding equilibrium state for your initial system. Taking a look at your surface datasets, I didn't spot any apparent issues. When you tested your fluid composition from the initial pane in SpecE8, did you also load your surface datasets?

If I go back to your original input file and increase the bulk concentration for CrO4-- and  PO4-- to 1E-12 mg/l and 1E-15 mg/l respectively, X1t didn't seem to have issues with running to completion. I noticed that you have assigned different units to various component concentrations with the 1E-24. Please note that 1E-24 mmol/kg vs 1E-24 mg/l for an analyte can be quite different. You might want to double check if these units are consistent for the concentration you want to assign.

Hope this helps,
Jia

Dear Wang,

 

Thanks for your help. After I revised the concentrations and units to 1e-12 mg/L, and changed the balance species from Cl- to HCO3-, this program successfully ran in X1T and SpecE8.

 Because there was no related data about some trace ions, I assumed it would be no problem to set any negligible value for these ions. 

Link to comment
Share on other sites

  • 1 month later...

Sorry, as for the X1T, I have a new question:

when I used the "components in fluid" in the last node to represent the breakthrough curves, the first 60 days' breakthrough curves would have some differences with or without NaOH addition stage after the 60th day. I wonder about the reason for this difference. How can I modify it? I will be appreciated it if anyone can give me some suggestions.

 

 image.thumb.png.837f1bf5d010f51b6c8e08bae438b378.png

check transport.x1t 1999.tdat KLN fit 1999.sdat HFO fit 1999.sdat

Link to comment
Share on other sites

Hello,

Thanks for attaching your files. I am afraid I don't quite understand your question. Could you provide some additional details on how the input file was changed between the two plots? The check_transport.x1t input file sets a 60-day interval for your simulated wastewater. I can see that you have three other additional inlet fluids defined: "NaOH pH=9", "clean", and "100uM Wasterwater". Was an additional interval added to the simulation with the "NaOH pH=9" and "clean" fluids after 60 days?

Best,
Jia

Link to comment
Share on other sites

On 11/11/2022 at 8:39 AM, Jia Wang said:

Hello,

Thanks for attaching your files. I am afraid I don't quite understand your question. Could you provide some additional details on how the input file was changed between the two plots? The check_transport.x1t input file sets a 60-day interval for your simulated wastewater. I can see that you have three other additional inlet fluids defined: "NaOH pH=9", "clean", and "100uM Wasterwater". Was an additional interval added to the simulation with the "NaOH pH=9" and "clean" fluids after 60 days?

Best,
Jia

Dear Wang, Thanks for your reply! I used two liquids to infiltrate the soil.

In stage 1 (t=0~0.5 yr.), wastewater was introduced, the soil would be contaminated. In stage 2(t>0.5 yr.), clean fluid was introduced and the soil was cleaned.

But I found the Breakthrough Curves of stage 1 seemed different with or without stage 2. I wondered why stage 2 would have some influence on stage 1. That's my question.

 

Eg. I attached another X1t file, If I simulated the transport of Sb and Cr with or without stage 2 [NaCl (pH=9) solution], stage 1 would be different like this.

image.png.e651d75f1eabd24c3080e586f63cc74b.pngThe left one is without NaCl solution

image.png.7f3db281deb94a6d27ac54966f45e775.pngThe left one is with NaCl solution

 

simplest RTM.x1t 1999.tdat HFO fit 1999.sdat KLN fit 1999.sdat

Link to comment
Share on other sites

Hello Zixuan,

I think the difference is simply due to the different intervals at which the output results are pulled into the plot and not that the additional fluid is changing your earlier results. X1t by default uses the plot interval at 0.02 of the entire simulation. This would mean that if your simulation ran for 1 year, then simulation results produced at 0.02 years intervals are plotted (entries from 0.02, 0.04, 0.06yrs, and so on). In your 0.5 year simulation, the entries used for plotting are intervaled at 0.01 years (you can get this by multiplying 0. 2 by 0.5). You can set your longer simulation(5.5 years) to plot at the same time interval as your shorter simulation by changing the dxplot value.

To get entries at 0.01 year intervals, I simply use 0.01 and divide it by the total length of simulation, 5.5 years, and your dxplot value should be set at approximately 0.001818

You can set the dxplot by either using the command "dxplot = 0.001818" or go to Config-> Output...-> change the default dxplot value. You can find more information regarding dxplot in section 8.32 of the GWB Command Reference.

Hope this helps,
Jia

Link to comment
Share on other sites

1 hour ago, Jia Wang said:

Hello Zixuan,

I think the difference is simply due to the different intervals at which the output results are pulled into the plot and not that the additional fluid is changing your earlier results. X1t by default uses the plot interval at 0.02 of the entire simulation. This would mean that if your simulation ran for 1 year, then simulation results produced at 0.02 years intervals are plotted (entries from 0.02, 0.04, 0.06yrs, and so on). In your 0.5 year simulation, the entries used for plotting are intervaled at 0.01 years (you can get this by multiplying 0. 2 by 0.5). You can set your longer simulation(5.5 years) to plot at the same time interval as your shorter simulation by changing the dxplot value.

To get entries at 0.01 year intervals, I simply use 0.01 and divide it by the total length of simulation, 5.5 years, and your dxplot value should be set at approximately 0.001818

You can set the dxplot by either using the command "dxplot = 0.001818" or go to Config-> Output...-> change the default dxplot value. You can find more information regarding dxplot in section 8.32 of the GWB Command Reference.

Hope this helps,
Jia

Dear Wang, 

Thanks for your reply. It is helpful. I solved this problem with your suggestions.

Best regards,

Zhang

Link to comment
Share on other sites

  • 1 month later...

Recently, I have been trying my reactive model to simulate the transport of Sb and Cr in the binary mineral system. But I found when I change the wt% of HFO, the model could not converge. Therefore, I enhanced the Na and Cl concentrations in both wastewater and clean fluids from 0.1 M to 1M. The wastewater (0~1yr.) can be run, but the clean fluids cannot get converge. I attempted to use react and spce8 to find the reason, but I still do not know how to deal with this problem. I also tried to reduce the velocity of clean fluids from 0.2m/d to 0.002m/d, but the clean fluids cannot desorb Sb and Cr at extremely low velocities.

1999.tdat KLN fit 1999.sdat HFO fit 1999.sdat simplest RTM.x1t

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.

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

Loading...
×
×
  • Create New...