--------------------------------------- PHAST, Version 3.7.3 (December 2, 2021) --------------------------------------- --------------------- Git November 24, 2021 --------------------- PHAST: Fixed a misconfiguration in the phast3 CMake project. This caused MPI runs to fail on the phast and phast4windows distributions for version 3.7.1-15876. --------------------- Git May 8, 2021 --------------------- Fixed a major bug in the new feature that writes SELECTED_OUTPUT and USER_PUNCH prefix.wel.so_n.tsv, where n is the user number of the SELECTED_OUTPUT definition. The concentrations of the topmost cell were used for the calculation, instead of the integrated concentrations from all the open intervals of the well. The concentrations from the integrated well-riser calculation are now used for the calculation that produces the SELECTED_OUTPUT and USER_PUNCH results. ----------------------------------------------------------------- Version 3.7.0-15749 April 29, 2021 ----------------------------------------------------------------- --------------------- Git February 19, 2021 --------------------- PHAST: Fixed zero divide when running with one cell and dumping the module. PHAST: Bug fix for ZoneFlow. Steady state flow in the Z direction incorrectly accounted for the internal flow boundaries. Revisions have fixed the problem. --------------------- Git February 19, 2020 --------------------- PHAST: Added new output files for wells. Selected output files can now be written for wells. The SELECTED_OUTPUT and USER_PUNCH definitions from the .chem.dat files are now used to write files named prefix.wel.so_n.tsv, where n is the user number of the SELECTED_OUTPUT definition. The water composition of an extraction well is run with the utility IPhreeqc instance as a SOLUTION, generating selected output files, one for each SELECTED_OUTPUT definition in the .chem.dat file. The printing of initial conditions is controlled by the print flag PRINT_INITIAL; -xyz_well (the same print flag used for initial conditions for the prefix.wel.xyz.tsv file). Similarly, print frequency to the new files is controlled by PRINT_FREQUENCY; -xyz_well (the same print flag used to control print frequency to the prefix.wel.xyz.tsv file). The selected output file has columns for x, y, z, time, and well number prepended to the columns for the selected output file. A line for each well is included for initial conditions (if specified) and each printing interval as specified by PRINT_FREQUENCY; -xyz_well. These new files make the prefix.wel.xyz.tsv file somewhat obsolete. The new selected output files allow much more flexibility to obtain information about the well water, including pH, temperature, specific conductance, concentrations, and saturation indices. Version 3.6.2-15100 January 28, 2020 --------------------- Git December 17, 2019 --------------------- PHAST: Added 4 Basic functions. TRANSPORT_CELL_NO: Returns the cell number, in the transport model numbering, for the current chemical cell calculation. VELOCITY_X: Returns the X component of the velocity vector at the cell node. It is a signed quantity. VELOCITY_Y: Returns the Y component of the velocity vector at the cell node. It is a signed quantity. VELOCITY_Z: Returns the Z component of the velocity vector at the cell node. It is a signed quantity. The magnitude of the velocity vector is SQRT(VELOCITY_X^2 + VELOCITY_Y^2 + VELOCITY_Z^2) --------------------- Git November 20, 2019 --------------------- PHAST: Updated to PHREEQC 3.6.0. --------------- Git Dec 6, 2018 --------------- PHAST: Changes to the restart file. Previously, the unsaturated zone cells were indicated by a -1 in the first entry after the cell number in the table at the top of the file and positive numbers were used for partially and totally saturated cells (undifferentiated). Now, a 1 is used to indicate a saturated cell, a 0 is used to indicate a partially saturated cell, and a -1 is used to indicate an unsaturated cell. Previously, the reactants in unsaturated cells were not written to the restart file. Now, the total set of reactants for all cells are written to the restart file. Thus, there is a change for partially saturated and unsaturated cells: for partially saturated and unsaturated cells, the reactants in the unsaturated part are added to the reactants in the saturated part, and the sum is written to the restart file. --------- svn 12679 --------- PHAST: Phastinput did not have enough precision in the field for the end of a simulation period. Under some conditions, the number written could be the same as the previous period, which caused an error exit. More digits are now written in the Phast.tmp file. ----------------------------------------------- Version 3.3.11 (12535): March 10, 2017 ----------------------------------------------- ----------------------------------------------- Version 3.3.10 (12220): January 12, 2017 ----------------------------------------------- ----------------------------------------------- Version 3.3.9 (11951): November 15, 2016 ----------------------------------------------- --------- svn 11770 --------- PHAST: Minor code change to eliminate compiler warnings. ----------------------------------------------- Version 3.3.8 (11728): September 13, 2016 ----------------------------------------------- --------- svn 11170 --------- PHAST: Added to error messages when a transport calculation fails. ----------------------------------------------- Version 3.3.7 (11094): April 21, 2016 ----------------------------------------------- ----------------------------------------------- PHAST, Version 3.3.6, (11064): April 18, 2016 ----------------------------------------------- --------- svn 11040 --------- P4W: Added CELL to options for UNITS for solids. --------- svn 11020 --------- P4W: Fixed a bug in prisms that did not have a perimeter defined. --------- svn 10937 --------- P4W: Implemented PRINT_LOCATIONS in P4W. ----------------------------------------------- PHAST, Version 3.3.5, (10806): February 3, 2016 ----------------------------------------------- --------- svn 10668 --------- All programs: Now using Jenkins for continuous integration. --------- svn 10632 --------- PhreeqcRM: Revised transfer of data for MPI when rebalancing. Serializes lists of characters, integers, and doubles, instead of writing full "dump" version of each reaction. Is much faster for cell transfers when rebalancing among processes. --------------------------------------- PHAST, Version 3.3.3, October 23, 2015 --------------------------------------- --------- svn 10417 --------- Corner case for HDF file with no SELECTED_OUTPUT definition did not handle intermediate HDF file correctly. Installer for P4W revised to install even if MPI installation fails. In this case, the MPI version of PHAST will not run, but the OpenMP version will still work. --------- svn 10400 --------- Rerun transport to try to eliminate negative concentrations. Now stops if negative concentrations persist. ----------------------------------------- PHAST, Version 3.3.2 (October 2, 2015) ----------------------------------------- --------- svn 10255 --------- Set minimum concentration to 1e-18. ----------------------------------------- PHAST, Version 3.3.0 (September 15, 2015) ----------------------------------------- --------------- svn 10160-10244 --------------- Revised PhreeqcRM and PHAST to minimize memory footprint for MPI. Removed many unneeded variables from the PHAST workers, both for workers that do chemistry only, and workers that do both chemistry and transport. Revised the logic of PhreeqcRM so some variables, like porosity and saturation, have only the values related to the cells that are defined to each worker. The changes should considerably decrease the total amount of memory needed for a PHAST MPI run. The processing of restart files was revised for MPI. Previously, each process read the entire restart file. For machines that have many processors, like some SGI computers, the total memory needed to process the restart files when using many worker processes was quite large. Now, the root process reads the restart file, and distributes the initial conditions to the worker processes. MPI PHAST now takes a single integer argument. This argument specifies the number of transport calculations that will be run simultaneously. The total number of tranport calculations is equal to the number of components in the system, normally 6-20. Decreasing the number of simultaneous transport calculations will decrease the total memory footprint of a calculation. If memory is not an issue, use the default (no argument) to run all transport calculations simultaneously. --------------------------------------- PHAST, Version 3.2.2 (August 24, 2015) --------------------------------------- Initial release of PHAST and Phast4Windows version 3. Release numbers will now correspond to the underlying PHREEQC release number. PHAST version 3 uses PhreeqcRM (Parkhurst and Wissmeier, Advances in Water Resources, 2015) as the reaction engine. PhreeqcRM is maintained with the latest version of PHREEQC version 3 and implements parallel processing with MPI (multiprocessing) or OpenMP (multithreading). Most testing has indicated that the MPI parallelization is more efficient. PHAST version 3 uses the same input and output file syntax as version 2. No changes in input are necessary to use version 3 and all previous input files should run with version 3. Phast4Windows is the Windows graphical user interface, which runs either multiprocessing with MSMPI (which is installed with P4W) or multithreading with OpenMP. The Windows batch installation of PHAST contains 64-bit versions for MPI (phast- msmpi.exe) and OpenMP (phast-mt.exe). The installation also includes a 32-bit version of ModelViewer, which is used to visualize results written to the HDF file (.h5), and the phasthdf.exe, which is a Java utility used to extract results from the HDF file. The Unix batch installation of PHAST contains no executables. The user must compile the OpenMP and (or) MPI executables, which is facilitated by the configure utility. Compilation details are included in the README file. The installation includes the Java utility phasthdf, which can be used to extract results from the HDF file. --------------------------------------- PHAST, Version 2.4.7 (September, 2014) --------------------------------------- -------- Svn 4812 -------- Added spatially distributed tortuosity as a media property. Previously, a constant tortuosity-molecular diffusivity product applied to the entire model domain. Now, molecular diffusivity is constant, but tortuosity may vary over the model domain. Tortuosity affects only the molecular diffusivity terms in the dispersion tensor; it does not multiply the dispersivity term. Usually, tortuosity is important only for diffusion-only calculations. MEDIA -zone 0 0 0 10 10 10 -tortuosity 1 -long_dispersivity 0 -horizontal_dispersivity 0 -vertical_dispersivity 0 -zone 5 5 5 10 10 10 -tortuosity 0.5 The above example defines a domain 10 by 10 by 10 meters. The calculation is intended to be diffusion-only. Dispersivity is set to 0. Tortuosity is set to 1 for the whole domain, and redefined to 0.5 for one eighth of the region (the right, back, upper zone). A tortuosity field is now printed in the .probdef.txt file if "-media_properties true" is defined in the PRINT_INITIAL data block. --------------------------------------- PHAST, Version 2.0.2 (September 7, 2010) --------------------------------------- Update with latest PHREEQC --------------------------------------- PHAST, Version 2.0.1 (September 2, 2010) --------------------------------------- Update with latest PHREEQC --------------------------------------- PHAST, Version 2.0.0 (August 12, 2010) --------------------------------------- Major revisions to PHAST. PHAST version 2 has extended capabilities to handle spatial data. As much as possible PHAST input is grid independent and does not use node-by-node input. * Spatial data can be defined by prisms that use ARC-INFO coverages for definitions of perimeter, top surface, and bottom surface of a prism. * Three-dimensional scattered data points can be used to define media, boundary-condition, and initial-condition properties. * Flow of water and solutes can be aggregated for multiple irregularly shaped zones. * Heads can be saved as a function of time and space, which can be used in specified-head boundary conditions in subsequent runs. Facility allows running submodels. * Grid independent .gz files can be written to save the chemical state of a simulation for use in subsequent models. * Drain boundary conditions have been added. * Windows installation by .msi file. * .configure has been implemented for compiling on Linux -------- svn 4290 -------- Allow leaky boundary on positive Z face. No writes to Phast.tmp so that PHAST delivers flux to water table. -------- svn 4021 -------- Fixed bug with parts in shapefile. Removes identical, consecutive points. Checks for zero area in simple polygons. -------- svn 4002 -------- Revised handling of dry column of cells with flux and river boundary conditions. -------- svn 3902 -------- Added options to the UNITS keyword to allow moles of solid reactants to be interpreted as moles per liter of WATER or moles per liter of ROCK: UNITS -equilibrium_phases ROCK -exchange ROCK -surface WATER -solid_solution WATER -kinetics WATER -gas_phase WATER By default, the number of moles of solid reactants are interpreted as per liter of water. Using the ROCK option, PHAST interprets the number of moles of solid reactants obtained from the initial PHREEQC calculation as per liter of rock. Note that an initial PHREEQC calculation is made at the beginning of a PHAST run. During this calculation all reaction calculations interpret the concentration of solid reactants as simply moles. (When a solution is reacted with the solids, the solution contains a mass of water, which is usually 1 kg, but not necessarily.) It is only when initial conditions are subsequently distributed in the PHAST calculation that solid reactants are scaled. If the units are WATER, t here is no scaling and the number of moles of solids is the number of moles per liter of water. If the units are ROCK, the number of moles of a solid reactant is multiplied by (1-phi)/phi, where phi is the porosity in the cell receiving the initial condition, to arrive at the number of moles of solid reactant per liter of water. The addition of the ROCK option is motivated by the possibility of a domain with a distribution of porosities. In this case, the number of moles of solid reactants per liter of water-- the units used by PHAST--also vary spatially. By using the ROCK option, a constant rock composition can be defined and the factor (1-phi)/phi is used to scale the number of moles of solid reactant to obtain the number of moles per liter of water in each cell. Added four basic functions for use only with PHAST. The functions are related to the volume, porosity, and water saturation of a PHAST finite-difference cell: CELL_VOLUME--The total volume of the cell in liters. CELL_PORE_VOLUME--The void volume of the cell in liters. CELL_SATURATION--The fraction of the void volume filled with water, unitless. CELL_POROSITY--The porosity of the cell, equal to CELL_PORE_VOLUME / CELL_VOLUME, unitless. For example, in a USER_PUNCH program for a PHAST run, the number of moles of dissolved chloride in a cell is TOT("Cl")*CELL_PORE_VOLUME for confined flow simulations. More generally, the number of moles of dissolved chloride is TOT("Cl")*CELL_SATURATION*CELL_PORE_VOLUME, for confined or unconfined flow. For solids, the number of moles of calcite in the saturated part of a cell is EQUI("Calcite")**CELL_SATURATION*CELL_PORE_VOLUME. For unconfined flow, the solid reactants are distributed between the saturated and unsaturated part of a water- table cell. It is a limitation of PHAST that it is not possible to determineIf the amounts of solid reactants in the unsaturated part of a cell. Note that for steady-state, unconfined flow, the unsaturated part of a water-table cell is never part of the active domain. svn 3613: SOLUTION_RAW: c++ version used in PHAST misinterpreted the element Tc as the temperature identifier and crashed when additional elements followed in -totals or -activity_coefficients. Removed "tc" as an identifier for temperature. svn 3514: Fixed bug with river polygons. Complete overlap caused an empty polygon, which was not initialized properly. svn 2977: Major new feature. Added a "prism" primative, which defines a volume defined by a polygonal right prism. By default, the top and bottom of the prism are the top and bottom of the model domain. Optionally, the prism may be truncated by a top and (or) a bottom, which may be defined in several ways. Zone, wedge, and prism can be used at any place in the input file that would accept a "zone" definition in the original documentation. Interpolation is performed by delauney trangulation and nearest neighbor interpolation (weighted by areas) within the convex hull of the scattered points. Outside the convex hull, the Z value of the nearest point is used as the interpolated value. The polygonal perimeter may be defined by the following: (1) A shape file (SHAPE), logically a polygon type shape file, (2) An XYZ file (XYZ), a file which contains a list of XYZ triples; at least 3 triples must be defined, (3) A list of points (POINTS), at least three triples of XYZ coordinates. The top and bottom may be defined by the following, which are interpreted to be scatterd data from which the Z value for an X, Y point can be interpolated: (1) A shape file (SHAPE) plus the column number of the dbx file containing the Z information, (2) An XYZ file (XYZ), a file that contains a list of XYZ triples, (3) An ascii Arc raster file (ARCRASTER), (4) A list of points (POINTS), triples of XYZ coordinates, (5) A constant Z value (CONSTANT). Examples: (1) MEDIA -prism -perimeter SHAPE arcdata\coastline.shp -acive 1 That part of the grid volume that falls within the coastline will be considered active. (2) MEDIA -prism -top SHAPE arcdata\formation_top.shp 3 -bottom ARCRASTER arcdata\formation_bottom.txt -kx 1e-3 -ky 1e-3 -kz 1e-3 That part of the grid volume that falls below the surface defined by the scattered points (or contours) of the formation_top shape file and above the surface defined by the scattered points of the formation_bottom ascii Arc raster text file will have the specified hydraulic conductivities. (3) LEAKY_BC -prism -perimeter POINTS 0 0 0 0 100 0 100 0 0 -bottom CONSTANT 10 -face X -k 1e-3 -thickness 100 -head 0 15 Those cells with exterior X faces that fall within the X, Y coordinates of the triangle defined by the perimeter (Z coordinates are ignored at this time, but must be entered) and have Z values of 10 or greater will be treated as leaky boundary cells with the specified properties. svn 2977: Fixed interpolation for properties. Erroneously extrapolated past the end points, now uses closest end point for points outside the interval. svn 2906: A wedge volume primitive has been added for definition of spatial data. A wedge can be used to define sloping features within the model domain. Previously all definitions were zones (rectangular parallelopipeds). The wedge is a right-triangular prism with two triangular and three rectangular facets. the rectangles are perpendicular to the triangles. A wedge is defined as a rectangular parallelopiped with two points, the minimum and maximum x, y, z locations. The additional identifier designates the orientation of the wedge: an axis and a digit. Wedges are classified by the orientation of the triangular faces as X, Y, or Z. An X triangular face is perpendicular to the X axis. An additional digit identifies the location of the right triangle relative to the axis. X1 (right triangle is nearest the axis), X2, X3, and X4 designate prisms where the right triangle is rotated counter clockwise from the X axis. svn 2891: Major revision in the handling of flux, leaky, and river boundary conditions. Leaky and flux boundaries are now implemented to be grid independent. The areas defined for these boundaries apply exactly, whereas previously, the boundaries snapped to the entire face of a cell for which the node was included in the zone definition. Now these boundaries are applied to fractional cell areas as defined by the extent of the defining zone or wedge. Zones or wedges for flux and leaky boundary conditions are allowed to be three dimensional (previously required to be two dimensional). It is strongly recommended that the cell face desired for the flux or leaky condition be specified explicitly (-face X, Y, or Z). All exterior faces (full or partial) of the proper orientation (as defined by -face), are used for the flux or leaky boundary. No distinction is made between positive or negative faces (top vs bottom, or front vs back) in the specified direction; all exterior faces of the specified orientation that are included in the zone will be included in the boundary condition definition. If a series of flux (or leaky) boundaries is defined. Areas are calculated for each definition of the series. The areas are applied from last to first. Thus if an earlier and a later definition have areas that overlap, the overlapping area is included with the later definition and excluded from the earlier definition. Partial cell areas that do not include the node of a cell are now included as part of the flux definition, whereas previously these partial cell faces were excluded. These changes imply that input files may produce different results with the current version than with previous versions. To reproduce previous results, all flux and leaky boundary definitions should include entire cell faces. xxx Changed back above. Rivers inflows or outflows are now aggregated differently than previous versions. River leakage is accumulated in the same way as a series of leakage boundaries. Flow is calculated for each area (all areas are non overlapping) and the flux of solute is aggregated as the sum of the solute concentrations times the flow rates for each area. Previously, cells were categorized as river inflow or outflow cells (based on the agregated flow from all river segments in a cell) and only inflow or outflow concentrations were used in the flux calculations. Now river, flux, and leaky boundaries are handled in a similar manner. svn 2890: Fixed error in river associated solution. If segments were defined with the same solution at each end, the concentrations in the river were not calculated correctly. Only the downstream fraction of the solution was added. This was an error when river water entered the aquifer. svn 2880: Fixed error in leaky boundary condition combined with free surface. The saturated fraction was used twice in the calculation. svn 2785: Fixed bug with transient river boundary condition data. Worked correctly if changes were made to all rivers, but incorrectly if only one of multiple rivers changed conditions (head or solution). Similar change was made for wells. --------------------------------------- PHAST, Version 1.5.1 (March 24, 2008) --------------------------------------- svn 2766: Fixed bug with surfaces (svn 2745) in parallel version. svn 2751: Fixed bug with xyz_well print frequency. Caused an array deallocation error if no wells included in problem. svn 2745: Fixed bug related to surfaces. The error was a major bug when using the -no_edl surface option. The charge developed on a surface was not saved correctly in xsurface_save_hst. This routine was replaced with xsurface_save, which should give results equivalent to PHREEQC. svn 2729: Fixed bug in delimited values (values delimited by "< >" in the .trans.dat file. Earlier versions failed to handle multiple sets of delimited values unless there was a space before the concluding ">" for each set. Now, the space is not necessary. svn 2707: Modified mpimod.F90 to use mpif.h, which should be more robust than previous usage of mpi routines and variables. Made serial and parallel dependencies identical. Revised dependencies in Makefile. --------------------------------------- PHAST, Version 1.5.0 (February 5, 2008) --------------------------------------- svn 2628: Added optional rebalance algorithm for parallel version, -rebalance_by_cell T/F. Default is false. By default, PHAST looks at the total time taken to run chemistry on a block of cells and from that calculates the average time per cell, which is used to rebalance the load among the available processors. The new algorithm (-rebalance_by_cell T) measures the time for each cell individually and rebalances based on this information. The new method should only be needed for kinetic problems where some cells take much longer to run than other cells. svn 2529: Changed linker option for --hash-style. By default compilation used gnu style hash, which was incompatible with C libraries compiled with old style hash. New option should work with all libraries. --------------------------------------- PHAST, Version 1.4.2 (November 17, 2007) --------------------------------------- svn 2283: Now writes .restart.gz, a gzip file. File can be unzipped and edited. On restarting, either ascii or gzipped file can be read; type is determined automatically. Removed old code for restart file. svn 2228: Rewrote code for reading a restart file. Fixed a bug where a stream was receiving the echo of the restart file, which made it fail for large restart files. Also, previously, every process tried to read the entire restart file into memory. This also would cause problems if the restart file was large. Now the restart file is read by root keyword by keyword and data are passed to the appropriate process with MPI. --------------------------------------- PHAST, Version 1.4.1 (September 5, 2007) --------------------------------------- svn 2220: Fixed bug in WPhast, was not setting chemistry dimensions correctly when initializing from an h5 file. --------------------------------------- PHAST, Version 1.3.4 (August 30, 2007) --------------------------------------- svn 2188: Revised for MPICH2: new comm_world number, rearranged header files. Fixed bug with print_frequency sometimes failed with a zero deltim when using gfortran. svn 2088: Now uses hdf5 1.6.5. for both linux and windows. svn 2066: Fixed error trap for boundary condition solution that was not defined in .chem.dat file. svn 2066: Added -start_time to TIME_CONTROL data block. -start_time allows the calculations to begin at a time other than zero. This feature is useful for restart runs from the end of a previous calculation when chemical conditions were saved (PRINT_FREQUENCY; -restart). The original .trans.dat file can be used (preferably copied to a new name so previous results are not overwritten) with the -start_time set to the -end_time of the previous run and -end_time extended to a later time. CHEMISTRY_IC is modified to define the initial chemistry conditions to be read from the restart file of the previous run. For transient flow, the head should also be saved in the original run (PRINT_FREQUENCY; -save_final_heads) and set as initial conditions for the subsequent run (HEAD_IC). In the subsequent run, boundary conditions will be applied according to their time-series sequence, even if the changes are earlier than -start_time. No time stepping for flow and chemistry will occur until -start_time. The -start_time feature is also useful for running simulations by natural year number, say from 1990 to 2005 or by Julian day, when the simulation does not start at Julian day zero. --------------------------------------- PHAST, Version 1.3.2 (February 1, 2007) --------------------------------------- svn 1700: Updated to PHREEQC 2.13.2. svn 1641: Fixed bug in velocity interpolation for 1 element inactive zone. --------------------------------------- PHAST, Version 1.3.1 (January 16, 2007) --------------------------------------- svn 1595: Updated to PHREEQC 2.13.1. --------------------------------------- PHAST, Version 1.3.0 (November 3, 2006) --------------------------------------- svn 1004: Fixed diffuse_layer bug. Flag was not initialized between cells. Fixed formatting bug with .O.wel file. Changed format for TIMCHG in Phast.tmp file. Was fixed format now g format. Works better for very small time steps in user units. svn 940: Added option to include or exclude prints at end of simulation periods. PRINT_FREQUENCY 0 -end_of_period_default t/f If set to true, printing will occur at the end of each simulation period for all print frequency options that are not equal to zero. If set to false, printing will occur only at the interval specified for each print frequency option. svn 884: Added restart capability. Chemical data can be saved and used as initial conditions for subsequent runs. The grid should be the same for the restart run as for the run that generated the restart file. In general, it is assumed that the boundary condition types and media properties will be the same for the restart run. However, it should be possible to change boundary condition types and media properties in subsequent simulations, provided the grid remains the same. To save data to a restart file: PRINT_FREQUENCY -restart 100 yr In this example, the chemical state of the system will be written to file (prefix.restart) every 100 years. At each time of writing, the old prefix.restart file will be copied to prefix.restart.backup and the new time plane will be written to prefix.restart. Only one time plane is saved in prefix.restart and one in prefix.restart.backup. You must be careful to save (rename) your restart file following a run so that it does not get overwritten in subsequent runs. To use data from a restart file, use the identifier "restart" in CHEMISTRY_IC in the same way that the identifier "file" can be used. CHEMISTRY_IC -zone 0 0 0 1000 1000 100 -solution restart prefix.restart.save -exchange restart prefix.restart.save -surface restart prefix.restart.save -kinetics restart prefix.restart.save -equilibrium_phases restart prefix.restart.save -gas_phase restart prefix.restart.save This example defines all the chemical data for the cells in the zone to be taken from the file prefix.restart.save (assuming a file prefix.restart was generated and renamed to prefix.restart.save). The data for cells in this zone may be overwritten by subsequent zone definitions in CHEMISTRY_IC. As is always the case, the last zone definition that includes a property for a cell is the definition that is used for that property. If the last definition for a solution is specified to be from a restart file and a solution for that cell is not found in the restart file, it is a fatal error. If any other entity (exchange, surface, etc) is not found in the restart file for a cell, it a warning is printed. Prefix, date, current model time, and the number of nodes in each coordinate direction (nx, ny, nz) are written as comments at the top of the restart file. svn 602: Added print of database, input, and output files to .log and .O.chem files. Removed check for .chem.dat and database files from phastinput. --------------------------------------- PHAST, Version 1.2 (September 28, 2005) --------------------------------------- Added new identifier in SOLUTION_METHOD, -rebalance_fraction f where f is a number in the range of 0 to 1. This option applies only to the parallel version of phast. After each time step, phast evaluates how to optimally rebalance the cells among the processors for the chemical calculation. It estimates a number of cells to transfer from one processor to the next. The factor f is multiplied times the estimated number of cells to obtain the actual number of cells transferred. Default is 0.5. Modified PHREEQC to avoid a convergence problem that occurred in trying to find the stable phase assemblage in a simulation with many, many time steps. Occasionally an exponentiation would underflow stopping the simulation. Limited log activities of master species to be greater than the smallest machine precision exponential number. Avoids a "matherr" exception and allows trial of additional parameter sets to attempt to solve the system of equations. Updated to PHREEQC 2.12, which includes Pitzer aqueous model. Pitzer funtionality is now available in serial and parallel versions, simply use a chemistry database file that includes the PITZER keyword datablock. However, lack of density-dependent flow makes use for brines problematic. Major revision of parallel calculation. Now has one routine for master process that calculates flow and transport (and chemistry) and one routine for processes that calculate only chemistry. New version has major savings in memory requirements. However, the master process may still have large memory requirements. Added scaling for flow and transport equations using L-infinity norm. A diffusion-only problem failed unless "SOUTION_METHOD; -tolerance x" was extremely small. -tolerance 1e-14 should now be minumum tolerance and same tolerance should apply equally well to all flow and transport. Only rows are scaled; column scaling is not used at this time. Fixed file opening logic for flow-only calculation. Error messages now printed to screen. Fixed convergence test for steady-state with no flow. Avoids error with NAN in calculation of relative flow-rate imbalance. Fixed bug with free surface and steady flow. Solution volume was not scaled correctly and gave anomalous results for cells with small water volumes. Volume of water to amount rock was not consistent. --------------------------------------- PHAST, Version 1.1 (February 14, 2005) --------------------------------------- Converted to Subversion version control system. Now includes latest PHREEQC files automatically. PHAST 1.1 includes files from PHREEQC 2.11. Fixed file deletion; some temporary files were not deleted at end of run. Fixed version number and printing format. --------------------------------------- PHAST, Version 1.0 (December 20, 2004) --------------------------------------- (1) Flow and transport data files from version RC3 will not run with PHASTINPUT Version 1.0. The way that time-series data are defined has changed for boundary conditions, wells, rivers, time step, and print frequencies. A sequence of data blocks separated by END keywords is no longer used to define simulation periods. For boundary conditions, all time-varying properties are defined immediately following the -zone definition. Time series for wells are defined immediately following the -pumping/-injection identifier and following the -solution identifier. Time series for a river point are defined by -head and -solution following the definition of the location of the river point (-point). Time series for time step are defined in a single TIME_CONTROL data block. Print frequencies are defined for a sequence of times. At each time, print frequencies for various files may be redefined. (2) The handling of the unsaturated zone has changed in free-surface simulations. The unsaturated flow is not modeled, so free-surface calculations still contain major approximations. However, an attempt has been made to avoid some mass-balance errors related to rising and falling water tables. The program now separates the solids in a cell containing the water table into two reservoirs, the saturated and unsaturated reservoirs. As the water table rises, solids are transferred from the unsaturated reservoir to the saturated reservoir. As the water table falls, solids are transferred from the saturated reservoir to the unsaturated reservoir. The main deficiency of the current implementation is that solids in the unsaturated reservoirs are removed from the calculation and do not react with recharge that is, in fact, percolating through these solids. There is also no way to view or print the masses of solids that are in the unsaturated reservoirs. (3) Mass-balance accounting for reactions has been added and the method for calculating mass-fluxes at boundaries has been changed to be consistent with the selected time-weighting scheme for the finite-difference equations. (4) The FLOW_ONLY keyword has been replaced with the SOLUTE_TRANSPORT keyword. (5) Input for rivers has been revised. Each river point location must now be defined with the -point identifier. Default properties have been eliminated. All properties (width, depth, bed thickness, bed hydraulic conductivity, head, and solution composition) are now interpolated. All properties must be defined at the end points of the river. Additional data may be defined at other river points. At the beginning of each simulation period, head and solution properties for river points are updated with any new values and interpolation for head and solution composition is performed. ------------------------------------------------------ RC-3 (phast rcsfreeze C_52; phastinput rcsfreeze C_27) ------------------------------------------------------ Added warnings for incompatibilities in boundary conditions. Separated print_locations into input for .xyz.chem and .O.chem Added vertical dispersivity. Added mask to each zone. Fixed bug in head tolerance in steady flow; Did not convert head to pascals for Phast.tmp. Changed defaults for print_initial and print_frequency. Set water compressibility to zero for all cases, confined and unconfined. Eliminates the error if storage is less than water compressibility alone. set fluid viscosity to 0.001. Made FLUID_PROPERTIES data block obsolete. Changed allocate_pressure to allocate_head added save_head and echo_input in print_frequency. added logic to determine number of meters below node and above node for well allocation. Minor bug fixes. Fixed error in identifying rivers with IBC array, sometimes had too many river segments. Steady flow calculation always uses upstream weighting. Fixed bugs in cross dispersion. Fixed all uninitialized variables in Fortran and checked all INTENT statements. Error if cell width is less than well bore diameter. Made it an error if print frequency is less than time step. Added horizontal and vertical transverse dispersivity. Fixed velocity calculation for edges of excluded zones. Fixed logic related to an inactive cell above a free surface. Finished implementing single log file. Made print controls more uniform. Changed algorithm for multiple river segments with different bottom locations, hydrostatic location of water table. Fixed bugs with merging files with MPI. MPI algorithm for printing sends one message per processor instead of one message per cell. Fixed memory leak with exchange under some conditions. Added alkalinity to .xyz.wel file. Minimized reallocation of space when rebalancing. PRINT_LOCATIONS can be applied to .O.xyz and .O.chem separately. Changed allocation of space for cells so that memory would not be as fragmented. Allows compilation with long double type for all of PHREEQC. Updated to latest PHREEQC: cvode integration, SYS Basic function, string functions for Basic, COPY keyword. Added digits to current time in printouts, g3 not enough. Added digits to timchg. Needs to be same as number of digits for print frequencies. ------------------------------------------------------ RC-2 (phast rcsfreeze C_42; phastinput rcsfreeze C_14) ------------------------------------------------------ Allow longer file names, check for overflow of field. Consistent with PHREEQC version 2.8 Initialized rate variables Unlimited Basic string lengths Numbering SOLUTION_SPREAD solutions "," error in input file Initialized mass-balance variables once instead of twice. Slight modification to keep better mass balance by ensuring that 1 kgw is transported. Modified phastinput to make more consistency checks on data. Check that print frequency >= time step. Use 20 place for heads and other properties in Phast.tmp to avoid slight variations in linear boundary conditions. Removed flow_only and steady_flow options from steady_flow keyword datablock. Fixed cross dispersion to handle nonuniform grid spacing. Added warning if crosd == FALSE and alphal != alphat. Added PHAST as a separate state in the PHREEQC calculations, corrected error when transport was run as part of the PHREEQC calculations in phast. Revised and added error message for case where water table is below fixed head cell. Fixed bug in distribution of well flow. Flow was distributed incorrectly for nonhomogeneous aquifer. (1/8/03) Added alkalinity to .xyz.wel file. ------------------------------------------------------ RC-1-2 (C_37) ------------------------------------------------------ Added some missing files ------------------------------------------------------ RC-1 ------------------------------------------------------ Revised rivers, did not handle multiple river segments within a cell adequately. Revision of print control. Default is no cross_dispersion terms. Added PRINT_LOCATIONS. Working on Cape Cod problem: ***Item for documentation Steady-flow calculation, takes effect even for flow only (1) Needs separate time step from transport or automatic time stepper to find steady flow. ***Two items for documentation: (1) Wells are snapped to nodes, which can make a problem asymetric Ideally, Ken will allocate flow to more than one cell if location is on a cell boundary. (2) Flux and leaky zone definitions are snapped to cells? nodes? Thus total flux varies with grid definition Ideally, flux, leaky, and river bc are accumulated by polygonal area.