Jump to content
Geochemist's Workbench Support Forum

Jia Wang

Admin
  • Posts

    724
  • Joined

  • Last visited

  • Days Won

    29

Everything posted by Jia Wang

  1. Hello Erik, I am afraid I might not be understanding your question completely. Are you working with the GWB Plugin? If so, you should be outputting a plot file (e.g. .gtp) from the runs called in your script by the GWB apps. For examples of this, please try running GWBplugin_Python_example1.py and GWBplugin_Python_example2.py in the GWB src folder. The corresponding .gtp plot file should appear in your working directory. You can edit the name of the output plot file by using the suffix command (see GWB Command Reference for all commands). If this is not what you meant, could you provide a bit more explanation as to what you are trying to do? Hope this helps, Jia Wang Aqueous Solutions LLC
  2. Hello, The first launch will set the sliding temperature path and run that for all the samples you have selected. first launch trailer command: T initial = 25 C, final = temperature C After you have completed the first launch, go back to the trailer commands section and add "go" and "pickup. The second launch will perform the sliding temperature path calculation, then pick up the end result as your basis and then run again. You will be repeating the sliding temperature path calculations again and add the pickup part to it. Make sure you change the root name file or select a different folder to save your results so that they don't overwrite the results from the first launch. If you only care about the speciation results at the final temperature, then just run the commands from the second launch. second launch trailer command: T initial = 25 C, final = temperature C go pickup Hope this helps, Jia
  3. Hello, Thanks for attaching your files. I think there are a few things for you to consider. Above, I mentioned that you might want to consider the roles of your minerals in your system. Swapping a mineral for a component in the basis tells React to calculate that component's dissolved concentration in equilibrium with that mineral. Is that true for all minerals in your system? Given how oxidized your initial system is (as indicated by the high concentration of O2(aq)), it is unlikely pyrite arsenopyrite would be present in equilibrium with your fluid. Are these minerals present in your system initially? If so, you might want to consider using a kinetic rate law for constraining its reaction. Again, the purpose of the React simulation is to investigate the formation of Fe(OH)3, which will ultimately responsible for sorption reactions. Please see section 4.1 for more information regarding kinetic reactions. Other things to note, it seems like the mineral volume takes up 99% of your system. Is that correct? I think the low amount of fluid in the system is not helping with the convergence issue. In your reactive transport model, the porosity is set at 0.2. O2(aq) should almost always be set as a free constraint, although in this case I don’t think that’s a huge issue. You might also want to suppress more stable iron minerals like you had previously, so ferrihydrate can form. Hope this helps, Jia
  4. Hello again, After a closer look to the second part, the previous post would work only well if you are only launching one React sample at a time. If you are looking for separate results for the reaction paths and the post pickup results for multiple or all samples, you should do Launching twice. Once to run the temperature paths. Then again to run the path then just get the picked up results. In between launching, you can change the directory for the second set of output files to a different folder (e.g. first in a folder called path, second in a folder called pickup) or change the root filename (e.g. from path to pickup). first launch trailer command: T initial = 25 C, final = 100 C second launch trailer command: T initial = 25 C, final = 100 C go pickup Best regards, Jia
  5. Hello, A Gtplot plot file (.gtp) is generated when you run a React or SpecE8 simulation. If you are having issues locating the .gtp file generated when you run your React, you can check under "File" -> "Working Directory" to see where your output files are being saved to. If you are performing multiple calculations, you can set a suffix (in Config -> Output...) prior to each run to save the results into separate output files. If you do not, the new results will output to the same file and overwrite the results from the previous run. When you save a file from using the "Save" or "Save as" options in Gtplot, a configuration file (.gtc) of the current Gtplot window settings (such as axes variables, lines colors, label size, etc) is created. This file makes it very convenient when you want to apply the same set of configurations to another set of results in Gtplot. Please refer to section 8.4 in the GWB Essentials Guide if you would like more details on loading and saving plot configurations. Hope this helps, Jia Wang Aqueous Solutions LLC
  6. Hello, You can set variable values (like temperature, pH, even component concentrations) directly in the trailer command but you cannot reference a value of an analyte on your spreadsheet. If you are looking to vary the input for each sample, you might want to consider using the GWB Plugin feature. GWB plug-in allows you to write a script in a program language of your choice and call in GWB apps to do calculations. You can set up a script to call each sample (from a text file or spreadsheet) and prescribe a different final temperature for your run. The final temperature in this case can be a row or a column considered as a variable read into your script. In general, this will give you more flexibility in customizing your scripts. Please see the Plug-in Feature chapter in the GWB Reference manual for more information. If you want to pickup the results and run a speciation calculation, you can do that in the trailer commands section of the Launch dialog by using the pickup and go command. It may look something like this: T initial = 25 C, final = 100 C (<--set sliding temp path) go (<-- trigger calculation in React) pickup (<- pickup entire system as your Basis) suffix "_pickup" (<-set new suffix for new output files, if you don't the results will overwrite the first output files) go (<- trigger calculation in React again) Please refer to the GWB Command Guide for the full list of commands recognized in each app. Hope this helps, Jia Wang Aqueous Solutions LLC
  7. Hello, Unfortunately we won't be able to diagnose the problem without the GSS file. Could you please attach your file so we can investigate? Best regards, Jia Wang Aqueous Solutions LLC
  8. 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
  9. 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
  10. 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
  11. 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
  12. You're welcome. I hope you enjoy using the GWB Community Edition. Best, Jia
  13. 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
  14. 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
  15. You're welcome. I am glad to hear that helped. Best regards, Jia
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
×
×
  • Create New...