Jump to content
Geochemist's Workbench Support Forum

Leaderboard

Popular Content

Showing content with the highest reputation since 06/15/2018 in all areas

  1. Hello Zhidi, Thank you for attaching your script. To troubleshoot, I checked "Follow Output" in the Results pane and "explain on" in the Stepping dialog before running your model to get a better idea what is limiting the size of the time step in the simulation. Doing so, I noticed that the rate limiting constraint right before the model runs into the newton-raphson iteration error is due to the change in Q/K for reactant Illite. To test, I simplified your model by setting Illite to a reaction rate of 0 and was able to run your simulation to completion. I also noticed that the reaction rates for various minerals do vary quite a lot be Could you provide a bit of context regarding your fluids and simulation? I noticed that a lot of component concentrations are the same but with a few differences. Are these fluids you have created or measured? I noticed that you have added all minerals as a kinetic reaction except Halite as a simple mineral. In general, kinetic reactions are useful for reactions that are proceeding slowly but measurable over the time period of interest. I noticed that Quartz is dissolving so slowly that it's not really doing anything. If the mineral barely reacts then perhaps you do not need to consider it in your model. This can help to simplify things in terms of the kinetic reactions running through your system. We don't typically see simple minerals, which are incrementally added to the domain over the course of the simulation in a reactive transport simulation. If a mineral is in equilibrium with the initial fluid in the system, you should consider swapping it in for a component in your Initial pane. In general, it is good to check that the log Ks in the thermo database are suitable for the type of reactions occurring in your system. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  2. Hello Zhidi, Thanks for attaching your input file and your thermodynamic dataset. If I render the results in Gtplot and plot Mineral saturation vs. Time from your simulation, I find that Calcite is initially undersaturated with respect to your fluid but very quickly becomes oversaturated, with a Q/K value hovering right above 1. If I plot the amount of calcite (in Gtplot Variable type -> Mineral) available, it shows that there's an initial dip which indicates that calcite dissolved initially and then slowly increases, which means the mineral is precipitating. In this case, Ca is only added to the fluid from calcite in the first instances of the simulation and later removes Ca due to precipitation. Also, note that Dolomite and Anhydrite are both Ca containing minerals. These two minerals remain undersaturated with respect to the fluid and as they dissolve, they release Ca into the solution. In a multi-component system like this, the overall component concentration reflects the total effect of all reactions. The default built-in rate law for kinetic mineral reactions is r = A_s * k * (1-Q/K), where A_s is the surface area, k is the rate constant, Q is the ion activity product, and K is the equilibrium constant. In the GWB, a positive r means dissolution and negative r represents precipitation. When you are adjust the specific surface area or intrinsic rate constant in your rate law, the rate is linearly affected. The term Q/K determines whether the reaction is saturated, undersaturated, or in equilibrium. If your mineral is undersaturated, (Q/K is less than 1), then r is positive and the mineral dissolves. For more information on kinetic reactions, please see section 4 in the GWB Reaction Modeling User Guide. I think it would help you understand how the software handles kinetic reaction. If you make an example with just 1 kinetic mineral and look at how the results change with your simulation, without the effects from other minerals. The question of how to get your concentrations of your simulation to match that of your simulation is rather difficult to say without knowing anything about your system. You want to check that the kinetic constraints you are putting in are reflecting on what is actually occurring in your simulation. Maybe some requires a different rate law for constraining its kinetic reaction. Or maybe some minerals that are dissolved very fast can just be added as simple minerals. I am not really sure what is the most appropriate for your system. Best regards, Jia
    1 point
  3. Hello Rose, I am glad the information regarding the commands helped. Thank you for the additional information on the error. I was able to reproduce this error when I copied the Multiple Analysis script from the pdf to the Command pane of SpecE8. I have reported this to our technical team. With copying and pasting from pdfs, there may be unseen characters that are not recognized in the software. The same input script is provided in the file "Script.sp8" within the Spreadsheet folder. Double-clicking on "Script.sp8" automatically ran and closed the file for me with no issues. You can open any input file from the GWB in a text editor to edit or add commands. Saving with the corresponding extension to the GWB application will automatically run all the commands in the script when opened. For example, saving a file with the extension of ".sp8" will open SpecE8. The extension ".rea" will open the input file in React. Hope this helps, Jia
    1 point
  4. Hello Kush, You can change the output interval of the plot file by adjusting the dxplot parameter in Config -> Output dialog. For more information on dxplot, please see the GWB Command Reference. Best, Jia
    1 point
  5. Hello, It's difficult to say what might be the exact problem here, but here are some information on GSS that might help. The basis species analyte available in GSS contains all primary basis species and redox species in the thermodynamic dataset loaded. If you select a primary basis species for that element and provide the constraints for the oxidation state, such as O2(aq), Eh, or pe, then the program will figure distribution of mass from the total concentration you specified between valence states. Since your units are in elemental concentrations, then selecting the "as element" unit is right. For example, Mn++ is a basis species in thermo.tdat, the default thermo dataset. Adding this analyte to your spreadsheet and providing the constraints for oxidation will automatically prompt the speciation calculation to account for the distribution of mass to other oxidation states, MnO4- and MnO4--. If you select a redox species to be added to the spreadsheet, the redox coupling reaction is disabled. If you know the oxidation state of your element from an analytical measurement, then you can pick that redox species for the spreadsheet and disable the redox couple. You can open and view the thermo dataset loaded into your GSS spreadsheet by going to the File menu -> View -> and select the file that ends with the extension .tdat. Please see section 2.4 Redox couples in the GWB Essentials Guide to see how redox couples are specified in the thermodynamic dataset. I would also suggest looking at section 7.3 Redox disequilibrium for a detailed example on decoupling redox couples. Section 7.2 gives an example for how the software calculates the equilibrium state of a fluid. This is a good starting point for you to learning the software. If you would like further help with troubleshooting, please attach your input file and any custom thermodynamic dataset so we can take a closer look. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  6. Hello Reza, A few suggestions to help you start troubleshooting: Kinetic models are best for modeling reactions that are slow but observable in the time span of your simulation. In X1t, you can perform a "Go initial" run to calculate the initial equilibrium state before any time steps take place. If you do so and plot the Dissolution rates under Reactant Properties for all minerals, you will see that Wollastonite has a very high initial dissolution rate compared to other minerals. Having a much faster rate is going to force the program to take smaller time steps for one but also may make it much more difficult to converge. If you have reactions that are occurring really fast, you might consider just constraining it as an equilibrium reaction instead of using kinetics. Once I removed Wollastonite, X1t failed later in the simulation. I tried decreasing the step size, delxi, in the Stepping dialog to 0.001. Since there are only three nodes in your model, a smaller time step in general seems to have helped. If you want to use the nucleus density for precipitation calculations where there is no mass for kinetic minerals present initially, you would want to include the nucleus density in your rate law scripts. If you don't, the nucleus density won't be considered for calculating a surface area for nucleation. Since you are using a script, you can add a simple IF statement that looks something like: IF surface < nucleus * soln_volume THEN 20 ELSE 40 20: rate = -nucleus * [rest of your equation here] GOTO 60 40: rate = -surface*[rest of your equation here] 60: RETURN rate In general, I would suggest you start by simplifying your simulation. You might want to remove the minerals and start with one reaction interval to see how far you get. You should also double check the values in the rate law to make sure they are correct. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  7. 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
    1 point
  8. Hello Mojo, When a volume fraction of the nodal block is specified as a stagnant zone, only the process of diffusion takes place in that volume. The diffusion profile into the spheres, cubes, or half-slabs are calculated based on the parameters provided in the Dual Porosity dialog under the Config menu in X1t. Please note that chemical reactions do not take place within stagnant zones. The mineral volume fraction specified operates in the free flowing zone, where chemical reactions (equilibrium, kinetic) takes place. The half width is half the width of the cube or fractures. The radius or half widths should not be set arbitrarily. This is because the value set affects the cumulative surface area of the stagnant zones in contact of the free flowing zone, which is the most important quantity for controlling diffusion into and out of the stagnant zone. The geometry of your stagnant zones on the other hand has little effect on the simulation results. The parameters provided for the geometry is used to calculate the contact surface area. The contact area for the spherical geometry is calculated as the 3*X_stag*V_b/radius, where X_stag is the fraction of your nodal block specified as stagnant and V_b is the nodal bulk volume. The corresponding equation for cubic and fracture geometry are 3*X_stag*V_b/half_width and X_stag*V_b/half_width. If you decrease the radius or half-widths, then the contact area effectively increases. If you would like more details regarding this calculation, please see section 25.2.1 Contact Area of the Geochemical and Biogeochemical Reaction Modeling textbook 3rd edition. The porosity value in the Medium pane is applied in both the stagnant and free-flowing zone. If you wish to set a different porosity for within the stagnant zone in your calculation, you can do so within the Dual Porosity dialog under the Config menu. In the future, please post your queries on the Forum front page. Our team members do not receive notifications when a new post is added to the GWB post archive. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  9. Hi, everyone: I am trying to use kinetic rate law for mineral dissolution and precipitation. Here, I give a simple example. Initial mineral: Albite Secondary mineral: Kaolinite, Quartz, Calcite If I do not use kinetic rate law for precipitation of kaolinite, quartz and calcite, they would precipitate. However, if I use kinetic rate law, they do not precipitate. Can anyone give me some advice? The rate law, nucleus density are set. I cannot figure out what is wrong. Very confusing. Thank you very much. Huan
    1 point
  10. Hello Ali, It sounds like you are on the right track on getting this started. Here are some suggestions that may help. If you aim to build a reactive transport model, then starting in React to build a reaction model, checking if the reactions are behaving in the way you expect before moving to one of the reactive transport modeling apps is a good idea. In React, you would set up the basis pane with the composition of the fluid you wish to perform reactions with. This is also where you would swap in any constraints, such as minerals or gas buffers, that you can assume your fluid is in equilibrium with. You can use the go initial command to check that the program can successfully calculate mass distribution. If successful, you can specify various types of reactions (e.g. kinetic reactions, sliding activity and fugacity paths, etc) in the Reactants pane. If your work requires a reactive transport model, you would need to select whether X1t or X2t is best suited for your needs. X1t and X2t are for 1D and 2D modeling respectively. In these apps, you would set up your domain discretization and flow parameters. You can always check that the flow parameters are correct by setting an inert fluid (e.g. just Na+ and Cl-) and running the simulation. Once you have verified that these are correct, you can add the geochemical reactions that you have set up and tested in React. You can simply click and drag the Basis pane from React into the corresponding pane in the RTM app. There are a lot of resources available to help you get started with The GWB. The software is accompanied by six user guides which will explain various features. React is described extensively in the Geochemical Reaction Modeling User Guide. If this is the your first time using the GWB software suite, I would also recommend reviewing the SpecE8 section in the GWB Essentials User Guide, which explains how chemical mass distribution is figured. Usage of X1t and X2t are described in detail in the Reactive Transport Modeling User Guide. In addition to the user guides, there is also the GWB Academy, which offers a series of lessons on a wide variety of geochemical modeling topics. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  11. Hello Vincent, The hypothetical water composition is just an example to demonstrate the mass transfer concept . The Geochemical and Biogeochemical Reaction Modeling textbook states that the hydrolysis of potassium feldspar is the first reaction path traced using a computer in Helgeson et al., 1969. Perhaps that paper will have more information regarding how the starting composition was chosen. Helgeson, H. C. (1969) Thermodynamics of hydrothermal systems at elevated temperatures and pressures. American Journal of Science, 267, 729-804. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  12. Hello Vincent, Just a couple more thoughts to add to my previous response. The vol % is the volume of minerals relative to the volume of your bulk system (fluid volume + mineral volume + inert volume). So for example, if your bulk system has a total volume of 1000 cm3, then 10 volume % of a albite would occupy 10% of the total volume (100 cm3). For equilibrium calculation, the mass or volume of mineral does not matter, so you should focus on getting the initial assemblage right. Once you have the mineral assemblage correct, you can then worry about adding back in the exact values. Additionally, you might also want to consider the redox conditions in your system. Is N2(g) in equilibrium with NH3(aq)? If they are not, then they should be decoupled and each redox state constrained separately in your model. Best regards, Jia
    1 point
  13. Hello Vincent, In the software, you can specify components as free or bulk quantity for most entries. For example, you can constrain the sodium component in your basis pane by setting a bulk quantity, which would include the total amount of sodium present in all sodium bearing species. Alternatively, you can also set a quantity for the free sodium ion, which does not include the mass of sodium in Na-complexes, and have the software calculate bulk composition. For more details and examples, please refer to section 7.2 Equilibrium models in the GWB Essentials User Guide. A mineral volume will always be treated as a free quantity, meaning that the value you set in the basis will only reflect the volume of the mineral and should typically be the case for minerals. I think it's unlikely that all the minerals observed in the composition are in equilibrium with respect to a fluid at the same time. You said that you were able to set up the problem to converge with just the fluid phase previously, so I would suggest you use that as a starting point. If you think a mineral is in equilibrium with the fluid, you can try swapping in the mineral and then run the calculation. You can try doing that for multiple minerals until you have something that seems reasonable. You can also double check that other values such as gas partial pressures and the eh are reasonable. It seems like the mole fraction of CO2 is about 0.96 with a total pressure of 96.1 atm but 40 bars was entered. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  14. You can use SpecE8 to figure the equilibrium distribution of species given a particular bulk composition and temperature. And you can account for redox disequilibrium as necessary. For more information, please see Chapter 7, Using SpecE8, in the GWB Essentials Guide. In the GWB Standard package, React can account for various kinetic processes, including redox reactions that are catalyzed on mineral surfaces. For more information on modeling kinetic reactions, please see Chapter 4, Kinetic Reaction Paths, in the GWB Reaction Modeling Guide. You’ll likely be particularly interested in sections 4.1 and 4.2, which serve as an introduction to kinetics, as well as 4.6 and 4.6.1, which describe redox transformations and catalysis on mineral surfaces, respectively. You can also scan over a range of temperatures in React; see 3.4 Polythermal reaction paths in the GWB Reaction Modeling Guide. Hope this helps, Brian Farrell Aqueous Solutions
    1 point
  15. Glad to hear this helped. Currently there is no way to change the appearance of analytes. You can right-click on an analyte and see different options, though (e.g. the user analytes and equations have an “edit” option). You might try naming the user analytes and equations to make their type more apparent. As for ignoring “less than” values in user equations, unfortunately GSS is not currently set up to do this. Regards, Brian
    1 point
  16. Hello Mojtaba, The dataset, thermo.tdat, used in your attached script is a dataset published by Lawrence Livermore National Laboratory. This dataset uses an extension of the Debye-Huckel equation, the Bdot Model, to calculate the activity coefficients for aqueous species. The Bdot equation is widely applied in geochemical models designed to operate over a range of temperatures. This model is reasonably accurate for Na+ and Cl- ions up to about an ionic strength of 3 molal and other species to an ionic strength of ~ 0.3 molal. For modeling high ionic strength solutions, the virial models are almost always more accurate. The thermo_hmw dataset uses the Harvie-Moller-Weare formalism of the Pitzer equations. This method however is not easily extensible and data is often limited at 25C. You can read more about activity coefficients in section 7.4 in the GWB Essentials User Guide. For a deeper dive into the topic, you can refer to chapter 8 Activity Coefficients in the Geochemical and Biogeochemical Reaction Modeling textbook. A good starting point for you may be using the Yucca Mountain Project dataset (thermo_ymp.R2.tdat). This dataset follows the HMW formalism of the Pitzer equation and contains more components than thermo_hmw.tdat. This dataset also includes some provision for extrapolating to higher temperatures. You can find the dataset installed with your GWB software or you can find it on the GWB thermo dataset webpage. Reference for the dataset: Jove-Colon, C., Wolery T, Rard, J, Wijesinghe, A, Jareck, and R, Helean K: 2007. Pitzer database development: Description of the Pitzer geochemical thermodynamic database data0.ypf.R2. Appendix I. In In-Drift Precipitates/Salts Model, Report ANL-EBS-MD-000045 REV 03, DOC.20070306.0037 Las Vegas, Nevada: Sandia National Laboratories. "Components in fluid" and "Species concentration" are not the same thing. This is because in geochemical modeling we separate free species concentration from bulk component concentration. For example, the bulk sodium component concentration is going to be distributed amongst various species containing sodium (e.g. NaCl, Na+, NaCO3-, etc). If you want to find the concentration of the free ion Na+, then you would look under "Species concentration". If you want the total concentration of sodium in fluid, then you would look under "Components in fluid" for sodium. If you would like an example and further explanation, see section 7.2 Equilibrium models in the GWB Essentials User Guide. The ionic strength reported by the GWB program is the true ionic strength, which accounts for the role of complexing in reducing the number of free ions in solution. If you want to check the ionic strength by hand, you would want to use the concentration given under "Species concentration" and not the components. Hope this helps, Jia Wang Aqueous Solutions
    1 point
  17. Hello, You do not have to include Cl- in your basis input if it is not in your system. X1t (also React, Phase2, and X2t) by default looks for Cl- as the balancing component unless otherwise specified. This is typical as chloride is an abundant species where most commercial labs would report its concentration based on a charge balance calculation. You can change to another abundant species for charge balancing in your run. To do so, click on the unit of the component that you want to balance species on and select "Balance species". I am not quite sure what you mean by using the equivalent Cl- to control pH. It sounds like you are adjusting your fluid's pH by adding an initial dose of lime and then progressively more with to meet the target pH. You can add lime as a Reactant to see how the pH changes as it is titrated in your system. Another method to control pH with lime is to swap it in for lime in the Basis. This would tell the program to calculate the pH of the system in equilibrium with the lime. From your brief description, this doesn't sound like it describes the scenario. For more information on swapping in the basis, please see section 2.2 Setting and constraining the basis in the GWB Essentials User Guide. It might be helpful if you set up a React simulation to make sure that pH is behaving as intended before adding transport in X1t. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  18. Hello Seyed, I couldn't replicate your exact output since I don't have your modified thermo database, but I was able to run your input file without the Mg++ component and Montmor-K. Setting fast reacting minerals as equilibrium reactions is a good strategy in geochemical modeling because the reaction proceeds to equilibrium so quickly that a kinetic description is not necessary. I suggest checking your longer simulation by shortening it so that it runs to completion and you can plot dissolution rates under Reactant Properties using Gtplot to see which mineral changes the most abruptly. I shortened your 20 year simulation to end on day 5 and saw that your have a relatively high rate of precipitation for pyrite initially, then goes to 0 very quickly as pyrite reaches saturation early on with respect to the system. I suspect that this was causing your simulation to take very small time steps. I suggest setting pyrite as a simple reactant to titrate into your system to see if that affects the result of your simulation relative to the kinetic approach. I would also recommend returning to your 2 day simulation and examine the rates for your mineral reactions as well to see if you can just use an equilibrium approach for any of these minerals. Please note that swapping a mineral into the basis pane sets the concentration of that component in equilibrium to that mineral, however, if you set the swapped mineral as a kinetic reactant, React would treat that mineral kinetically as your reaction path begins (i.e. sliding CO2 fugacity to 322.7). The porosity is calculated as the fluid volume divide by the bulk volume of the system. The bulk volume is composed of the mineral volume, fluid volume, and any inert volume that may be prescribed. So if your minerals dissolve, the total bulk volume will decrease and the porosity will increase. Running your model (without the input of Mg++ and Montmor-K), it seems like your total mineral volume decreases slightly and your fluid volume increased. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  19. Hello Jeremy, I am sorry to hear that you're having issues on your new Macbook. I suspect that the issue present is related to the M1 processor. Could you try closing all GWB apps and then rerun the installation as administrator? If that doesn't help to resolve the new issue on the new Macbook, I would suggest reinstalling on your previous computer for the time being. We are currently working towards a solution for compatibility issues on ARM systems. Best regards, Jia Wang Aqueous Solutions LLC
    1 point
  20. Hello Andrew, I believe most commercial labs would typically report ppm units as mg of solute per kg of solution. If your analysis specifies concentration units in mg of solute per kg solvent, you can convert to molal using the appropriate mole weight as described above. For dilute solutions, the mass of solvent water is approximately the solution mass, so the mass of solute per mass of solution is close to the mass of solute per mass solvent. Hope this helps, Jia
    1 point
  21. Hello, Activity diagrams require user to input the relevant activities or fugacities of species. The program uses a simple method to draw equilibrium lines and calculate stability fields. If you have a fluid analysis, you can use SpecE8 to calculate the distribution of mass amongst species. SpecE8 will also report the activity for each species which can be used to set up your Activity diagram. You may also be interested in the Phase2 application as well. Unlike Act2 and Tact, Phase2 requires the user to set up an initial system and prescribe reaction paths in the x and y axis. The program then solves the solution to a multi-component chemical system at each node numerically and assembles the result in a grid form. If you're interested in Phase2, please refer to chapter 7 of the Reaction Modeling User Guide for more information and examples. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  22. Hello Jason, I am sorry to hear you're having issues with the installation of the new update. That error typically means the file that the installer is trying to write to is in use by another application or anti-virus software. Please try installing again after rebooting your computer. If you still encounter the same errors, try disabling any anti-virus type software briefly and run the installation again. Hope this helps, Jia
    1 point
  23. Hello Erik, If a mineral is known to be in equilibrium with the fluid in your system at the start, then you would swap in the mineral in the basis and allow the program to calculate the dissolved concentration in equilibrium with that mineral. You shouldn't convert a mineral into aqueous species and then sum those concentrations into the basis pane. For example, if your fluid is in equilibrium with Quartz, add SiO2(aq) into the basis and then swap it for Quartz and set the volume of quartz. The speciation calculation in the GWB will calculation the dissolved silica component in addition to the mineral you input. In your input file, it'll look like this: swap Quartz for SiO2(aq) Quartz = 1 free cm3 Also, you don't have to keep to mg/kg as the unit. The GWB accepts many units for minerals and dissolve species concentration. To see all units recognized by the GWB, see the GWB Reference Manual. I think it would be really helpful for you to revisit the sections in the Essentials User Guide on how The GWB configures its geochemical system. The best place to start would be in section 2.1 Configuring a calculation and 2.2 Setting and constraining the basis. You can find the commands accepted by each GWB app in the GWB Command Reference. Hope this helps, Jia
    1 point
  24. Hello, For your React simulation, you can plot species in concentration to see which aqueous species are forming. On the X-axis tab in Gtplot, you can plot the mass of chalcopyrite reacted (choose Reactant properties as your Variable type). On the Y-axis tab , select "Species in concentration" as your variable type and then filter to on the CN- component to see all species containing CN-. You can highlight and plot your copper cyanide species in your desired unit(e.g mmoles) and export the numerical data by going to Edit --> Copy and paste in an Excel Spreadsheet. You can sum the mass of CN- from all your copper cyanide species, be sure to account for any conversions needed. Repeat the same steps to see your iron cyanide species in solution. Since I don't have your customized dataset, I am not able to reproduce your exact system. You might also want to check whether or not if there are any copper cyanide or iron cyanide minerals that form. For more information regarding plotting, please see section 6 Gtplot in the GWB Reaction Modeling Guide. You can plot species in concentration as a variable in both SpecE8 and X1t. Unlike React, SpecE8 only calculates a fluid's equilibrium state and it does not account for mineral titration as you have described in React. X1t is a reactive transport simulation application that will account for both geochemical reactions and mass transfer in a 1D domain. In the future, please post any new queries to the front page of the forum. We do not get alerts of new post in the GWB archive. Hope this helps, Jia Wang Aqueous Solutions LLC
    1 point
  25. Hey Karen, I was attempting to input the above script into my model, and I stumbled across a "node by node" function in the mineral "mass" box. If you select "node by node", where you select "volume%" as your units, you can change the volume percent of the mineral in each node of your model. Maybe this was part of a recent update. Cheers,
    1 point
  26. Hello Ashley, The error you encountered is likely due to the ARM-based processors used in Surface Pro X laptops. ARM Windows has emulators for x86 (32-bit) infrastructure and will have one for x64 (64-bit) in the future. If you have option to select the 32-bit option during installation, you can try installing the 32-bit version to see if that allows you to activate successfully. This should be the first option you make when you run the installer. In the future, please remove activation codes from screenshots or error messages before posting. Hope this helps, Jia Wang
    1 point
  27. Hello Ashley, SpecE8 allows you to calculation the chemical speciation in an aqueous fluid given a certain set of chemical constraints and the composition of your fluid. I noticed that you swapped in a large amount of TiO(alpha) into the basis pane. Swapping is typically used to set the fluid in equilibrium with a certain mineral, and the program calculates the concentration dissolved in the fluid. If this is your first project involving geochemical modeling, you might need to put a little extra work in understanding how each GWB application works before attempting to set up to solve the problem of your own. If you find the GWB Essentials Users Guide confusing, a good place to start may be the Geochemical and Biogeochemical Reaction Modeling textbook. You can check if you have access to this resource through your university library. The text provides a good starting point for geochemical modeling theory and application, with many detailed examples for the GWB. Also, there are many tutorials and self-guided lessons on the GWB Academy that might be helpful to help you get started. When it’s time to setup your own problem, you would need to identify which GWB application is suitable for your purpose. If you are simply looking at the aqueous speciation of a fluid, then SpecE8 is sufficient. If your reactions involve mineral precipitation or dissolution, then you would need to use React application. Hope this helps, Jia Wang
    1 point
  28. Hello Andrew, The amount of mineral reported in the output text file is the amount of mineral in the whole system and not per kg of solvent. The g/kg unit in the Gtplot configuration dialog is grams of mineral per kg of solution. If you divide the mineral mass(g) by the solution mass(kg) in the same block from the text file, then it should match the value displayed in Gtplot for that step. For example, I ran the attached input file and looked at the results in the output text file at step #100. The mass of anhydrite is 0.03558 grams and the solution mass is 1.3669 kg, dividing the anhydrite mass by solution mass is 0.025973 g/kg. I copied the data from the Rxn progress vs. Minerals plot and pasted it Excel to see the grams of Anhydrite per kg of solutions at step 100. It shows the 0.0259736915828 g/kg. Please note with your React_output.txt file, you should see two Xi = 0 text blocks any time an initial system contains supersaturated minerals and precipitation is not disabled. The first block shows you the metastable equilibrium state of your aqueous speciation after you have initialized your run, where no supersaturated minerals have been precipitated. Hope this helps, Jia Wang
    1 point
  29. Hello Evans, I just want to clarify my previous post and provide more information on redox couples in GSS. The selection of either a basis or redox species also specifies whether redox equilibrium or disequilibrium model is used for calculations in species distribution. If you select the basis species (e.g. Fe++ in thermo.tdat), the redox couple for Fe2+/Fe3+ is automatically enabled unless you manually disable it in Redox Couples dialog. If you include a constraint on the oxidation state, such as Eh, pe, or O2(aq), then the program will figure the distribution of mass from the total you specified accounting for equilibrium among the different oxidation states (e.g. Fe2+ and Fe3+). If you select a redox species to be added to the spreadsheet, the redox coupling reaction is disabled. So if you know the oxidation state of your element from an analytical measurement, then you can pick that redox species for the spreadsheet and disable the redox couple. Hope this helps, Jia Wang
    1 point
  30. Hello Yumeng, please look here: https://www.thereda.de/en/datenabfrage/download Please note that depending on the particular system the valid temperature range for Pitzer coefficients is different. This is marked in the (quite bulky) parameterfile. Note 2: Pitzer coefficients for Si- and Al-Species are only estimates and valid for 25°C only. However, if the solubility of the solid phase in question is very low, then the database might give a good estimate. Whether the assumption of thermodynamic equilibrium between a silicate mineral and an aqueous solution is valid needs to be ascertained in any particular case. If you apply THEREDA to real systems for which experimental data are available, we are always very interested in your results! Best regards, Helge
    1 point
  31. Hello John, I am sorry to hear about your computer. I have reset your license and you can activating your new machine. Hope this helps, Jia Wang
    1 point
  32. Hi Noam, I think you are referring to the checkbox in the Appearance dialog, when checked shows mineral fields on the ACT2 diagram. Act2 can calculate Eh-pH diagram and show the stability of minerals and the predominance of aqueous species in a chemical system. The range of the stability field for the mineral would depend on the chemical system in which you are making this diagram for. If you uncheck the minerals fields, you are removing all minerals from the diagram calculation and telling Act2 to consider only aqueous and gas species for your diagram. Hope this helps, Jia Wang
    1 point
  33. Hi, Act2 only displays samples whose temperature is close to that of the diagram you've calculated (+/- 10 C). The samples at 76 C plot because the diagram is drawn at 76 C, but the samples that are 30-40 C will not plot. Regards, Brian Farrell Aqueous Solutions LLC
    1 point
  34. Hello Usman, To create an Activity-Activity diagram in Act2, you will need to know what the predominant species in your system you wish to diagram and the species for the x and y axes. The predominant species is selected for diagramming under ‘diagram species’ and you would need to enter its activity. For example, to make a redox-pH diagram for iron, you would select Fe++ as the diagram species and then on the x and y axis, select the activity for O2(aq) and pH respectively. The diagram will then show you the predominant species of iron base on the pH and activity of O2(aq). I am not exactly sure what you mean by Fe2+ V activity of O2-, can you clarify on the predominant species you wish to diagram for in Act2? There are a couple of places with good resources to help you get started. Please refer to section 5 Using Act2 in the GWB Essentials Guide for more information regarding calculations and examples. The example I mentioned above is demonstrated in detail in the Stability diagrams lesson at the GWB Academy. Please attach your input file and thermo database file if you want someone to take a further look. Best regards, Jia Wang
    1 point
  35. Dear Christophe, The maximum sorbed capacity for each metal is calculated outside of React. From Gtplot or the text output file of the simulation, you can see that there are 0.89 mmoles of Fe(OH)3ppd precipitated. Then in the surface dataset (FeOH+.sdat) you can find the sorbing density, which is 0.005 mol of strong sites and 0.2 mol of weak sites per mole of Fe(OH)3ppd. Then you look at each metal and see if they sorb onto weak, strong, or weak and strong sites. To calculate the maximum capacity for each metal, assume that there is only one metal sorbing to the mineral surface at a time. Just multiply the mineral mass by the site density of each appropriate site and convert to mg/kg. For As(OH)4-, it's 0.00089 mol/kg * .2 mol sites/mol * 142.951 g/mol * 1000 g/kg = 25.4 mg/kg. For metals that include strong sites, include those as well. The ‘in solution’ component concentrations are reported directly by React under ‘Components in fluid’. You can select to plot ‘Components in fluid’ vs. pH in the XY Plot Configuration dialog in Gtplot and export the numerical data using the method described in my previous response. Alternatively, you can also open the text output file and look for the concentrations of the desired components at each time step listed under ‘Original basis’ text block in the column ‘in fluid’. Hope this helps. Best, Jia Wang
    1 point
  36. Hi Jude, It's really hard to tell without any knowledge of how your model or the originals were set up. One guess is that the originals considered only inorganic carbon, whereas you're forming various organic species under reducing conditions. You can decouple the various carbon redox species from the HCO3- basis species to limit your calculation to inorganic carbon. For more information, please see 2.4 Redox couples and 7.3 Redox disequilibrium in the GWB Essentials Guide. If you have more questions, you'll have to provide your Act2 input file, your thermo dataset, and more information about how the original diagrams were made. Regards, Brian Farrell Aqueous Solutions
    1 point
  37. Hi Jason, The potential drop across the length of the domain is the driving force for flow. The program uses it, along with the permeability and viscosity, to calculate flow according to Darcy’s law. A boundary might be open to flow, closed to flow (no flow), or water might be set to enter at a specified value of specific discharge. For more information, please see 2.14 Groundwater flow, 3.2 Setting flow rate, and 4.3 Calculating the flow field in the GWB Reactive Transport Modeling Guide. The program uses a correlation to calculate the log of permeability from the porosity, and optionally, the volume fraction of one or more minerals. Permeability is always a positive number. Log permeability, on the other hand, can be negative. For details of the correlation, please see 2.13 Permeability correlation in the same guide. If you’d like to set permeability directly, the porosity multiplier (A) should be set to 0. In your example, set B to 3.6987 mdarcy (the log of 5000). Yes, you can plot permeability in the x and y directions in Xtplot. It’s a good idea to verify that the permeability the program calculates is what you expect. You can use a combination of equilibrium and kinetic minerals, if necessary, to define the minerals that exist in your system. For a good example, see the Weathering and Steam examples in the Reactive Transport Modeling guide (3.8 Example: weathering in a soil profile and 3.11 Example: steam flood). In the future, please post on the main GWB forum (the front page), not the archive of old posts. Regards, Brian Farrell Aqueous Solutions LLC
    1 point
  38. Hi, You can set most basis entries as bulk or free constraints. For a bulk constraint, the value you set refers to the entire thermodynamic component, whereas for a free constraint, it refers to the particular species only. The HCO3- component, for example, might include the HCO3- species, as well as CO2(aq), CO3--, NaHCO3, etc. If you set 10 “mg/kg” HCO3-, the concentration is for the sum of those species. If you set 10 “free mg/kg” HCO3-, though, the concentration refers only to the individual HCO3- species. An additional amount of carbon exists as the other species. Likewise, for H2O, “free kg” refers to solvent H2O only. If you change the setting to simply “kg”, the mass you specify refers to the sum of solvent H2O plus species composed of water (e.g., Al(OH)4- + 4 H+ = Al+++ + 4 H2O). For more information, please see 7.1 Example Calculation in the GWB Essentials Guide. Log refers to the base 10 log of a number (e.g., 1 free kg H2O = 0 free log kg H2O). A more common use is for setting the CO2 fugacity or partial pressure using logs (e.g. log f CO2(g) = -3.5). In the future, please don’t post topics multiple times. Regards, Brian Farrell Aqueous Solutions
    1 point
  39. Hi, I think the lower stability limit is being drawn correctly. A nice feature of Act2 is that it can draw the water stability limits at a pressure of your choice, rather than assuming 1atm all the time. By default, Act2 uses pressure taken from the header tables of the thermo dataset in calculating the position of the water limits. This pressure in the Thermoddem tables is ever-so-slightly different from 1 atm. As a result, the log f H2(g) term in the equilibrium equation for the lower limit doesn’t disappear completely, as you assume. Your perceived problem is because the log K for the reaction H2(g) = 2H+ + 2e- is ~ 0 at your temperature of interest. Here are the log K values for the reaction H2(g) = 2H+ + 2e- calculated at the principal temperatures, using the Thermoddem dataset: Log K's: 0 C 0.0000 150 C 0.0008 25 C 0.0000 200 C 0.0030 60 C 0.0000 250 C 0.0071 100 C -0.0000 300 C 0.0143 You can verify this yourself by loading the dataset into Rxn and typing react H2(g) swap e- for O2(aq) or by adding the log Ks for the following reactions that appear directly in the dataset: .5 x [2 H2O = 4e- + O2(g) + 4H+, the half-cell reaction in the header section of the dataset] .5 x [O2(g) = O2(aq)] 1 x [H2(g) + .5O2(aq) = H2O] When you run a calculation at a non-principal temperature, the program fits all the data to a polynomial. At 90 C, your log K works out to -1.785E-05, a very small number. So we have a small log K term added to another really small log f H2(g), so the y intercept in Act2’s output isn’t simply the log K/2. You don’t notice the effect of the pressure term in the upper stability limit because the log K is so much larger than the log f O2(g) term. You don’t see a problem with the lower limit in the default dataset for the same reason - the log Ks for the H2(g) reaction are far enough from 0. In any case, if you set pressure directly to 1 atm in your script, the term will go away and you should get a y-intercept exactly equal to the log K/2 in the text output, though it won’t affect your plot in any noticeable way. Hope this helps, Brian Farrell Aqueous Solutions LLC
    1 point
  40. Hi Coralie, Well, it’s easiest if you have a complete fluid analysis. In that case you’d just run the fluid through SpecE8 or React to calculate saturation indices for every possible mineral. That way you could figure out what you need to swap into your basis. When you’re working with limited data, as you’re doing, it’s much more difficult. You can try different assemblages of minerals you’ve observed, and at least try to rule out unlikely assemblages when you can’t get the initial system to converge. You might also be able to use some experience or consult some stability diagrams to rule out combinations of minerals that aren’t likely to be in equilibrium together under particular conditions. You can add minerals as simple reactants, in which case they’re continuously “titrated” into the system at a constant rate, or as kinetic reactants, in which case the rate of dissolution is set by a kinetic rate law. Reactant minerals in transport models are probably set as kinetic reactants more commonly, but you should make that decision yourself. For more information, please see sections 3 Tracing Reaction Paths and 3.1 Titration paths, as well as 4 Kinetic Reaction Paths, 4.1 Setting kinetic reactions, and 4.2 Kinetics of precipitation and dissolution in the GWB Reaction Modeling Guide. Sure, you can approximate reactive transport in a very simplistic way with React’s flush and flow-through configurations. The flush configuration follows the point of view of a section of porous media through which water flows. You might be interested in alteration products as a reactant fluid flows in and reacts with the existing minerals. The flow-through configuration, conversely, follows a packet of fluid as it migrates. Precipitated minerals aren’t allowed to re-dissolve into the fluid because the fluid packet travels downstream, away from the immobile minerals. You might try either of them before moving to X1t. But the very first step should be to find an initial system that you’re happy with, using Go Initial in React. Hope this helps, Brian
    1 point
  41. Hi Coralie, Go Initial is primarily for testing out your initial chemical system (what you specify on the Basis pane of SpecE8/ React or the Initial pane of X1t). It calculates the initial state before any reactants are added or boundary fluids flow in. It’s a convenient way to understand the starting point for your calculation without having to worry about the complexity that will be added during the reaction path. Since there are no minerals in the Basis pane of the React script you attached, and the fluid isn’t supersaturated with respect to any minerals, doing a Go Initial will leave you with only a fluid. The reactant minerals haven’t been added yet. There are various ways to conceptualize models like this. If you think that one or more minerals are in equilibrium with the porewater at the very start of your transport model, you should swap those into the Basis. Not all observed minerals are necessarily in equilibrium with the pore fluid, though, so only those that are truly in equilibrium with your fluid should be swapped into the basis. That’s why I suggested trying out different basis configurations and using Go Initial - so you don’t have to worry about the transport or other complexities. You could add the non-equilibrium minerals as reactants later on, after the initial system is sorted out. If, on the other hand, you think the starting point for your transport model is the water-rock system resulting from the titration of your basalt minerals into a brine (the React script you attached), then run the React script to completion (Go, not Go Initial). There should be minerals in the resulting equilibrium system, which you might transfer to the Initial pane of X1t as described previously. Hope this helps, Brian
    1 point
  42. Hi Coralie, Thanks for changing the thermo dataset. I think part of the problem is that one or more of the minerals swapped into the basis of the Initial pane are not in equilibrium with the fluid. I think a good strategy would be to focus on setting up the starting point for your model, using SpecE8 or React, then moving onto a transport once that’s working. The Initial pane (or Basis pane in SpecE8 and React) is where you specify your initial equilibrium system. If a mineral is present in the field but not in equilibrium with the fluid, it shouldn’t be swapped into the basis. It could be left out, to start, or it could be set as a reactant on the Reactants pane. Try working on the initial system in this way (you can use the Run > Go Initial option in React) to try to find a plausible equilibrium assemblage. If you have more data about the porewater chemistry, you could try calculating the saturation indices of the various minerals observed in the field. Hope this helps, Brian
    1 point
  43. Hi Coralie, Do the minerals swapped into the Initial system represent the complete mineralogy of the basalt? Are they all in equilibrium with the initial porewater? Usually you include minerals in equilibrium with the porewater in the Initial pane. Minerals that are present but not in equilibrium can be set with kinetic rate laws on the Reactants pane. Then the infiltrating boundary fluids can react with those equilibrium and kinetic minerals. Adding the oxide components of the rock as simple reactants, as you've done, is much less common. And if you're just duplicating the composition of rocks in the Initial pane, you probably don't need to do it. I'm not sure what you mean with the ??? for minerals. I don't see that in your script anywhere. If you'd like to work on this script a little more and have someone take another look, please attach your custom thermo dataset as well. Regards, Brian Farrell Aqueous Solutions LLC
    1 point
  44. Hello, The GWB does not currently include a solid solution model. One or more minerals of a composition intermediate between two end-members can be accounted for, however, by adding minerals of discrete composition and known stability to the thermo dataset. Regards, Brian Farrell Aqueous Solutions LLC
    1 point
  45. Dear GWB: I have a question about making Eh-pH diagram to predict iron secondary minerals formed during iron reduction under anaerobic condition. My questions include: 1) When we choose the pair for Eh, is oxygen-e- the only choice? I could find other selections for Eh, but oxygen does not seem correct for anaerobic reaction, which typically exhibit negative Eh values. 2) For some of the solid phases, the ones showed up in the Eh-pH diagram were not observed in our study, while some of our observed ones did not appear. Is there any way I can check, modify or add some mineral information? Is solubility the only information needed for such analyses? Any suggestion is highly appreciated! Yiran
    1 point
  46. Hi I want to simulate the compatibility between HCl acid and additives such as corrosion inhibitors which are used in petroleum industry, but i don't know which module is suitable for this. Also how can i find the hydrolysis of various compounds in G-WB software? I will be grateful if anyone can help me.
    1 point
  47. Hi Anastasia, Are you sure the constraints you've specified (concentration values and units) for the Initial system and Inlet fluid are correct? The K+, for example, is .00362 mg/l in the Initial system and .00362 molal in the Inlet fluid. Perhaps this is just a coincidence, but maybe one of the values or units is wrong. You might also think about your conceptual model of the system. For example, you've specified that both the Initial and Inlet fluids are in equilibrium with Quartz and K-feldspar, but you've also set kinetic rate laws for these minerals. Are you sure that both of these fluids are supposed to be in equilibrium with each other? On a different note, it's sometimes easier to converge upon a solution when you charge balance on a cation than on an anion. In your fluid, if balancing on Cl- fails, you might try Na+. Regards, Brian
    1 point
  48. Hi Charis, You can mix two fluids at a time in React. You can mix any number of fluids in GSS, however. GSS, like SpecE8, does not enforce charge balance by default, but React does. React will also allow saturated minerals to precipitate from solution, unlike GSS or SpecE8. If you turn charge balance off (command "balance off") and precipitation off (command "precip off") in React then you should get results similar to GSS. You can also turn charge balancing on in GSS from the Constraints dialog by entering a trailer command like "balance on Cl-". I think as long as you're not precipitating minerals, not forcing charge balance, and you get the mixing fractions correct then doing a pickup in React should get you the same final composition as GSS. Hope this helps, Brian Farrell Aqueous Solutions LLC
    1 point
  49. Dear Ari: Have a look at the Appendix entitled 'Multiple Analyses' in the GWB version 7 Reference Manual. I hope that helps, Tom Meuzelaar RockWare, Inc.
    1 point
  50. From: Paul Foellbach Subject: How can I include oxide components in the basis ? I attempt to build reactant, that has got the composition of a basalt. I would like to constrain a initial system by the components of SiO2, Al2O3, Fe2O3, FeO, MnO, MgO, CaO, Na2O, K2Oand H2O, I like to use this components to define the Basalt composition. For example, basalt components: SiO2 = 50.61%, Al2O3 = 15.93%, Fe2O3 = 1.42% ..... I can constrain SiO2(aq) and H2O, but how can I include the oxides into the calculation and in the basis? From: Craig Bethke Subject: Re: How can I include oxide components in the basis ? You cannot constrain the composition of a fluid by equilibrium with a set of oxide components because oxide components are fictive. In other words, they are simply a mathematical tool for describing composition. They do not actually exist as species or phases, and we do not know their chemical potentials. There are two ways to formulate the problem you describe. First, you can constrain the initial system by equilibrium with the minerals that actually compose the basalt. Second, you can take a fluid (perhaps rainwater?) and titrate the oxide components into it until you reach an invariant point. In this case the oxide are simple reactants; they are listed at the end of the thermo dataset.
    1 point
×
×
  • Create New...