I think you've checked out most of the options, and none of them are great for doing what you want. (1) I'd do it like example 8, where you define one solution, then a series of USE solution 1; EQUILIBRIUM_PHASES with Fix_H+. You need a few lines of input for each pH. (2) You can define a series of solutions with different pH, optionally adjusting to charge balance with one of the elements. I think this is what you are doing now. (3) You can use REACTION to titrate an acid or base in varying amounts. The problem here is that you do not get nice even pH values without some trial and error on the reaction amounts. (4) With more effort, you can add the REACTION in tiny steps, and then write a USER_PUNCH data block to save values that are sufficiently close to the desired pH (the PUT command in Basic). You probably want to turn off all the printing during this stage. As a last step, do a trivial calculation, turn on printing, and write another USER_PUNCH or USER_PRINT data block to print out the results (GET and PRINT or PUNCH). This works in concept, but it would take some effort to write the Basic and it still might be tough to get increments that produce pH values close to even pH values. MINTEQA2 allows you to sweep through a set of fixed pH values I believe. I know Geochemist's Workbench allows you to fix activities, but I'm not sure how complicated it is to sweep through a series. We chose not to do this because it is possible to inadvertently imply moles of reactant to maintain a pH or to step out of the stability field of water. If you only want a handful of pH values, you can put together (1) or (2) with cutting and pasting and a little editing. If you want hundreds, I'd probably write some sort of script to generate the input files. Long answer to tell you what you already suspected, David David Parkhurst (dlpark@xxxxxxxx) U.S. Geological Survey Box 25046, MS 413 Denver Federal Center Denver, CO 80225 "Richard Johnston" To: <dlpark@xxxxxxxx> <johnstonrh@xxxx cc: In-Reply-To: <000201c15e68$16a052e0$505b0298@xxxxxxxxxxx> spring.com> Subject: PHREEQC and pH 10/26/01 03:49 PM Hi Dr. Parkhurst - I'm just starting to learn PHREEQC and am making diagrams to show parameters (e.g. speciation) changing with pH. Right now I'm defining a new solution for each pH value, but this takes up a lot of lines. Is there a way to tell PHREEQC to sweep through a range of pH values? I know you can compactly vary temperature using REACTION_TEMPERATURE, and can tell it what size step to take. I also know you can fix pH by defining a phase like FIX_H+ and then invoking EQUILIBRIUM_PHASES for a given solution, but if I want say 20 different pH values I have to define 20 different SOLUTION blocks. Can I use REACTION or some other trick to 'titrate' with Fix_H+? Perhaps somehow using a BASIC loop? I can imagine wanting to do the same thing with other constituents (e.g. adding incremental amounts of Cu+2 to a system), and it seems like it should be possible to do it compactly, I just haven't been able to figure out how to do it yet. Thanks in advance, and have a good weekend. Rick Johnston ------------------------------------------------------- Richard Johnston Doctoral Candidate Department of Environmental Sciences and Engineering University of North Carolina - Chapel Hill CB #7400 Chapel Hill, NC 27599-7400 Tel: 919-967-5468 Email: johnstonrh@xxxxxxxxxxxxxx -------------------------------------------------------
Please note that some U.S. Geological Survey (USGS) information accessed through this page may be preliminary in nature and presented prior to final review and approval by the Director of the USGS. This information is provided with the understanding that it is not guaranteed to be correct or complete and conclusions drawn from such information are the sole responsibility of the user.
Any use of trade, product, or firm names in this publication is for descriptive purposes only and does not imply endorsement by the U.S. Government.
The URL of this page is:
Last modified: $Date: 2005-09-13 21:04:21 -0600 (Tue, 13 Sep 2005) $
Visitor number 5810 since Jan 22, 1998.