Jump to content
Geochemist's Workbench Support Forum

zixuan

Members
  • Posts

    28
  • Joined

  • Last visited

Posts posted by zixuan

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

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

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

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

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

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

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

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

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

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

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

     

  12. I'm really grateful for your help. I want to investigate the pH influence, so perhaps before it, I need to do a simulation of kinetics to confirm the possibility of adsorption B.

    I think your suggestions are really helpful.

     

    Thanks!

     

     

     

    On 1/12/2022 at 8:00 AM, Jia Wang said:

    Hi Zixuan,

    I am not sure of the type of experiment you have in mind but here are a couple of suggestions that may be helpful.

    In React, you can chain simulations using the pick up command by setting the ending point of a simulation and an initial state of another. You may be able to set up an initial simulation for the adsorption of B and then pick up the result as a starting point for the adsorption of A. For more information on chaining simulations, please see section 3.1 Picking up the results of a run and 4.8 Changing together kinetic reaction paths in the GWB Reaction Modeling User Guide. 

    If you are simulating a kinetic surface reaction, you can also set a customized rate law script that allows you to specify certain conditions (e.g. time, activity of certain species, etc) are met before adsorption of A begins. For more information on custom rate law scripts, please see section 5.2 in the GWB Reaction Modeling User Guide.

    Best regards,
    Jia 

     

  13. Thanks for your answering!

    But, sorry, I mean for example, I want to research chromium adsorption on kaolinite and goethite at same time. But the Cr models for each mineral are in type of TLM with different inner capacitance. I cannot add them in one react program simultaneously. I have tried the way you said, but it still cannot apply the 2 models at same time. I wonder if there is any way to solve?

  14. I have a new question. Because I want to explore contaminants adsorption on 2 kinds of minerals. I have gotten the triple layer models of respective minerals for contaminants. However, How can I select 2 sorbing surface files in REACT? It seems like surface files with different kinds of models can be applied simultaneously. Although I could place minerals in one surface file, but the inner capacitances are not same.

  15. 5 hours ago, Jia Wang said:

    Hello Zixuan, 

    GWB does not fit surface data to calculate surface reaction equilibrium constants. However, you may be able to use the Alter Log K dialog to manually alter the log k values for your surface reactions to and find the value that best reproduces your data by trial and error. Overlaying your data on your plot may help to visually assess this. For more information on Altering Log Ks, please refer to the alter command in the GWB Command Reference. In GWB applications (except GSS, TEdit, and the plotting apps), you can find the Alter Log K under Config -> Alter Log Ks... For examples of scatter data, please refer to section 6.5 in the GWB Reaction Modeling Guide.
     
    Alternatively, you can also write your own scripts and use React's plugin feature to run the models and retrieve the data, assess the fit quality, update your Log K with a better estimate and rerun the model. Please refer to section 7 of the Command Reference for details regarding the Plugin feature. 
     
    Best regards,
    Jia

    Thanks for your answering! It's quite helpful!

  16. 10 hours ago, Jia Wang said:

    Hello Zixuan,

    Thanks for providing your updated script. By setting up kaolinite as a kinetic mineral with a zero dissolution rate, you have prescribed a surface available for surface complexation for your experiment without precipitation or dissolution of kaolinite to maintain equilibrium with the fluid. Also, the initial method of setting a Al+++/SiO2(aq) activity ratio to a constant value was causing a large amount of dissolved Al and P species to form aqueous complexes that were not considered as a part of the complexation reaction. 

    Here are a few suggestions for you after looking at the paper. If you are using the default thermo.tdat for your run, you would want to double check that the thermodynamic data is consistent. For example, the default dataset doesn't include the reaction for KPO3-- or KH2PO4-. You should also check that the log K data is consistent with those provided in the paper. You will also notice that species not included in the reactions listed in the paper may form because the GWB considers all the reactions possible in the dataset unless it is suppressed. You may find it helpful to either suppress all the species other than the one considered in the paper or can create a new thermo dataset by extracting a subset of the relevant reactions from thermo.tdat.  

    The paper did not provide the activity model used in its modeling with FITEQL. thermo.tdat uses the B-dot activity model, an extended version of the Debye-Huckel equation, to calculate the activity of species. You can find this information in the Headers pane when you open the dataset in TEdit or the activity model line if you open the file in a text editor. If a different activity model was used in the paper, then it may explain some of the differences observed. 

    Other details include whether or not charge balancing was utilized in the original calculation and if so, was the simulation charge balanced with an anion or cation. The GWB uses a molal or mole fraction (for polydentate complexes) standard state in surface complexation reactions. Some programs may use a molar standard state instead, which may result in a small difference when comparing simulation results across software. 

    I would recommend communicating with the corresponding author(s) to see if you are able to obtain more details regarding their model if you would like to improve your results. 

    Hope this helps,
    Jia Wang

    Dear Jia Wang,

    Thanks for your patient explanation and checking.

    But I don't think it should be ascribed to the lack of constants of KH2PO4 and KPO42-. Actually, I had added these 2 constants before I posted to you, but there was no change in the result.

    Perhaps, like what you said, it's better to consult with the corresponding author concerning the activity model, charge balance and molal units.

    It's really helpful, thank you!

  17. On 6/3/2021 at 6:02 AM, Jia Wang said:

    I think you're pretty close with your script. The software calculates the speciation of your fluid based on the component concentrations prescribed in the basis pane. I noticed that you had set the activity ratio of SiO2(aq)/Al3+ to 1. This is not a particularly robust way of performing these simulations as each component may speciate to different extents. Holding these ratios constant might not be particularly realistic and probably contributed to your convergence issue initially. Since the paper did not provide initial SiO2(aq) and Al3+ concentrations in the fluid, you can try setting a negligible concentration for both and set up Kaolinite as a kinetic mineral with a zero rate constant. This way, you are effectively setting up kaolinite as an inert surface, as it will not dissolve or precipitate with a reaction rate of 0 but available for surface complexation.

    Thanks for your help!

    I edited the data and simulated again, though the convergence in my last graph disappeared and the tendency was very close to that on paper, the total sorbed fraction was still incorrect.

    In 0.01KNO3 it should begin with 90% and in 0.1KNO3 it should begin with about 70%. I had no idea about these differences.

     

    p.rea

×
×
  • Create New...