Jump to content
Geochemist's Workbench Support Forum

Karen Johannesson

Members
  • Posts

    38
  • Joined

  • Last visited

Everything posted by Karen Johannesson

  1. Hi Jia, Thank you for the tip. I didn't know about the "explain steps". That said, I don't know what it is trying to tell me. If I only run the model with kinetic K-spar and Kaolinite, each step is constrained by change in Q/K for kaolinite. I know what Q/K is and I assume this telling me something about how kaolinite is impacting the simulation. When I include kinetic K-spar, quartz, kaolinite, and muscovite, then the same message appears but with the change in Q/K for muscovite constrains each step. So, I don't what is telling me, or more importantly how to fix the system to converge. What specifically does the Xi parameter represent? I assume it has to do with the stepping. It some kind of unit less distance? I notice that it grows as the simulation progresses. Also, what specially is Co? I assume this could be an initially concentrations or maybe something related to the Courant number. The simulation always seems to fail at nodes 1, 34, and 67. Does that tell you something. The script involves 100 nodes, so the 34 and 67 nodes are close to 1/3 and 2/3 the simulated flow path. If I remove kinetic Kaolinite and kinetic Muscovite, the model converges. This suggests to me that I can continue with this approach if I eliminate those two minerals. That's unfortunate because the model predicts that kaolinite precipitates along the entire length of the flow path. I am interested in evaluating if this has any effect on the aqueous REE concentrations. K-spar would seem to be an important source of REEs to the groundwaters, whereas the REE content of quartz is really low. The major sink of the REEs will likely be adsorption and I will eventually include my surface complexation models (SCM) for the REEs. Maybe the release of REEs from K-feldspar followed by adsorption onto the aquifer minerals will be able to explain the REE concentrations I have measured. However, I would like to include Kaolinite in these simulations. The first attached document shows the results with the explain steps turned on for the case of only kinetic K-feldspar and kinetic kaolinite. The second document is for when I run Carrizo_Infiltration_5b.x1t. In this case the steps are constrained by change in Q/K for both muscovite and kaolinite. It keeps flipping back and forth. I am sending the 5b script as well as the thermo_REE_kinetic.tdat database in case you have some spare time to run it yourself. The basic kinetic scripts are attached above. I'll keep plugging away, but I think I need some insights into what the "explains steps" is telling me, and more importantly what can do to address these issues. Best wishes, Karen With explain step on.pdf 5b.pdf Earlier 5b.pdf Carrizo_Infiltration_5b.x1t thermo_REE_kinetic.tdat
  2. Jia or Brian, Maybe I need to clarify my question. I wondering is by tweaking the various iteration, stepping, and/or output parameters, I can get my Carrizo_Infiltration_*.x1t script to converge. Attached are the current settings. Best wishes, Karen Iterations.pdf Stepping.pdf Output parameters.pdf
  3. I am trying to run x1t scripts that include kinetic mineral dissolution reactions as well as the rare earth elements. I have modified the thermo.tdat database for REE aqueous speciation. I have also written custom kinetic reaction scripts for several minerals. The chief minerals that appear to be reacting are K-feldspar, Quartz, Muscovite, and Kaolinite. When I don't include the REEs, the x1t scripts run fine. But when I add in the REEs, x1t wont converge unless I only have K-spar dissolving or K-spar and quartz. I should say that I also added the REEs to each of the four mineral above in the modified thermo.tdat database, which I now am calling thermo_REE_kinetic.tdat. One thing that may be problematic is that I have estimated the surface areas of kaolinite and muscovite to be quite large based in Beckingham et al. (2016) Geochimica et Cosmochimica Acta 188, 310-329 (https://www.sciencedirect.com/science/article/pii/S0016703716303003). For example, based on this study and some others, I have estimated a surface area of 132,000 cm2/g for kaolinite and 47,400 cm2/g for kaolinite. The surface areas I have used for K-spar and Quartz are 1460 and 890 cm2/g. Although these run fine for my script without the REEs, the script with REEs won't converge. I am attaching my script that runs (minus the REEs) and the custom rate laws. The plot "Initial weathering.jpg" shows the results of the Carrizo_Infiltration_4a.xt1 script. The main differences are the order of magnitude to 2 orders of magnitude differences in the surface areas for muscovite and kaolinite, which may or may not be the reason why the script wont converge when I include the REEs. As I note above, it I just run the script with kinetic kaolinite and quartz and the REEs, it converges. Do you all have any suggestions? Tomorrow, I plan to edit the Carrizo_Infiltration-4a.x1t script by decreasing the reactive surface areas of kaolinite and muscovite to see how well it reproduced the Initial weathering.jpg plots. Carrizo_Infiltration_4a.x1t K-feldspar_Rate.bas Kaolinite_Rate.bas Muscovite_Rate.bas Quartz_Rate.bas
  4. Hi Jia, Thank you so much for your response. I guess that is what I thought Act2 does, which is perfectly fine. I don't actually think there has been anyone who has reported the formation of smectites in this aquifer. The major ion chemistry that I have measured would appear to be in agreement with the fact that such minerals haven't been reported. I did try some other databases that come with GWB, and as you mention, the results were a little different. However, most of the waters still plotted in the kaolinite stability field. Best wishes and Happy Thanksgiving, Karen
  5. I am wondering if there is a way to "force" a mineral in an activity diagram. For example, in the attached plot that I made with ACT2, I would prefer to include one of the smectite minerals in the thermo.tdat data base instead of the zeolite, Clinoptilolite-Na phase. I have tried to suppress this zeolite to only force another zeolite mordenite-Na to replace it. When I then suppress mordenite-Na, the field is replaced by Albite low, which I don't want to suppress. Stability diagram.pdf
  6. Hi Jai, Thanks again! Typos are so easy to make and also so easy to miss. I was thinking about this last night and on my drive this morning into campus. All of the rate scripts seem to specifically identify the rate constant and as you say above, React cannot extract the extract the value from a rate law script. I was thinking that having the Arrhenius equation version of the rate constant would make my scripts more robust. However, as I am chiefly working in groundwaters systems with temperature variations from are between 25 and 50 C (mean +/- 1sigma = 30.4 =+/- 7.5 Celsius), and perhaps even more importantly, when I eventually try to link these scripts to lanthanide cycling for which I have no enthalpy data, it probably makes sense to just assume a temperature of 25 Celsius. That allows me to compute a rate constant for each of the three pH ranges, and scale the rate constants as acid and basic pH by a correction factor multiplied by the slowest rate, which occurs in the circumneutral range. This approach returns a rate that is not zero and that varies with pH and time. The React script that I attached has the rate constant computed for the circumneutral pH range. I will also read your suggestion very carefully and think about it some more. My next question will be in regards to precipitating minerals. I have come across the "nucleus" command in my reading and re-reading... Best wishes, Karen Basalt Dissolution3.rea K-feldspar_Rate.bas
  7. Just a quick example of a re-configured version of the K-feldspar rate script and a plot showing that the script returns a rate of 0. This script does work better, maybe, than the previous one as some of the K-spar reacts in this slightly modified version. K-feldspar_Rate2.bas
  8. Dear Jia and/or Brian, I am looking for some hints about how to make a simple BASIC script for React that can account for different rate constants as a function of pH following the pH ranges described in Palandri and Kharaka (2004). I have simple BASIC scripts for forsterite and anorthite dissolution kinetics that assume constant pH and 25 degrees C. However, the script I have for K-feldspar attempts to use the Arrhenius equation to compute rate constants for different pH ranges and also temperature. I realize the K-feldspar script I am including is wrong, because the terms r1, r2, and r3 are not the rate constant at different pH, but actually the rate expression for acidic, neutral, and basic pH. I am wondering if you have any hints for me to make such a script that will work. I am including my simple React script too. Best wishes, Karen Basalt Dissolution3.rea K-feldspar_Rate2.bas Anorthite_Rate.bas Forsterite_Rate.bas
  9. Dear Jia or Brian, I am trying to develop a reaction path model for chemical weathering of a sandstone. I want to write BASIC scripts that will provide the very general rate laws for an individual mineral that account for differences in weathering rate as a function of pH. This will involve providing pre-exponential factors (A) and activation energy terms (EA) different pH ranges in the BASIC Script (for example, see Fig. 1 in the attached paper in which a1, a2, and a3 are the pre exponential factors at acidic, neutral, and basic pH, E1, E2, and E3 are the corresponding activation energies, and n1 and n2 are exponents for the promoting species, H+ and OH- at acidic and basic pH). I will plan to set the surface area for each mineral as a constant using the approach of Lasaga (1984). In the past I have done some similar, but for more specific and simpler rate expression in which I defined the rate constant and surface area in a React script and called on the rate expression from a BASIC script (see examples) below. My very simple BASIC script for anorthite dissolution is attached, and an example of how I called this up in a react script is also attached (i.e., Basalt Dissolution2.rea). My question is whether I need to specify the rate constant, or in this case, the pre exponential term and the activation energy in the react script since I want to be able to have different versions of each in my BASIC script so that my BASIC script could be applied to systems where pH is changing as is temperature. Best wishes, Karen Zhang et al., 2019.pdf Lasaga, 1984.pdf Anorthite_Rate.bas Basalt Dissolution2.rea
  10. Hi Jia, I think I understood your previous helpful input. I am attaching an example script of what I think you were instructing me to try. This example script calls up goethite as the adsorbing mineral, but only allows for it to be implemented along the initial portion of the flow path. I know that after that radial distance, the aquifer sediments seem to have largely been stripped of their Fe(III) oxide coatings owing to microbial reduction (in part). I am wondering if I set up the kinetic Goethite correctly. I set a rate constant of 0, and then state that the Goethite is available along the initial 26% (or there abouts) length of the flow path. Best wishes, Karen Example script.x1t
  11. Hi Jia, Thanks so much. This is very helpful and I think it will solve this question I have been wondering about recently. Best wishes, Karen
  12. I am just wondering if there is a way to restrict the location of where I can apply a surface complexation model along a groundwater flow path in X1t. Specifically, if I am trying to model reactive transport along a 100 km flow path, but only want to have the surface database FeOH.sdat apply along the first half of the 100 km flow path.
  13. Hi Jia, Thanks again. I will correct these issues and will looking to the use of the "TEdit" program. I guess I learned GWB back when I was using version 7, and I haven't kept up will all the new programs and so forth. I just started using the rxn program to balance equations and calculate equilibrium constants based on the basis. Wow. That really helped speed up some of my old fashioned writing stuff down and balancing them myself. I wish I had looked into the rxn program when I was balancing those gnarly expression for the various "arsenogoethite" dummy minerals I devised for the 2019 paper. I noticed that the script from that 2015 paper I was trying to modify did not have any mineral phase to have sorption onto, which confounded me. They used a call that read: surface_data = "C:\Program Files (x86)\Gwb\Gtdata\FeOH+.dat" and later in the script that read: "sorbate include" I could provide you with the entire script if you are interested. Best wishes, Karen
  14. Hi Jia, Let's see if this works. Karen thermo_GKD.tdat thermo_ThioOxyanions2.tdat FeOH_Arsenic_HFO.sdat Austin_Chalk_As.x1t Austin_Chalk_As_KJ.x1t
  15. I am trying to modify an x1t script that a colleagued used in a paper published in Applied Geochemistry back in 2015. He sent me the script, which I have renamed “Austin_Chalk_As.x1t”. This script is essentially identical to his script except for the new name, which at the moment doesn't represent the Austin Chalk. The script is from Lazareva et al. (2015). I am also including a modified version of the standard thermo.tdat database, which has a new “dummy mineral” called Arsenopyrite2, which is Arsenopyrite written in terms of SO4--/HS- instead of As(OH)4-/AsH3 to define redox dissolution. The FeOH.sdat called in the script is the standard Dzombak and Morel (1990) SCM database that comes with GWB. The FeOH+.sdat database also works. My question involves my wish to use my modified database “thermo_ThioOxyanion2.tdat”, in which I redefined the arsenic species basis from As(OH)4- to H2AsO3- and so forth, along with my version of the FeOH.sdat database to fit the new arsenic basis and to use the surface complexation constants from Dixit and Morel (2003) that I call “FeOH_Arsenic_HFO.sdat”. I have included these databases along with the script “Austin_Chalk_As_KJ.x1t”. The only difference between the “Austin_Chalk_As.x1t” and the “Austin_Chalk_As_KJ.x1t” scripts is that the later calls my modified aqueous and surface complexation databases. The problem I am having is that when I run the “Austin_Chalk_As_KJ.x1t”, it does not seem to include any of the surface reactions, whereas the “Austin_Chalk_As.x1t” model has no problem picking up the surface reactions. Do you have any clues as to why “Austin_Chalk_As_KJ.x1t” does not pick up the include any of the SCM reactions? It seems to be loading the surface data. I used both the “thermo_ThioOxyanion2.tdat” along with my modified “FeOH_Arsenic_HFO.sdat” in my paper Johannesson et al., (2019), and that model ran again the other day just fine. I am somewhat perplexed. Best wishes, Karen thermo_GKD.tdat thermo_ThioOxyanions2.tdat FeOH_Arsenic_HFO.sdat Austin_Chalk_As.x1t Austin_Chalk_As_KJ.x1t
  16. Hi Brian, I figured it was something like this as the problem I had before was related to spaces or lack of spaces between some of my terms in my dummy minerals. Your colleague was really helpful finding this issue in my database. That said, I was so frustrated, I tried to re-install GWB 14 over the new updates and now I have no idea what version I have on my home computer. When I tried to run my x1t code, it started and then just "flashed out". That is, it was doing something and then just disappeared from view. This suggests that it probably crashed. So now I have made another problem for myself by trying to go back to the GWB 14. I am not sure what to do. I may need to re-install the new version, but no idea where to start with that. I never use the TEdit thing because when I started using GWB back in 2007, it did not exist. It is relatively simple to go in an edit databases and save them as new databases using a text editor like Notepad, which is what I usually use. I have built a number of new databases over the year to allow us to model thiotungstate speciation, thioarsenic species, and lanthanide speciation in waters. I have also built a number of surface complexation databases as well. Karen
  17. Why won't this new release work with my GWB 14 scripts? I have never experienced this before. I wish someone would actually respond to my numerous queries.
  18. I am wondering how to constrain a kinetic mineral dissolution/precipitation reaction to a specific region of a 1-D flow path. I know how to do this for a reaction I want to constrain to the beginning or the end of a flow path, but what if I want to have the reaction only occurring in the middle of the path? Also, what if I want to have the reaction happen at the beginning and then again at the end, but not along the middle of the flow path? For example, the following portion of a script for calcite and dolomite dissolution/precipitation along a specified portion of a flow path does not work (see attached). I know I could write a C++ library to do these kinds of manipulations, but I'd rather not have to do so if I can simple change the syntax of my x1t script.
  19. Hi again Jia, I have another question, which may be very easy to answer. I have been running that script I sent you, and iterating to find mineral dissolution rates that best reproduce my major ion concentrations along the flow path I am studying. For some reason is I chose an "effective" rate constant for anorthite dissolution/precipitation that exceeds 2e-19 mol/cm3/s, the X1t just seems to stop or get hung up. I am attaching a screenshot of X1t where I have set the effective rate constant for anorthite at 2.5e-19 mol/cm3/s. The program will not go any further than this. If I use a larger effective rate constant it stops at an even lower Xi value. I am also attaching my script, again, but note I am still iterating and trying to come up with the best fits to me actual data. Do you have any suggestions that I might try so that the X1t will complete the simulation with larger values of the effective rate constant for anorthite dissolution? For example, changing the tolerances of the numerical iterations.... Best wishes, Karen Carrizo_Weathering_5.x1t
  20. Hi Jia, That fixed it. Thanks again. Now it's on to finding my next hurdle. 🙂 Karen
  21. Hi Jia, Wow. I would have never caught that extra space. I have made a number of databases in the past and never had an issue. I reckon I never added a space there before. I also eliminated the tabs and changed them all to spaces. I'll give the model a run and see what happens. I hope this works. Assuming it does, then the next step will be "tuning" the kinetic mineral rate constants to fit our data as best as possible. Thanks. Karen
×
×
  • Create New...