Gastherm Update for Gasworks and Solvgas
As of 2022 there is renewed interest in programs Gasworks and
Solvgas, that use Gastherm as their thermodynamic data source. Prior
to the work begun here, the most recent version of Gastherm is from
1990. A significant issue is the absence of most digital records of
the enthalpy, entropy, heat capacity, and volume data that were used
to compute log K's for the gases, solids, and liquids in the 1990
version of Gastherm. If log K's within Gastherm are to be modified,
added to, or improved upon, then these data are essential
Here we document the construction of a new Gastherm database, and
the source data used. While the sources of data for the 1990 version
are freely available, all must be recompiled from scratch into
digital form. The first step is to construct a new database that
will run with the already existing software. We can then compare the
results of simulations that are run using the new data, and the 1990
version, using identical initial conditions and parameters for both
While it may be possible to reconstruct Gastherm to be identical to
the 1990 version, we make no attempt to do that. Newer data have
been introduced for some of the most important items in the
basis set of component gases: H2, H2O, CO2,
H2S, HCl, and HF. Therefore, any derived gases, solids,
or liquids containing them will certainly have different log K's
than the 1990 version, regardless as to the origin of data for the
derived items. Put another way, even if the derived item data is
taken from the older original references (e.g. the Bureau of Mines
reports,) new and current log K's will be different
Recompiled here are the 1990
source code for Gasworks, Solvgas, and Volcal to run in the
win32 environment, with minor changes to the formatting summarized
below. These will be the only changes before completion of the
Gastherm updates.
A summary of minor format and other changes made to the 1990 version
of Gastherm, and where new versions of Gastherm will use identical
rules—
- Add a text delimiter between the derived gases, and the
solids/liquids data blocks
- Remove blank lines where previously required for 16-bit operating
systems where the preceding line exceeded 72 characters (four items,
alunite, KAl.2SO4, meionite, phlogopi)
- A name change for one item only, Al2O3
glass, from "Al2O3(g)" to "Al2O3-gl"
- Revision of the text headers not read by software, both files
Archived Gastherm1990
Latest Gastherm3000
The software
to be used with either database
Demo run
files with initial parameters already set
All of the project content
except the !data and !tests directories. Updated from time to time,
see the listing here for
its date and time
Other contributors to the current project—
Mark
Reed - UOregon
Allan
Lerner - USGS
Peter
Kelly - USGS
The software is used to compute the distribution of chemical
components among gases in a mixture, with program Solvgas, or among
gases, liquids, and solids in multi-phase systems with program
Gasworks, and both using the Gastherm database
Program Solvgas was derived from Solveq, and Gasworks from Chim-xpt
(formerly Chiller.) A significant limitation of both Solvgas
and Gasworks is that liquid water can exist only as a pure phase
with no dissolved components. A significant delight is that both
Solvgas and Gasworks are entirely free of the bookkeeping issues
relating to charge balance, redox, and activity coefficients for
aqueous species. If going forward Solvgas and Gasworks were to be
improved so as to allow higher pressure calculations, then proper
accounting of attendant non-ideal behavior would be required.
Including that for mixtures where the individual gases may interact
with one another in their non-ideality. Bookkeeping issues of a
different sort, then.
Program Solvgas computes the gas phase species equilibrium
distribution of as a function of temperature and pressure, where P
is currently limited to 1 bar. As an accessory to input of gas
composition data, the fugacities for gases e.g. O2 can be
imposed. Solvgas also computes with respect to the gases, the
saturation state of solids and liquids that could precipitate as
sublimates or condensates. An additional capability is that of
forced mineral equilibration, where the relative amount of a
component gas is adjusted (forced) during computation so that it is
in equilibrium with a specified solid or liquid that contains it.
For fumarole sublimate precipitates that may be present, this
capability can be used to estimate the amount of gas in a sample
that is not typically measured, or present only depth at higher
temperature. The forced mineral equilibrium capability is useful in
reconstructing the composition of a gas at depth, where a complete
(as complete as possible) composition is required for modeling with
program Gasworks.
Program Gasworks computes the equilibrium distribution of the
chemical components among the gases, solids, and pure liquids. The
amounts of the components can be changed incrementally allowing for
so-called reaction path calculations. Some examples:
- Wall rock alteration from reactions with gas, with or without
groundwater
- Gas composition change from reactions with wall rocks, with or
without groundwater
- Precipitation of condensates and sublimates with ascent and
cooling
- Scrubbing and and removal of reactive gases thereby reducing
emission at the surface, e.g. SO2
Future work might include expanding the database and software to
allow calculations to 5 kbar pressure as was done for Soltherm.
Enabling for instance, calculating the solubility of metals that are
used to fabricate rocket nozzles, in combusted fuel exhaust from
rocket nozzles, at operating temperatures and pressures. Rocket
science, aha. A spur in the programming and computation road
doubtless traveled decades ago. Ours however will be better and of
course free.
Some publications
authored at least in part by Robert Symonds, the primary contributor
to the original project
A summary of the procedure to update Gastherm [Procedure tested and
working, Jun-2023] —
- Find in the references the enthalpy, entropy, and heat capacity
for each gas, or each mineral/solid or liquid, and add those to the
Supcrt database.
- Use these programs:
- SupcrtRxnGT
- creates Supcrt reaction files. Uses input files Gastherm.dat and
one of two (incrementally updated) name index tables [Nov-2022]
- Supcrt96
- computes logK's. Uses input files from SupcrtRxnGT,
above [1996].
- Gastab
- generates Gastherm-formatted records from Supcrt96
logK output. Uses input files Gastherm.dat, one of the the name
index tables, and Supcrt96 output [Feb-2023].
- RegressGT
- generates the last line of each Gastherm record, regression
coefficients for interpolating logK's at intermediate temperatures
using the equation logK(T,°K) = a + b T-1 + c T + d T-2
+ e log(T) [Mar-2023].
- Insert the new data into Gastherm
More info —
- Data & References:
- Local
- janaf.nist.gov
- Thermochemical
Data of Pure Substances, 3rd ed. (Barin, I.)
- SupcrtRxnGT
— Reads the previous version of Gastherm (1990), name index tables
to reconcile names between Gastherm and the Supcrt96 database, and
writes a reaction file for Supcrt96. Largely complete [Nov-2022].
- Input files:
-
Gastherm 1990
- GTgases.tbl, index table
of derived gas names
- GTsolids.tbl, index
table of mineral, solid, and liquid names
- Output files:
- GTgases.rxn,
Supcrt reaction file for gases, or in a separate run
- GTsolids.rxn,
Supcrt reaction file for solids and liquids
-
MissingItems.dat, items that are missing from the index tables
- Gas name index files. These reconcile the
names of gases and solids between the Gastherm (limited to 8
characters) and Supcrt96 databases. Existing species to be copied
from "all" to "current" as they are added to the Supcrt database:
-
GTgases.all.tbl, 585 gases in Gastherm [1990]
-
GTgases.current.tbl, 5 gases [Nov-2022]
-
GTgases.current.tbl, 429 gases [Jun-2023]
-
GTsolids.all.tbl, 399 items in Gastherm [1990]
-
GTsolids.current.tbl, 4 items [Nov-2022]
-
GTsolids.current.tbl, 111 items [Jun-2023]
- Supcrt96 — Computes Log K's for gases
and solids. Identical to a copy elsewhere on this site, but with
data limited to those more relevant to the task at hand.
- Input files:
- Dpronshp.dat,
thermodynamic data, direct access
- GT.con, temperature
and pressure array
- GT*.rxn,
reaction file
- Output file:
- Name =
*dealer'schoice*.*
- Some notes regarding sequential access
database Spronshp2011GT.dat:
- Is used to
generate direct access database Dpronshp.dat with program Cprons96.
- Is a
provisional SPRONS version for updating the GASTHERM, and currently
containing 758 gases.
- Contains all of
the non-silicate minerals from Helgeson & Shock in Slop16.dat.
- The ultimate
goal is to construct a single SPRONS database for both GASTHERM and
SOLTHERM
- Gastab
— Reads abbreviated Supcrt96 output, the previous version of
Gastherm used to generate the the Supcrt reaction file, and the
aforementioned name index tables, and writes records properly
formatted for Gastherm, but without regression coefficients
[Feb-2023]
- Input files:
- Gastherm, the
same version used to generate the Supcrt96 reaction file
- One of the two
name index tables, GTgases.tbl and GTsolids.tbl, the same as for
SupcrtRxnGT
- Supcrt96 logK
output (name = *dealer'schoice*.* from above)
- Output file:
- Name =
*adifferentchoice*.* (different from the input file name.)
- RegressGT
— Reads logK's in Gastab output containing the almost finished
Gastherm records, computes the regression coefficients, and inserts
those into the fourth and last line of each record, in a copy of the
input file [March-2023]
- Input file:
- RegrunGT.dat.
The first line should show an integer count of the records that
follow.
- Output files:
- RegoutGT.dat,
Gastherm records ready for use
- RegpltGT.dat,
comparison of regressed output log K's to input log K's
- Gasprint
— Reads Gastherm and writes the reactions in a more readable form
for the user [Aug-2023]
- Input file: Gastherm.dat
- Output file: GasthermReactions.dat
[2023-Nov-22]