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, Act2 calculates and plots activity-activity diagrams. This class of diagrams shows the stability of minerals and the predominance of aqueous species in chemical systems. A species activity, gas fugacity, activity or fugacity ratio, pH, Eh, or pe may serve as an axis variable. You can only vary the activity of one species on an axis at a time in Act2. To combine plots together, you would need to do so in another program. I am not exactly sure what you mean by "such that the concentration of the dominant species is used for scatter data, as well as the phase boundaries in these plots". You can create solubility diagrams by setting the main species (e.g. Al+++) as one of the axis and varying across a range of values. For example, if you wish to create a solubility diagram of Al+++ vs pH, you can select the main diagram species as Al+++, leave activity blank. Under "on axes", set "H+" and units of "pH" for one axis and the other select "Al+++" and set your desired range. For an example of this, please see section 5.2 Solubility diagrams in the GWB Essentials Guide. You can add species in the "in presence of" section of Act2 and allow it to speciate over the diagram axes. The main diagram will account for these speciation changes. Scatter data on the other hand is read in from either a GSS or a text file format to plot onto your plot. The data must contain the axes variables in order for the data to be plotted. Note that the program works with activities and not concentrations. If you have concentration data, you can use GSS to calculate the activities for species (e.g. Al+++) and then plot scatter data onto your activity diagram. Hope this helps, Jia Wang Aqueous Solutions LLC
  2. Hello Peter, Thank you for bringing this issue to our attention. A fix will be included in the next maintenance release. Best, Jia
  3. Hello Huan, You can specify flow conditions for your reactive transport models on the Flow pane of your X1t or X2t input file. For a pure diffusion problem in X1t, I think you need to be setting the discharge or head potential drop to be 0. I would suggest that you check the boundary conditions set if you had altered them. The program by default uses “inlet/free outlet” boundary conditions: where fluid flows into the domain, solute mass can advect, diffuse, and disperse across the boundary, but where it exits the domain, transport occurs by advection alone. If you have set discharge in an X1t 0 but manually changed the program to treat the left boundary as an inlet, you would still allow the effects of diffusion to cross that boundary. Please see more information about boundary conditions in section 2.9 of the GWB Reactive Transport User's Guide. For X2t, you can set the left and right boundary as open to flow, closed to flow (no-flow), or specified discharge across the bound. A no-flow boundary is a special case of a specified discharge boundary, in which the discharge is set to 0. Again, you would want to check the boundary conditions set. To see more information regarding setting flow in an X2t simulation, please refer to section 4.3 of the GWB Reactive Transport Modeling User's Guide. Hope this helps, Jia Wang Aqueous Solutions LLC
  4. Hello Peter, Which version of the software are you encountering this issue with? Best regards, Jia Wang Aqueous Solutions LLC
  5. Hello Karen, Glad to hear that was helpful. Hope the rest of your project goes smoothly. Best regards, Jia
  6. Hello Karen, There's no way to selectively apply datasets to sections of a domain. If you want to set minerals in the system for just surface complexation reactions, you can set the mineral as a kinetic mineral and assign a zero kinetic rate constant. This zero reaction rate effectively sets them as inert minerals to provide a surface for complexation reactions and simple sorption. You can vary quantities of kinetic minerals throughout the domain such that they are absent in the last 50 meters of your domain. For more information on properties to vary within the domain or simulation, please see the Appendix: Heterogeneity chapter in the GWB Transport Modeling User's Guide. Hope this helps, Jia Wang Aqueous Solutions LLC
  7. Hi Jamison, Glad to hear that was helpful. Hope the rest of your project goes smoothly. Best, Jia
  8. Dear Frank, You're welcome. Hope the rest of your project goes smoothly. Best regards, Jia
  9. Hello, I believe dolomite-ord and dolomite-dis refers to dolomite-ordered and dolomite-disordered. It would be best to follow the reference in the thermo dataset to learn more about how they differ and decide on which one suits your simulation best. Here's a related post from a few years ago. Hope this helps, Jia Wang Aqueous Solutions LLC
  10. Hello Jamison, Thanks for attaching your Rxn file. The React application doesn't report information regarding the Gibbs free energy for a specific reaction in the way you have described. You can, however, quickly export the log activity or fugacity of each species needed to calculate the delta G for the reaction of interest. To do so, you would need to select the species activity (or gas fugacity) to plot and then go to Edit-> Copy as -> spreadsheet and paste the data into Excel. As you may have discovered already, you can retrieve the log equilibrium constant value at any temperature (within the range prescribed by the thermodynamic data) using Rxn, which can then be used the delta G standard at the temperature desired. If you want to do a simple calculation where the only changing value is your log fugacity of O2(g), then it might be easier to set up an equation in Excel and calculate delta G given the information known about your system. Best regards, Jia Wang Aqueous Solutions LLC
  11. Hi Frank, Thank you for attaching your input files. To investigate this, I picked one of your input files and kept the rate constant the same then performed two runs at 10C and 25C, respectively. When I did this, I got results similar to the plots that you attached. When I tried keeping the temperature the same and altering the rate constant, I observed a much smaller difference. So along this line of thinking, I think results probably have a lot to do with the change in the equilibrium constants with the shift in temperature more so than the values of the rate constants set. This reminds of the Ostwald example with the silica polymorphs, the steps for the eventual more stable polymorphs dependent on the reactivity (based on the surface area and the kinetic rate constant) and the thermodynamic stability. If I go to the Ostwald's step example (it should be installed with your GWB installation under either of the GBRM folders) and run the example at lower temperature, I also observe a similar shift. Hope this helps, Jia
  12. Hello Frank, You're welcome. I am glad you found the information helpful. With regards to the files you sent, I noticed that you seem to have set up the rate law described in the basic file and not just the equation for the rate constant. Currently, the script files provided are being used to calculate the pre-exponential factor, which is then used in conjunction with the activation energy to calculate the rate constant. The rate constant is then used in the reaction's kinetic rate with the GWB built-in rate law. It seems like some properties, such as surface and Q/K, are being double counted since they appear in the calculation for the rate constant and then again in the built-in rate law. You can split out the rate constant part in your basic file, set that as a transient field variable and use in conjunction with the built-in rate law. Alternatively, if you would like to set the rate to zero when the mineral is supersaturated, as shown in your basic script, you can instead specify a custom rate law directly. To do so, you should move the basic script to where the built-in rate law is set instead of where the rate constant is set. In doing so, you would want to make sure that the rate law is correctly set up. If you would like to use pre-exponential factor and activation energy as part of your rate law, you would have to include them in your script as well. Hope this helps, Jia
  13. Hello Frank, The program by default asks users to provide a rate constant for kinetic reactions. In cases where a constant value does not fit your model, there are several options to set a custom rate constant. One of these options is to supply React with an equation in the form of a character string to compute the rate constant. Table 5.1 lists the parameters, such as pH and temperature, that you can use to set your rate constant equation. Additionally, Table 5.2 summarizes a list of helper functions that can be called to return a numeric value for certain variables in the system. By default, the program will evaluate your rate constant equation at the start of your simulation and hold the value steady throughout the run. To have the program evaluate the variable throughout the simulation, you can specify transient behavior by checking the "transient box" in the GUI or in the command line with the keyword transient. Other options to define a custom rate constant is to provide a basic script using the built-in script editor, a basic script file, or a rate law function. To access these options (and the equation option) in the GUI, you can go to the kinetic mineral on the Reactant pane and click on "+" button next to rate constant to show a field for variable type. Click on "constant" or the dropdown arrow to see all options. In general, specifying an equation or script for a rate constant is very similar to how you will specify a custom rate law. You can see the format for setting these up in section 5 of the GWB Reaction Modeling User's Guide. For more information regarding transient variables, please see the Heterogeneity Appendix in the RTM Guide and section 1.2 Field variables in the Command Reference. Hope this helps, Jia Wang Aqueous Solutions LLC
  14. Hello Hulinks, You can find the details regarding Act2's calculation in a text output file. The output files with the a name like "Act2_output.txt" is printed out to your working directory when you run a calculation. You can directly access that file by going to the Plot pane and select View Results. The file contains all the equilibrium equations for constructing the diagram. Please see section 5 in the GWB Essentials Guide for more information regarding Act2. Best regards, Jia Wang Aqueous Solutions LLC
  15. Hello, To clarify, the discussion was originally regarding boundary flow conditions. Specific discharges set at the boundary are volumetric fluxes but that's not the same for wells. Injection well units are in volumetric flow, which is in volume per time. It sounds like you should be able to use the measured value directly as is. Hope this helps, Jia
  16. Hello Adam, You're welcome. I am glad this was helpful. Best regards, Jia
  17. Hello Frank, You're welcome. Thank you for letting us know. Best, Jia
  18. Hello Frank, I just want to let you know that maintenance release 17.0.1 fixes the import issue of ETA and MU virial coefficients. If automatic update is enabled, you should be prompted to update in the next few days when you open the GWB dashboard. You can also manually update by going to check for updates under the "Help" menu of any app or on the Support pane of the GWB dashboard. Best regards, Jia
  19. Hello, The program takes carbonate alkalinity as a concentration unit and not a basis species. Therefore it does not swap into the program as you would a regular basis species (e.g.CO2(g) for H+). The alkalinity alone cannot give a relationship to the carbonate speciation without the pH. Remember that the speciation of the carbonate bulk component is pH dependent. Best regards, Jia Wang Aqueous Solutions LLC
  20. Hello, I think I am still not quite clear on the conceptual model here and maybe need to take a step back. It sounds like the goal is to represent a system where you have fluid reacting with a mineral assemblage containing calcite, dolomite, Pb(OH)2, and periclase. Swapping minerals into the basis allows users to set the fluid in equilibrium, which was suggested because of how fast the kinetic rates were for some minerals in comparison to others. However, that assumption might not be correct for all the minerals swapped in. If I perform a "go initial" run on your last React files, the program fails to solve the equilibrium state as constrained by the input. While it is not typical to represent minerals as simple reactants in a reactive transport model, you can do so in React to see if the results vary greatly between using simple reactants vs a kinetic constraint. This approach works well for reactions that occur very quickly and may not need a kinetic constraint (e.g. periclase). The mass of simple reactants is set by the user in the Reactants pane and added incrementally over the course of the reaction path. Additionally, you might also consider if certain minerals can be suppressed if they are not expected to precipitate. The program will still report the mineral saturation with regards to the suppressed mineral but will not consider it in the system for precipitation or dissolution. Typically, this feature is used to prevent more stable minerals that modelers do not expect to form in the simulation and allow less stable minerals to appear. I would also like to let you know that we have created a release candidate that fixed the issue with volume adjustment and setting the pH. I have attached it for you below and hope that it helps with your troubleshooting. The fix will be added to the next release. GWB17.0.2rc1_setup.exe Best regards, Jia
  21. Hello Wei, You're welcome. A couple of additional thoughts. You can go one step further with your React simulations to help set up your bigger more complex model. If you run a reaction model (e.g. flush model), then you can quickly identify minerals that precipitate but are not expected to form or observe. In particular, you might've noticed carbonate minerals (e.g. aragonite, dolomite, witherite) that form in your reactive transport model. If you don't expect some of these minerals to form in your system, you can suppress them from consideration in the simulation. Additionally, your X2t input file sets the injection fluid to 74C and not 25C, which is what you have set in React_injection and your previous X2t input file. Perhaps that is an error? Best, Jia
  22. Dear GWB users, We are pleased to announce our latest maintenance release for GWB subscribers, GWB 17.0.1. GWB 17.0.1 provides an improved user experience working with floating licenses, simplified installation of maintenance releases, run-time verification of GWBsymbol font functionality, and fixes for known issues. Update from 17.0.0 at no charge to ensure you have all the newest features and bug fixes. Existing installations should automatically update to this release, unless auto-update is disabled. In that case, users should update their installations from the GWB dashboard or from the Help menu of any GWB app. Regards, Jia Wang Aqueous Solutions LLC
  23. Hello Wei, Taking a look at your model, I am noticing that your injection well rapidly increases in mineral volume and eventually results in a very low porosity. I turned on the explain step feature and it seems like the simulation step size was limited by the transport criteria to maintain stability. As a result of the low porosity, I think your model is having a difficult time converging, especially when you increase the number of nodal blocks and decrease the bulk volume of each block. You can set the time interval to right before your model stops converging and check the mineral volume and porosity at your injection well. The SIT activity model is only available with a GWB Subscription or with the GWB Community Edition. In general, I do not recommend taking data from one dataset and combining it with the other dataset type. The default database uses the bdot activity model, which is conceptually very different from how the hmw activity model handles electrolyte activities. Simply taking reactions from one dataset and adding it to another with a different model type would result in erroneous results. You might want to if others have published any compatible datasets for your use. You might want to evaluate how your model results look using the default database and see if it is acceptable for your results. Hope this helps, Jia
  24. You're welcome. I am glad this was helpful.
  25. Hello Wei, When you ran the React input files, were you able to converge on an equilibrium state for your fluids? When I try running React-reservoir, it immediately fails upon trying to calculate the equilibrium state. I would suggest that you double check your basis and evaluate if it is correct. Minerals swapped are used to set the concentration of the component. This is typically done when you can assume that the mineral is in equilibrium with your fluid. If minerals are present in your system but not in equilibrium with your initial fluid, you can add the mineral as a kinetic reaction. I noticed that you have set Quartz in equilibrium with your initial fluid (basis) and set a kinetic rate law for the reaction. Are siderite and kaolinite in equilibrium with the fluid initially? Or should they be set as kinetic reactions? Another consideration, though this is not related to your initial fluid convergence issue, is to look at whether a different thermo dataset would serve your purpose better. Your brine fluid is much higher in concentration than your initial fluid. Thermo.tdat is the default dataset and uses the bdot activity model. The bdot model typically loses accuracy as the fluid ionic increases pass ~ 0.3 molal. I would suggest you take a look at the virial models available (SIT or hmw) and consider them. You can view a summary of thermo datasets on the thermo page, where you can download a fresh version of all datasets installed with the software or you can find them in your Gtdata folder. With regards to pickup, are you using pickup-> system -> entire? This should allow you to pick up all fluids and minerals (in equilibrium with your final system) as your basis. If you are using the command line, you can enter the command "pickup entire". Please see the GWB Command Reference for more details regarding the pickup command. Hope this helps, Jia
×
×
  • Create New...