Jump to content
Geochemist's Workbench Support Forum

Jia Wang

Admin
  • Posts

    717
  • Joined

  • Last visited

  • Days Won

    27

Everything posted by Jia Wang

  1. Hello, In the plotting programs, you can resize the entire image (inside the plot window or adjust the entire Gtplot window) but not an isolated portion of the image. You can, however, plot individual samples or groups of samples on the Samples pane if you are trying to see where each point is plotting. Please see section 8, Using Gtplot, of the GWB Essentials User Guide for more information on plot configurations. Hope this helps, Jia Wang
  2. Hello, It seems like your injection fluid has a very high Cl- concentration. Did you also check the charge imbalance on this fluid in SpecE8/React? If I change your model to a zero injection rate for the well, it seems to run to completion just fine. I would suggest starting in React with your fluids and see what might be the issue there. If a fluid has an excess of anions, you should select a cation for charge balancing. Another suggestion is that for certain basis species, it would help with convergence if you swap in a more abundant species of that form give the conditions (such as pH) of your system. Another thing to double check is your concentration and units. I noticed that you have set the same concentration (1e-14 mg/l) for certain species. If you have no measurement for certain components, you would want to set the value to an insignificant concentration since the program can't numerically solve equations with zero values but not necessarily too low. Lastly, you might also be interested in looking into using a virial model for working with brine solutions. For more information regarding datasets available with the GWB installation, please see the Thermo Data page. Best regards, Jia Wang Aqueous Solutions LLC
  3. Thanks for providing more context on your conceptual model and the explanation. To simplify your problem for troubleshooting, you can eliminate the sorption reaction and focus on getting the mineralogy and fluid chemistry of your model correct. Even though sorption is ultimately the reaction that you want to focus on, it’s heavily dependent on getting a model to correctly account for formation of Fe(OH)3. The best place to start would be creating a reaction model in React. To transfer your model from React to a reactive transport model, I would suggest evaluating the role of your reactants. In a reaction path model, you can add in minerals like Calcite (moderating the pH of your system), and pyrite/arsenopyrite for the iron content to modify the composition of your system. This is typically less commonly used in a reactive transport modeling setting. If calcite is present at the start and in equilibrium with the fluid, for example, it should be swapped into the initial system’s basis. If a mineral exists in your domain but is not in equilibrium with your fluid, you may want to consider using a kinetic rate law to constrain its formation and dissolution. Also, is there any Fe(OH)3 present in the initial domain, before injection cycles? A 1D radial model might also be another step before a 2D model. When you are working on a 2D model, you create parallel models also focus on the transport side of things. For example, in a simple model, set a Br- tracer to see the size of the zone influenced by injection and see if that matches what is expected. Hope this helps, Jia
  4. Hello, It sounds like in the first case, you are trying to get Fe(OH)3ppd to precipitate and thus provide a surface for complexation of arsenic contamination. In the second case, you are trying to dissolve the Ferrihydrite. When I ran your models and plotted the Fe(OH)3ppd volume at the ASR well, it seems like the mineral precipitated in both scenarios and in fact there are more Fe(OH)3ppd that forms in your case of no buffer zone than the model with the buffer zone. This doesn't seem to fit the scenario that you conceptually described. If the main difference between the two models is the presence of Fe(OH)3ppd for surface complexation, then I would suggest simplifying your model to investigate. Maybe eliminate the reactants and see what effect that has on the model. You may want to investigate fluid chemistry in React for the initial composition (your native groundwater) mixed with your injection fluid. Maybe also consider how the pH can factor into Ferrihydrite stability? Another thing to check is to see whether you have any mistakes with the units for fluid concentrations. Looking at your input files and comparing the two, I see the same amount of O2(aq) assigned for all fluids. How are you modeling an oxidizing environment for the first and the second with oxygen depletion? I also noticed that the native groundwater has the same concentration between the input files for all components except for Fe++. I noticed that your X2t model does not have any flow set. Is that intentional? Hope this helps, Jia Wang Aqueous Solutions LLC
  5. You're welcome. I hope you enjoy using the GWB Community Edition. Best, Jia
  6. Hello Jaxon, The TEdit application current accepts PhreeqC and EQ3/6 datasets for conversion to the GWB format. Are you trying to create a surface dataset or a thermodynamic dataset? Surface datasets in the GWB loads its aqueous species from a thermodynamic dataset. You can see which thermodynamic dataset it is using from the header block located on top of the sdat file. In general, I would recommend editing and creating new datasets with TEdit, especially if you are unfamiliar with the text file format. If you are still running into issues with this, please post the .tdat or .sdat file that you are having issues with so that we can take a closer look. If you can provide additional information regarding the dataset that you are trying to create, that will be helpful too. I think you will find Thermo Datasets in the GWB Reference Guide and Using TEdit in the GWB Essentials Guide very useful. More information regarding the types of surface complexation models and sorption models are located in section 2.6 in the GWB Essentials User Guide. Hope this helps, Jia Wang Aqueous Solutions LLC
  7. Hello Keishi, You're welcome. I am glad to hear that you corrected the typos in your rate laws. The React input file ran to completion for me, but I am not sure what I am looking for here. It seems like you are using some reaction rate constants and rate laws highly dependent on various species activities. Are the rates behaving as you expect them? In general, I observe that the dissolution rates of your reactions drop really quickly after the start of your run. In particular, the reaction rate for Periclase is especially large at the start and drops close to zero immediately after the simulation begins. Typically, minerals that react very quickly within your system is represented with the equilibrium approach (swapped in equilibrium with your system in your basis). Reactions that proceed slowly but measurable can take advantage of the kinetic approach. I also noticed that your reactive transport model has slightly different fluid chemistry. Did your kinetic reactions work when your tried with that fluid? If you are still having issues configuring your models, could you provide some additional context for your modeling? Best, Jia
  8. You're welcome. I am glad to hear that helped. Best regards, Jia
  9. Hello, The % of sites is the concentration of the weak site species divided by the total concentration. On the table, you can see that the total concentration is 1.871 mmolal. If you divide 1.23 mmolal byt 1.871 mmolal, you get 0.657. If you run the simulation in the example and use Gtplot to export the numerical data for species concentration to Excel, you can calculate the percent for each surface species. The exported values carry more significant digits and you will see that they match the rounded values in the % of site column. More details regarding exporting numerical data from simulations can be found in section 8.5 in the GWB Essentials User Guide. With regards to how the table of maximum concentration of metal sorption was calculated in the Co-precipitation example, please see this post. Hope this helps, Jia Wang Aqueous Solutions LLC
  10. Hello Scott, Thanks for attaching the additional files. I am glad to hear that you managed to get one fluid to converge. Going back to your previous attachment (X1t for Quesiton2.x1t), changing the absolute units to relative units seems to converge just fine when I also reset the epsilon value to the default value. The epsilon value is used as a convergence criterion for the Newton-Raphson used to solve a system of equations. Setting the epsilon to a value smaller than the default would produce a slightly more accurate result at the expense of smaller step sizes. In this case here, I think the small epsilon value is affecting the program's ability to converge since it's extremely small. I would not recommend changing it unless you have specific reason to do so. I also noticed that the fluid composition in the new attachments are not the same fluid from before. Was that intentional? In your Initial Fluid_molkg.rea file, I noticed that you had included a small amount of total iron concentration and you have set an alkalinity value instead of a total concentration for your bicarbonate component. I suspect that the oxidation state set by your aqueous oxygen concentration probably results in a very small amount of Fe++ in solution. To help the program's initial calculation of the equilibrium state, it is sometimes helpful to swap in a higher abundance species in solution. In this case, I tried swapping in Fe+++ and React had no issues with convergence. The program is still calculating the mass distribution between the different redox state of iron. For your input file "X1t for Quesiton3.x1t", if I reset the epsilon value to default, swap Fe+++ for Fe++ and set SO4--- as the balance ions in both the Basis and Reactants pane, your input file runs without issues. As a side note, you can disable redox equilibrium between oxidation states if you suspect that redox species are not in equilibrium. To do so, you can go to Config -> Redox couples... and then decouple Fe++/Fe+++. After doing so, you can directly add Fe+++ as a separate entry in you Basis, allow you to constrain the total concentration of Fe+++ species. For more information on redox disequilibrium, please see section 7.3 of the GWB Essentials User Guide. Hope this helps, Jia
  11. Hello Donghun, The error message means the program can't calculate equilibrium state of your "inlet" fluid. You can try troubleshooting in React for just the fluid chemistry first. Right-click and drag the Fluids pane from X1t to a new instance of React. When I disabled the charge balancing ion and ran the calculation in React, the results show a charge imbalance with an excess of anion. You would likely want to pick an abundant cation (like Na+) instead of an anion for charge balancing. I also noticed that all you use relative units for all components except for cobalt concentration. Perhaps this was a mistake? If you use absolute units for the total concentration of a component, the amount of that solute won't scale with the total amount of fluid in your system. I think the more dominant species of cobalt is HCoO2-, given the pH in your system. You can try swapping to the predominant species to help the program converge. Additionally, I also noticed a couple other things in your input file that you might want to check. In the Reactants pane, a sliding pH path increments the pH from what you set in the system initially to a final value. This is not typically used in reactive transport models and you have it set to the same pH value as the start of the simulation. Is this what you had intended? I also suggest that you check your mineral volume and porosity. I noticed that with the volume of mineral and porosity, you have specified over 100% of your domain. This doesn't seem correct. I noted that you have very large specific surface areas (reactive surface area per gram of mineral) for kinetic minerals. The built-in rate law in the GWB uses the specific surface area to calculate the surface area used to calculate the kinetic rate. It would be good to check that your specific surface areas and the rate constants are correct. You can find the built-in rate law for kinetic reactions in section 4.2 Kinetics of precipitation and dissolution of the GWB Reaction Modeling User Guide. Hope this helps, Jia Wang Aqueous Solutions LLC
  12. Hello Fanuel, I am sorry to hear that you're having issues. When you check out with the Community License from the GWB webstore, did you receive an onscreen "Thank you for your order!" message with an order number? If so, please send a message to sales@gwb.com with the order number and I can look into it on our end. If you did not see an onscreen message with the order number, then I think your order did not go through. Could you try again after disabling pop up restrictions on your browser or try checking out on a different browser? Hope this helps, Jia
  13. Hello Betty, You can export the Xtplot data by going to Edit -> "Copy" and then paste into an Excel spreadsheet. The program will export the data that is currently selected for plotting. Separately from Xtplot, if you would like to print out more time slices in your text file output, you can adjust the dxprint interval in X1t under Config -> Output... dialog. By default, dxprint is set to 0.1, which tells the program to output data at every 0.1 reaction interval of your simulation. For more information on this setting, see the "dxprint" command in the X1t section of the GWB Command Reference. Hope this helps, Jia Wang Aqueous Solutions LLC
  14. Hello Keishi, I apologize for the delay. We are still investigating further into the issue that you're running into. We think there may be an issue with the volume adjustment and setting the pH directly. For the time being, you can change your pH entry to a total concentration, H+ in molal (0.00446297), then X1t should converge without issues for your initial system. I did a simple "go initial" with your fluid composition in React (with precipitation off) and then looked at the results for H+ total concentration. Aside from the convergence issue, I would also suggest that you double check your kinetic rate laws to make sure that they are free from typos. I believe aqueous CO2 has the name "CO2(aq)" in your database and not "CO2". There may be other errors like so that you should double check. It is a good idea to verify that your rate laws are producing a reasonable rate in React. Hope this helps, Jia
  15. Hello Fanuel, I am sorry to hear that you're having issues with renewing your GWB Community Edition license. I don't see any records of a recent renewal with your email address in our system. Please follow the instructions on our download page to obtain a new license from our webstore. Please check your spam folder for the message if you do not see it in your Inbox. If you encounter any further issues, please let us know so we can provide further assistance. Hope this helps, Jia Wang Aqueous Solutions LLC
  16. Hello Adam, There are special values that you can set a0 that that tells the software to use a specific equation for calculating the activity coefficients of neutral species. When a0 = -0.5, the activity coefficient is calculated from the "CO2" coefficients in the data table section of the dataset according to equation 8.6 in the “Geochemical and Biogeochemical Reaction Modeling”. When a0 = -0.6, an alternate calculation from Drummond (1981) is used. If your dataset's CO2 coefficients were adjusted by the Duan Sun, then you can set a0 to use the CO2 coefficients to calculate your CO2 ion activity. You should check what PyGCC does when it generates the dataset and how it accounts for the Duan Sun method for activity coefficient calculations. Best regards, Jia
  17. Hello Scott, Thanks for attaching your custom thermo file. I opened your input file again and noticed that most of your components are in moles instead of relative units (e.g. mol/kg). Were the constraints created by picking up a fluid at the end of a React simulation? When you have relative units like mol/kg and you scale your system's volume by changing the node volume or change it's porosity, the solute concentration is scaled so that your mole of solute relative to kg of water is fixed. When you specify a mass unit like mg or mol, then scaling the volume of your bulk system in the Reactive Transport apps won't scale your solute concentration. I would suggest double checking that your units are what you intend them to be. A side note, if you are using results from a React simulation to set your initial fluid composition, you can right-click and drag the Results pane (from React) and drop it in GSS to convert from mass units like mg and mol to relative units like mol/kg and mg/kg. To transfer from GSS to the Basis or Fluids tab, right-click on the sample header in GSS and drag and drop into the appropriate pane in X1t. Hope this helps, Jia
  18. Hello, You can plot an XY plot for any grid cell in a 2D reactive tranport model. In Xtplot, you can select the "Plot" menu option and select "XY Plot". Then double click on the screen to configure the variables for you X and Y axes. In your XY Plot configuration dialog, click on the X Axis tab and then select "Time" for the Display option. Then in the Position tab you can select the grid cell that you wish to plot. You can check the box for "Wells first" and all your well nodes will appear first on the list. You can then select to whatever variable you want to see varying over time on the Y Axis tab. If you would like to see more configuration options for Xtplot, please see section 6 in the Reactive Transport Modeling User Guide. Hope this helps, Jia Wang Aqueous Solutions LLC
  19. Hello Adam, The ion size parameter, a0, in the debye huckel (or bdot) activity model has a special meaning as you had learned in the Reference manual for neutral species. The equation used to calculate the neutral species' activity coefficient may change depending on a0. For charged species, like HCO3- and CO3--, the ion size is used in the bdot equation (an extended form of the debye-huckel equation) for calculating species activity coefficients. Please see this post for a more detailed explanation of what the ion size parameter represents. Taking a look at the introduction of the paper cited, I noticed that they mention that the model developed uses the specific interaction model of Pitzer. The dataset you attached uses the debye-huckel model, which is very different. I suggest double checking that you are generating the correct dataset. The GWB can use the Harvie-Moller-Weare(HMW) formalism of the Pitzer equations for modeling high ionic strength solutions. Unfortunately, I don't have access to Duan etal. 2003 and can't compare it to the HMW model. For more information on activity models in the GWB, please see section 2.3 in the GWB Essentials User Guide. You can open GWB datasets in TEdit and find more information regarding its origins in the Headers Pane. In particular, you may be interested in thermo_hmw.tdat. Hope this helps, Jia Wang Aqueous Solutions LLC
  20. Hello Keishi, Thanks for attaching your script. Could you also attach your custom thermo and surface dataset so we can troubleshoot your script directly? Best, Jia Wang Aqueous Solutions LLC
  21. Hello, The best way to edit a GWB thermo or surface dataset is to the TEdit, the graphical user editor, part of the GWB package. You can add organic species for your reactions to the corresponding sections of your thermo dataset. You can add a generic form of dissolved organic matter as a basis species, but please note that the GWB currently does not include the NICA-Donnan method for calculations of metal binding to organic matters. For a summary of sorption and surface complexation models, please see section 2.6 in the GWB Essentials User Guide. A detailed description of the GWB dataset format is provided in the GWB Reference Manual. Best regards, Jia Wang
  22. Hello Scott, Thanks for attaching your input file. I wasn't able to run your file exactly because I didn't have your custom dataset. I switched to thermo.V8.R6+.tdat, which contains Molybate. When I run "go initial" with your input file, X1t tells me that "fluid_1" is the issue. Looking at this fluid more closely, I noticed that you have more Na+ than that of Cl- in your simulation. I switched the balancing ion to SO4-- and then did another "go initial" run and X1t converged. Typically, you would choose the most abundant anion or cation as the balancing species. By default, the program uses Cl-. You can change the balancing ion to another species by either clicking on the unit for the species in the GUI or use the command line "balance on" the species that you wish (e.g. "balance on SO4--"). I would suggest trying to troubleshoot by switching your balancing ion and see if that helps. If you are troubleshooting an issue that arises in the Fluids pane, you might find it easier and more direct to use React. If you have only one fluid, you can conveniently right-click on the Fluids tab and drag and drop into the Basis tab of a new React window. If this didn't help resolve your problem, please attach your custom thermo dataset so I can run your script directly. Hope this helps, Jia Wang Aqueous Solutions LLC
  23. Hello Isaac, Thank you for the additional files and I apologize for the delay. A 2D reactive transport modeling can be very challenging to configure correctly. I have looked through the two input files you attached and am not quite sure of the conceptual model here. Are the minerals you are setting in the Reactants pane part of the original domain, in equilibrium with the initial fluid? In that case, you would want to swap them for components in the Basis pane and not add them in the Reactants pane. When you add minerals as simple reactants, they are added to the domain incrementally throughout the simulation to alter the composition of your system. In contrast, if you set a mass or volume % of kinetic minerals in the Reactant pane and set a rate constant, the program will treat any mass as part of the initial domain. I think it would be better if you started with your solutions in a more simple model and then build your way up to a complex 2D reactive transport model. Maybe you would want to check that your kinetic reactions are working as expected in a one node system using React. Are the rates proceeding as expected? Should precipitation be turned off so that no new minerals are allowed to precipitate even if they are thermodynamically favorable, like how it is set now? I am not really sure what applies to your system here. When the reactions in your single node system appear to be working as expected, I think the next step is to build a 1D model in X1t. Start with a very simple system, maybe just a 1 component system with silica and set up a diffusion system. You can take a look also at the quartz precipitation in a vein, section 3.9 in the Reactive Transport Modeling Guide. This example treats the whole domain as a single fracture. Your system is of course different in many ways, but it might serve as a starting point. You may also want to check the boundary conditions you are using to make sure they reflect the problem you're modeling. For more information on boundary conditions, please see section 2.9 in the GWB Reactive Transport Guide. Once you have your transport parameters configured, you can add in the chemical reactions from the 1 node system. Finally, if your system requires a 2D model, then transition to X2t from what you have built in X1t. As a side note, you can also designate many other variables with the node-by-node feature other than just porosity if necessary. For example, if you want your kinetic minerals everywhere in the domain to start but not in the fracture, you can set that using node-by-node. Other methods for setting heterogeneity are also available (e.g. equations, scripts, etc). For more information on this, please see the Appendix: Heterogeneity in the GWB RTM Guide. Best regards, Jia
  24. Hello, I took a quick look at the input file attached and so far what I see is that you have set up an initial fluid of about 1 kg of solution to react with albite and k-feldspar over a period of 1 year. The dissolution and precipitation of these two minerals are constrained using the built-in rate in the GWB. The pH is fixed throughout the simulation. If you want to vary the water to fluid ratio, I see a couple of ways to approach this. Since you have set all the concentrations of your fluid in the basis pane in relative units, you can change the volume of H2O to the desired mass. Another option is to set the reactants times factor on the "Reactants" pane. The default value is 1, changing the factor will multiply the quantity of the reactants set on this pane. You can vary the ratio of rock to fluid and perform multiple runs as needed. There are a few options in The GWB to run a large batch of samples within the GWB, including the Plugin feature and control scripts if you would like more control over what the program outputs and to store the results in specific files. For more information regarding Plugin and Control scripts, please refer to section 7 and 6 in the GWB Reference manual. Please note that water to rock ratio is not a plottable variable in Gtplot. You can export the numerical data from the runs, mineral mass (set Variable type = Minerals) and mass solution (Variable type = chemical parameter), and make the calculation for a solution to mineral ratio in a spreadsheet. For more information on exporting numerical data from simulation, please see section 6.7 in the GWB Reaction Modeling Guide. Are you expecting specific minerals to precipitate in your simulation? If you are trying to replicate the plots posted, I would suggest you check the equilibrium constants used in those simulations against the ones in the thermodynamic dataset you're using. The software considers all minerals in the database loaded for the simulation, for those that you are not expected to form in your system, you might consider suppressing them (Config menu -> suppress). In Gtplot, you can also investigate the mineral saturation indices to see which minerals the fluid is close to equilibrium to. The caption in the plot also states that there are more details to how the curves are constructed. It would be good to check if the way you are setting up your problem matches that of the paper's. Best regards, Jia Wang Aqueous Solutions LLC
×
×
  • Create New...