Jump to content
Geochemist's Workbench Support Forum

ats5482

Members
  • Posts

    19
  • Joined

  • Last visited

Posts posted by ats5482

  1. Hi,

    It's my understand that (in addition to the thermo data), you need two constraints (e.g., pCO2, CO2(aq), HCO3-, CO3--, pH, Alk) to solve the carbonate system. If I give React CO2(aq) and HCO3-, it works as expected. But I want to constrain the carbonate system with CO2(aq) and Alk (~ carbonate alkalinity). However, I get the error, "pH must be set to use alkalinity as a constraint" when I run the below model. Why do I need to set pH for this to work?

    Thanks!

    -- Adam

     

    1 kg free H2O
    T = 25 C

    Na+ = 100e-3 mol/L
    Cl- = 100e-3 mol/L
    Mg++ = 1e-12 mol/L
    Ca++ = 1e-12 mol/L
    K+ = 1e-12 mol/L
    Fe++ = 1e-12 mol/L
    SO4-- = 1e-12 mol/L
    SiO2(aq) = 1e-12 mol/L
    Al+++ = 1e-12 mol/L
    HPO4-- = 1e-12 mol/L
    F- = 0.07 mmol/L
    fix F-

    swap CO2(aq) for H+
    CO2(aq) = 1e-4 mol/L
    fix activity CO2(aq)
    HCO3- = 10 mg/l_as_CaCO3

    react 60 g An10
    react 25 g En50
    react 15 g Fo

    unsuppress all
    suppress Dawsonite

  2. Hi Jia,

    I think I figured out the ion size part. In TEdit, I was looking at CO2(g), which doesn't have an a0 parameter. However, CO2(aq) does. This is the a0 that I should change, correct?

    Thanks for checking out the paper; I didn't realize the Pitzer model is different. When I made this database, I verified that I did it correctly with one of the authors of PyGCC. He recommended I use the Duan Sun method (because I'm doing high-P models), and to set a0 to -0.5. Given that Duan & Sun (2003) use the Pitzer model, I'm now not sure where the CO2 activity coefficient terms in the database I made come from. I will ask him for clarification.

    Thanks,

    Adam

  3. Hi,

    How do I tell React to use a different CO2(g) activity model?

    I created a high-pressure (1 kbar) SUPCRTBL database (attached) using a Python package called PyGCC. It uses the Duan & Sun (2003) CO2 activity method. According to Section 3.4.2 of the Reference manual, I need to set the relevant ion size, a0, values to -0.5. CO2(g) is of course not an ion, so I'm not sure what I'm supposed to change. HCO3- and CO3--?

    Thanks!

    -- Adam

    1kbar_db_test_2.tdat

  4. Hi Jia,

    Thank you for such a detailed explanation. I ran those two simple dissolution experiments, which were helpful. I read Ch. 2 of Craig's book a while ago, but perhaps I should re-read it now that I have more experience with the software.

    One last question regarding the first comment in this post: How low of a water-to-An ratio were you able to get to work? I ran the attached script (which allows precipitation) and I can't get it to go below w/r ~ 0.14 (i.e., 1 kg H2O, 7 kg An). Ideally I'd like to be able to go down to 0.1 because there are hydrothermal alteration papers that report and model w/r that low.

    Edit: I should note that the convergence error I get is:

    -- Can't converge, abandoning path.
    -- Xi step is too small

    I tried increasing delXi to no avail.

    Best,
    Adam

    An_diss.txt

  5. Hi Jia,

    I did intend to suppress all secondary minerals just because I'm doing sensitivity tests and adding complexity as I learn how each parameter affects the system. It makes sense now why this would create an unstable system at low w-r ratios, so thank you for your explanation.

    Re my other post: My confusion is more so whether React requires that all of the primary mineral be consumed to work. So if 100 g of Anorthite is "reacted", does that mean it is necessarily gone, or simply that all of it has been titrated into the system? In reality, if you have a tub of salty water and place some relatively large mass of An into it, only a finite amount of An can dissolve before it is saturated. Or would it be more correct to say that, given enough time, it would indeed all react and turn into whatever secondary minerals are stable and this is the equilibrium that React is reporting? Apologies if this isn't a well-posed question. I just want to make sure I'm interpreting the results correctly.

     

    Thanks again!

    -- Adam

  6. Hi,

    I'm using React to run dissolution experiments of minerals under Archean seawater conditions. In Gtplot, I noticed that for all of my model runs, plotting "mass reacted" (of the primary mineral) vs Rxn Progress shows a straight line that ends when the y-coordinate reaches the input mass. For example, if I run

    react 100 g Anorthite

    and plot "Mass reacted, Anorthite (g)" vs Rxn progress, the line goes from 0 to 100 g (see attached plot).

    Does this mean all 100 g have been dissolved and are now in solution with no primary mineral remaining? Or can React model a dynamic equilibrium where, for example, you have seawater sitting on top of a crust (made of feldspar, olivine, etc) and the crust dissolves until it reaches saturation?

    Image_1.png

  7. Hi Christine,

    I know this is an old thread, but I just wanted to say that I was having a similar issue and this worked for me. I'm using native 64-bit Windows 10 with Anaconda on Python 3.10.6. The difference for me is that the "add_dll_directory" step is still necessary if I try to run it from a terminal. My guess is this isn't an issue with you using a VM version of Windows 7, rather the plugin needs to be updated to work on newer versions of Python. In the meantime, I think they should updated the webpage to point to this forum post, because it took me a bit to find a fix.

    Thank you for posting your solution!

     

    Best,

    Adam

  8. Hi,

    I'm trying to model anorthite dissolution in Archean-like seawater under a wide range of w/r (kg:kg) conditions. I would like to run models for w/r = 0.001 - 10,000 (expecting to see a dilution curve at high w/r). However, I can't get the model to converge below w/r ~ 0.33 (i.e., An = 0.033 kg, H2O = 0.1 kg).

    I attached a copy of my input script. Can I get some advice on what I'm doing incorrectly?

     

    Thanks in advance!

    -- Adam

    input_script_An_archean_var_wr_allsupp.txt

  9. Hi Jia,

    Re your second message: Yes, I was confused by the option in output settings that lets you print "basis composition" in addition to "original basis composition" (the one turned on by default). I wasn't sure which of those two tables I should use if I want to re-create a "components in fluid" plot in Python. Based on your explanation, I will use the original basis composition table.

    Also, yes, I think the discrepancy in what I calculated by hand vs what Gtplot showed me was due to the different significant figures between the XML and React_output files.

    Thank you for your help!

    -- Adam

  10. Hi,

    I'm writing a Python script to parse React_output.txt files to speed up the process of plotting the results of multiple experiments at once on the same figure. To start, I'm trying to recreate a figure you can already make in Gtplot: components in fluid (mol/L) vs Rxn progress.

    To calculate the concentration of the components in the fluid, does Gtplot use the "Basis components" or "Original basis" table from the React output file? The reported moles differ slightly and I'm not sure why. Also, to go from mol to mol/L, is it dividing by the bulk volume in the corresponding Step #?

     

    Thanks!

    -- Adam

  11. Hi Jia,

    I just had a meeting with two of the authors, but unfortunately, we weren't able to figure it out. However, they pointed out some mistakes that got me a bit closer. They agreed I should get rid of the "swap Quartz for SiO2(aq)" line (but keep quartz as a reactant), and they also said I shouldn't unsuppress quartz because it precipitates too slowly for this type of system. The w/r mass ratio and starting amount of quartz affect the equilibrium concentration of bicarbonate substantially, and we're pretty confident the rest of the setup is correct, so it's probably something to do with that.

    Since this was just an exercise to learn how to set up dissolution reactions, I'm going to shelve this for now. Thanks again for your help!

     

    -- Adam

  12. Hi Jia,

    Thank you for the detailed reply. I've read the GWB textbook and documentation, but I'm still having trouble understanding basis swapping. I'm trying to dissolve quartz in a system that already contains a small amount of SiO2(aq). Should I swap Qtz for SiO2(aq) after I define its concentration? Why does defining the concentration afterwards undo the swap?

    The authors provided me some Excel data that they used for the paper, but they don't have access to the React files, and are also unsure why my results are different. Here's what I know for sure from the paper and the data they sent:

    1) 100% albite vs An20Al80 makes little difference, based on their sensitivity test in Fig 3C. I did, however, try the database that they used which includes halloysite, and it was effectively the same in terms of HCO3- concentration.

    2) They used 10 g of plag feldspar and 30 g of quartz as the the two minerals that dissolved (that's why I titrated quartz), and a water/rock ratio of 100.

    3) Their P-T conditions are: 5, 15, and 25 C, and 200 - 10,000 ppm CO2(g). The fugacity of CO2(g) was fixed.

    4) The composition of the initial fluid is dilute rainwater.

     

    Thanks,

    Adam

  13. Hi,

    I'm trying to reproduce Fig. 3 from Ibarra et al. (2019; attached). However, I'm getting a component bicarbonate concentration that is too high. In the text, they describe how they model the weathering of soil containing the primary mineral Plagioclase Feldspar (An20Al80), which forms secondary minerals such as Halloysite and Kaolinite. The system is in equilibrium with atmospheric CO2 at a fixed fugacity and the initial fluid composition is dilute rainwater.

    For simplicity, I am using 100% Albite as the primary mineral, and Kaolinite as the secondary mineral with GWB's default thermo database (i.e., I am trying to approximate the orange line from panel B). My React script is as follows:

    4 kg free H2O
    T = 25
    
    swap Quartz for SiO2(aq)
    swap CO2(g) for HCO3-
    P CO2(g) = 0.0002 bar
    fix fugacity CO2(g)
    
    # rainwater 
    SiO2(aq) = 9e-7 molal
    Al+++ = 2e-7 molal
    Ca++ = 9e-5 molal
    K+ = 1.6e-5 molal
    Mg++ = 6.8e-5 molal
    Na+ = 4.2e-4 molal
    Cl- = 1e-7 molal
    NO3- = 5.1e-7 molal
    SO4-- = 4.6e-4 molal
    
    balance H+
    
    react 10 g Albite
    react 30 g Quartz
    
    suppress all
    unsuppress Kaolinite
    unsuppress Quartz

    This script gives an HCO3- concentration of ~8,000 umol/L (attached), but it should be ~1,200 umol/L (for pCO2 of 200 ppm and T of 25 C). How can I decrease the concentration of bicarbonate? I am also confused about why Quartz and Kaolinite seemingly become saturated instantaneously (attached).

    Note: the amount of water, Qtz, and Al are to give a water/rock ratio of 100

    Thanks!

    -- Adam

    logQ-K.png

    HCO3-_umolar.png

    Ibarra+2019 Fig 3.png

  14. Is it possible to plot multiple model runs one the same plot? This would be useful for sensitivity tests. For example, if I have a NaCl solution that I react with hot seawater containing dissolved CO2, the way the pH evolves over the course of the reaction depends, in part, on the starting concentration of Na+ ions. Say that I run the experiment twice; once for 0.5 molal Na+ and once for 0.05 molal Na+; can I plot pH vs time for both of those experiments on the same plot?

    I attached an example of it in MATLAB. I exported GWB results to do it, but it would be faster if I could just use Gtplot.

    Screen Shot 2022-05-04 at 16.51.37.png

  15. Is it possible to export all results from an experiment to a tab delimited text file that can be used in another program (e.g., MATLAB)?

    For example, if I run a simple water-rock experiment in React that dissolves quartz in water, I can use Gtplot to plot pH vs reaction progress, species concentration vs temperature, etc. However, I can only export two axes at a time, e.g., File --> Save Image --> Spreadsheet File will save a text file with columns only for pH and reaction progress. Is it possible to have a column for every output of an experiment?

×
×
  • Create New...