diff --git a/.travis.yml b/.travis.yml index 3c1fb9de..3dca61ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: c -sudo: required os: - linux @@ -18,18 +17,34 @@ before_install: sudo apt-get purge cmake sudo apt-key update sudo apt-get update - sudo apt-get -y -f install gfortran python3 cmake + sudo apt-get -y -f install gfortran python python3 cmake fi - | if [ $TRAVIS_OS_NAME = osx ]; then - brew update && brew install gcc + brew update #&& brew install gcc + export PATH=$PATH:/Users/travis/Library/Python/2.7/bin fi +install: + - pip install --user sphinx sphinx_rtd_theme + script: + - cd docs && make html && cd .. - cd src - make all - make debug - - cd fehmpytests/ && python fehmpytests.py ../src/xfehm_v3.3.1 + # - cd fehmpytests/ && python fehmpytests.py ../src/xfehm_v3.3.1 after_success: - echo FEHM compilation successful + +deploy: + provider: pages + skip_cleanup: true + local_dir: docs/docs/html + github_token: $GITHUB_TOKEN + target_branch: gh-pages + keep_history: false + verbose: true + on: + branch: master diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..279a6559 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = FEHM +SOURCEDIR = source +BUILDDIR = docs + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/source/DataFiles.rst b/docs/source/DataFiles.rst new file mode 100644 index 00000000..0d0f8d93 --- /dev/null +++ b/docs/source/DataFiles.rst @@ -0,0 +1,462 @@ +========== +Data Files +========== + +Control file (iocntl) +---------------------- + +**Content** + +The control file contains the names of the input and output files needed by the FEHM code. In addition to listing the I/O file names, the terminal (tty) output option and the user subroutine number are given. The control file provides the user an alternate means for inputting file names, terminal output option, and user subroutine number than through the terminal I/O. It is useful when long file names are used or when files are buried in several subdirectories, or for automated program execution. The elements of the file and input requirements are described in `Control File or Terminal I/O Input `_. + +**Use by Program** + +The control file provides the FEHM application with the names of the input and output files, terminal output units, and user subroutine number to be utilized for a particular run. The default control file name is fehmn.files. If the control file is found, it is read prior to problem initialization. If not present, terminal I/O is initiated and the user is prompted for required information. A control file may use a name other than the default. This alternate control file name would be input during terminal I/O. See `Control File or Terminal I/O Startup `_. + +**Auxiliary Processing** + +N/A + +Input file (inpt) +----------------- + +**Content** + +The input file contains user parameter initialization values and problem control information. The form of the file name is ``filen`` or ``filen.*`` where ``filen`` is a prefix used by the code to name auxiliary files and ``.*`` represents an arbitrary file extension. If a file name is not specified when requested during terminal I/O, the file fehmn.dat is the default. The organization of the file is described in detail in `Individual Input Records or Parameters `_. + +**Use by Program** + +The input file provides the FEHM application with user parameter initialization values and problem control information.The input file is read during problem initialization. + +**Auxiliary Processing** + +N/A + +Geometry data file (incoor) +--------------------------- + +**Content** + +The geometry data file contains the mesh element and coordinate data. This can either be the same as the input file or a separate file. + +**Use by Program** + +The geometry data file provides the FEHM application with element and coordinate data. The geometry data file is read during problem initialization. + +**Auxiliary Processing** + +N/A + +Zone data file (inzone) +----------------------- + +**Content** + +The zone data file contains the zone information (see macro zone). This can either be the same as the input file or a separate file. + + +**Use by Program** + +The zone data file provides the FEHM application with initial geometric zone descriptions. The zone data file is read during problem initialization. + +**Auxiliary Processing** + +N/A + +Optional input files +-------------------- + +**Content** + +The optional input files contain user parameter initialization values and problem control information. The names of optional input files are provided in the main input file to direct the code to auxiliary files to be used for data input. Their use is described in detail in `Optional Input Files `_ + + +**Use by Program** + +The optional input files provide the FEHM application with user parameter initialization values and problem control information. The optional input files are read during problem initialization. + + +**Auxiliary Processing** + +N/A + +Read file (iread) +----------------- + +**Content** + +The read file contains the initial values of pressure, temperature, saturation, and simulation time (the restart or initial state values). It may also contain initial species concentrations for transport simulation or particle tracking data for particle tracking simulation restarts. The naming convention is similar to that for the output file. The generated name is of the form filen.ini. + + +**Use by Program** + +The FEHM application uses the read file for program restarts. The read file is read during problem initialization. + + +**Auxiliary Processing** + +N/A + +Multiple simulations input file +------------------------------- + +**Content** + +The multiple simulations input file contains the number of simulations to be performed and, on UNIX systems, instructions for pre- and post-processing input and output data during a multiple realization simulation. The file name is fehmn.msim. + + +**Use by Program** + +The FEHM application uses the multiple simulations input file to setup control for a multiple realization simulation. It is accessed at the beginning the program. + + +**Auxiliary Processing** + +N/A + +Type curve data input file +-------------------------- + +**Content** + +The type curve data input file contains parameter and data values necessary to compute dispersion delay times for the particle tracking models using type curves. + +**Auxiliary Processing** + + +The FEHM application uses the type curve data input file to read the parameter and data values necessary to simulate dispersion delay times for the particle tracking models. It is accessed at the beginning the program if a particle tracking simulation using type curves is run. + + +**Auxiliary Processing** + +N/A + +Output file (iout) +------------------ + +**Content** + +The output file contains the FEHM output. The file name is provided in the input control file or as terminal input, or may be generated by the code from the name of the input file if terminal I/O is invoked. The generated name is of the form ``filen.out`` where the "filen" prefix is common to the input file. + + +**Use by Program** + +The FEHM application uses the output file for general program time step summary information. It is accessed throughout the program as the simulation steps through time. + + +**Auxiliary Processing** + +This file may be accessed by scripts or user developed programs to extract summary information not recorded in other output files. + +Write file (isave) +------------------ + +**Content** + +The write file contains the final values of pressure, temperature, saturation, and simulation time for the run. It may also contain final species concentrations for transport simulations or particle tracking data for particle tracking simulations. This file can in turn be used as the read file in a restart run. The naming convention is similar to that for the output file. The generated name is of the form ``filen.fin``. + + +**Use by Program** + +The FEHM application uses the write file for storing state data of the simulation. It is accessed at specified times throughout the program when state data should be stored. + + +**Auxiliary Processing** + +This file may be accessed by scripts or user developed programs to extract final state information not recorded in other output files. + +History plot file (ishis) +------------------------- + +**Content** + +The history plot file contains data for history plots of variables. The naming convention is similar to that for the output file. The generated name is of the form filen.his. + + +**Use by Program** + +The FEHM application uses the history plot file for storing history data for pressure, temperature, flow, and energy output. It is accessed throughout the program as the simulation steps through time. + + +**Auxiliary Processing** + +This file may be used to produce history plots by external graphics programs. + +Solute plot file (istrc) +------------------------ + +**Content** + +The solute plot file contains history data for solute concentrations at specified nodes. The naming convention is similar to that for the output file. The generated name is of the form ``filen.trc``. + + +**Use by Program** + +The FEHM application uses the solute plot file for storing history data for tracer output. It is accessed throughout the program as the simulation steps through time. + + +**Auxiliary Processing** + +This file may be used to produce history plots of tracers by external graphics programs. + +Contour plot file (iscon) +------------------------- + +**Content** + +The contour plot file contains the contour plot data. The naming convention is similar to that for the output file. The generated name is of the form ``filen.con``. + + +**Use by Program** + +The FEHM application uses the contour plot file for storing contour data for pressure, temperature, flow, energy output, and tracer output. It is accessed at specified times throughout the program when contour data should be stored. + + +**Auxiliary Processing** + +This file may be used to produce contour plots by external graphics programs. + +Contour plot file for dual or dpdp (iscon1) +-------------------------------------------- + +**Content** + +The dual or dpdp contour plot file contains the contour plot data for dual porosity or dual porosity / dual permeability problems. The naming convention is similar to that for the output file. The generated name is of the form filen.dp. + + +**Use by Program** + +The FEHM application uses the dual or dpdp contour plot file for storing contour data for pressure, temperature, flow, energy output, and tracer output for dual porosity or dual porosity / dual permeability problems. It is accessed at specified times throughout the program when contour data should be stored. + + +**Auxiliary Processing** + +This file may be used to produce contour plots by external graphics programs. + +Stiffness matrix data file (isstor) +----------------------------------- + +**Content** + +The stiffness matrix data file contains finite element coefficients calculated by the code. It is useful for repeated calculations that use the same mesh, especially for large problems. The naming convention is similar to that for the output file. The generated name is of the form filen.stor. + + +**Use by Program** + +The stiffness matrix data file is both an input and an output file the FEHM application uses for storing or reading finite element coefficients calculated by the code. The stiffness matrix data file is read during problem initialization if being used for input. It is accessed after finite element coefficients are calculated if being used for output. + + +**Auxiliary Processing** + +N/A + +Input check file (ischk) +------------------------ + +**Content** + +The input check file contains a summary of coordinate and variable information, suggestions for reducing storage, coordinates where maximum and minimum values occur, and information about input for variables set at each node. The naming convention is similar to that for the output file. The generated name is of the form ``filen.chk``. + + +**Use by Program** + +The FEHM application uses the input check file for writing a summary of the data initialization. The input check file is accessed during data initialization and when it has been completed. + + +**Auxiliary Processing** + +N/A + +Submodel output file (isubm) +---------------------------- + +**Content** + +The submodel output file contains "flow" macro data that represents boundary conditions for an extracted submodel (i.e., the output will use the format of the "flow" input macro). The naming convention is similar to that for the output file. The generated name is of the form ``filen.subbc``. + + +**Use by Program** + +The FEHM application uses the submodel output file for writing extracted boundary conditions. The submodel output file is accessed during data initialization and at the end of the simulation. + + +**Auxiliary Processing** + +N/A + +Output error file (ierr) +------------------------ + +**Content** + +The output error file contains any error or warning messages issued by the code during a run. The file is always named fehmn.err and will be found in the directory from which the problem was executed. + + +**Use by Program** + +The FEHM application uses the output error file for writing error or warning messages issued by the code during a run. It may be accessed at any time. + + +**Auxiliary Processing** + +N/A + +Multiple simulations script files +--------------------------------- + +**Content** + +The multiple simulations script files contain instructions for pre- and post-processing input and output data during a multiple realization simulation. Pre-processing instructions are always written to a file named ``fehmn.pre``, while post-processing instructions are always written to a file named fehmn.post, and will be found in the directory from which the program was executed. + + +**Use by Program** + +The FEHM application uses the multiple simulations script files for writing UNIX shell script style instructions. They are generated from information contained in the multiple simulations input file at the beginning of the program. The pre-processing instructions are then executed (invoked as a shell script) prior to data input for each realization, and the post-processing instructions are executed at the completion of each realization. The following command is used to execute the scripts: + +.. code:: + + sh script_file $1 $2 + +where ``$1`` is the current simulation number and ``$2`` is nsim, the total number of simulations. + + +**Auxiliary Processing** + +N/A + +PEST output files (ispest, ispst1) +---------------------------------- + +**Content** + +The PEST output files contain output data (pressure or head, saturations, and temperatures) in a format suitable for use by the Parameter Estimation Program (PEST) (Watermark Computing, 1994). The generated names are of the form ``filen.pest`` and ``filen.pest1``, where filen is based on the file prefix for the general output file. If an output file is not defined the default names are fehmn.pest and fehmn.pest1. + + +**Use by Program** + +The FEHM application uses the PEST output files for writing parameter values generated during a run. They may be accessed at any time throughout the program as the simulation steps through time, but only values at the final state are saved. + + +**Auxiliary Processing** + +The primary file (``filen.pest``) is generated to provide input to the Parameter Estimation Program (PEST) (Watermark Computing, 1994). The second file is generated to provide a backup of general information for review purposes. + +Streamline particle tracking output files (isptr1, isptr2, isptr3) +------------------------------------------------------------------ + +**Content** + +The streamline particle tracking output files contain output data from a streamline particle tracking simulation. The generated names are of the form ``filen.sptr1``, ``filen.sptr2`` and ``filen.sptr3``, where ``filen`` is based on the file prefix for the tracer output file or the general output file. If those files are not defined the default names are ``fehmn.sptr1``, ``fehmn.sptr2``, and ``fehmn.sptr3``. + + +**Use by Program** + +The FEHM application uses the streamline particle tracking output files for writing parameter values generated during a run. They may be accessed at any time throughout the program as the simulation steps through time. + + +**Auxiliary Processing** + +These files may be used to produce streamline plots or breakthrough data plots by external graphics programs. + +Optional history plot files (ishis*) +------------------------------------ + +**Content** + +The optional history plot files contain data for history plots of variables. The naming convention is similar to that for the output file. The generated name is of the form ``filen.his``, ``filen.trc``, ``filen_param[.his, _his.dat, _his.csv, .trc, .dat, .csv]``. "param" will depend on the output parameters selected. The extension will depend on output format selected: tecplot (.dat), comma separated variables (.csv) or default (.his, .trc). + + +**Use by Program** + +The FEHM application uses the optional history plot files for storing history data for selected parameters which include: pressure, head, temperature, water content, flow, saturation, humidity, enthalpy, density, viscosity, flux, mass, displacement, stress / strain, and concentration (node based) and global output. The basic history file, ``filen.his``, will contain run information including which parameters were selected and the output node and zone data. The basic history file, filen.trc, will contain output node data and numbers of solute species by type when concentrations are output. The parameter files are accessed throughout the program as the simulation steps through time. + + +**Auxiliary Processing** + +These files may be used to produce history plots by external graphics programs. + +Optional contour output files (Advanced Visual Systems [AVS], TECPLOT, and SURFER) +---------------------------------------------------------------------------------- + +**Content** + +The contour output files contain output data for the entire grid or selected zones. The content will depend on output format (avs or avsx [``.avs``], tecplot [``.dat``], or surfer [comma separated variables, ``.csv``]) and parameters selected (material, pressure or head, saturation, temperature, flux, permeability, saturation, porosity, velocity, displacement, stress / strain, and concentration). The geometry based data can be imported into Advanced Visual Systems (AVS) UCD (unstructured cell data), TECPLOT, or SURFER graphics routines. + +The contour output files each have a unique file name indicating the section type, the data type and the time step the files were created. These file names are automatically generated by the code and are of the form ``filen.NumberAVS_id``, where ``filen`` is common to the root file name or contour output file prefix if defined, otherwise it is the input file prefix, Number is a value between 00001 and 99999, and ``AVS_id`` is a string denoting file content (see `Contour File Content Tag`_ and `AVS UCD formatted FEHM output files`_). In general, ``_head`` are header files (only used by AVS), ``_geo`` is the geometry file, and ``_node`` the data files. The following, ``_mat``, ``_sca``, ``_vec``, ``_con``, ``_mat_dual``, ``_sca_dual``, ``_vec_dual``, or ``_con_dual``, are pre-appended to ``_head`` and ``_node`` to further identify the data selected for output. Currently all properties are node based rather than cell based. + +Contour File Content Tag +-------------------------------------------- ++----------------+-----------------------------------------------------------------------------------------------------+ +| AVS_id | File purpose | ++================+=====================================================================================================+ +| _avs_log | Log file from contour output routines | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _geo | Geometry output file containing coordinates and cell information (AVS UCD geometry file format) | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _grid.dat | Geometry output file containing coordinates and element connectivity (Tecplot grid file format) | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _mat_head | AVS UCD header for material properties file. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _mat_dual_head | AVS UCD header for material properties file for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _sca_head | AVS UCD header for scalar parameter values file. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _sca_dual_head | AVS UCD header for scalar parameter values file for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _vec_head | AVS UCD header for vector parameter values. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _vec_dual_head | AVS UCD header for vector parameter values for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _con_head | AVS UCD header for solute concentration file. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _con_dual_head | AVS UCD header for solute concentration file for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _mat_node | Data output file with Material properties. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _mat_dual_node | Data output file with Material properties for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _sca_node | Data output file with Scalar parameter values (pressure, temperature, saturation). | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _sca_dual_node | Data output file with Scalar parameter values (pressure, temperature, saturation) for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _vec_node | Data output file with Vector parameter values (velocity). | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _vec_dual_node | Data output file with Vector parameter values (velocity) for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _con_node | Data output file with Solute concentration. | ++----------------+-----------------------------------------------------------------------------------------------------+ +| _con_dual_node | Data output file with Solute concentration for dual or dpdp. | ++----------------+-----------------------------------------------------------------------------------------------------+ + + +.. figure:: Images/avs_ucd_fehm_format.png + :alt: AVS UCD formatted FEHM output files. + :align: center + :figclass: align-center + + Figure 1: AVS-UCD formatted FEHM output files + + +AVS UCD formatted FEHM output files +----------------------------------- + + +**Use by Program** + +The FEHM application uses the contour output files for storing geometry based data for material properties (permeabilities and porosities), temperature, saturation, pressure, velocities, and solute concentrations in a format readable by AVS, TECPLOT or SURFER graphics. The log output file is created on the first call to the AVS write routines. It includes the code version number, date and problem title. When output for a specified time step has been completed, a line containing the file name prefix, time step, call number (the initial call is 1 and is incremented with each call to write AVS contour data) and problem time (days) is written. The header files, one for each type of data being stored, and the single geometry file are written during the first call to the AVS output routines. The node data files are written for each call to the AVS write routines, at specified times throughout the program when contour data should be stored using a specified format. + + +**Auxiliary Processing** + +These files are used for visualization and analysis of data by AVS, TECPLOT or SURFER. + +To use with AVS, the appropriate header file, geometry file, and data file for each node must be concatenated into one file of the form ``filen.inp``. This can be done with the script fehm2avs for a series of files with the same root filen or manually, for example: + +.. code:: + + cat filen.10001_head filen.10001_geo filen.10001_mat_node > filen.10001.inp + + +Once header and geometry have been merged with data files into a single AVS file, the data can be imported into AVS using the read_ucd module. + + diff --git a/docs/source/DefinitionsAndAcronyms.rst b/docs/source/DefinitionsAndAcronyms.rst new file mode 100644 index 00000000..554993d8 --- /dev/null +++ b/docs/source/DefinitionsAndAcronyms.rst @@ -0,0 +1,31 @@ +************************ +Definitions and Acronyms +************************ + +Definitions +=========== + +* FEHM - Finite element heat and mass transfer code (Zyvoloski, et al. 1988) + +* FEHMN - YMP version of FEHM (Zyvoloski, et al. 1992). + +The versions are now equivalent and the use of FEHMN has been dropped. + +Acronyms +======== + +* AVS - Advanced Visual Systems. + +* I/O - Input / Output. + +* LANL - Los Alamos National Laboratory. + +* N/A - Not Applicable. + +* PEST - Parameter Estimation Program. + +* SOR - Successive Over-Relaxation Method. + +* UCD - Unstructured Cell Data. + +* YMP - Yucca Mountain Site Characterization Project. \ No newline at end of file diff --git a/docs/source/ExamplesAndSamples.rst b/docs/source/ExamplesAndSamples.rst new file mode 100644 index 00000000..cf3692ba --- /dev/null +++ b/docs/source/ExamplesAndSamples.rst @@ -0,0 +1,1006 @@ +**************************** +Examples and Sample Problems +**************************** + +The following describes execution of the FEHM code. `Constructing an Input File`_ discusses the construction of an input file. `Code Execution`_ illustrates the entire procedure for executing the FEHM code using terminal input. Example 1 describes the setup and results from a simple 2-D heat conduction simulation. The remaining sections provide more complex example problems and deal only with problem setup and expected results. + +Constructing an Input File +========================== + +FEHM is a very general simulation code. Thus it is preferable to discuss the construction of an input file from a problem oriented point of view. In what follows the needs of the physical problem (initial conditions, boundary conditions, etc.) will be addressed in terms of the macro statements. + +**Initial conditions**. These are needed for every problem, even if it is a steady state simulation. If the simulation is comprised of fully saturated water flow or heat conduction only, then the appropriate control statement would be `init `_. The use of ``init`` also allows the specification of initial temperature and pressure (gravity) gradients. If two phase flow is prescribed (thermal or isothermal) then entering the initial conditions through the control statement `pres `_ is more convenient. Initial values for noncondensible gas are handled in the `ngas `_ control statement. It should be remembered that if a restart file is present, those values will have precedence over values input in control statement ``init`` but not over values input in control statement ``pres`` Solute initial conditions are prescribed through the control statement `trac `_. + +**Boundary conditions**. Fluid and heat flow boundary conditions can be prescribed through control statements ``pres`` `bound `_, `flow `_, and `hflx `_. Boundary conditions are entered with ``pres`` by specifying a negative phase state designation (the code will actually use the absolute value of the phase state designation). In this case the code will keep the variable values constant at whatever value was prescribed in **pres**. Flowing pressures are input with the boun or ``flow`` control statement. Solute boundary conditions are prescribed through the control statement ``trac`` + +**Material and Energy Balance Equations**. The choice of the coupled system equations is made in control statements `sol `_, ``ngas``, and `air `_. + +**Rock or Media Properties**. These are found in the `rock `_ and ``perm`` control statements. + +**Fluid Properties**. These are found in control statement `eos `_, which is optional. If **eos** is not invoked, then the properties of water and air included in the code are used. Relative permeabilities, depending on both the fluid and media type, are found in control statement `rlp `_. + +**Mesh Geometry and Nodal Coordinates**. This geometry information is found in control statements `coor `_ and `elem `_. This information is usually created with a mesh generation program. + +**Simulation Time**. The time stepping information including printout intervals and time step sizing is found in control statement `time `_. + +**Numerics**. Convergence criteria, upwinding parameters, fill-in for the preconditioned conjugate gradient solver and geometry type (2-D, 3-D, radial) are entered with control statement `ctrl `_. + +**Advanced Iteration Control**. Reduced degree of freedom methods are invoked with the `iter `_ control statement. One important quantity entered with this statement is the maximum time for the job to run on the computer. + +**Sources and Sinks**. These are input with the control statements ``boun`` or ``flow`` Care must be taken as the parameters have different meanings for different physical models. + +The following table shows required and optional macros listed by the type of problem being simulated. See the Alphabetic Macro List for all available macros and their definitions. + +.. _MacroTable: + +Macro Control Statements by Problem Type +---------------------------------------- + +Heat Conduction +--------------- + ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++=========================================================================================================+====================================================================+ +| `title `_ | `cont `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `boun `_ or `flow `_ or `hflx `_ | `finv `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `cond `_ | `flo2 `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `coor `_ | `flxo `_ or `flxz `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `ctrl `_ | `iter `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `elem `_ | `node `_ or `nod2 `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `init `_ or `pres `_ | `renu `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `rock `_ | `rflx `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `sol `_ | text or comments (#) | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `time `_ | `user `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `stop `_ | `vcon `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ + + +Water / Water Vapor / Heat Equivalent Continuum, Dual Porosity,Dual Permeability +-------------------------------------------------------------------------------- + ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++================================================================================================================+=======================================================================+ +| `title `_ | `cden `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `boun `_ or `flow `_ or `hflx `_ | `cont `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `cond `_ | `eos `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `coor `_ | `exrl `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ctrl `_ | `finv `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `elem `_ | `flo2 `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `init `_ or `pres `_ | `flxo `_ or `flxz `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `perm `_ | `fper `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rlp `_ | `gdpm `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rock `_ | `hflx `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `sol `_ | `iter `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `time `_ | `node `_ or `nod2 `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `stop `_ | `ppor `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `renu `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dual (* only) | `rflx `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dpdp (** only) | `rxn `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | text or comments (#) | +| +-----------------------------------------------------------------------+ +| | `trac `_ | +| +-----------------------------------------------------------------------+ +| | `user `_ or `userc `_ | +| +-----------------------------------------------------------------------+ +| | `vcon `_ | +| +-----------------------------------------------------------------------+ +| | `velo `_ | +| +-----------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ + + +Air / Water / No Heat Equivalent Continuum, Dual Porosity, Dual Permeability +---------------------------------------------------------------------------- + ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++=======================================================================================================+=======================================================================+ +| `title `_ | `adif `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `boun `_ or `flow `_ or `hflx `_ | `cden `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `cond `_ | `cont `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `coor `_ | `eos `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ctrl `_ | `finv `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `elem `_ | `flo2 `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `init `_ or `pres `_ | `flxo `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ngas `_ | `fper `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `perm `_ | `gdpm `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rlp `_ | `iter `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rock `_ | `node `_ or `nod2 `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `sol `_ | `ppor `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `time `_ | `renu `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `stop `_ | `rflx `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `rxn `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dual (*only) | `szna `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dpdp (**only) | text or comments (#) | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `trac `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `user `_ or `userc `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `vapl `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `vcon `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `velo `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ + + + +Air / Water / No Heat Equivalent Continuum, Dual Porosity, Dual Permeability +---------------------------------------------------------------------------- + ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++======================================================================+=======================================================================+ +| `title `_ | `bous `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `airwater `_ | `cont `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `boun `_ or `flow `_ | `eos `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `coor `_ | `exri `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ctrl `_ | `finv `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `elem `_ | `flo2 `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `init `_ or `pres `_ | `flxo `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `node `_ or `nod2 `_ | `fper `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `perm `_ | `gdpm `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rock `_ | `head `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `sol `_ | `iter `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `time `_ | `ppor `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `stop `_ | `pres `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `renu `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dual (*only) | `rlp `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dpdp (only) | `rxn `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | text or comments | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `trac `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `user `_ or `userc `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `vapl `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `velo `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ + +Code Execution +-------------- +To run FEHM, the program executable file name is entered at the system prompt: + +.. code:: + + xfehm_v2.30 + +Note that executable names may vary depending on the system being used. + +The I/O file information is provided to the code from an input control file or the terminal. The default control file name is ``fehmn.files``. If a control file with the default name is present in the directory from which the code is being executed, no terminal input is required. If the default control file is not present, input prompts are written to the screen. A short description of the I/O files used by FEHM precedes the initial prompt. The following assumes the default control file was not found in the execution directory (for this example ``/home/fehm/heat2d``). + +After the command ``xfehm_v2.30`` is given, the code queries the user regarding the input files, as follows: + +.. code:: + + Enter name for iocntl -- default file name: not using + [(name/na or not using), RETURN = DEFAULT] + +This query asks for a control file name. If a control file name is entered no further terminal input is required. The below example shows the control file that would produce the same results as the terminal responses discussed below and illustrated in TerminalQuery_. Files that are not needed for output can be represented with a blank line. If names are not provided for the write file and/or the data check file, the code will use the following defaults: fehmn.fin and fehmn.chk. Following the file names is the flag that controls terminal output. The last line of the file is the user subroutine number. Omitting these values results in no terminal output and no user subroutine call. For now, we assume a carriage return ```` is entered and a control file is not being used. The following query will appear: + +**Input control file for heat conduction example** + +.. code:: + + /home/fehm/heat2d/input/heat2d.in + /home/fehm/heat2d/input/heat2d.in + /home/fehm/heat2d/input/heat2d.in + /home/fehm/heat2d/output/heat2d.out + /home/fehm/heat2d/output/heat2d.fin + /home/fehm/heat2d/output/heat2d.his + /home/fehm/heat2d/output/heat2d.chk + some + + + Enter name for inpt -- default file name: fehmn.dat + [(name/na or not using), RETURN = DEFAULT] + +This query asks for an input file name. If a ```` is given, the default ``fehmn.dat`` is used for the input file. We shall assume that the input file name entered is + +.. code:: + + input/heat2d.in + +Note that a subdirectory containing the file is also given. If the file did not exist, the code would repeat the prompt for an input file. Next the code would query to determine if the prefix of the input file name (the portion of the name preceding the final "." or first space) should be used for code generated file names. + +.. code:: + + Do you want all file names of the form input/heat2d.* ? [(y/n), RETURN = y] + *** Note: If "y" incoor and inzone will equal inpt *** + +A ```` will produce files with identical prefixes, including the subdirectory. If the response is negative, the code will query for the names of all required files. Assume we enter ``n``. + +.. code:: + + Enter name for incoor -- default file name: input/heat2d.in + [(name/na or not using), RETURN = DEFAULT] + +(See TerminalQuery_ for the remaining file name queries.) + +Next a query for terminal output appears. + +.. code:: + + tty output -- show all reference nodes, selected reference nodes, or none: + [(all/some/none), RETURN = none] + +An "all" reply prints out the primary node information to the terminal at every time step. A "some" reply prints a selected subset of the node information. A reply of "none" suppresses all tty output with the exception of error messages printed if code execution is terminated abnormally or when maximum number of iterations are exceeded. Assume we enter "some". + +The next query concerns the subroutine USER. This subroutine is used for special purposes and is not available to the general user. + +.. code:: + + user subroutine number (provided to subroutine USER before every time step): + [RETURN = none] + +Assume a ```` is entered. + +The code will then print a summary of the I/O files to be used. + +The final query regards the acceptance of the file set just created. A "yes" reply denotes that the user has accepted the file set and the code proceeds with calculations. A "no" reply starts the query sequence again so I/O file names may be reentered or modified. A "stop" reply stops the current computer job. + +.. code:: + + If data is OK enter yes to continue, no to restart terminal input, + or stop to end program: [(yes/no/stop), RETURN = yes] + + +Screen output for this example execution using terminal input and a previous version of the code is shown below. The only difference in the output is that the code version identifier and date are updated for the current version. User responses are shown in *italics*. + +.. _TerminalQuery: + +**Terminal query for FEHM example run** + +.. code:: + + xfehm_v2.30sun + version FEHM V2.30sun 03-09-15 QA:QA 09/15/2003 11:08:14 + **** Default names for I/O files **** + control file : fehmn.files + input file : filen.* + geometry data file : filen.* + zone data file : filen.* + output file : filen.out + read file (if it exists) : filen.ini + write file (if it exists) : filen.fin + history plot file : filen.his + tracer history plot file : filen.trc + contour plot file : filen.con + dual or dpdp contour plot file : filen.dp + stiffness matrix data read/write file : filen.stor + input check file : filen.chk + **** where **** + "filen.*" may be 100 characters maximum. If a name is not entered + when prompted for, a default file name is used. "fehmn.dat" is the + default used for the input file name. + **** note **** + A save file and input check file are always written. If you do not + provide a name for these files, the following defaults will be used: + fehmn.fin, fehmn.chk + Enter name for iocntl -- default file name: not using + [(name/na or not using), RETURN = DEFAULT] + + Enter name for inpt -- default file name: fehmn.dat + [(name/na or not using), RETURN = DEFAULT] + input/heat2d.in + Do you want all file names of the form input/heat2d.* ? [(y/n), RETURN = y] + *** Note: If "y" incoor and inzone will equal inpt *** + n + Enter name for incoor -- default file name: input/heat2d.in + [(name/na or not using), RETURN = DEFAULT] + + Enter name for inzone -- default file name: input/heat2d.in + [(name/na or not using), RETURN = DEFAULT] + + Enter name for iout -- default file name: input/heat2d.out + [(name/na or not using), RETURN = DEFAULT] + output/heat2d.out + Enter name for iread -- default file name: input/heat2d.ini + [(name/na or not using), RETURN = DEFAULT] + na + Enter name for isave -- default file name: input/heat2d.fin + [(name/na or not using), RETURN = DEFAULT] + output/heat2d.fin + Enter name for ishis -- default file name: input/heat2d.his + [(name/na or not using), RETURN = DEFAULT] + output/heat2d.his + Enter name for istrc -- default file name: input/heat2d.trc + [(name/na or not using), RETURN = DEFAULT] + na + Enter name for iscon -- default file name: input/heat2d.con + [(name/na or not using), RETURN = DEFAULT] + na + Enter name for iscon1 -- default file name: input/heat2d.dp + [(name/na or not using), RETURN = DEFAULT] + na + Enter name for isstor -- default file name: input/heat2d.stor + [(name/na or not using), RETURN = DEFAULT] + na + Enter name for ischk -- default file name: input/heat2d.chk + [(name/na or not using), RETURN = DEFAULT] + output/heat2d.chk + tty output -- show all reference nodes, selected reference nodes, or none: + [(all/some/none), RETURN = none] + some + user subroutine number (provided to subroutine USER before every time step): + [RETURN = none] + + First reference output node will be written to tty + File purpose - Variable - Unit number - File name + control - iocntl - 0 - not using + input - inpt - 11 - input/heat2d.in + geometry - incoor - 11 - input/heat2d.in + zone - inzone - 11 - input/heat2d.in + output - iout - 14 - output/heat2d.out + initial state - iread - 0 - not using + final state - isave - 16 - output/heat2d.fin + time history - ishis - 17 - output/heat2d.his + time his.(tr) - istrc - 18 - not using + contour plot - iscon - 19 - not using + con plot (dp) - iscon1 - 20 - not using + fe coef stor - isstor - 21 - not using + input check - ischk - 22 - output/heat2d.chk + Value provided to subroutine user: not using + If data is OK enter yes to continue, no to restart terminal input, + or stop to end program: [(yes/no/stop), RETURN = yes] + + + +Heat Conduction in a Square +=========================== + +This simple 2-D problem is used to illustrate input file construction and basic output. Heat conduction in a 1 meter square with an initial temperature, :math:`T_0 = 200 ^{\circ}C`, is modeled after a surface temperature, :math:`T_s = 100 ^{\circ}C`, is imposed at time, :math:`t = 0` (`See Schematic diagram of 2-D heat conduction problem. `_). The input parameters used for the heat conduction problem are defined in `Input Parameters for the 2-D Heat Conduction Problem `_.The finite element mesh for this problem is shown in `Finite element mesh used for 2-D heat conduction problem. `_. Only a quarter of the square needs to be modeled because of problem symmetry. + +.. _TerminalQueryTable: + +.. figure: FEHM-UM.9.3-1.gif + :caption: Schematic diagram of 2-D heat conduction problem + ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Input Parameters for the 2-D Heat Conduction Problem | ++=========================================+==============================================+===================================+ +| Rock thermal conductivity | :math:`\kappa r` | :math:`2.7 \frac{W}{m \cdot K}` | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Rock density | :math:`\rho r` | :math:`2700 \frac{kg}{m^3}` | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Rock specific heat | :math:`Cr` | :math:`1000 \frac{J}{kg \cdot K}` | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Width | :math:`a` | :math:`0.5 m` | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Length | :math:`b` | :math:`0.5 m` | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Initial temperature | :math:`T_0` | :math:`200 ^{\circ}C` | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Surface temperaturefor all x, y = 0.5 m | :math:`T_s` | :math:`100 ^{\circ}C` | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ +| Rock thermal diffusivity | :math:`\kappa = \frac{\kappa_r}{\rho_r C_r}` | | ++-----------------------------------------+----------------------------------------------+-----------------------------------+ + + +.. figure: FEHM-UM.9.3-5.gif + :caption: Finite element mesh used for 2-D heat conduction problem + +The input file (see `FEHM input file for heat conduction example (heat2d.in). `_) uses optional macro control statement node (output nodes) and the required macro control statements sol (solution specification - heat transfer only), init (initial value data), rock (rock properties), cond (thermal conductivities), perm (permeabilities), time (simulation timing data), ctrl (program control parameters), coor (node coordinates), elem (element node data), and stop. For this problem macro control statement flow is also used to set the temperature boundary conditions. A portion of the output file is reproduced in `FEHM output from the 2-D heat conduction example. `_. + +FEHM input file for heat conduction example (``heat2d.in``) +=========================================================== + +.. code:: + + ***** 2-D Heat Conduction Model (2X2 rectangles) *****node + 2 + 7 5 + sol + + -1 -1 + init + + 10. 0. 200. 0. 0. 200. 0. 0. + rock + + 1 9 1 2700. 1000. 0. + + cond + + 1 9 1 2.7e-00 2.7e-00 2.7e-00 + + perm + + 1 9 1 1.e-30 1.e-30 1.e-30 + + flow + + 1 3 1 10.00 -100.00 1.e03 + 3 9 3 10.00 -100.00 1.e03 + + time + + 0.005 4.00 1000 10 1994 02 + + ctrl + + 40 1.e-04 08 + 1 9 1 1 + + 1.0 0.0 1.0 + 10 1.0 0.00005 0.005 + 1 0 + coor Feb 23, 1994 11:39:40 + + 9 + + 1 0. 0.50 0. + + 2 0.25 0.50 0. + + 3 0.50 0.50 0. + + 4 0. 0.25 0. + + 5 0.25 0.25 0. + + 6 0.50 0.25 0. + + 7 0. 0. 0. + + 8 0.25 0. 0. + + 9 0.50 0. 0. + + + + elem + + 4 4 + + 1 4 5 2 1 + + 2 5 6 3 2 + + 3 7 8 5 4 + + 4 8 9 6 5 + + + + stop + + +FEHM output from the 2-D heat conduction example +================================================ + +.. code:: + + FEHM V2.10 00-06-28 08/07/2000 13:25:08 + ***** 2-D Heat Conduction Model ***** + File purpose - Variable - Unit number - File name + control - iocntl - 0- not using + input - inpt - 11- heat2d.in + geometry- incoor- 11- heat2d.in + zone - inzone- 11- heat2d.in + output - iout - 14- heat2d.out + initial state- iread- 0- not using + final state- isave- 16- fehmn.fin + time history- ishis- 17- heat2d.his + time his.(tr)- istrc- 0- not using + contour plot- iscon- 0- not using + con plot (dp)- iscon1- 0- not using + fe coef stor- isstor- 0- not using + input check- ischk- 22- fehmn.chk + Value provided to subroutine user: not using + **** input title : coor**** incoor = 11 **** + **** input title : elem**** incoor = 11 **** + **** input title : stop**** incoor = 11 **** + **** input title : node**** inpt = 11 **** + **** input title : sol**** inpt = 11 **** + **** input title : init**** inpt = 11 **** + **** input title : rock**** inpt = 11 **** + **** input title : cond**** inpt = 11 **** + **** input title : perm**** inpt = 11 **** + **** input title : flow**** inpt = 11 **** + **** input title : time**** inpt = 11 **** + **** input title : ctrl**** inpt = 11 **** + **** input title : stop**** inpt = 11 **** + BC to BC connection(s) found(now set=0.0) + BC to BC connection(s) found(now set=0.0) + pressures and temperatures set by gradients + >>>reading nop from file nop.temp..... + >>>reading nop was succesful..... + storage needed for ncon43 available 43 + storage needed for nop43 available 46 + storage needed for a matrix33 available 33 + storage needed for b matrix33 available 46 + storage needed for gmres81 available 81 + storage available for b matrix resized to 33<<<<<< + time for reading input, forming coefficients 0.204E-01 + **** analysis of input data on file fehmn.chk **** + ********************************************************************* + Time Step 1 + Timing Information + Years Days Step Size (Days) + 0.136893E-04 0.500000E-02 0.500000E-02 + Cpu Sec for Time Step = 0.8081E-03 Current Total = 0.2650E-02 + Equation Performance + Number of N-R Iterations: 1 + Avg # of Linear Equation Solver Iterations: 3.0 + Number of Active Nodes: 9. + Total Number of Newton-Raphson Iterations: 1 , Solver: 3 + Largest Residuals + EQ1 R= 0.1660E-07 node= 5 x=0.2500 y=0.2500 z= 1.000 + Node Equation 1 Residual Equation 2 Residual + 7 0.111444E-07 0.185894E-01 + 5 0.165983E-07 0.135450E+01 + Nodal Information (Water) + source/sink source/sink + Node p(MPa) e(MJ) l sat temp(c) (kg/s) (MJ/s) + 7 10.000 0.00 0.000 199.981 0. 0. + 5 10.000 0.00 0.000 198.645 0. 0. + Global Mass & Energy Balances + Total mass in system at this time:0.000000E+00 kg + Total mass of steam in system at this time:0.000000E+00 kg + Total enthalpy in system at this time:0.105123E+03 MJ + Water discharge this time step:0.000000E+00 kg (0.000000E+00 kg/s) + Water input this time step:0.000000E+00 kg (0.000000E+00 kg/s) + Total water discharge:0.000000E+00 kg (0.000000E+00 kg/s) + Total water input:0.000000E+00 kg (0.000000E+00 kg/s) + Enthalpy discharge this time step:0.297800E+02 MJ (0.689352E-01 MJ/s) + Enthalpy input this time step:0.000000E+00 MJ (0.000000E+00 MJ/s) + Total enthalpy discharge:0.297800E+02 MJ (0.689352E-01 MJ/s) + Total enthalpy input:0.297800E+02 MJ (0.689352E-01 MJ/s) + Net kg water discharge (total out-total in):0.000000E+00 + Net MJ discharge (total out-total in):0.000000E+00 + Conservation Errors: 0.000000E+00 (mass), -0.100326E+01 (energy) + ********************************************************************* + Time Step 11 + . + . + . + ********************************************************************* + Time Step 801 + Timing Information + Years Days Step Size (Days) + 0.109515E-01 0.400005E+01 0.500000E-04 + Cpu Sec for Time Step = 0. Current Total = 4.533 + Equation Performance + Number of N-R Iterations: 1 + Avg # of Linear Equation Solver Iterations: 2.0 + Number of Active Nodes: 9. + Total Number of Newton-Raphson Iterations: 801 , Solver: 2402 + Largest Residuals + EQ1 R= 0.9774E-13 node= 7 x= 0.000 y= 0.000 z= 1.000 + Node Equation 1 Residual Equation 2 Residual + 7 0.977369E-13 0.186062E-04 + 5 0.621566E-13 0.930309E-05 + Nodal Information (Water) + source/sink source/sink + Node p(MPa) e(MJ) l sat temp(c) (kg/s) (MJ/s) + 7 10.000 0.00 0.000 100.230 0. 0. + 5 10.000 0.00 0.000 100.115 0. 0. + Global Mass & Energy Balances + Total mass in system at this time:0.000000E+00 kg + Total mass of steam in system at this time:0.000000E+00 kg + Total enthalpy in system at this time:0.675565E+02 MJ + Water discharge this time step:0.000000E+00 kg (0.000000E+00 kg/s) + Water input this time step:0.000000E+00 kg (0.000000E+00 kg/s) + Total water discharge:0.000000E+00 kg (0.000000E+00 kg/s) + Total water input:0.000000E+00 kg (0.000000E+00 kg/s) + Enthalpy discharge this time step:0.455636E-05 MJ (0.105471E-05 MJ/s) + Enthalpy input this time step:0.000000E+00 MJ (0.000000E+00 MJ/s) + Total enthalpy discharge:0.673463E+02 MJ (0.155894E+02 MJ/s) + Total enthalpy input:0.673463E+02 MJ (0.155894E+02 MJ/s) + Net kg water discharge (total out-total in):0.000000E+00 + Net MJ discharge (total out-total in):0.000000E+00 + Conservation Errors: 0.000000E+00 (mass), -0.100144E+01 (energy) + simulation ended: days 4.00 timesteps 801 + total N-R iterations = 801 + total solver iterations = 2402 + total code time(timesteps) = 0.526277 + **** -------------------------------------------------------------- **** + **** This program for **** + **** Finite Element Heat and Mass Transfer in porous media**** + **** -------------------------------------------------------------- **** + **** Version : FEHM V2.10 00-06-28 **** + **** End Date : 08/07/2000 **** + **** Time : 13:25:08 **** + **** --------------------------------------------------------------**** + + +The analytical solution for 2-D heat conduction (Carslaw and Jaeger, 1959) is given by + +.. image: FEHM-UM.9.3-6.gif +.. image: FEHM-UM.9.3-7.gif + +The below image shows a plot of the simulation results compared to the analytical solution for the selected output nodes at :math:`x = y = 0 m` and :math:`x = y = 0.25 m`. + +.. figure: FEHM-UM.9.3-9.gif + :caption: Comparison of analytical and model solution for 2-D heat conduction. + + +DOE Code Comparison Project, Problem 5, Case A +============================================== + +This problem involves multiphase flow in a 2-D horizontal reservoir. The problem is characterized by a moving two-phase region, i.e., the fluid produced at the production well is replaced by cold water recharge over one of the outer boundaries. The problem parameters are given below and the geometry and boundary conditions are shown in the below schematic. Of particular note are the variable initial temperature field, provided to the code through a read file (see `iread `_), and the prescribed pressure and temperature on the right boundary. A partial listing of the input file is provided in `FEHM input file for DOE problem `_. In addition to the required macros, macro flow is used to specify the pressure and temperature boundary condition and the production flow rate. Macro rlp is used to set the residual liquid and gas saturations. + +Input Parameters for the DOE Code Comparison Project Problem +------------------------------------------------------------ + ++-------------------------------+------------------------------------------+-----------------------------------+ +| Parameter | Symbol | Value | ++===============================+==========================================+===================================+ +| Reservoir permeability | :math:`k` | :math:`2.5 \cdot 10^{-14} m^2` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Reservoir porosity | :math:`\phi` | :math:`0.35` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Rock thermal conductivity | :math:`\kappa r` | :math:`1 \frac{W}{m \cdot K}` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Rock density | :math:`\rho r` | :math:`2563 \frac{kg}{m^3}` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Rock specific heat | :math:`C r` | :math:`1010 \frac{J}{kg \cdot K}` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Reservoir length | :math:`x` | :math:`300 m` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Reservoir thickness | :math:`y` | :math:`200 m` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Liquid residual saturation | slr | :math:`0.3` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Gas residual saturation | sgr | :math:`0.1` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Reservoir discharge | qm | :math:`0.05 \frac{kg}{m \cdot s}` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Initial Pressure | :math:`P_0` | :math:`3.6 MPa` | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Production well coordinates: | :math:`x = 62.5 m`, :math:`y = 62.5 m` | | ++-------------------------------+------------------------------------------+-----------------------------------+ +| Observation well coordinates: | :math:`x = 162.5 m`, :math:`y = 137.5 m` | | ++-------------------------------+------------------------------------------+-----------------------------------+ + + +.. figure: FEHM-UM.9.4-4.gif + :caption: Initial temperature distribution (T in oC, r in m) where r = sqrt(x+y) + +.. figure: FEHM-UM.9.4-6.gif + :caption: Schematic diagram of the geometry and boundary conditions for the DOE code comparison project problem. + +FEHM input file for DOE problem +------------------------------- + +.. code:: + + *** DOE Code Comparison Project, Problem 5, Case A *** + node + 2 + 50 88 + sol + 1 1 + init + 3.6 0. 240. 0. 0. 240. 0. 0. + rlp + 2 0.3 0.1 0.0 0.0 + 1 140 1 1 + rock + 1 140 1 2563. 1010. 0.35 + cond + 1 140 1 1.00e-00 1.00e-00 1.00e-00 + perm + 1 140 1 2.5e-14 2.5e-14 0.e-00 + flow + 88 88 1 0.050 -25.00 0. + 14 140 14 3.600 -160.00 1. + time + 30.0 3650. 10000 1000 1994 03 + ctrl + 40 1.e-07 08 + 1 140 1 1 + 1.0 0.0 1.0 + 40 1.2 0.1 60. + 1 0 + coor + 140 + ... + elem + 4 117 + ... stop + + +There is no analytical solution for this problem, but six researchers produced results for the DOE code comparison project (Molloy, 1980). The reader is referred to this reference for a more detailed discussion of this problem and the code comparison. Results from this problem are compared to those for the other codes, obtained from Molloy (1980), as a check on FEHM. The results for the outlet temperature, shown in `Comparison of FEHM production well temperatures with results from other codes `_, are in excellent agreement with the other codes. The results for the outlet pressure and pressure at an observation well 125 m distant, `Comparison of FEHM production and observation well pressure drops with results from other codes `_, are also in good agreement with the other codes. Contour plots of pressure and temperature at the end of the simulation were also generated for this problem and are shown in `Contour plot of pressure at ten years for the DOE problem `_ and `Contour plot of temperature at ten years for the DOE problem `_. + +.. figure: FEHM-UM.9.4-7.gif + :caption: 1. Comparison of FEHM production well temperatures with results from other codes. + +.. figure: FEHM-UM.9.4-8.gif + :caption: 2. Comparison of FEHM production and observation well pressure drops with results from other codes. + +.. figure: FEHM-UM.9.4-9.gif + :caption: 3. Contour plot of pressure at ten years for the DOE problem. + +.. figure: FEHM-UM.9.4-10.gif + :caption: 4. Contour plot of temperature at ten years for the DOE problem. + +.. figure: FEHM-UM.9.4-11.gif + :caption: 5. Comparison of FEHM production and observation well pressure drops with results from other codes. + + +Reactive Transport Example +-------------------------- +This one-dimensional example demonstrates the use of the reactive transport module of FEHM. The application of this simulation is the transport of cobalt (Co) in groundwater. Radioactive cobalt is present in the subsurface at several DOE sites. Although its presence as a divalent cation implies that it should sorb strongly to most soils, its migration rate has been shown to be greater than expected due to complexation with EDTA, a decontaminating agent also found in the subsurface of these sites. Much experimental work has gone into studying the transport of Co as CoEDTA, a much less strongly sorbed species. The chemical reactions and equilibrium or rate constants used to perform this simulation are: + +.. image: FEHM-UM.9.5-1.gif +.. image: FEHM-UM.9.5-3.gif +.. image: FEHM-UM.9.5-5.gif +.. image: FEHM-UM.9.5-8.gif +.. image: FEHM-UM.9.5-11.gif +.. image: FEHM-UM.9.5-14.gif + +.. figure: FEHM-UM.9.5-16.gif + :caption: Schematic drawing of the geometry and boundary conditions for the cobalt transport problem + ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Input Parameters for the Reactive Transport Test Problem | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Parameter | Symbol | Value | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Reactor Length | :math:`L` | 10 m | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Node spacing | :math:`\Delta l` | 0.1 m | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Fluid Density | :math:`\rho_f` | :math:`1000\:kg/m^3` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Bulk Rock Density | :math:`\rho_b` | :math:`1500\:kg/m^3` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Porosity | :math:`\phi` | :math:`0.4` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Pore Water Velocity | :math:`u` | :math:`1\:m/hr` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Dispersivity | :math:`\alpha` | :math:`0.05 m` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Time step (tracer) | :math:`\Delta t` | :math:`0.09 - 360 s` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Total elapsed time | :math:`t` | 7.25 days | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Pressure | :math:`P_0` | :math:`1.0\:MPa` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Co Inlet Concentration | :math:`C_{in\:Co}` | :math:`3.1623 \cdot 10^{-5}\:M` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Fe Inlet Concentration | :math:`C_{in\:Fe}` | :math:`0\:M` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| EDTA Inlet Concentration | :math:`C_{in\:EDTA}`| :math:`3.1623 \cdot 10^{-5}\:M` | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| Boundary conditions: At l = 0, u = 1 m/hr; At l = 1, P = 1 MPa | | | ++-----------------------------------------------------------------+---------------------+---------------------------------+ +| ‡Flow rate: :math:`q = 0.5556 kg/s` | | | ++-----------------------------------------------------------------+---------------------+---------------------------------+ + +FEHM input file for reactive transport problem +---------------------------------------------- + +.. code:: + + COMPARE FEHMN and PDREACT: Linear Sorption w/ Surface Exchange + cond + 1 202 1 2.7 2.7 2.7 + ctrl + 50 1e-6 8 + 1 202 1 2 + 1 0 0.5 + 25 2. 1.e-6 1.e-1 + 1 0 + flow + 1 202 101 -0.05556 -25 0 + 101 202 101 1. -25 -1 + init + 1. 25 25 0 1000 25 0 0 + node + 1 + 202 + perm + 1 202 1 5.0e-13 5.0e-30 5.0e-30 + rock + 1 202 1 1500 1000 0.4 + sol + 1 -1 + time + 1.e-6 7.25 1000 10 92 11 + # solute 1: Total Cobalt Concentration + # solute 2: Total Iron Concentration + # solute 3: Total EDTA Concentration + # solute 4: CoEDTA adsorbed concentration + # solute 5: Co adsorbed concentration + # solute 6: FeEDTA adsorbed concentration + trac + 0.0 1.0 1.e-6 0.5 + 1. 2000 1.0 2000 + 5 5.0 1.e-6 4.1667e-3 + 61 + 1 0. 0. 1. 1.e-9 .05 1.e-34 1.e-34 + 1 202 1 1 + 1 202 1 0. + 1 202 101 3.1623e-5 1.0 4.16667 + 1 + 1 0. 0. 1. 1.e-9 .05 1.e-34 1.e-34 + 1 202 1 1 + 1 202 1 0. + 1 202 101 1.e-13 1.0 4.16667 + 1 + 1 0. 0. 1. 1.e-9 .05 1.e-34 1.e-34 + 1 202 1 1 + 1 202 1 0. + 1 202 101 3.1623e-5 1.0 4.16667 + 0 + 1 202 1 0. + 0 + 1 202 1 0. + 0 + 1 202 1 0.0 + rxn + ** NCPLX, NUMRXN + 2,4 + ** Coupling of the aqueous components (dRi/dUj) + 2 + 1 0 1 + 0 1 0 + ** IDCPNT(IC),CPNTNAM(IC),IFXCONC(IC),CPNTPRT(IC) (comp,name,cond.; NCPNT + rows) + 1 Cobalt[aq] 0 0 1.e-9 + 2 Iron[aq] 0 0 1.e-9 + 3 EDTA[aq] 0 0 1.e-9 + ** IDCPLX(IX), CPLXNAM(IX),CPLXPRT(IX) (ID # and name of complex, NCPLX rows) + 101 Co-EDTA[aq] 0 + 102 Fe-EDTA[aq] 0 + ** IDIMM(IM), IMMNAM(IM),IMMPRT(IM)(ID # and name of immoblie spec, NIMM rows) + 1 Co-EDTA[s] 0 + 2 Fe-EDTA[s] 0 + 3 Cobalt[s] 0 + ** IDVAP(IV), VAPNAM(IM), VAPPRT(IV) (ID # and name of vapor spec, NVAP rows) + ** Skip nodes + 0 + ** RSDMAX + 1.0e-10 + **** Chemical reaction information for equilibrium reactions ****** + ** LOGKEQ (=0 if stability constants are given as K, =1 if given as log(K)) + 0 + ** CKEQ(IX) ,HEQ(IX) (Stability constants and Enthaplys, NCPLX rows) + 1.0e+18 0 + 6.31e+27 0 + ** STOIC(IX,IC) (Stoichiometric coeff: NCPLX rows, NCPNT columns) + 1.0 0.0 1.0 + 0.0 1.0 1.0 + ** LINEAR KINETIC REACTION (type 1) ** + 1 + ** Where does the reaction take place? ** + 1 0 0 + ** Aqueous Component/Complex #, Solid Component # + 101 1 + ** Distribution coeffienct (kg water/ kg rock) ** + 0.533 + ** Mass transfer coefficient (1/hr) ** + 1.0 + ** LINEAR KINETIC REACTION (type 1) ** + 1 + ** Where does the reaction take place? ** + 1 0 0 + ** Aqueous Component/Complex #, Solid Component # + 1 3 + ** Distribution coeffienct (kg rock/ kg water) ** + 5.07 + ** Mass transfer coefficient (1/hr) ** + 1.0 + ** LINEAR KINETIC REACTION (type 1) ** + 1 + ** Where does the reaction take place? ** + 1 0 0 + ** Aqueous Component/Complex #, Solid Component # + 102 2 + ** Distribution coeffienct (kg rock/ kg water) ** + 0.427 + ** Mass transfer coefficient (1/hr) ** + 1.0 + ** GENERAL EXCHANGE REACTION (type 3) ** + 3 + ** Where does the reaction take place? ** + 1 0 0 + ** # of solid, liquid and vapor species ** + 3 0 0 + ** forward and reverse rate constants (1/hr) ** + 1.26e-2 0 + ** Solid Species in reaction ** + 1 2 3 + ** Stoichiometry ** + 1.0 -1.0 -1.0 + coor n/a + 202 + 1 0.000001.000000.00000 + 2 0.100001.000000.00000 + 3 0.200001.000000.00000 + ... + 2009.800000.000000.00000 + 2019.900000.000000.00000 + 20210.000000.000000.00000 + elem + 4 100 + 1 10210321 + 2 10310432 + 3 10410543 + ... + 98 1992009998 + 99 20020110099 + 100201202101100 + stop + + +FEHM results for this problem are compared to those of PDREACT (Valocchi et al., 1994), a two-dimensional, isothermal, saturated-zone flow and transport code in `Comparison of FEHM and PDREACT for the breakthrough curves of aqueous species `_ and `Comparison of FEHM and PDREACT for the exit concentration versus time for solid species `_. + +.. figure: FEHM-UM.9.5-25.gif + :caption: 1. Comparison of FEHM and PDREACT for the breakthrough curves of aqueous species. + +.. figure: FEHM-UM.9.5-26.gif + :caption: 2. Comparison of FEHM and PDREACT for the exit concentration versus time for solid species. + diff --git a/docs/source/Images/avs_ucd_fehm_format.png b/docs/source/Images/avs_ucd_fehm_format.png new file mode 100644 index 00000000..4db2938a Binary files /dev/null and b/docs/source/Images/avs_ucd_fehm_format.png differ diff --git a/docs/source/InputData.rst b/docs/source/InputData.rst new file mode 100644 index 00000000..3e898e19 --- /dev/null +++ b/docs/source/InputData.rst @@ -0,0 +1,657 @@ +========== +Input Data +========== + +General Considerations +---------------------- + +**Techniques** + +**Control File or Terminal I/O Startup** + +The input/output (I/O) file information is provided to the code from an input control file or the terminal. The default control file name is ``fehmn.files``. If a control file with the default name is present in the directory from which the code is being executed, no terminal input is required. If the default control file is not present, it is possible to supply the name of the control file on the command line, otherwise input prompts are written to the screen preceded by a short description of the I/O files used by FEHM. It should be noted that a control file name entered on the command line will take precedence over the default control file. The descriptions of the I/O files are elaborated on in `Data Files `_. The initial prompt asks for the name of a control file. It is also If a control file name is entered for that prompt no further terminal input is required. If a control file is not used, the user is then prompted for I/O file names, the tty output flag, and user subroutine number. When the input file name is entered from the terminal the user has the option of letting the code generate the names for the remainder of the auxiliary files using the input file name prefix. The form of the input file name is ``filen`` or ``filen.*`` where ``filen`` is the prefix used by the code to name the auxiliary files and ``.*`` represents an arbitrary file extension. + + +**Multiple Realization Simulations** + +The code has an option for performing multiple simulation realizations (calculations) where input (e.g., porosity, permeability, saturation, transport properties or particle distributions) is modified for each realization but the calculations are based on the same geometric model. Multiple realizations are initiated by including a file called fehmn.msim in the directory from which the code is being run. If invoked, a set number of simulations are performed sequentially, with pre- and post-processing steps carried out before and after each simulation. This capability allows multiple simulations to be performed in a streamlined fashion, with processing to change input files before each run and post-processing to obtain relevant results after each run. + + +**Macro Control Structure** + +The finite element heat and mass transfer code (FEHM) contains a macro control structure for data input that offers added flexibility to the input process. The macro command structure makes use of a set of control statements recognized by the input module of the program. When a macro control statement is encountered in an input file, a certain set of data with a prescribed format is expected and read from the input file. In this way, the input is divided into separate, unordered blocks of data. The input file is therefore a collection of macro control statements, each followed by its associated data block. Blocks of data can be entered in any order, and any blocks unnecessary to a particular problem need not be entered. The macro control statements must appear in the first four columns of a line. The other entries are free format, which adds flexibility, but requires that values be entered for all input variables (no assumed null values). + +As an aid to the user, the capabilities of FEHM summarized in `Capabilities of FEHM with Macro Command References `_ refer to applicable macro commands. `Macro Control Statements for FEHM `_ lists the macro control statements with a brief description of the data associated with each. A more detailed description of each macro control statement and its associated input are found in their respective pages. Macro control statements may be called more than once, if, for example, the user wishes to reset some property values after defining alternate zones. Some statements are required, as indicated in `Macro Control Statements for FEHM `_, the others are optional. + + +.. _Macros: + +Macro Control Statements for FEHM (Alphabetical List) +----------------------------------------------------- + ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| Macro | Description | ++================================================+==============================================================================================================================================+ +| `adif `_ | Air-water vapor diffusion | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `airwater or air `_ | Isothermal air-water input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `anpe `_ | Anisotropic permeability | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `boun `_ | Boundary conditions (required for flow problem if macro flow is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `bous `_ | Boussinesq-type approximation | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `carb `_ | CO2 input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `cden `_ | Concentration-dependent density | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `cflx `_ | Molar flow rate through a zone | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `cgdp `_ | Rate-limited gdpm node | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `chea `_ | Output in terms of head, not pressures (non-head problem) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `cond `_ | Thermal conductivity data (required for non-isothermal problem) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `conn `_ | Print number of connections for each node and stop | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `cont `_ | Contour plot data | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `conv `_ | Head input conversion for thermal problems | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `coor `_ | Node coordinate data (required if macro fdm is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ctrl `_ | Program control parameters (required) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `dpdp `_ | Double porosity/double permeability model input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `dual `_ | Dual porosity model input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `dvel `_ | Velocity printout (formerly macro velo) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `elem `_ | Element node data (required if macro fdm is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `eos `_ | Simple equation of state data | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `evap `_ | Evaporation model | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `exrl `_ | Explicit evaluation of relative permeability | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `fdm `_ | Finite difference grid generation (required if macro coor and elem are not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `finv `_ | Finite volume flow coefficients | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flgh `_ | Generalized head boundary conditions (confined aquifer) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flow `_ | Flow data (required for flow problem if macro boun is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flo2 `_ | Alternate format for flow data (input using 3-D planes) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flo3 `_ | Alternate format for flow data (defined for see page faces) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `floa `_ | Alternate format for flow data (additive to previous flow definition) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flwt `_ | Movable source or sink (wtsi only) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flxn `_ | Write all non-zero source/sink internodal mass flows by node to an output file. | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flxo `_ | Internodal mass flow printout | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `flxz `_ | Zone based mass flow output | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `fper `_ | Permeability scaling factor | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `frlp `_ | Relative permeability factors for residual air effect | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ftsc `_ | Flux correction for saturations over 1 | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `gdkm `_ | Generalized dual permeability model | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `gdpm `_ | Generalized dual porosity model | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `grad `_ | Gradient model input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `hcon `_ | Set solution to heat conduction only | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `head `_ | Hydraulic head input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `hflx `_ | Heat flow input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `hist `_ | User selected history output | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `hyco `_ | Hydraulic conductivity input (required if macro perm is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ice or meth `_ | Ice phase calculations, methane hydrate input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `imex `_ | implicit-explicit solution | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `impf `_ | Time step control based on maximum allowed variable change | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `init `_ | Initial value data (required if macro pres or restart file is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `intg `_ | Set integration type for finite element coefs | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `isot `_ | Isotropic definition of control volume/finite element coefficients | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `iter `_ | Iteration parameters | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `itfc `_ | Flow and transport between zone interfaces | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ittm `_ | Sticking time for phase changes | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `itup `_ | Iterations used with upwinding | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `iupk `_ | Upwind transmissibility including intrinsic permeability | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ivfc `_ | Enable exponential fracture and volume model | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `mdnode `_ | Enables extra connections to be made to nodes | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `meth or ice `_ | Methane hydrate input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `mptr `_ | Multiple species particle tracking simulation input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `nfinv `_ | Finite element instead of finite volume calculations | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ngas `_ | Noncondensible gas (air) data | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `nobr `_ | Don't break connection between nodes with boundary conditions | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `node `_ | Node numbers for output and time histories | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `nod2 `_ | Node numbers for output and time histories, and alternate nodes for terminal output | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `nod3 `_ | Node numbers for output and time histories, alternate nodes for terminal output, and alternate nodes for variable porosity model information | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `nrst `_ | Stop NR iterations on variable changes | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `para `_ | Parallel FEHM (isothermal only) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `perm `_ | Permeability input (required if macro hyco is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `pest `_ | Parameter estimation routine output | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `phys `_ | Non-darcy well flow | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ppor `_ | Pressure and temperature dependent porosity and permeability | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `pres `_ | Initial pressure, temperature, and saturation data, boundary conditions specification (required if macro init or restart file is not used) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `ptrk `_ | Particle tracking simulation input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `renu `_ | Renumbers nodes | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rest `_ | Manage restart options | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rflo `_ | Read in flux values | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rich `_ | Enable Richards' equation | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rive or well `_ | River or implicit well package | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rlp `_ | Relative permeability input (required for 2-phase problem if macro rlpm is not used, otherwise optional) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rlpm `_ | Alternate style relative permeability input (required for 2-phase problem if macro rlp is not used, otherwise optional) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rock `_ | Rock density, specific heat, and porosity input (required) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `rxn `_ | Chemical reaction rate model input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `sol `_ | Solver specifications | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `sptr `_ | Streamline particle tracking simulation input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `stea `_ | Steady state program termination | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `stop `_ | Signals the end of input (required) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `strs `_ | Stress solution enabled | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `subm `_ | Submodel boundary condition output | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `svar `_ | Enable pressure-enthalpy variables | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `text `_ | Text input to be written to output file | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `thic `_ | Variable thickness input for two-dimensional problems | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `time `_ | Time step and time of simulation data (required) | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `trac `_ | Solute simulation input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `trxn `_ | A user-friendly replacement for [[wiki:MacroTra | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `user `_ | User subroutine call | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `vapl `_ | Vapor pressure lowering | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `vbou `_ | read non-pyhsical gridblock volumes | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `vcon `_ | Variable thermal conductivity input | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `weli `_ | Peaceman type well impedance | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `well or rive `_ | Implicit well package or River | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `wgtu `_ | Areas, weights (user-defined) for boundary conditions | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `wflo `_ | Alternate submodel boundary output | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `wtsi `_ | Water table, simplified | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `zneg `_ | Problem solving tool removes negative coefs | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `zone `_ | Geometric definition of grid for input parameter assignment | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ +| `zonn `_ | Same as zone, except zonn definitions are not overwritten | ++------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ + + ++-------------------------------------------+------------------------------------------------------------------+ +| Old Macros | Original Description, current behavior is undefined. | ++===========================================+==================================================================+ +| `alti `_ | Alternate element and coordinate input, grid format out of date. | ++-------------------------------------------+------------------------------------------------------------------+ +| `dof `_ | no longer used | ++-------------------------------------------+------------------------------------------------------------------+ +| `exuz `_ | no longer used | ++-------------------------------------------+------------------------------------------------------------------+ +| `dof `_ | no longer used | ++-------------------------------------------+------------------------------------------------------------------+ +| `naple or szna `_ | Isothermal water input, enable simplified napl solution | ++-------------------------------------------+------------------------------------------------------------------+ +| `rflx `_ | Radiation source term | ++-------------------------------------------+------------------------------------------------------------------+ +| `solv `_ | no longer used | ++-------------------------------------------+------------------------------------------------------------------+ +| `wlbr `_ | no longer used, replaced by [[wiki:MacroRiv | ++-------------------------------------------+------------------------------------------------------------------+ +| `zeol `_ | Zeolite water balance input | ++-------------------------------------------+------------------------------------------------------------------+ + + +.. _Comment: + +Comments may be entered in the input file by beginning a line with a ``#`` symbol (the ``#`` symbol must be found in the first column of the line). Comments may precede or follow macro blocks but may not be found within a block. + +Optional input files may be used by substituting a keyword and file name in the main input file (described in detail in `Optional Input Files`_). The normal macro input is then entered in the auxiliary file. + +A macro may be disabled (turned off or omitted from a run) by adding keyword "off" on the macro line and terminating the macro with an end statement of the form ``end//macro//`` or ``end //macro//`` (see `Option to disable a macro`_). + +.. _InputDataJA: + +Input Parameters +---------------------- + +Many input parameters such as porosity or permeability vary throughout the grid and need to have different values assigned at different nodes. This is accomplished in two ways. The first uses a nodal loop-type definition (which is the default): + + JA, JB, JC, PROP1, PROP2, . . . + +where + + JA - first node to be assigned with the properties PROP1, PROP2, . . . + + JB - last node to be assigned with the properties PROP1, PROP2, . . . + + JC - loop increment for assigning properties PROP1, PROP2, . . .. + + PROP1, PROP2, etc. - property values to be assigned to the indicated nodes. + +In the input blocks using this structure, one or more properties are manually entered in the above structure. When a blank line is entered, that input block is terminated and the code proceeds to the next group or control statement. (Note that blank input lines are shaded in the examples shown in `Individual Input Records or Parameters`_.) The nodal definition above is useful in simple geometries where the node numbers are easily found. Boundary nodes often come at regular node intervals and the increment counter JC can be adjusted so the boundary conditions are easily entered. To set the same property values at every node, the user may set JA and JC to 1 and JB to the total number of nodes, or alternatively set ``JA = 1``, and ``JB = JC = 0``. + +For dual porosity problems, which have three sets of parameter values at any nodal position, nodes 1 to N [where N is the total number of nodes in the grid (see macro `coor `_)] represent the fracture nodes, nodes N + 1 to 2N are generated for the second set of nodes, the first matrix material, and nodes 2N + 1 to 3N for the third set of nodes, the second matrix material. For double porosity/double permeability problems, which have two sets of parameter values at any nodal position, nodes 1 to N represent the fracture nodes and nodes N + 1 to 2N are generated for the matrix material. + +For more complicated geometries, such as 3-D grids, the node numbers are often difficult to determine. Here a geometric description is preferred. To enable the geometric description the `zone `_ control statement `wgtu `_ is used in the input file before the other property macro statements occur. The input macro **zone** requires the specification of the coordinates of 4-node parallelograms for 2-D problems or 8-node polyhedrons in 3-D. In one usage of the control statement **zone** all the nodes are placed in geometric zones and assigned an identifying number. This number is then addressed in the property input macro commands by specifying a JA < 0 in the definition of the loop parameters given above. For example if JA = -1, the properties defined on the input line would be assigned to the nodes defined as belonging to geometric Zone 1 (JB and JC must be input but are ignored in this case). The control statement **zone** may be called multiple times to redefine geometric groupings for subsequent input. The previous zone definitions are not retained between calls. Up to 1000 zones may be defined. For dual porosity problems, which have three sets of parameter values at any nodal position, Zone ``ZONE_DPADD + I`` is the default zone number for the second set of nodes defined by Zone I, and Zone ``2*ZONE_DPADD + I`` is the default zone number for the third set of nodes defined by Zone I. For double porosity/double permeability problems, which have two sets of parameter values at any nodal position, Zone ``ZONE_DPADD + I`` is the default zone number for the second set of nodes defined by Zone I. The value of ``ZONE_DPADD`` is determined by the number of zones that have been defined for the problem. If less than 100 zones have been used ``ZONE_DPADD`` is set to 100, otherwise it is set to 1000. Zones of matrix nodes may also be defined independently if desired. + +Alternatively, the `zonn `_ control statement may be used for geometric descriptions. Regions are defined the same as for control statement zone except that previous zone definitions are retained between calls unless specifically overwritten. + +**Interface** + +To interface with `GoldSim `_, FEHM is compiled as a dynamic link library (DLL) subroutine that is called by the GoldSim code. When FEHM is called as a subroutine from GoldSim, the GoldSim software controls the time step of the simulation, and during each call, the transport step is carried out and the results passed back to GoldSim for processing and/or use as radionuclide mass input to another portion of the GoldSim system, such as a saturated zone transport submodel. The interface version of FEHM is set up only to perform particle tracking simulations of radionuclide transport, and is not intended to provide a comprehensive flow and transport simulation capability for GoldSim. Information concerning the GoldSim user interface may be found in the GoldSim documentation (Golder Associates, 2002). + +**Consecutive Cases** + +Consecutive cases can be run using the multiple realizations simulation option (see `Multiple Realization Simulations`_). The program retains only the geometric information between runs (i.e., the grid and coefficient information). The values of all other variables are reinitialized with each run, either from the input files or a restart file when used. + +**Defaults** + +Default values are set during the initialization process if overriding input is not provided by the user. + +Individual Input Records or Parameters +-------------------------------------- + +Other than the information provided through the control file or terminal I/O and the multiple realization simulations file, the main user input is provided using macro control statements in the input file, geometry data file, zone data file, and optional input files. Data provided in the input files is entered in free format with the exception of the macro control statements and keywords which must appear in the first four (or more) columns of a line. Data values may be separated with spaces, commas, or tabs. The primary input file differs from the others in that it begins with a title line (80 characters maximum) followed by input in the form of the macro commands. Each file containing multiple macro commands should be terminated with the `stop `_ control statement. In the examples provided in the following subsections, blank input lines are depicted with shading. + +**Control File or Terminal I/O Input** + +The file name parameters enumerated below ``[nmfil(2-13)]``, are entered in order one per line in the control file (excluding the control file name ``[nmfil(1)]`` and error file name ``[nmfil(14)]``) or in response to a prompt during terminal input. If there is a control file with the name fehmn.files in your local space (current working directory), FEHM will execute using that control file and there will be no prompts. If another name is used for the control file, it can be entered on the command line or at the first prompt. + +A blank line can be entered in the control file for any auxiliary files not required, for the "none" option for tty output, and for the "0" option for the user subroutine number. + +In version 2.30 an alternate format for the control file has been introduced that uses keywords to identify which input and output files will be used. Please note that the file name input styles may not be mixed. + + Group 1: ``NMFIL(i)`` (a file name for each i = 2 to 13) + +or + + Group 1: ``KEYWORD: NMFIL`` + + Group 2: ``TTY_FLAG`` + + Group 3: ``USUB_NUM`` + +Unlike previous versions of the code, if a file name is not entered for the output file, check file, or restart file, the file will not be generated. An error output file will still be generated for all runs (default name ``fehmn.err``). However, with the keyword input style the user has the option of naming the error file. File names that do not include a directory or subdirectory name, will be located in the current working directory. With keyword input a root filename may be entered for output files that use file name generation (hist macro output, cont macro avs, surfer or tecplot output, etc.). The data files are described in more detail in `Data Files `_. + ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+===============+============================================+===========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| keyword | character*5 | No keywords, old style file format is used | Keyword specifying input or output file type. The keyword is entered followed immediately by a ":" with a "space" preceding the filename. Keywords, which must be entered starting in the first column, are: | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | | input - Main input filegrid - Geometry data file; or grida or gridf - Ascii formatted geometry file; or gridu or gridb - Unformatted geometry filezone - Initial zone fileoutp - Output filersti - Restart input filersto - Restart output filehist - Simulation history outputtrac - Solute history outputcont - Contour outputdual, dpdp - Dual porosity, double porosity outputstor - Coefficient storage filecheck -- Input check output filenopf - Symbolic factorization filecolu - Column data file for free surface problemserror - Error output fileroot - Root name for output file name generationco2i - CO,,2,, parameter data file (default co2_interp_table.txt)look - Equation of state data lookup table file (default lookup.in) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | | Keyword file name input is terminated with a blank line. The keywords and file names may be entered in any order unlike the old style input. | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| nmfil | character*100 | | Input or output file name | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | fehmn.files | nmfil( 1) - Control file name (this file is not included in the old style control file) (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | fehmn.dat | nmfil( 2) - Main input file name (required) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil( 3) - Geometry data input file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil( 4) - Zone data input file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil( 5) - Main output file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil( 6) - Restart input file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil( 7) - Restart output file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil( 8) - Simulation history output file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil( 9) - Solute history output file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil(10) - Contour plot output file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil(11) - Dual porosity or double porosity / double permeability contour plot output file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil(12) - Coefficient storage file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | not used | nmfil(13) - Input check output file name (optional) | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | fehmn.err | nmfil(14) - Error output file name (this file is not included in the old style control file). The default name is used if not input. | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tty_flag | character*4 | none | Terminal output flag: all, some, none | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| usub_num | integer | 0 | User subroutine call number | ++----------------+---------------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following are examples of the input control file. The first example (left) uses keyword style input, while the second and third examples (right) use the original style control file input form. In the first example, four files are explicitly named, the input file, geometry file, tracer history output file and output error file. A root file name is also provided for file name generation. The "all" keyword indicates that all information should be written to the terminal and the ending "0" indicates that the user subroutine will not be called. In the second example in the center, all input will be found in the current working directory and output files will also be written to that directory. The blank lines indicate that there is no restart initialization file or restart output file, a dual porosity contour plot file is not required, and the coefficient storage file is not used. The "some" keyword indicates that selected information is output to the terminal. The ending "0" indicates that the user subroutine will not be called. In the third example on the right, input will be found in the "groupdir" directory, while output will be written to the current working directory. The "none" keyword indicates that no information should be written to the terminal and the ending "0" indicates that the user subroutine will not be called. + +Files ``fehmn.files``: + ++--------------------------+--+------------+--+---------------------+ +| input: /groupdir/c14-3 | | tape5.dat | | /groupdir/c14-3 | ++--------------------------+--+------------+--+---------------------+ +| trac: c14-3.trc | | tape5.dat | | /groupdir/grid-402 | ++--------------------------+--+------------+--+---------------------+ +| grid: /groupdir/grid-402 | | tape5.dat | | /groupdir/c14-3 | ++--------------------------+--+------------+--+---------------------+ +| root: c14-3 | | tape5.out | | c14-3.out | ++--------------------------+--+------------+--+---------------------+ +| error: c14-3.err | | | | /groupdir/c14-3.ini | ++--------------------------+--+------------+--+---------------------+ +| | | | | c14-3.fin | ++--------------------------+--+------------+--+---------------------+ +| all | | tape5.his | | c14-3.his | ++--------------------------+--+------------+--+---------------------+ +| 0 | | tape5.trc | | c14-3.trc | ++--------------------------+--+------------+--+---------------------+ +| | | tape 5.con | | c14-3.con | ++--------------------------+--+------------+--+---------------------+ +| | | | | c14-3.dp | ++--------------------------+--+------------+--+---------------------+ +| | | | | c14-3.stor | ++--------------------------+--+------------+--+---------------------+ +| | | tape5.chk | | c14-3.chk | ++--------------------------+--+------------+--+---------------------+ +| | | some | | none | ++--------------------------+--+------------+--+---------------------+ +| | | 0 | | 0 | ++--------------------------+--+------------+--+---------------------+ + +Multiple Realization Simulations +-------------------------------- + +The multiple realization simulations input file (fehmn.msim) contains the number of simulations to be performed and, on UNIX systems, instructions for pre- and post-processing input and output data during a multiple realization simulation. The file uses the following input format: + +Line 1 nsim + +Lines 2-N single_line + ++----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+==============+==================================================================================================================================================================================================================================================================================================================================+ +| nsim | integer | Number of simulation realizations to be performed | ++----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| single_line | character*80 | An arbitrary number of lines of UNIX shell script or Windows bat file instructions: lines 2-n:lines which are written to a file called fehmn.pre (UNIX) or fehmn.pre.bat (Windows), which is invoked before each realization using the following command: sh fehmn.pre $1 $2 (UNIX systems) or fehmn.pre.bat $1 $2 (Windows) | ++----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | line n+1: the keyword 'post', placed in the first four columns of the input file, denotes that the previous line is the last line in the fehmn.pre script, and that the data for the post-processing script fehmn.post follows | ++----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | lines n+2 to N: lines which are written to a file called fehmn.post (UNIX) or fehmn.post.bat (Windows), which is invoked after each realization using the following command: sh fehmn.post $1 $2 (UNIX) or fehmn.post.bat $1 $2 (Windows) | ++----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Thus, the files fehmn.pre and fehmn.post are created by the code and are meant to provide the capability to perform complex pre- and post-processing steps during a multiple realization simulation. Script arguments $1 and $2 represent the current simulation number and nsim, the total number of simulations, respectively. | ++----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +In the following (UNIX style) example, 100 simulations are performed with pre and post-processing steps carried out. File "fehmn.msim" contains the following: + +.. code:: + + echo This is run number $1 of $2 + rm fehmn.filescurnum=`expr $1` + cp control.run fehmn.filesrm ptrk.inputcp ptrk.np$curnum ptrk.input + echo starting up the run + post + curnum=`expr $1`/home/robinson/fehm/chun_li/ptrk/process1_fujrm + np$curnum.outputmv results.output np$curnum.output + echo finishing the run again + +The first line after the number of simulations demonstrates how the current and total number of simulations can be accessed in the fehmn.pre shell script. This line will write the following output for the first realization: + +This is run number 1 of 100 + +The pre-processing steps in this example are to remove the fehmn.files file from the working directory, copy a control file to fehmn.files, copy a particle tracking macro input file to a commonly named file called ptrk.input, and write a message to the screen. The fehmn.files files should be used or else the code will require screen input of the control file name for every realization. One hundred particle tracking input files would have been generated previously, and would have the names ptrk.np1, ptrk.np2, . . ., ptrk.np100. Presumably, these files would all have different transport parameters, resulting in 100 different transport realizations. The post-processing steps involve executing a post-processor program for the results (process1_fuj). This post-processor code generates an output file called results.output, which the script changes to np1.output, np2.output, . . ., np100.output, for further processing after the simulation. + +One other point to note is that the variable "curnum" in this example is defined twice, once in the pre-processor and again in the post-processor. This is necessary because fehmn.pre and fehmn.post are distinct shell scripts that do not communicate with one another. + +Transfer function curve data input file +--------------------------------------- +In the FEHM particle tracking models, diffusion of solute from primary porosity into the porous matrix is captured using an upscaling procedure designed to capture the small scale behavior within the field scale model. The method is to impart a delay to each particle relative to that of a nondiffusing solute. Each particle delay is computed probabilistically through the use of transfer functions. A transfer function represents the solution to the transport of an idealized system with matrix diffusion at the sub-grid-block scale. After setting up the idealized model geometry of the matrix diffusion system, a model curve for the cumulative distribution of travel times through the small-scale model is computed, either from an analytical or numerical solution. Then, this probability distribution is used to determine, for each particle passing through a given large-scale grid block, the travel time of a given particle. Sampling from the distribution computed from the small scale model ensures that when a large number of particles pass through a cell, the desired distribution of travel times through the model is reproduced. In FEHM, there are equivalent continuum and dual permeability formulations for the model, each of which call for a different set of sub-grid-block transfer function curves. These curves are numerical input to the FEHM, with a data structure described below. Optional input in macros mptr, ptrk, and sptr is used to tell the code when transfer function curves are required and whether 2 or 3 (numparams) parameter curves are to be used. + ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++=================+=============+============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| DUMMY_STRING | character*4 | If keyword "free" is input at the beginning of the file, the code assumes an irregular distribution of transfer function parameters and performs either a nearest neighbor search to choose the transfer function curve, or a more computationally intensive multi-curve interpolation. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NCURVES | integer | Total number of transfer function curves input in the file when keyword "free" is used. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| LOG_FLAG | integer | Array of flags to denote whether to take the natural log of the parameter before determining the distance from the input parameter to the values for each transfer function when keyword "free" is used. If 0, use the input value, if 1, use ln(value). | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NORMAL_PARAM | real | Array of values for normalizing the parameters before performing the nearest neighbor or multi-curve interpolation. Each value is divided by NORMAL_PARAM(i) if LOG_FLAG is 0, and ln(LOG_FLAG) if LOG_FLAG is 1. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CURVE_STRUCTURE | integer | Flag to denote the type of interpolation to be performed when keyword "free" is used. If 1, simple nearest neighbor search, if > 1, a multi-curve interpolation is performed with curve_strucuture points nearest to the input values of the parameters. It is recommended that values no greater than 4 be used. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| WEIGHT_FACTOR | real | Optional wieght factor used when CURVE_STRUCTURE > 1. The default value is 1e-3. When determining the interpolated value of time using a multi-curve interpolation there are occasions where the algorithm yields large values of the weights used to compute the particle residence time. In a few such cases numerical errors can make the scheme fail so that the interpolated values for time erroneously get very large. This occurs when the sum of the weights divided by any individual weight is small, that is, large weights of opposite sign cancelling one another out. To prevent this error in the scheme from affecting the results, the code reverts to a nearest neighbor approach to obtain the time. The criterion for this option is that the sum of the weights divided by any individual weight is less than weight_factor. Increasing this value to 1.e-2 or higher can eliminate such occurrences. This parameter is very problem dependent, so this parameter is included for flexibility. It is recommended that the default of 1.e-3 or a higher value of 1.e-2 or so be used. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMP1 | integer | Number of parameter 1 values used to define transfer function curves. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PARAM1 | real | nump1 parameter 1 values defining transfer function curves. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMP2 | integer | Number of parameter 2 values used to define transfer function curves. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PARAM2 | real | nump2 parameter 2 values defining transfer function curves. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMP3 | integer | Number of parameter 3 values used to define transfer function curves. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PARAM3 | real | nump3 parameter 3 values defining transfer function curves. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| D4 | integer | Fracture-matrix flow interaction flag (d4 = 1, 4). For the three-parameter option, the dual permeability model requires four transfer function curves for each set of parameters. Interactions can occur from fracture-fracture (d4=1), fracture-matrix (d4=2), matrix-fracture (d4=3), and matrix-matrix (d4=4). | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMP_MAX | integer | Maximum number of delay time and concentration values for transfer function curves. | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMP | integer | Number of delay time and concentration values in each transfer function curve (nump1, nump2, nump3, d4). | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DTIME | real | Transfer function curve delay times (nump1, nump2, nump3, d4, nump). | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CONC | real | Transfer function curve concentrations (nump1, nump2, nump3, d4, nump). | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| OUTPUT_FLAG | character*3 | If optional keyword "out" is entered at the end of the file the code outputs information on the parameter space encountered during the simulation in the *.out file. See [[wiki:MacroMptr | ++-----------------+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The transfer function curve data file uses the following format if a regular grid of parameters is input. Please note that parameter values for this format should be input from smallest to largest value: + +.. code:: + + nump1 + + param1 (i), i = 1 to nump1 + + nump2 + + param2 (j), j = 1 to nump2 + +If 2 parameter curves are being input + + +.. code:: + + nump_max + + For each i, j (nump3 =1, d4 = 1) + + nump(i, j, 1, 1), param1(i), param2(j) + + followed by for each nump(i, j, 1, 1) + + time(i, j, 1, 1, nump), conc(i, j, 1, 1, nump) + +Or if 3 parameter curves are being input + +.. code:: + + nump3 + + param3(k), k = 1 to nump3 + + nump_max + + For each d4, i, j, k + + nump(i, j, k, d4), param1(i), param2(j), param3(k), d4 + + followed by for each nump(i, j, k, d4) + + time(i, j, k, d4, nump), conc(i, j, k, d4, nump) + + out_flag (optional) - keyword "out" + +The transfer function curve data file uses the following format for the case in which the transfer functions are input without a regular grid of parameters: + +.. code:: + + dummy_flag - keyword "free" + + log_flag(i), i = 1 to numparams + + normal_param(i), i = 1 to numparams + + curve_structure, weight_factor (optional) + + ncurves + + nump_max + + +For "free" form input of transfer function curves ``(nump1 = ncurves, nump2 = 1, and nump3 = 1)`` + +.. code:: + + If 2 parameter curves are being input + + For each i = 1to ncurve (d4 = 1) + + nump(i, 1, 1, 1), param1(i), param2(i) + + followed by for each nump(i, 1, 1, 1) + + time(i, 1, 1, 1, nump), conc(i, 1, 1, 1, nump) + +Or if 3 parameter curves are being input + +.. code:: + + For each d4 = 1 to 4, i = 1 to ncurve + + nump(i, 1, 1, d4), param1(i), param2(i), param3(i), d4 + + followed by for each nump(i, 1, 1, d4) + + time(i, 1, 1, d4, nump), conc(i, 1, 1, d4, nump) + + out_flag (optional) - keyword "out" + +Please note that all fracture-fracture curves are input followed by fracture-matrix curves, followed by matrix-fracture curves, followed by matrix-matrix curves. + +Optional Input Files +-------------------- + +The data for any of the FEHM macros (with the exception of coor and elem, where use of a separate geometry input file is handled through control file input) may be entered in an alternate input file. To use this option the keyword ‘file' must appear on the input line immediately following the control statement (macro name). The line immediately following this keyword will contain the name of the alternate input file. The contents of the alternate input file consist of the regular full macro description: the macro name followed by the data. Note that data from only one macro may be entered per auxilliary file. The entries in the optional input file may be preceded or followed by comments using the "#" designator (see discussion on `Comments`_ may be entered in the input file by beginning a line with a ‘#' symbol (the ‘#' symbol must be found in the first column of the line). Comments may precede or follow macro blocks but may not be found within a block.). As with regular macro input, comments may not be embedded within the data block. + + Group 1 - ``LOCKEYWORD`` + + Group 2 - ``LOCFILENAME`` + ++----------------+---------------+--------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+===============+==============================================================+ +| LOCKEYWORD | character*4 | Keyword 'file' to designate an auxiliary input file is used. | ++----------------+---------------+--------------------------------------------------------------+ +| LOCFILENAME | character*100 | Name of the optional data input file. | ++----------------+---------------+--------------------------------------------------------------+ + +The following illustrate the use of an optional input file and its contents. In this example, optional file "rockfile" is located in the current working directory. Input for macro "rock" is described in Control statement `rock `_ (required). + + +.. code:: + + rock + file + rockfile + + +File "rockfile": + + +.. code:: + + # Auxiliary file used for rock macro input + rock + 1 140 1 2563. 1010. 0.3500 + + # End of rock macro input + +Option to disable a macro +------------------------- +The data from any input macro may be omitted from a simulation by including the "off" keyword on the macro line and terminating the macro with an end macro statement. This also allows the inclusion of an end macro statement for any input macro. The end macro will follow the last specified line of input. If a macro is normally terminated with an end keyword, the macro id is appended to that keyword (an additional end macro line is not added). This facilitates experimentation with input options without the need to comment out or remove unwanted macros from the input file. + +In the following example the perm macro is turned off and the hyco macro is used in its place. + +.. code:: + + perm off + 1 0 0 1.e-12 1.e-12 1.e-12 + end perm + hyco + 1 0 0 3.8e-3 3.8e-3 3.8e-3 + end hyco diff --git a/docs/source/Macros.rst b/docs/source/Macros.rst new file mode 100644 index 00000000..8de8b81d --- /dev/null +++ b/docs/source/Macros.rst @@ -0,0 +1,325 @@ +****** +Macros +****** + +====================== +Macros by Problem Type +====================== + +Heat Conduction +--------------- + ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++=========================================================================================================+====================================================================+ +| `title `_ | `cont `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `boun `_ or `flow `_ or `hflx `_ | `finv `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `cond `_ | `flo2 `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `coor `_ | `flxo `_ or `flxz `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `ctrl `_ | `iter `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `elem `_ | `node `_ or `nod2 `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `init `_ or `pres `_ | `renu `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `rock `_ | `rflx `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `sol `_ | text or comments (#) | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `time `_ | `user `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| `stop `_ | `vcon `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++---------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ + + +Water / Water Vapor / Heat Equivalent Continuum, Dual Porosity,Dual Permeability +-------------------------------------------------------------------------------- + ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++================================================================================================================+=======================================================================+ +| `title `_ | `cden `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `boun `_ or `flow `_ or `hflx `_ | `cont `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `cond `_ | `eos `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `coor `_ | `exrl `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ctrl `_ | `finv `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `elem `_ | `flo2 `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `init `_ or `pres `_ | `flxo `_ or `flxz `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `perm `_ | `fper `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rlp `_ | `gdpm `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rock `_ | `hflx `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `sol `_ | `iter `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `time `_ | `node `_ or `nod2 `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `stop `_ | `ppor `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `renu `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dual (* only) | `rflx `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dpdp (** only) | `rxn `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | text or comments (#) | +| +-----------------------------------------------------------------------+ +| | `trac `_ | +| +-----------------------------------------------------------------------+ +| | `user `_ or `userc `_ | +| +-----------------------------------------------------------------------+ +| | `vcon `_ | +| +-----------------------------------------------------------------------+ +| | `velo `_ | +| +-----------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ + + +Air / Water / No Heat Equivalent Continuum, Dual Porosity, Dual Permeability +---------------------------------------------------------------------------- + ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++=======================================================================================================+=======================================================================+ +| `title `_ | `adif `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `boun `_ or `flow `_ or `hflx `_ | `cden `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `cond `_ | `cont `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `coor `_ | `eos `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ctrl `_ | `finv `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `elem `_ | `flo2 `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `init `_ or `pres `_ | `flxo `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ngas `_ | `fper `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `perm `_ | `gdpm `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rlp `_ | `iter `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rock `_ | `node `_ or `nod2 `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `sol `_ | `ppor `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `time `_ | `renu `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `stop `_ | `rflx `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `rxn `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dual (*only) | `szna `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dpdp (**only) | text or comments (#) | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `trac `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `user `_ or `userc `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `vapl `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `vcon `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `velo `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++-------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------+ + + + +Air / Water / No Heat Equivalent Continuum, Dual Porosity, Dual Permeability +---------------------------------------------------------------------------- + ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| Required Macros | Optional Macros | ++======================================================================+=======================================================================+ +| `title `_ | `bous `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `airwater `_ | `cont `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `boun `_ or `flow `_ | `eos `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `coor `_ | `exri `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `ctrl `_ | `finv `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `elem `_ | `flo2 `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `init `_ or `pres `_ | `flxo `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `node `_ or `nod2 `_ | `fper `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `perm `_ | `gdpm `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `rock `_ | `head `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `sol `_ | `iter `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `time `_ | `ppor `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| `stop `_ | `pres `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `renu `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dual (*only) | `rlp `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| dpdp (only) | `rxn `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | text or comments | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `trac `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `user `_ or `userc `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `vapl `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `velo `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ +| | `zone `_ or `zonn `_ | ++----------------------------------------------------------------------+-----------------------------------------------------------------------+ + + +=============== +Required Macros +=============== + +.. toctree:: + :maxdepth: 1 + + Macros/MacroAnpe.rst + Macros/MacroBoun.rst + Macros/MacroCond.rst + Macros/MacroCoor.rst + Macros/MacroElem.rst + Macros/MacroFdm.rst + Macros/MacroFlow.rst + Macros/MacroFtsc.rst + Macros/MacroHcon.rst + Macros/MacroHyco.rst + Macros/MacroInit.rst + Macros/MacroIvfc.rst + Macros/MacroPerm.rst + Macros/MacroPres.rst + Macros/MacroRock.rst + Macros/MacroStop.rst + Macros/MacroTime.rst + + +=============== +Optional Macros +=============== + + +.. toctree:: + :maxdepth: 1 + + Macros/MacroAdif.rst + Macros/MacroAirwater.rst + Macros/MacroAlti.rst + Macros/MacroBous.rst + Macros/MacroCarb.rst + Macros/MacroCden.rst + Macros/MacroCflx.rst + Macros/MacroCgdp.rst + Macros/MacroChea.rst + Macros/MacroConn.rst + Macros/MacroCont.rst + Macros/MacroConv.rst + Macros/MacroCtrl.rst + Macros/MacroDpdp.rst + Macros/MacroDual.rst + Macros/MacroDvel.rst + Macros/MacroEos.rst + Macros/MacroEvap.rst + Macros/MacroExrl.rst + Macros/MacroFinv.rst + Macros/MacroFlgh.rst + Macros/MacroFlo2.rst + Macros/MacroFlo3.rst + Macros/MacroFloa.rst + Macros/MacroFlwt.rst + Macros/MacroFlxn.rst + Macros/MacroFlxo.rst + Macros/MacroFlxz.rst + Macros/MacroFper.rst + Macros/MacroFrlp.rst + Macros/MacroGdkm.rst + Macros/MacroGdpm.rst + Macros/MacroGrad.rst + Macros/MacroHead.rst + Macros/MacroHflx.rst + Macros/MacroHist.rst + Macros/MacroIce.rst + Macros/MacroIntg.rst + Macros/MacroImex.rst + Macros/MacroImpf.rst + Macros/MacroIsot.rst + Macros/MacroIter.rst + Macros/MacroItfc.rst + Macros/MacroIttm.rst + Macros/MacroItup.rst + Macros/MacroIupk.rst + Macros/MacroMdnode.rst + Macros/MacroMptr.rst + Macros/MacroNfinv.rst + Macros/MacroNgas.rst + Macros/MacroNobr.rst + Macros/MacroNod2.rst + Macros/MacroNod3.rst + Macros/MacroNode.rst + Macros/MacroNrst.rst + Macros/MacroPara.rst + Macros/MacroPest.rst + Macros/MacroPhys.rst + Macros/MacroPpor.rst + Macros/MacroPtrk.rst + Macros/MacroRenu.rst + Macros/MacroRest.rst + Macros/MacroRflo.rst + Macros/MacroRflx.rst + Macros/MacroRich.rst + Macros/MacroRive.rst + Macros/MacroRlp.rst + Macros/MacroRlpm.rst + Macros/MacroRxn.rst + Macros/MacroSol.rst + Macros/MacroSptr.rst + Macros/MacroStea.rst + Macros/MacroStrs.rst + Macros/MacroSubm.rst + Macros/MacroSvar.rst + Macros/MacroSzna.rst + Macros/MacroText.rst + Macros/MacroThic.rst + Macros/MacroTrac.rst + Macros/MacroTrxn.rst + Macros/MacroUser.rst + Macros/MacroVapl.rst + Macros/MacroVbou.rst + Macros/MacroVcon.rst + Macros/MacroWeli.rst + Macros/MacroWflo.rst + Macros/MacroWgtu.rst + Macros/MacroWtsi.rst + Macros/MacroZeol.rst + Macros/MacroZneg.rst + Macros/MacroZone.rst + Macros/MacroZonn.rst \ No newline at end of file diff --git a/docs/source/Macros/MacroAdif.rst b/docs/source/Macros/MacroAdif.rst new file mode 100644 index 00000000..546edf07 --- /dev/null +++ b/docs/source/Macros/MacroAdif.rst @@ -0,0 +1,28 @@ +======== +``adif`` +======== + +Air-water vapor diffusion. The air-water diffusion equation is given as Equation (21) +of the "Models and Methods Summary" of the FEHM Application (Zyvoloski et al. 1999). + +* Group 1 - TORT + ++----------------+--------+----------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+========+============================================================================+ +| TORT | real | | Tortuosity for air-water vapor diffusion. | +| | | | If TORT > 0, :math:`\tau` of eqn 21, otherwise | +| | | | if TORT < 0, :math:`abs(\tau \phi S_v)` of the same equation. | +| | | | If TORT > 1, water-vapor diffusion coefficient is set equal to the value | +| | | | specified for the first vapor species defined in the trac macro. | ++----------------+--------+----------------------------------------------------------------------------+ + +The following is an example of ``adif``. In this example the tortuosity (:math:`\tau`) +for vapor diffusion is specified to be 0.8. + ++------+ +| adif | ++------+ +| 0.8 | ++------+ + diff --git a/docs/source/Macros/MacroAirwater.rst b/docs/source/Macros/MacroAirwater.rst new file mode 100644 index 00000000..a0becf2c --- /dev/null +++ b/docs/source/Macros/MacroAirwater.rst @@ -0,0 +1,44 @@ +=================== +``airwater or air`` +=================== + +Isothermal air-water two-phase simulation. + +* Group 1 - ICO2D + +* Group 2 - TREF, PREF + ++----------------+---------+------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+==============================================================================+ +| ICO2D | integer | | Determines the type of air module used. | +| | | | ICO2D = 1, 1 degree of freedom solution to the saturated-unsaturated | +| | | | problem is produced. This formulation is similar to the Richard's | +| | | | Equation. | +| | | | ICO2D = 2, 1 degree of freedom solution is obtained assuming only gas flow | +| | | | with no liquid present. | +| | | | ICO2D = 3, full 2 degree of freedom solution. | +| | | | All other values are ignored. The default is 3. | ++----------------+---------+------------------------------------------------------------------------------+ +| TREF | real | Reference temperature for properties (oC). | ++----------------+---------+------------------------------------------------------------------------------+ +| PREF | real | Reference pressure for properties (MPa). | ++----------------+---------+------------------------------------------------------------------------------+ + +Several macros are affected if the air module is enabled. These are: + +* **pres** - Because the air-water formulation is 2-phase at all times, care should be taken to insure that IEOSD is always specified to be 2. Likewise, saturations (not temperatures) are used. + +* **init** - This macro should not be used because the saturation values cannot be specified. + +* **flow** - A variety of different flow and boundary values are input with this macro when the macro **airwater** is also used. See description of control statement **flow**. + +The following is an example of **airwater**. In this example, a full 2-degrees-of-freedom solution is specified with a reference temperature for property evaluation of 20 oC and a reference pressure of 0.1 MPa. + ++------------+----------------+ +| airwater | ++============+================+ +| 3 | | ++------------+----------------+ +| 20. | 0.1 | ++------------+----------------+ diff --git a/docs/source/Macros/MacroAlti.rst b/docs/source/Macros/MacroAlti.rst new file mode 100644 index 00000000..dff74c70 --- /dev/null +++ b/docs/source/Macros/MacroAlti.rst @@ -0,0 +1,5 @@ +===================== +``alta`` (Deprecated) +===================== + +No longer supported, out of date grid format no longer used. \ No newline at end of file diff --git a/docs/source/Macros/MacroAnpe.rst b/docs/source/Macros/MacroAnpe.rst new file mode 100644 index 00000000..95de3f2a --- /dev/null +++ b/docs/source/Macros/MacroAnpe.rst @@ -0,0 +1,25 @@ +======== +``anpe`` +======== + +Anisotropic permeability input. Adds cross terms to the perm macro. + +The ANPE keyword implements a flux-continuous anisotropic permeability tensor with cross terms. The cross terms can either be input directly or grid rotation angles inputted and the cross terms calculated by FEHM. FEHM implements the method presented by Lee et al 2002. + +The ANPE is incompatible with keywords GDKM, GDPM, DUAL, and DPDP. + +* `Group 1 - JA, JB, JC, ANXY, ANXZ, ANYZ + + - (JA, JB, JC - `are defined here `_) + ++----------------+--------+---------+----------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+====================================================+ +| ANXY | real | 1.e-30 | Anisotropic permeability in the xy-direction (m2). | ++----------------+--------+---------+----------------------------------------------------+ +| ANXZ | real | 1.e-30 | Anisotropic permeability in the xz-direction (m2). | ++----------------+--------+---------+----------------------------------------------------+ +| ANYZ | real | 1.e-30 | Anisotropic permeability in the yz-direction (m2). | ++----------------+--------+---------+----------------------------------------------------+ + +#. Lee et al., 2002, Implementation of a Flux-Continuous Finite-Difference Method for Stratigraphic Hexahedron Grids, SPE Journal, Volume 7, Number 3, DOI 10.2118/80117-PA. \ No newline at end of file diff --git a/docs/source/Macros/MacroBoun.rst b/docs/source/Macros/MacroBoun.rst new file mode 100644 index 00000000..23489d9f --- /dev/null +++ b/docs/source/Macros/MacroBoun.rst @@ -0,0 +1,226 @@ +======== +``boun`` +======== + +.. note:: + + Either boun or flow is required for a flow problem. + +Implement boundary conditions and sources or sinks. Input may be time dependent and cyclic. Time step sizes may also be adjusted. + +* Group 1 - ``KEYWORD`` + +The Group 1 KEYWORD 'model', which starts each model sequence, is followed immediately by a Group 2 KEYWORD of 'ti', 'ti_linear', 'cy' or 'cy_linear'. + +* Group 2 - ``KEYWORD`` + +* Group 3 - ``NTIMES, TIME(I), I=1,NTIMES`` + +The Group 4 KEYWORDs define the various boundary condition parameters being entered. These KEYWORDs and associated data, Group 5, are repeated as needed for each model. Note that some keywords do not have associated variables. + +* Group 4 - ``KEYWORD`` + +* Group 5 - ``VARIABLE(I), I=1,NTIMES`` + +Additional models are entered by beginning again with Group 1. The ``MODEL_NUMBER`` is incremented each time a new model is read, and is used to assign boundary conditions to specified nodes or zones in Group 6. After all models have been entered, the section is terminated with KEYWORD 'end' or a blank line. + ++----------------+-------------+------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=============+============================================================================================================+ +| KEYWORD | character*4 | | Keyword specifying a model designation, time for boundary condition | +| | | | or source/sink changes, or actual variable or source change. | +| | | | Keywords, which must be entered starting in the first column, are: | +| | | | ``model`` - new model definition to follow | +| | | | *Note*: Descriptive text, such as the model number, may be appended after | +| | | | the 'model' keyword as long as it is contained on a single line, and | +| | | | begins after column four. | +| | | | ``ti`` - time sequence for changes to follow (days). The 'ti' keyword results | +| | | | in step function changes in boundary condition | +| | | | VARIABLE(i) at each TIME(i). | +| | | | ``ti_linear`` - time sequence for changes to follow (days). The 'ti_linear' | +| | | | keyword will apply a boundary condition that changes linearly | +| | | | with time. This option does not impose any control on time | +| | | | step size, so it is possible that a single time step can span | +| | | | an entire time interval and the linear change will not be seen. | +| | | | If time step size control is important it should be imposed | +| | | | in the time or ctrl macros. | +| | | | ``cy`` - cyclic time sequence for changes to follow (days). As with the 'ti' | +| | | | keyword, boundary condition changes are step functions. | +| | | | ``cy_linear`` - cyclic time sequence for changes to follow (days). As with the | +| | | | ``ti_linear`` keyword, boundary condition changes linearly with time. | +| | | | ``sec`` - Time sequence input is in seconds. | +| | | | ``min`` - Time sequence input is in minutes. | +| | | | ``day`` - Time sequence input is in days. (Default) | +| | | | ``year`` - Time sequence input is in years. | +| | | | *Note*: The keywords, 'ti', 'ti_linear', 'cy' and 'cy_linear', require the | +| | | | time to start at 0.0. This provides the initial boundary and | +| | | | source/sink information. If the input for 'ti' or 'cy' does not | +| | | | start at 0.0 time the code assumes boundary conditions and | +| | | | source/sinks are 0.0 at time 0.0. The 'cy' keyword involves a | +| | | | cyclic changing of conditions. In our procedure the cycle ends at | +| | | | the last specified time. Thus the code reverts to the first | +| | | | specified time values. Because of this, the boundary conditions | +| | | | and source/sinks for the last time change are always set to the first | +| | | | time values.The default units for time input is days. Input in seconds, | +| | | | minutes or years is converted to days. Time input units have no | +| | | | associated variable input. | | +| | | | ``tran`` - Keyword to indicate boundary conditions will not be invoked until | +| | | | the steady state portion of the simulation is completed and a | +| | | | transient run is initiated. See macro stea for more details. | +| | | | ``sa`` - air source sequence for changes to follow (kg/s) | +| | | | ``sw`` - water source sequence for changes to follow (kg/s) | +| | | | ``swf`` - source water factor sequence for changes to follow (multiplier | +| | | | for existing mass flow rates) | +| | | | ``se`` - enthalpy source sequence for changes to follow (MW) | +| | | | ``sf`` - water seepage face sequence with pressures for changes to follow (MPa) | +| | | | ``sfh`` - water seepage face sequence with heads for changes to follow (m) | +| | | | ``fd`` - water drainage area sequence for changes to follow (m2) | +| | | | ``dsa`` - distributed air source sequence for changes to follow (kg/s) | +| | | | ``dsw`` - distributed water source sequence for changes to follow(kg/s) | +| | | | ``dse`` - distributed enthalpy source sequence for changes to follow (MW) | +| | | | *Note*: A distributed source (keywords 'dsa', 'dsw', and 'dse') is a source | +| | | | term divided over a group of nodes or a zone proportional to the nodal volume. | +| | | | ``wgt`` - Distributed source is weighted using the nodal control volume. | +| | | | ``wgtx`` - Distributed source is weighted using nodal area = control volume / x length scale. | +| | | | ``wgty`` - Distributed source is weighted using nodal area = control volume / y length scale. | +| | | | ``wgtz`` - Distributed source is weighted using nodal area = control volume / z length scale. | +| | | | ``wgtp`` - Distributed source is weighted using nodal control volume * permeability. | +| | | | ``wgtpx`` - Distributed source is weighted using nodal control volume * permeability / x length scale. | +| | | | ``wgtpy`` - Distributed source is weighted using nodal control volume * permeability / y length scale. | +| | | | ``wgtpz`` - Distributed source is weighted using nodal volume * permeability / z length scale. | +| | | | *Note*: The length scale term is the dimension of the control volume bounding box, xmax-xmin, | +| | | | ymax-ymin, zmax-zmin, depending upon the suffix, x,y,z. This option is useful when one | +| | | | wants to apply a distributed source on a mesh with variable size mesh cells and would | +| | | | like the source percentage to be allocated based on surface area of each node. | +| | | | ``wgtr`` - Distributed source is weighted using nodal volume * permeability * relative permeability | +| | | | ``wgtu`` - Distributed source is weighted with user specified values (See macro wgtu). | +| | | | ``wgww`` - Distributed source is weighted using nodal volume * permeability * relative | +| | | | permeability * exponentially weigthed distance from pump | +| | | | *Note*: The distributed source weighting options have no associated variable input. | +| | | | ``s`` - fixed saturation sequence for changes to follow | +| | | | ``hd`` - fixed hydraulic head sequence for changes to follow (m) | +| | | | ``pw`` - fixed water pressure sequence for changes to follow (MPa) | +| | | | ``pa`` - fixed air pressure sequence for changes to follow (MPa) | +| | | | ``hdo`` - fixed hydraulic head sequence for changes to follow (m) (constrained to outflow only) | +| | | | ``pwo`` - fixed water pressure sequence for changes to follow (MPa) (constrained to outflow only) | +| | | | ``pao`` - fixed air pressure sequence for changes to follow (MPa) (constrained to outflow only) | +| | | | ``en`` - fixed enthalpy sequence for changes to follow (MW) | +| | | | ``t`` - fixed temperature sequence for changes to follow (oC) | +| | | | ``h`` - fixed humidity sequence for changes to follow (must be used with van Genuchten relative | +| | | | permeability model) | +| | | | ``ft`` - fixed flowing temperature sequence for change to follow (oC). By flowing temperature | +| | | | we mean the temperature of the inflow stream for a specified source. If no source | +| | | | inflow occurs where this condition is applied, it will be ignored. | +| | | | ``kx`` - fixed X permeability sequence for changes to follow (m2) | +| | | | ``ky`` - fixed Y permeability sequence for changes to follow (m2) | +| | | | ``kz`` - fixed Z permeability sequence for changes to follow (m2) | +| | | | ``if`` - impedance factor for use with fixed water pressure boundary condition. | +| | | | If left out the impedance factor will be set to the volume of the grid cell. | +| | | | ``si`` - initial value saturation sequence for changes to follow | +| | | | ``pai`` - initial value air pressure sequence for changes to follow (MPa) | +| | | | ``pwi`` - initial value water pressure sequence for changes to follow (MPa) | +| | | | ``tmi`` - initial value temperature sequence for changes to follow (oC) | +| | | | *Note*: The keywords 'si', 'pai', 'pwi', and 'tmi' refer to changes for a variable | +| | | | that is NOT fixed. They are similar to specifying initial conditions in that | +| | | | regard but may be changed according to a time sequence. At present these 4 | +| | | | keywords only work with isothermal air-water calculations. | +| | | | ``chmo`` - model number sequence for changes to follow | +| | | | ``ts`` - timestep sequence for changes to follow (days) | +| | | | ``end`` - signifies end of keyword input, a blank line will also work. | ++----------------+-------------+------------------------------------------------------------------------------------------------------------+ +| NTIMES | integer | Number of time changes for boundary condition or source/sink specification. | ++----------------+-------------+------------------------------------------------------------------------------------------------------------+ +| TIME | real | NTIMES times for changes in boundary conditions or source/sinks. | ++----------------+-------------+------------------------------------------------------------------------------------------------------------+ +| VARIABLE | real | NTIMES new values for boundary conditions or source/sinks. | ++----------------+-------------+------------------------------------------------------------------------------------------------------------+ +| MODEL_NUMBER | integer | | Boundary condition model to be associated with designated nodes or zones | +| | | | (the number corresponds to the numerical order in which the models were | +| | | | input, i.e., beginning with KEYWORD ``model``) | ++----------------+-------------+------------------------------------------------------------------------------------------------------------+ + + +The following is an example of ``boun``. In this example two models are defined. +The first model cyclically changes the water source in a 1.e05 day cycle, i.e., +the ``cy`` keyword entry shows that the time cycle ends at 1.e05 days and at this +time the cycle reverts to 0.0 days. Note that the water source at 1.e05 days +equals that at 0.0 days. Also in model 1 the flowing temperature was alternated +between 20oC and 50oC. The second model uses a time change that occurs at 1.e20 days. +This effectively removes any time variance from model 2. Model 2 has a fixed +water pressure and flowing temperature condition. The models are applied at +nodes 26 and 27 in the last two lines. It should be noted that the model numbers +included in the example (following KEYWORD ``model``) are not part of the required +input but are descriptive text used to enhance readability of the macro. + ++---------+--------+--------+--------+--------+--------+ +| boun | ++=========+========+========+========+========+========+ +| model 1 | | | | | | ++---------+--------+--------+--------+--------+--------+ +| cy | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 4 | 0.0 | 1.e1 | 1.e2 | 1.e5 | ++---------+--------+--------+--------+--------+--------+ +| sw | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | -1.e-4 | -1.e-5 | -1.e-3 | -1.e-4 | | ++---------+--------+--------+--------+--------+--------+ +| ft | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 20.0 | 50.0 | 50.0 | 20.0 | | ++---------+--------+--------+--------+--------+--------+ +| model 2 | | | | | | ++---------+--------+--------+--------+--------+--------+ +| ti | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 2 | 0.0 | 1.e20 | | | ++---------+--------+--------+--------+--------+--------+ +| pw | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 0.1 | 0.1 | | | | ++---------+--------+--------+--------+--------+--------+ +| ft | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 20.0 | 20.0 | | | | ++---------+--------+--------+--------+--------+--------+ +| end | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 26 | 26 | 1 | 1 | | ++---------+--------+--------+--------+--------+--------+ +| | 27 | 27 | 1 | 2 | | ++---------+--------+--------+--------+--------+--------+ + + +In the second example, a distributed water source is used to model a zone where +production is turned on and off. Keyword ``kz`` is used to specify a higher +permeability when production is occurring. The ``ts`` keyword is used to reset the +time step to 1.0 days, at the beginning of each time interval. The model is +applied to zone 100 in the last line. + + ++---------+--------+--------+--------+--------+--------+ +| boun | ++=========+========+========+========+========+========+ +| model 1 | | | | | | ++---------+--------+--------+--------+--------+--------+ +| ti | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 4 | 0.0 | 91.325 | 182.62 | 273.93 | ++---------+--------+--------+--------+--------+--------+ +| ts | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 1.0 | 1.0 | 1.0 | 1.0 | | ++---------+--------+--------+--------+--------+--------+ +| dsw | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 29.248 | 0.0 | 29.248 | 0. | | ++---------+--------+--------+--------+--------+--------+ +| kz | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | 8e-12 | 2e-12 | 8e-12 | 2e-12 | | ++---------+--------+--------+--------+--------+--------+ +| end | | | | | | ++---------+--------+--------+--------+--------+--------+ +| | -100 | 0 | 0 | 1 | | ++---------+--------+--------+--------+--------+--------+ + diff --git a/docs/source/Macros/MacroBous.rst b/docs/source/Macros/MacroBous.rst new file mode 100644 index 00000000..8b972e69 --- /dev/null +++ b/docs/source/Macros/MacroBous.rst @@ -0,0 +1,27 @@ +======== +``bous`` +======== + +Constant density and viscosity are used for the flow terms (``Boussinesq`` approximation). + +.. note:: + + Where the bous macro is used, the gravity term in the air phase is set to zero. + +* Group 1 - ICONS + ++----------------+---------+----------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+======================================================================+ +| ICONS | integer | | Parameter to enable constant density and viscosity for flow terms. | +| | | | ICONS ≠ 0 enabled. | +| | | | ICONS = 0 disabled (default). | ++----------------+---------+----------------------------------------------------------------------+ + +The following is an example of bous. In this example the ``Boussinesq`` approximation is enabled. + ++-------+ +| bous | ++=======+ +| 1 | ++-------+ \ No newline at end of file diff --git a/docs/source/Macros/MacroCarb.rst b/docs/source/Macros/MacroCarb.rst new file mode 100644 index 00000000..759815b9 --- /dev/null +++ b/docs/source/Macros/MacroCarb.rst @@ -0,0 +1,173 @@ +======== +``carb`` +======== + +Macro carb is used to set up a :math:`CO_2` problem. Input following the problem type is grouped using sub keywords. + +Group 1 - IPRTYPE + +Group 1 - KEYWORD + +KEYWORD ``co2pres`` + +* `JA, JB, JC, PHICO2, TCO2, ICES `_ + +KEYWORD ``co2flow`` + +* `JA, JB, JC, SKTMP, ESKTMP, AIPED, IFLG_FLOWMAC `_ + +KEYWORD ``co2diff`` + +* `JA, JB, JC, DIFF, TORTCO2 `_ + +KEYWORD ``co2frac`` + +* `JA, JB, JC, FW, FL, YC, CSALT, INICO2FLG `_ + +KEYWORD ``userprop`` + +* DENC, DENCP, DENCT, ENC, ENCP, ENCT, VISC, VISCP, VISCT +* DENW, DENWP, DENWT, ENW, ENWP, ENWT, VISW, VISWP, VISWT + +KEYWORD ``brine`` + +Input is terminated with KEYWORD ``end carb`` or ``endcarb``. + ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++=================================+======================================================================================================================================+=========+======================================================================================================================================================================================================================================================================+ +| IPRTYPE | integer | | | 1 = Water only problem (2 DOFs) | +| | | | | 2 = :math:`CO_2` only problem (2 DOFs) | +| | | | | 3 = :math:`CO_2`-water problem, no solubility (3 DOFs) | +| | | | | 4 = :math:`CO_2`-water problem, with solubility (4 DOFs) | +| | | | | 5 = :math:`CO_2`-water-air with solubility (5 DOFs) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | | Remaining input is grouped using sub-macro keywords. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "end carb" or "endcarb" | End of carb input. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "co2pres" | Set up the initial pressure (uses the same format as the pres macro) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PHICO2 | real | 0. | Initial :math:`CO_2` pressure (MPa). | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TCO2 | real | 0. | Initial :math:`CO_2` temperature (oC) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ICES | integer | 0 | | Initial guess for phase state of :math:`CO_2` (actual phase will be calculated internally), ICES settings are: | +| | | | | 1 = liquid | +| | | | | 2 = two-phase liquid and vapor | +| | | | | 3 = vapor | +| | | | | 4 = super-critical :math:`CO_2`. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "co2flow" | Set up co2 flow boundary conditions (similar to the flow macro used to set up water boundary conditions) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SKTMP | real | 0. | | For IFLG_FLOWMAC = 1, 2, 3, 4, 5 or 9 :math:`CO_2` flowing pressure (MPa). | +| | | | | For SKTMP = 0 the initial value of pressure will be used for the flowing pressure. | +| | | | | For IFLG_FLOWMAC = 6 or 7 water mass flow rate (kg/s). | +| | | | | For IFLG_FLOWMAC = 8 :math:`CO_2` flowing saturation. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ESKTMP | real | 0. | | For IFLG_FLOWMAC = 1, 2, 3, 6, 7 or 9 Enthalpy of fluid injected (MJ/kg). If the fluid is flowing from the rock mass, then the in-place enthalpy is used. If EFLOW<0, then ABS(EFLOW) is interpreted as a temperature (C) and the enthalpy calculated accordingly. | +| | | | | For IFLG_FLOWMAC = 4 or 5 :math:`CO_2` flowing saturation. | +| | | | | For IFLG_FLOWMAC = 8 mass fraction of CO2 | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AIPED | real | 0. | | For IFLG_FLOWMAC = 1, 2, 4 or 9 :math:`CO_2` impedance parameter. | +| | | | | For IFLG_FLOWMAC = 5 or 6 value is ignored. | +| | | | | For IFLG_FLOWMAC = 7 :math:`CO_2` mass fraction in water | +| | | | | For IFLG_FLOWMAC = 8 Water mass flow rate (kg/s). | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IFLG_FLOWMAC | integer | 0 | | Flag specifying boundary condition type, IFLG_FLOWMAC values: | +| | | | | 1 = Constant pressure boundary condition with inflow or outflow allowed. AIPED is user specified | +| | | | | 2 = Constant pressure boundary condition with only outflow allowed. AIPED is user specified | +| | | | | 3 = Constant pressure boundary condition. AIPED is calculated in the code based on block geometric parameters. | +| | | | | 4 = Constant pressure and constant saturation boundary condition. AIPED is user specified | +| | | | | 5 = Constant pressure and constant saturation boundary condition. AIPED is calculated in the code based on block geometric parameters. | +| | | | | 6 = Constant free phase :math:`CO_2` mass flow rate boundary condition. | +| | | | | 7 = Constant source of water with specified mass fraction of CO2 (kg/s) | +| | | | | 8 = ???? | +| | | | | 9 = Partial explicit update of nonlinear part of :math:`CO_2` constant pressure | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "co2diff" | Read :math:`CO_2` diffusivity in water | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DIFF | real | 0. | Diffusion | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TORTCO2 | real | 0. | Tortuosity for :math:`CO_2`-water vapor diffusion. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "co2frac" | Read initial :math:`CO_2`, air, water/brine saturation. FG, CO2/air-rich gas saturation (volume fraction), :math:`FG = 1 - FW - FL.` | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FW | real | 0. | Water-rich liquid saturation (volume fraction). | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FL | real | 0. | :math:`CO_2`-rich super-critical/liquid phase saturation (volume fraction). | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| YC | real | 0. | Mass fraction of :math:`CO_2` in the :math:`CO_2`-rich phase. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CSALT | real | 0. | Initial salt concentration in water for brine (ppm) (only used if "brine" keyword is invoked.) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| INICO2FLG | integer | 0 | Flag to override :math:`CO_2` fractions read from restart file. If set to 1 the input values are used instead of those read from the restart file. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "userprop" | Read user defined properties for :math:`CO_2` and brine | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DENC | real | | :math:`CO_2` density (:math:`kg/m^3`) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DENCP | real | | Derivative of density with respect to pressure. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DENCT | real | | Derivative of density with respect to temperature. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ENC | real | | :math:`CO_2` enthalpy (:math:`MJ/kg`). | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ENCP | real | | Derivative of enthalpy with respect to pressure. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ENCT | real | | Derivative of enthalpy with respect to temperature. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VISC | real | | :math:`CO_2` viscosity (:math:`Pa \cdot s`) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VISCP | real | | Derivative of viscosity with respect to pressure. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VISCT | real | | Derivative of viscosity with respect to temperature. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DENW | real | | Brine density (:math:`kg/m^3`) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DENWP | real | | Derivative of density with respect to pressure. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DENWT | real | | Derivative of density with respect to temperature. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ENW | real | | Brine enthalpy (:math:`MJ/kg`). | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ENWP | real | | Derivative of enthalpy with respect to pressure. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ENWT | real | | Derivative of enthalpy with respect to temperature. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VISW | real | | Brine viscosity (:math:`Pa \cdot s`) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VISWP | real | | Derivative of viscosity with respect to pressure. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VISWT | real | | Derivative of viscosity with respect to temperature. | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "brine" | Invoke option for brine in the simulation. (salt-concentration dependent :math:`CO_2` solubility) | ++---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +In the following example, zone 1 is injecting :math:`CO_2` dissolved water at 0.001 kg/s. The temperature is 20oC. The water has a dissolved :math:`CO_2` mass fraction of 0.3. The code will check internally whether the user specified mass fraction exceeds the equilibrium mass fraction calculated using the pressure and temperature values of the injection node. In case it does exceed that value, it is fixed at the equilibrium mass fraction. The user can specify a value of "zero" and the code will automatically fix the dissolved :math:`CO_2` mass fraction at the equilibrium value. Zone 2 is maintained at initial pressure using "aiped" calculated internally. + + +.. code:: + + carb + 4 + + co2pres + 1 0 0 3. 20. 4 + -1 0 0 13 20. 4 + -2 0 0 .6 20. 4 + + co2frac + 1 0 0 1.0 0.0 0 100000 0 + -1 0 0 0.9465 .0535 0 0. 0. + + co2flow + -2 0 0 0 -20. -1.e-1 3 + -1 0 0 -0.0001 -20. 0. 6 + + end carb + + + +  diff --git a/docs/source/Macros/MacroCden.rst b/docs/source/Macros/MacroCden.rst new file mode 100644 index 00000000..20e307ee --- /dev/null +++ b/docs/source/Macros/MacroCden.rst @@ -0,0 +1,35 @@ +======== +``cden`` +======== + +Use concentration-dependent density for flow. + +The following restrictions apply to the use of this macro: + +1) It cannot be used with the macro "head", which assumes constant fluid density +2) The updating of density is explicit, based on the concentration values at the previous time step. Therefore, accuracy of the solution must be tested by using a smaller time step and ensuring that the results have converged +3) The fluid flow time steps should be small enough that only one or two solute time steps are carried out before the next fluid time step, because relatively small changes in the concentration field are required for accuracy; and +4) The heat and mass transfer solution must be kept on during the entire simulation for the results to be meaningful (see macro trac). + +Group 1 - ISPCDEN + +Group 2 - FACTCDEN + ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+================================================================================================================================================================================================================================+ +| ISPCDEN | integer | The number of the chemical component in trac that is used for applying the concentration-dependent density. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FACTCDEN | real | The factor used in the following relationship for fluid density (kg/m3):density = density_water + FACTCDEN*C where density_water = the density of pure water (kg/m3), and C is the concentration of chemical component ISPCDEN | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following is an example of cden. In this example, component number 1 in trac is used. For concentrations of order 1, the density correction would be 100, of order 10% of the nominal value of water density of 1000 kg/m3. + ++----------+------+ +| cden | ++==========+======+ +| ISPCDEN | 1 | ++----------+------+ +| FACTCDEN | 100. | ++----------+------+ + diff --git a/docs/source/Macros/MacroCflx.rst b/docs/source/Macros/MacroCflx.rst new file mode 100644 index 00000000..0db77211 --- /dev/null +++ b/docs/source/Macros/MacroCflx.rst @@ -0,0 +1,45 @@ +======== +``cflx`` +======== + +Total moles of liquid solute moving through a zone are output by choosing this control statement. Vapor solute molar flows are currently not available. When this macro is invoked, the following output is given at every solute time step: + +* The sum of all solute source flow rates for each zone +* The sum of all solute sink rates for each zone +* The sum of all solute entering each zone +* The sum of all solute leaving each zone +* The net source/sink (boundary) solute flow for each zone + +The following values can be included on the macro line to specify which solute flows should be output: + +* 1 (source) +* 2 (sink) +* 3 (netin) +* 4 (netout) +* 5 (boundary) + +The default is to output all values. + +Zones must be defined using macro zone prior to using this macro. + +Group 1 - ``CFLXZ`` + +Group 2 - ``ICFLXZ(I), I = 1, CFLXZ`` + ++----------------+---------+------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+==============================================================================+ +| CFLXZ | integer | Number of zones for which output for solute flow through the zone iswritten. | ++----------------+---------+------------------------------------------------------------------------------+ +| ICFLXZ | integer | Zone numbers for which solute flow output is written (NFLXZ zones) | ++----------------+---------+------------------------------------------------------------------------------+ + +The following is an example of cflx. In this example solute flow through zones 1, 6 and 10 will be output. + ++---------+---+---+----+ +| cflx | ++=========+===+===+====+ +| CFLXZ | 3 | ++---------+---+---+----+ +| ICFLXZ | 1 | 6 | 10 | ++---------+---+---+----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroCgdp.rst b/docs/source/Macros/MacroCgdp.rst new file mode 100644 index 00000000..28fd8cd0 --- /dev/null +++ b/docs/source/Macros/MacroCgdp.rst @@ -0,0 +1,17 @@ +======== +``cgdp`` +======== + +Assign rate-limited gdpm nodes [i.e. make the connection value large for those nodes that serve only to link gdpm nodes (diffusion only) to the flow field]. + +Group 1 - wdd1 + +Group 2 - `JA, JB, JC, IGDPM_RATE_NODES `_ + ++------------------+-----------+----------------------------------------------+ +| Input Variable | Format | Description | ++==================+===========+==============================================+ +| macro | character | Process to be modified: 'heat', 'tran' | ++------------------+-----------+----------------------------------------------+ +| IGDPM_RATE_NODES | integer | GDPM nodes for which rate should be limited. | ++------------------+-----------+----------------------------------------------+ diff --git a/docs/source/Macros/MacroChea.rst b/docs/source/Macros/MacroChea.rst new file mode 100644 index 00000000..d05e4f39 --- /dev/null +++ b/docs/source/Macros/MacroChea.rst @@ -0,0 +1,25 @@ +======== +``chea`` +======== + +Convert output from pressure to head (non-head problems). The reference temperature and pressure are used to calculate density for the head calculation. For this macro the data are entered on the macro line, and if omitted the specified default values are used. (Note that all five values must be entered to override the default values.) + ++----------------+--------+---------+--------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+==================================================+ +| HEAD0 | real | 0. | Reference head (m) | ++----------------+--------+---------+--------------------------------------------------+ +| TEMP0 | real | 20. | Reference temperature (oC) | ++----------------+--------+---------+--------------------------------------------------+ +| PRES0 | real | 0.1 | Reference pressure (MPa) | ++----------------+--------+---------+--------------------------------------------------+ +| SAT_ICH | real | 0. | Saturation adjustment after variable switch | ++----------------+--------+---------+--------------------------------------------------+ +| HEAD_ID | real | 0. | Output head identification for small saturations | ++----------------+--------+---------+--------------------------------------------------+ + +The following is an example of chea. In this example pressures will be converted to heads for output using a reference pressure of 1 MPa and a reference temperature of 25 C. + +.. code:: + + chea 0. 25. 1. 0. 0. \ No newline at end of file diff --git a/docs/source/Macros/MacroCond.rst b/docs/source/Macros/MacroCond.rst new file mode 100644 index 00000000..9c1e162f --- /dev/null +++ b/docs/source/Macros/MacroCond.rst @@ -0,0 +1,28 @@ +``cond`` +======== + +Assign thermal conductivities of the rock. + +.. note:: + + ``cond`` is required for non-isothermal problems. + +`Group 1 - JA, JB, JC, THXD, THYD, THZD `_ + ++----------------+--------+---------+-----------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+=========================================+ +| THXD | real | 1.e-30 | Thermal conductivity in the x-direction | ++----------------+--------+---------+-----------------------------------------+ +| THYD | real | 1.e-30 | Thermal conductivity in the y-direction | ++----------------+--------+---------+-----------------------------------------+ +| THZD | real | 1.e-30 | Thermal conductivity in the z-direction | ++----------------+--------+---------+-----------------------------------------+ + +The following is an example of cond. In this example all the nodes numbered 1 through 140 have thermal conductivities of 1 in the X and Y directions, and 0 in the Z direction. + ++------+-----+---+----------+-----------+----------+ +| cond | | | | | | ++======+=====+===+==========+===========+==========+ +| 1 | 140 | 1 | 1.00e-00 | 1e.00e-00 | 0.00e-00 | ++------+-----+---+----------+-----------+----------+ \ No newline at end of file diff --git a/docs/source/Macros/MacroConn.rst b/docs/source/Macros/MacroConn.rst new file mode 100644 index 00000000..22fa501d --- /dev/null +++ b/docs/source/Macros/MacroConn.rst @@ -0,0 +1,5 @@ +======== +``conn`` +======== +Print number of connections for each node (after simplification of connectivity based on porosity) and stop. This macro can be used to determine if isolated nodes are left active after the porosity has been set to zero to deactivate the flow solution in portions of the grid. Poorly connected nodes cause problems with the particle tracking algorithms in FEHM. + diff --git a/docs/source/Macros/MacroCont.rst b/docs/source/Macros/MacroCont.rst new file mode 100644 index 00000000..c20d3d3a --- /dev/null +++ b/docs/source/Macros/MacroCont.rst @@ -0,0 +1,60 @@ +======== +``cont`` +======== + +Contour data output format, output timestep intervals, and time intervals. + +* Group 1 - ``NCNTR``, ``CONTIM`` + +An alternative form of input for macro cont is possible. This is + +* Group 1 - ``ALTC``, ``NCNTR``, ``CONTIM``, ``KEYWORD`` + +* Group 2 - ``CHDUM ``(only input if ALTC is 'avs', 'avsx', 'surf', or 'tec') + +If CHDUM = ``'zone'`` that line is followed by + +.. code:: + + NSURF + IZONE_ISURF(I), I=1, NSURF + ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+==============+======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| ALTC | character*4 | Keyword specifying the type of contour output wanted (avs, avsx, fehm, free, ment, ptrn): 'avs' produces contour plot files compatible with the AVS postprocessor. 'avsx' produces contour plot files compatible with the AVS Express postprocessor.‘fehm' produces a binary output file. The same contour plot file is produced using the first form of Group1 input. 'free' produces a free format contour plot file. 'surf' produces a contour plot file compatible with the SURFER postprocessor. 'tec' produces a contour plot file compatible with the TECPLOT postprocessor. | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NCNTR | integer | Time step interval for contour plots (number of timesteps). Output contour information each NCNTR timesteps. | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CONTIM | real | Time interval for contour plots (days). In addition to output each NCNTR timesteps, output contour information each CONTIM days. | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘time", use time (days) in file name instead of number (used when altc is "avs" or "avsx" or "sur" or "tec") | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CHDUM | character*72 | Keyword specifying type of contour plot data files to be created in AVS UCD, AVS Express, SURFER or TECPLOT format. Keywords are entered one per line and terminated with ‘endcont' or ‘end cont'. Valid keywords (case insensitive) are: | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | (f)ormatted - output data in ASCII format.(m)aterial - output contour values for material properties.(l)iquid - output contour values for liquid phase.(va)por - output contour values for vapor phase.(dp)dp - output contour values for dual permeability nodes.(g)eo - output geometry values (coordinates and connectivity, avs style or old tecplot style).(gr)id - output grid geometry and connectivity in a tecplot grid file format. Parameter files will be output using tecplot variable format.(n)odit - do not output a contour file at each dit (see time macro). | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | (c)oncentration - output solute concentration values.(ca)pillary - output capillary pressure values.(co2) - output saturation values (liquid/supercritical liquid and gas).(de)nsity - output density values.(di)splacement - output x, y, and z displacements for stress problem. When ‘reldisp' is specified in the strs macro relative displacements are output.(fh)ydrate - output htdrate fraction.(fl)ux - output node flux (additional keywords ‘net' ‘volume' ‘vwg')(fw)water - output water fraction.(h)ead - output head values.(hy)drate - output hydrate values.(pe)rmeability - output permeability values.(po)rosity - output porosity values.(p)ressure - output pressure values.(s)aturation - output saturation values.(so)urce - output source values.(stra)in - output strain for a stress problem.(stre)ss - output defined stresses (x, y, z, xy, xz, yz).(t)emperature - output temperature values.(ve)locity - output velocity values.(wt) - output water table elevation.(x)yz - output node coordinates(zi)d - output number of zone containing this node (as defined at end of input file)(z)one - output values for specified zones (entered on following lines)(e)ndcont - last keyword entered. | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | If a format keyword is not entered, the default is ‘formatted'. In the current version of the code this is the only format option supported. The default for data keywords is "off" (no output). The letters given in ( ) are sufficient to identify the keyword. The ‘zone' and ‘geo' keywords can not be used together. Geometry data will not be output if both keywords are specified. | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NSURF | integer | Number of output zones (entered following ‘zone' keyword). | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IZONE_SURF | integer | List of nsurf zone numbers (entered following ‘zone' keyword). | ++----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +FEHM will automatically distinguish between the alternative input formats. When keywords are used they must be entered starting in the first column. The contour data will be output whenever either of the interval criteria are satisfied. + +For keyword output, if the material keyword is selected, the following material property values (at the initial time) will be written for each node: permeability in the x, y, and z directions, thermal conductivity in the x, y, and z directions, porosity, rock specific heat, capillary pressure, relative permeability model being used, and capillary pressure model being used. If vapor and/or liquid are selected, pressure, velocity, or density must also be defined (otherwise, no data for these values will be written). velocity will result in vector values, other values will be scalar. If concentration is selected, values will be output only if nspeci is defined for tracer solutions. See the control statement trac for a description of nspeci for solutes. + +The following are examples of cont. For the first example, FEHM binary format contour output files will be written every 100 timesteps and for each 1.e20 days. The second example invokes AVS contour output. AVS UCD formatted files will be written for every 100 time steps and 1.e20 days. The resulting files will include a log file, geometry file, plus header and data files for the following: material properties, solute concentrations, liquid velocities, pressures and temperatures. + +.. code:: + + cont + 100 + 1.e20 + + contavsmatconliquidvelocitypressuretempformattedendavs + 100 + 1.e20 diff --git a/docs/source/Macros/MacroConv.rst b/docs/source/Macros/MacroConv.rst new file mode 100644 index 00000000..b9a57ff7 --- /dev/null +++ b/docs/source/Macros/MacroConv.rst @@ -0,0 +1,57 @@ +======== +``conv`` +======== + +Convert input from head to pressure. Often used when converting a head-based isothermal model to a heat and mass simulation with pressure and temperature variables. The reference temperature and head are used to calculate density for the head calculation. It should be noted that this is an approximate method. Since the density is a nonlinear function of pressure and temperature this method will give slightly different answers than a calculation allowing a water column to come to thermal and mechanical equilibrium. + +The reference head (``head0``) is converted to a pressure and added to the reference pressure (``conv1``) and this sum is used with the reference temperature to calculate a density. This density is used to convert the head to pressure for the identified zone. The option of adding a temperature gradient is provided as well. + +The reference head (``head0``) is entered on the macro line: + +.. code:: + + conv HEAD0 + +* Group 1 - NCONV + +* Group 2 – ZONE_CONV, ICONVF, CONV1, CONV2, CORDC, IDIRC, VARC + +Group 2 is entered for each zone (nconv times). + ++----------------+---------+---------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+=========================================================+ +| HEAD0 | real | Reference head (m) | ++----------------+---------+---------------------------------------------------------+ +| NCONV | integer | Number of zones for variable conversion | ++----------------+---------+---------------------------------------------------------+ +| ZONE_CONV | integer | Zone for variable conversion | ++----------------+---------+---------------------------------------------------------+ +| ICONVF | integer | iconvf : 1- initial conditions, 2-boundary (fixed head) | ++----------------+---------+---------------------------------------------------------+ +| CONV1 | real | Reference pressure (MPa) | ++----------------+---------+---------------------------------------------------------+ +| CONV2 | real | Reference temperature (oC) | ++----------------+---------+---------------------------------------------------------+ +| CORDC | real | Reference coordinate (m) | ++----------------+---------+---------------------------------------------------------+ +| IDIRC | integer | Coordinate direction (1 - X, 2 - Y, 3 - Z) | ++----------------+---------+---------------------------------------------------------+ +| VARC | real | Temperature gradient (oC/m) | ++----------------+---------+---------------------------------------------------------+ + +The following is an example of conv. Here the density used to convert head to pressure is calculated with a reference head of 1000 m plus 0.1 MPa and 80 °C. The nodes in zone 45 are converted from heads to pressures at 80 °C. + +.. code:: + + conv + 1000. + 1 + 45 + 1 + 0.4 + 80. + 0. + 0 + 0.0 + diff --git a/docs/source/Macros/MacroCoor.rst b/docs/source/Macros/MacroCoor.rst new file mode 100644 index 00000000..fd3ccf0a --- /dev/null +++ b/docs/source/Macros/MacroCoor.rst @@ -0,0 +1,55 @@ +======== +``coor`` +======== + +Node coordinate data. These data are usually created by a mesh generation program, then cut and copied into the input file or a separate geometry data input file. The mesh must be a right handed coordinate system. Note that X, Y, and Z coordinates must be entered even if a problem is not three-dimensional. Version2.30 added the ability to provide the coordinate data in a formatted or unformatted file. + +.. note:: + + ``coor`` is required if macro ``fdm`` is not used. + +* Group 1 - N + +* Group 2 - MB, CORD1, CORD2, CORD3 + +To end the control section a blank line is entered. + ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+====================================================================================================================================================================================+ +| N | integer | Number of nodes in the grid | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MB | integer | Node number. If MB < 0 then the difference between the absolute value of MB and the previously read absolute value of MB is used to generate intermediate values by interpolation. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CORD1 | real | X-coordinate of node MB (m). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CORD2 | real | Y-coordinate of node MB (m). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CORD3 | real | Z-coordinate of node MB (m). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following is an example of ``coor``. In this example, there are 140 nodes in the grid. Node number 1 has X, Y, Z coordinates of 0., 200., and 0. meters respectively, node 2 has X, Y, Z coordinates of 12.5, 200., and 0. meters respectively, and so forth, with node number 140 having X, Y, Z coordinates of 300., 0., and 0. meters respectively. + ++------+-----------+-----------+---------+ +| coor | | | | ++------+-----------+-----------+---------+ +| 140 | 0.00000 | 200.00000 | 0.00000 | ++------+-----------+-----------+---------+ +| 1 | 12.50000 | 200.00000 | 0.00000 | ++------+-----------+-----------+---------+ +| . | . | . | . | ++------+-----------+-----------+---------+ +| . | . | . | . | ++------+-----------+-----------+---------+ +| . | . | . | . | ++------+-----------+-----------+---------+ +| 10 | 212.50000 | 200.00000 | 0.00000 | ++------+-----------+-----------+---------+ +| . | . | . | . | ++------+-----------+-----------+---------+ +| . | . | . | . | ++------+-----------+-----------+---------+ +| . | . | . | . | ++------+-----------+-----------+---------+ +| 140 | 300.00000 | 0.00000 | 0.00000 | ++------+-----------+-----------+---------+ \ No newline at end of file diff --git a/docs/source/Macros/MacroCtrl.rst b/docs/source/Macros/MacroCtrl.rst new file mode 100644 index 00000000..ed2bed7b --- /dev/null +++ b/docs/source/Macros/MacroCtrl.rst @@ -0,0 +1,70 @@ +======== +``ctrl`` +======== + +Assign various control parameters needed for equation solvers and matrix solver routines. Suggested values for the control parameters are shown in **"{ }"** in the table. For older input files where MAXSOLVE and ACCM were not input, the default is ``ACCM = gmre`` and ``MAXSOLVE = 3*NORTH``. + +* Group 1 - MAXIT, EPM, NORTH, MAXSOLVE, ACCM +* Group 2 - `JA, JB, JC, NAR `_ +* Group 3 - AAW, AGRAV, UPWGT +* Group 4 - IAMM, AIAA, DAYMIN, DAYMAX +* Group 5 - ICNL, LDA + ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``MAXIT`` | integer | | Maximum number of iterations allowed in either the overall Newton cycle or the inner cycle to solve for the corrections at each iteration. If ``MAXIT < 0`` then the maximum number of iterations is ``ABS(MAXIT)`` but the minimum number of iterations is set to 2. {10} | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``EPM`` | real | | Tolerance for Newton cycle (nonlinear equation tolerance). Note - EPM gets overwritten by TMCH in ITER macro if that variable is defined. {1.e-5} | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``NORTH`` | integer | | Number of orthogonalizations in the linear equation solver. Note - for more complicated problems, increase ``NORTH``. For example, for fully coupled stress problems recommend using a value of 80 and gmre. {8 for gmre, 1 for bcgs} | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``MAXSOLVE`` | integer | | Maximum number of solver iterations per Newton iteration allowed. {100} | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``ACCM`` | character*4 | | Acceleration method for solver bcgs - Biconjugate gradient stabilized acceleration. Recommended for isothermal steady-state saturated flow problems. gmre - Generalized minimum residual acceleration. Recommended for all other types of problems. | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``NAR`` | integer | 1 | The order of partial Gauss elimination {1 or 2 is recommended}. Larger values increase memory utilization but may be necessary for convergence. | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``AAW`` | real | | Implicitness factor. {1}AAW ‚⧠1, use standard pure implicit formulation.AAW > 1, use second-order implicit method. | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``AGRAV`` | integer | | Direction of gravity AGRAV = 0, no gravity is used.AGRAV = 1, X-direction.AGRAV = 2, Y-direction.AGRAV = 3, Z-direction.A value for gravity of 9.81 m/s2 is used in the code when AGRAV ‚â 0. If AGRAV > 3, AGRAV is set equal to 3. | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``UPWGT`` | real | | Value of upstream weighting {1.0}.If UPWGT < 0.5, UPWGT is set to 0.5If UPWGT > 1.0, UPWGT is set to 1.0 | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``IAMM`` | integer | | Maximum number of iterations for which the code will multiply the time step size. If this number of time steps is exceeded at any time, the time step will not be increased for the next time. Set IAMM < MAXIT {7-10}. | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``AIAA`` | real | 1 | Time step multiplier {1.2-2.0} | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``DAYMIN`` | real | 1.0e-05 | Minimum time step size (days) | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``DAYMAX`` | real | 30.0 | Maximum time step size (days) | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``ICNL`` | integer | | Parameter that specifies the geometry: ``ICNL = 0``, three-dimensional. ``ICNL = 1``, X - Y plane. ``ICNL = 2``, X - Z plane. ``ICNL = 3``, Y - Z plane. ``ICNL = 4``, X - Y radial plane, (radius is X). ``ICNL = 5``, X - Z radial plane, (radius is X). ``ICNL = 6``, Y - Z radial plane, (radius is Y) | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``LDA`` | integer | 0 | Parameter that specifies the external storage of geometric coefficients: ``LDA = -2``, element coefficients are calculated in the code and saved, unformatted, on file filen.stor. ``LDA = -1``, element coefficients are calculated in the code and saved on file ``filen.stor``. ``LDA = 0``, element coefficients are calculated in the code and not saved. ``LDA = +1``, element coefficients are read from file ``filen.stor`` and no coefficients are calculated in the code. ``LDA = +2``, element coefficients are read, unformatted, from file ``filen.stor`` and no coefficients are calculated in the code. ``LDA = +5``, element coefficients are read from file ``filen.stor`` and no coefficients are calculated in the code. Coefficients are re-saved unformatted, on ``filen_UNF.stor``. ``LDA = +6``, element coefficients are read from file ``filen.stor`` and no coefficients are calculated in the code. Coefficients are re-saved formatted, on ``filen_FOR.stor``. ``LDA = +7``, element coefficients are read, unformatted, from file ``filen.stor`` and no coefficients are calculated in the code. Coefficients are re-saved unformatted, on ``filen_UNF.stor``. ``LDA = +8``, element coefficients are read, unformatted, from file ``filen.stor`` and no coefficients are calculated in the code. Coefficients are re-saved formatted, on ``filen_FOR.stor``. It should be noted that if the coefficients are read from a file (``LDA > 0``) then the macro nfinv is ignored as well as information read from macros elem and coor since the coefficients are not being calculated. | ++----------------+-------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +The following is an example of ``ctrl``. In this example, the maximum number of iterations allowed is 40, tolerance for solving the nonlinear equations using Newton iterations is 1.e-7, and the number of orthogonalizations in the linear equation solver is 8. The order of partial Gauss elimination for all nodes 1 through 140 is 1. A forward implicit formulation is used for the time derivative, there is no gravity, and full upstream weighting is used. The number of iterations for which the time step is increased is 40, the time step is increased by a factor of 1.2 at each iteration, the minimum time step size is 0.1 days, and the maximum time step size is 60 days. The geometry of the problem is 2-dimensional in the X-Y plane and the finite element coefficients are calculated during the run and not saved. + +.. code:: + + ctrl + 40 + 1 + 1.e-7 + 140 + 8 + 1 + 24 + 1 + gmre + 1.0 + 40 + 1 + 0.0 + 1.2 + 00 + 1.00 + 0.1 + 60.0 \ No newline at end of file diff --git a/docs/source/Macros/MacroDpdp.rst b/docs/source/Macros/MacroDpdp.rst new file mode 100644 index 00000000..836b9653 --- /dev/null +++ b/docs/source/Macros/MacroDpdp.rst @@ -0,0 +1,45 @@ +======== +``dpdp`` +======== + +Double porosity / double permeability formulation. There are two sets of parameter +values at any nodal position, for which property values must be defined. +Nodes 1 to N (see macro coor for definition of N) represent the fracture nodes +and nodes N + 1 to 2N the matrix material. When zones are used with the dpdp macro, +additional zones are automatically generated. See instructions for the macro zone +for a more detailed description. The dpdp parameters are only defined for the first N nodes. + +* Group 1 - IDPDP +* Group 2 - `JA, JB, JC, VOLFD1 `_ +* Group 3 - `JA, JB, JC, APUV1 `_ + ++----------------+---------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++----------------+---------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDPDP | integer |   | Solution descriptor for double porosity/double permeability solution. IDPDP = 0, information is read but not used. IDPDP ≠ 0, dpdp solution is implemented. | ++----------------+---------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VOLFD1 | real | 1. | Volume fraction for fracture node. | ++----------------+---------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| APUV1 | real | 10. | Half spacing between fractures (m). See TRANSFLAG in macros MPTR and PTRK. | ++----------------+---------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The volume fraction VOLFD1 is related to the total volume by + +:math:`VOLFD1 + VOLLFD2 = 1.0` + +where VOLFD2 is the volume fraction of the matrix node. If permeability model +``IRLP = 4`` is selected in control statement **rlp**, +VOLFD1 is calculated from RP15 (fracture porosity) in that control statement. + +The following is an example of ``dpdp``. In this example, +the dual porosity/permeability solution is implemented for all nodes from +1 through 140. The fractional volume in the fractures (compared to the total volume) +is 0.005 and the length scale for matrix nodes is 0.1 m. + +.. code:: + + dpdp + 1 + 1 140 1 0.005 + + 1 140 1 0.10 diff --git a/docs/source/Macros/MacroDual.rst b/docs/source/Macros/MacroDual.rst new file mode 100644 index 00000000..f8ec5f56 --- /dev/null +++ b/docs/source/Macros/MacroDual.rst @@ -0,0 +1,67 @@ +======== +``dual`` +======== + +Dual porosity formulation. There are three sets of parameter values at any nodal +position, for which property values must be defined. Nodes 1 to N (see macro ``coor`` +for definition of N) represent the fracture nodes, nodes N + 1 to 2N the first +matrix material, and nodes 2N + 1 to 3N the second matrix material. +When zones are used with the ``dual`` macro, additional zones are automatically +generated. + +See instructions for the macro ``zone`` for a more detailed description. +The ``dual`` parameters are only defined for the first N nodes. + +* Group 1 - IDUALP +* `Group 2 - JA, JB, JC, VOLFD1 `_ +* `Group 3 - JA, JB, JC, VOLFD2 `_ +* `Group 4 - JA, JB, JC, APUVD `_ + ++----------------+---------+---------+-------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++----------------+---------+---------+-------------------------------------------------------------------+ +| IDUALP | integer | | | Solution descriptor for dual porosity solution. | +| | | | | IDUALP = 0, information is read but not used. | +| | | | | IDUALP ≠ 0, dual porosity solution is implemented | +| | | | | For the special case of IDUALP = 2, the | +| | | | permeabilities and conductivities are scaled | +| | | | by the volume fraction, i.e., :math:`k = vf * k`. | ++----------------+---------+---------+-------------------------------------------------------------------+ +| VOLFD1 | real | 0.001 | Volume fraction for fracture portion of the continuum. | ++----------------+---------+---------+-------------------------------------------------------------------+ +| VOLFD2 | real | 0.5 | Volume fraction for the first matrix portion of the continuum. | ++----------------+---------+---------+-------------------------------------------------------------------+ +| APUVD | real | 5. | Length scale for the matrix nodes (m). | ++----------------+---------+---------+-------------------------------------------------------------------+ + + +The volume fractions VOLFD1 and VOLFD2 are related to the total volume by + +:math:`VOLFD1 + VOLFD2 + VOLFD3 = 1.0` + +where VOLFD3 is the volume fraction of the second matrix node. +If permeability model IRLP = 4 is selected in control statement ``rlp``, +VOLFD1 is calculated from RP15 (fracture porosity) in that control statement. + +The following is an example of ``dual``. In this example, the dual porosity +solution is implemented for all nodes from 1 through 140. The volume fraction +for the fracture is 0.006711409, the volume fraction for the first matrix portion +is 0.335570470, and the length scale for the matrix nodes is 0.1 m. + ++------+-----+---+-------------+ +| dual | | | | ++------+-----+---+-------------+ +| 1 | | | | ++------+-----+---+-------------+ +| 1 | 140 | 1 | 0.006711409 | ++------+-----+---+-------------+ +| | | | | ++------+-----+---+-------------+ +| 1 | 140 | 1 | 0.335570470 | ++------+-----+---+-------------+ +| | | | | ++------+-----+---+-------------+ +| 1 | 140 | 1 | 0.10 | ++------+-----+---+-------------+ +| | | | | ++------+-----+---+-------------+ diff --git a/docs/source/Macros/MacroDvel.rst b/docs/source/Macros/MacroDvel.rst new file mode 100644 index 00000000..8da1e1e6 --- /dev/null +++ b/docs/source/Macros/MacroDvel.rst @@ -0,0 +1,19 @@ +======== +``dvel`` +======== + +Velocity between two nodes is output by choosing this control statement. +The input for this macro is identical to macro ``flxo``, except that +velocities instead of fluxes are calculated (see +`flxo (optional) `_). + +In the following example of ``dvel``, a single internode velocity is +calculated between nodes 101 and 102. + ++------+-----+ +| dvel | | ++------+-----+ +| 1 | | ++------+-----+ +| 101 | 102 | ++------+-----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroElem.rst b/docs/source/Macros/MacroElem.rst new file mode 100644 index 00000000..7c89562a --- /dev/null +++ b/docs/source/Macros/MacroElem.rst @@ -0,0 +1,77 @@ +======== +``elem`` +======== + +Element connectivity data. These data are usually created by a mesh generation program, then cut and copied into the input file or a separate geometry data input file. + +.. note:: + + ``elem`` is required if macro ``fdm`` is not used. + +* Group 1 - ``NS``, ``NEI`` +* Group 2 - ``MB``, ``NELM (1)``, ``NELM (2)``, . . ., ``NELM (NS)`` + +If :math:`NS < 0` then :math:`ABS(NS)` is interpreted as the number of nodes per element. +:math:`NS < 0` signals the code to make rectangles (or bricks in three dimensions) +a sum of triangles (or tetrahedrals). This provides more stability in nonlinear problems +with a distorted mesh. `See Elements available with FEHM in 2-D and 3-D problems showing +nodal numbering convention. `_ shows available element types +and the nodal numbering convention. To end the control section a blank line is entered. + ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``NS`` | integer | Number of nodes per element. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``NEI`` | integer | Number of elements | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``MB`` | integer | Element number. ``If MB < 0`` then the difference between the absolute value of MB and the previous absolute value of MB is used to generate intermediate values by interpolation in the code. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``NELM (1)`` | integer | First node of element MB | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``NELM (2)`` | integer | Second node of element MB | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ... | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``NELM (NS)`` | integer | Last node of element MB | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following is an example of **elem**. In this example there are 4 nodes per element, +i.e., the elements are 2-dimensional quadrilaterals. There are a total of +117 elements in the model, element number 1 is defined by nodes 15, 16, 2, and 1, +element number 2 is defined by nodes 16, 17, 3 and2, and so on. + ++------+-----+-----+-----+-----+ +| elem | | | | | ++------+-----+-----+-----+-----+ +| 4 | 117 | | | | ++------+-----+-----+-----+-----+ +| 1 | 15 | 16 | 2 | 1 | ++------+-----+-----+-----+-----+ +| 2 | 16 | 17 | 3 | 2 | ++------+-----+-----+-----+-----+ +| . | . | . | . | . | ++------+-----+-----+-----+-----+ +| . | . | . | . | . | ++------+-----+-----+-----+-----+ +| . | . | . | . | . | ++------+-----+-----+-----+-----+ +| 10 | 24 | 25 | 11 | 10 | ++------+-----+-----+-----+-----+ +| 11 | 25 | 26 | 12 | 11 | ++------+-----+-----+-----+-----+ +| 12 | 26 | 27 | 13 | 12 | ++------+-----+-----+-----+-----+ +| . | . | . | . | . | ++------+-----+-----+-----+-----+ +| . | . | . | . | . | ++------+-----+-----+-----+-----+ +| . | . | . | . | . | ++------+-----+-----+-----+-----+ +| 116 | 138 | 139 | 125 | 124 | ++------+-----+-----+-----+-----+ +| 117 | 139 | 140 | 126 | 125 | ++------+-----+-----+-----+-----+ +| | | | | | ++------+-----+-----+-----+-----+ + diff --git a/docs/source/Macros/MacroEos.rst b/docs/source/Macros/MacroEos.rst new file mode 100644 index 00000000..8e66ab30 --- /dev/null +++ b/docs/source/Macros/MacroEos.rst @@ -0,0 +1,99 @@ +======= +``eos`` +======= + +Equation of State. Provide the code with alternate thermodynamic properties for the liquid and/or vapor phases. (This is one way in which the code may be instructed to simulate nonisothermal, single phase air. It may also be used to make comparisons between the code and analytical solutions that use different equations of state.) + +* Group 1 - IIEOSD, IPSAT, ITSAT +* Group 2 - EWI, EW2, EW3, EW4, EW5, EW6, EW7, EW8, EW9, EW10, EW11 +* Group 3 - EVI, EV2, EV3, EV4, EV5, EV6, EV7, EV8, EV9, EV10, EV11 + +For calculation of the simplified thermodynamic equations the above data is used to generate first order equations. The exception to this is the viscosity of the liquid and use of the ideal gas law. The viscosity of the liquid uses a 1/T term. For the calculation of vapor density and its derivatives, the ideal gas law is used instead of a linear relationship. Thus, EV4 and EV5 are not used, but are included so the format is the same as that for the liquid parameters in Group 2. + ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+==========================================================================================================================================================================================================================================================================================================================================================+ +| IIEOSD | integer | Equation of state reference number. When IIEOSD = 1 or 2 are used, they refer to the high and low pressure data sets, respectively, in FEHM. For these values the input in Group 2 and Group 3 will be ignored after it is entered. When any value other than 1 or 2 are used, the user-defined equation of state is used with Groups 2 and 3 for input. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPSAT | integer | Parameter to set vapor pressure to zero. If IPSAT ≠ 0 the vapor pressure is set to zero, otherwise the vapor pressure is calculated in the code. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ITSAT | integer | Parameter to adjust the saturation temperature. If ITSAT < 0, the saturation temperature is set to -1000oC. If ITSAT > 0, the saturation temperature is set to 1000oC. If ITSAT = 0, the calculated value is used. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW1 | real | Liquid reference pressure (MPa). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW2 | real | Liquid reference temperature (oC). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW3 | real | Liquid reference density (kg/m3). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW4 | real | Derivative of liquid density with respect to pressure at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW5 | real | Derivative of liquid density with respect to temperature at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW6 | real | Liquid reference enthalpy (MJ/kg). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW7 | real | Derivative of liquid enthalpy with respect to pressure at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW8 | real | Derivative of liquid enthalpy with respect to temperature at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW9 | real | Liquid reference viscosity (Pa s). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW10 | real | Derivative of liquid viscosity with respect to pressure at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EW11 | real | Derivative of liquid viscosity with respect to temperature at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV1 | real | Vapor reference pressure (MPa). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV2 | real | Vapor reference temperature (oC). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV3 | real | Vapor reference density (kg/m3). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV4 | real | Not used, included only to maintain a similar format to Group 2. Density variation with pressure governed by ideal gas law. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV5 | real | Not used, included only to maintain a similar format to Group 2. Density variation with temperature governed by ideal gas law. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV6 | real | Vapor reference enthalpy (MJ/kg). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV7 | real | Derivative of vapor enthalpy with respect to pressure at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV8 | real | Derivative of vapor enthalpy with respect to temperature at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV9 | real | Vapor reference viscosity (Pa s). | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV10 | real | Derivative of vapor viscosity with respect to pressure at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EV11 | real | Derivative of vapor viscosity with respect to temperature at reference conditions. | ++----------------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following is an example of ``eos``. + +In this example, a user-defined equation of state is specified and the vapor pressure and saturation temperature are calculated in the code. +For liquid properties, the reference pressure is :math:`0.1\:MPa`, the reference temperature is 20 °C, and the reference density is :math:`998.\:kg/m^3`, +the derivative of density with respect to pressure is zero and with respect to temperature is :math:`-0.2\:kg/m^3/C`. + +The reference enthalpy is :math:`0.88\:MJ/kg`, the derivative of enthalpy with pressure is zero, and the derivative with temperature is :math:`4.2 \cdot 10^{-03}\:MJ/kg/C`. + +The reference viscosity is :math:`9 \cdot 10^{-04}\:Pa \cdot s` and the derivatives of viscosity with pressure and temperature are zero. + +For vapor properties, the reference pressure is 0.1 MPa, the reference temperature is 20 oC, and the reference density is :math:`1.29\:kg/m^3`. + +The reference enthalpy is :math:`2.5\:MJ/kg`, the derivative of enthalpy with pressure is 0, and with temperature is :math:`0.1\:MJ/kg/C`. + +The reference viscosity is 2.e-4 Pa⋅s and its derivatives with pressure and temperature are zero. + ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ +| eos | | | | | | | | | | | ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ +| 3 | 0 | 0 | | | | | | | | | ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ +| 0.1 | 20. | 998 | 0. | - | 0.8 | 0. | 4.2e- | 9.e- | 0. | 0. | ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ +| 0.1 | 20. | 1.2 | 0. | 0 | 8 | 0. | 3 | 4 | 0. | 0. | ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ +| | | 9 | | . | 2.5 | | 0.1 | 2.e- | | | ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ +| | | | | 2 | | | | 4 | | | ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ +| | | | | 0. | | | | | | | ++-----+-----+-----+----+----+-----+----+-------+------+----+----+ + + diff --git a/docs/source/Macros/MacroEvap.rst b/docs/source/Macros/MacroEvap.rst new file mode 100644 index 00000000..d5cf9648 --- /dev/null +++ b/docs/source/Macros/MacroEvap.rst @@ -0,0 +1,7 @@ +======== +``evap`` +======== + +Macro evap incorporates functionality for evaporation and Richard's equation to FEHM. + +Documentation pending. \ No newline at end of file diff --git a/docs/source/Macros/MacroExrl.rst b/docs/source/Macros/MacroExrl.rst new file mode 100644 index 00000000..9ba2b33e --- /dev/null +++ b/docs/source/Macros/MacroExrl.rst @@ -0,0 +1,24 @@ +======== +``exrl`` +======== + +Allows the user to choose linearized relative permeability. The linearized relative +permeability is formed using the nonlinear value of relative permeability at the +iteration number IEXRLP. After that iteration a relative permeability value based +on a Taylor series expansion in saturation is used. + +* Group 1 - IEXRLP + ++----------------+---------+--------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+================================================================================+ +| IEXRLP | integer | If IEXRLP ≥ 1, then linearized relative permeability. Otherwise not enabled. | ++----------------+---------+--------------------------------------------------------------------------------+ + +In the following example of ``exrl``, the user enables linearized relative permeability at the first iteration. + ++-------+ +| exrl1 | ++-------+ +| 1 | ++-------+ diff --git a/docs/source/Macros/MacroFdm.rst b/docs/source/Macros/MacroFdm.rst new file mode 100644 index 00000000..9a34b61d --- /dev/null +++ b/docs/source/Macros/MacroFdm.rst @@ -0,0 +1,62 @@ +======= +``fdm`` +======= + +Finite difference input. + +.. note:: + + ``fdm`` is required if macros ``coor`` are ``elem`` are not used. + +* Group 1 - KEYWORD + +* Group 2 - MODCHAR (only if KEYWORD is "modf") + +or + +* Group 2 - NX, NY, NZ (if KEYWORD is "block" or "poin") + +* Group 3 - X0, Y0, Z0 (only if KEYWORD is ‘block) + +* Group 4 - MB, COORDINATE (X, Y or Z) (if KEYWORD is "poin") + +or + +* Group 4 - MB, SPACING (DX, DY, DZ) (if KEYWORD is "bloc") + +Group 4 is repeated for each NX, NY, and NZ, i.e., all X data are input, followed by Y data, followed by Z data for each division terminated by a blank line. + ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+===============+================================================================================================================================================================+ +| KEYWORD | character*4 | Keyword indicating format of finite difference input to follow ("block", "poin", or "modf"). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MODCHAR | character*132 | If the keyword is "modf", the name of a modflow geometry data file is input and the finite difference input is read from that file and no other data is input. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NX | integer | Number of divisions in the x direction. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NY | integer | Number of divisions in the y direction. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NZ | integer | Number of divisions in the z direction. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X0 | real | Coordinate of x origin point (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y0 | real | Coordinate of y origin point (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z0 | real | Coordinate of z origin point (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X | real | X coordinate (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y | real | Y coordinate (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z | real | Z coordinate (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DX | real | Node spacing in the x direction (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DY | real | Node spacing in the y direction (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DZ | real | Node spacing in the z direction (m). | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MB | integer | Division number. If the division number is negative the code will space each divison from the previous to the current proportional to the assigned spacings. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ + diff --git a/docs/source/Macros/MacroFinv.rst b/docs/source/Macros/MacroFinv.rst new file mode 100644 index 00000000..a0ad9a51 --- /dev/null +++ b/docs/source/Macros/MacroFinv.rst @@ -0,0 +1,8 @@ +======== +``finv`` +======== + +Used so that FEHM calculates finite volume coefficients. No input or action is associated with this macro. This macro is on my default. + +Note that in previous versions of FEHM the default was to generate finite element coefficients instead of finite volume coefficients for the flow calculations. This can be performed by using macro nfinv. + diff --git a/docs/source/Macros/MacroFlgh.rst b/docs/source/Macros/MacroFlgh.rst new file mode 100644 index 00000000..e9914c41 --- /dev/null +++ b/docs/source/Macros/MacroFlgh.rst @@ -0,0 +1,7 @@ +======== +``flgh`` +======== + +Macro flgh for Generalized head boundary conditions (confined aquifer) + +Documentation pending. \ No newline at end of file diff --git a/docs/source/Macros/MacroFlo2.rst b/docs/source/Macros/MacroFlo2.rst new file mode 100644 index 00000000..79038e3b --- /dev/null +++ b/docs/source/Macros/MacroFlo2.rst @@ -0,0 +1,31 @@ +======== +``flo2`` +======== + +* Group 1 - JA, JB, JC, JD, SKD, EFLOW, AIPED + +Multiple lines of input may be used, terminated by a blank line. + ++----------------+---------+--------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+======================================================================================+ +| JA | integer | Indices used to define planes in a 3-D simulation with a regular numbering pattern. | ++----------------+---------+ + +| JB | integer | | ++----------------+---------+ + +| JC | integer | | ++----------------+---------+ + +| JD | integer | | ++----------------+---------+--------------------------------------------------------------------------------------+ + + +The flow rates are defined within the inner loop of the do loops: + +.. code:: + + DO JK = JA, JB + KL = JK - JA + DO IJ = JA + KL, JC + KL, JD + ⋅ ⋅ ⋅ + ENDDO + ENDDO \ No newline at end of file diff --git a/docs/source/Macros/MacroFlo3.rst b/docs/source/Macros/MacroFlo3.rst new file mode 100644 index 00000000..5d714af3 --- /dev/null +++ b/docs/source/Macros/MacroFlo3.rst @@ -0,0 +1,17 @@ +======== +``flo3`` +======== + +Alternate format for flow data for a seepage face. + ++----------------+---------+---------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+===============================================================+ +| PFLOW | real | Ambient pressure (MPa) or flow area (m2) | ++----------------+---------+---------------------------------------------------------------+ +| ESK | real | Not used | ++----------------+---------+---------------------------------------------------------------+ +| AIPED | real | Same as above for AIPED under keyword "flow" | ++----------------+---------+---------------------------------------------------------------+ +| KA | integer | Flag to indicate seepage face (-3) or unit gradient flux (-2) | ++----------------+---------+---------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroFloa.rst b/docs/source/Macros/MacroFloa.rst new file mode 100644 index 00000000..ed7c8b78 --- /dev/null +++ b/docs/source/Macros/MacroFloa.rst @@ -0,0 +1,6 @@ +======== +``floa`` +======== + +The input for this macro is identical to macro flow, except that it is relevant only to mass flows and the values are additive to existing fluxes for the defined nodes. + diff --git a/docs/source/Macros/MacroFlow.rst b/docs/source/Macros/MacroFlow.rst new file mode 100644 index 00000000..01773ea3 --- /dev/null +++ b/docs/source/Macros/MacroFlow.rst @@ -0,0 +1,149 @@ +======== +``flow`` +======== + +.. note:: + + Either ``boun`` or ``flow`` are required for a flow problem. + +Flow data. Source and sink parameters are input and may be used to apply boundary conditions. Note that the alternative definitions for isothermal models apply when flow is used in conjunction with control statement **airwater **(`See Control statement airwater or air (optional) `_). + ++-------------------------+--------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++=========================+========+=========+=================================================================================================================================================================================================================================================================================================================================================================================================+ +| Non-Isothermal model | | | | ++-------------------------+--------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SKD | real | 0. | Heat and mass source strength (kg/s), heat only (MJ/s). Negative value indicates injection into the rock mass. | ++-------------------------+--------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EFLOW | real | 0. | Enthalpy of fluid injected (MJ/kg). If the fluid is flowing from the rock mass, then the in-place enthalpy is used. | ++-------------------------+--------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   |   | If EFLOW < 0, then ABS(EFLOW) is interpreted as a temperature (oC) and the enthalpy (assuming water only) calculated accordingly. In heat only problems with EFLOW < 0, the node is in contact with a large heat pipe that supplies heat to the node through an impedance AIPED so as to maintain its temperature near ABS (EFLOW). Large values (approximately 1000) of AIPED are recommended. | ++-------------------------+--------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AIPED | real | 0. | Impedance parameter. If AIPED is nonzero, the code interprets SKD as a flowing wellbore pressure (MPa) with an impedance ABS(AIPED). If AIPED < 0, flow is only allowed out of the well. For heat only, AIPED is the thermal resistance. If AIPED = 0, SKD is flow rate. If AIPED ≠ 0 and SKD = 0 the initial value of pressure will be used for the flowing pressure. | ++-------------------------+--------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. note:: + If the porosity of the node is zero, then there is only a temperature solution, + and the code forms a source proportional to the enthalpy difference. + The source term is given by :math:`Q = AIPED \cdot (E - EFLOW)`, + where E is the in-place enthalpy and EFLOW is a specified enthalpy. + ++--------------------------------------------------------------------------+--------+---------+--------------------------------------------------------------------------------------+ +| Isothermal model | ++--------------------------------------------------------------------------+--------+---------+--------------------------------------------------------------------------------------+ +| Case 1: AIPED = 0 (Constant Mass Rate, 1- or 2-Phase Source or Sink) | ++--------------------------------------------------------------------------+--------+---------+--------------------------------------------------------------------------------------+ +| SKD | real | 0. | Mass source strength (kg/s). Negative value indicates injection into the rock mass. | ++--------------------------------------------------------------------------+--------+---------+--------------------------------------------------------------------------------------+ +| EFLOW | real | 0. | | a) EFLOW ≥ 0, EFLOW is the source liquid saturation, | +|   |   |   | | * :math:`Q_w = SKD \cdot EFLOW` (kg/s) | +|   |   |   | | * :math:`Q_a = SKD \cdot (1 - EFLOW)` (kg/s) | ++--------------------------------------------------------------------------+--------+---------+--------------------------------------------------------------------------------------+ +|   |   |   | | b) EFLOW < 0, ABS(EFLOW) is the source air pressure (MPa) | +|   |   |   | | * :math:`Q_w = SKD` (kg/s) | +|   |   |   | | * :math:`Q_a = 1.0 \cdot (P_a - ABS(EEFLOW))` (kg/s) | ++--------------------------------------------------------------------------+--------+---------+--------------------------------------------------------------------------------------+ +| AIPED  |   |   | Used only as flag to indicatee Constant Mass Rate | ++--------------------------------------------------------------------------+--------+---------+--------------------------------------------------------------------------------------+ + + +In the above and following relations, :math:`Q_w` is the source term for water, :math:`Q_a` is the source term for air, +and :math:`P_a` is the in-place air pressure. The second case works well in situations where +inflow is specified and it is desired to hold the air pressure at a constant value. + + ++----------------------------------------------------------------------------------+------+----+---------------------------------------------------------------------------------------------+ +| Case 2: AIPED > 0 (Constant Pressure, Constant Liquid Saturation Source or Sink) | ++----------------------------------------------------------------------------------+------+----+---------------------------------------------------------------------------------------------+ +| SKD | real | 0. | Specified source pressure (MPa). | ++----------------------------------------------------------------------------------+------+----+---------------------------------------------------------------------------------------------+ +| EFLOW | real | 0. | | a) EFLOW < 0, air only source. | +| | | | | * :math:`Q_a = AIPED \cdot (P_a - SKD)` (kg/s) | +| | | | | | +| | | | | b) 0 < EFLOW < 1, EFLOW is specified source liquid saturation, | +| | | | | for SKD ≥ 0, 2-phase source, | +| | | | | * :math:`Q_a = AIPED \cdot (P_a - SKD)` (kg/s) | +| | | | | * :math:`Q_w = AIPED \cdot (S_l - EEFLOW) \cdot P_0` (kg/s) | +| | | | | when SKD < 0, water only source :math:`Q_a = 0`. | +| | | | | | +| | | | | c) EFLOW = 1, water only source. | +| | | | | * :math:`Q_w = AIPED \cdot (P_l - SKD)` kg/s | ++----------------------------------------------------------------------------------+------+----+---------------------------------------------------------------------------------------------+ +| AIPED | real | | | Impedance parameter. A large value is recommended (102 - 106) in order to create a flow | +| | | | | term large enough to maintain constant pressure. | ++----------------------------------------------------------------------------------+------+----+---------------------------------------------------------------------------------------------+ + + ++---------------------------------------------------------+-------+----+----------------------------------------------------------------+ +| Case 3: AIPED < 0 (Outflow only, if :math:`P_l > SKD`) | ++---------------------------------------------------------+-------+----+----------------------------------------------------------------+ +| SKD | real | 0. | Pressure above which outflow occurs (MPa) | ++---------------------------------------------------------+-------+----+----------------------------------------------------------------+ +| EFLOW | real | 0. | Not used. | ++---------------------------------------------------------+-------+----+----------------------------------------------------------------+ +| AIPED | real | 0. | Impedance parameter. | ++ + + +----------------------------------------------------------------+ +| | | | :math:`Q_w = ABS(AIPED) \cdot R_l / \mu_l(P_l - SKD)` (kg/s) | ++---------------------------------------------------------+-------+----+----------------------------------------------------------------+ + +where :math:`R_l` is the water relative peremeability and :math:`\mu_l` is the water viscosity. + + ++----------------+---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ +| | PARAMETER | SKD | EFLOW | ++----------------+---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ +| Physics Model | **AIPED\*** | :math:`\ge 0` | :math:`< 0` | :math:`\ge 0` | :math:`< 0` | ++----------------+---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ +| Non-isothermal | :math:`> 0` | Flowing wellbore pressure (MPa) | Flowing wellbore pressure (MPa) - injection into rock mass | Enthalpy (MJ/kg) | Temperature (C) | ++ +---------------+------------------------------------------------+------------------------------------------------------------+ + + +| | :math:`= 0` | | Flow rate (kg/s) | | Flow rate (kg/s) | | | +| | | | Heat only (MJ/s) | | Heat only (MJ/s) - injection into rock mass | | | ++ +---------------+------------------------------------------------+------------------------------------------------------------+ + + +| | :math:`< 0` | Flowing wellbore pressure (MPa) - outflow only | N/A | | | ++----------------+---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ +| Isothermal | :math:`> 0` | Specified source pressure (MPa) | Specified source pressure (MPa) - Water only source | Source liquid saturation | Air only source (used as flag) | ++ +---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ +| | :math:`= 0` | Mass source strength (kg/s) | Mass source strength (kg/s) - injection into rock mass | Source liquid saturation | Source air pressure (MPa) | ++ +---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ +| | :math:`< 0` | Pressure above which outflow occurs (MPa) | N/A | N/A | N/A | ++----------------+---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ +| \* Impedance parametere | ++----------------+---------------+------------------------------------------------+------------------------------------------------------------+--------------------------+---------------------------------+ + +The following are examples of flow. In the first example, at node 88, a mass flow of 0.05 kg/s at 25 C +is being withdrawn from the model. Because fluid is being withdrawn the in-place temperature will actually be used. +For every 14th node from node 14 to 140, the pressure and temperature are being held constant at 3.6 MPa and 160 C, +respectively. This represents a constant temperature recharge along one of the problem boundaries. + ++------+-----+----+-------+--------+ +| flow | | | | | ++------+-----+----+-------+--------+ +| 88 | 88 | 1 | 0.050 | -25.0 | ++------+-----+----+-------+--------+ +| 14 | 140 | 14 | 3.600 | -160.0 | ++------+-----+----+-------+--------+ + + +In the second example, the corresponding input for airwater, is included, indicating +an isothermal air-water two-phase simulation is being run with a reference temperature +for property evaluation of 20 C and a reference pressure of 0.1 MPa. At nodes 26 and 52, +water saturation is 100% and water is being injected at 2.e-3 kg/s. At nodes 1 and 27, +there is an air only source, with a specified pressure of 0.1 MPa, and the air is +being injected at the rate of 100\*(Pa - 0.1) kg/s. + ++----------+-----+----+--------+------+ +| airwater | | | | | ++----------+-----+----+--------+------+ +| 2 | | | | | ++----------+-----+----+--------+------+ +| 20.0 | 0.1 | | | | ++----------+-----+----+--------+------+ +| flow | | | | | ++----------+-----+----+--------+------+ +| 26 | 52 | 26 | -2.e-3 | 1.0 | ++----------+-----+----+--------+------+ +| 1 | 27 | 26 | 0.1 | -0.2 | ++----------+-----+----+--------+------+ +| | | | | | ++----------+-----+----+--------+------+ + diff --git a/docs/source/Macros/MacroFlwt.rst b/docs/source/Macros/MacroFlwt.rst new file mode 100644 index 00000000..86c7079a --- /dev/null +++ b/docs/source/Macros/MacroFlwt.rst @@ -0,0 +1,7 @@ +======== +``flwt`` +======== + +Macro flwt provides movable source or sink (wtsi only) + +Documentation Pending \ No newline at end of file diff --git a/docs/source/Macros/MacroFlxn.rst b/docs/source/Macros/MacroFlxn.rst new file mode 100644 index 00000000..7c318946 --- /dev/null +++ b/docs/source/Macros/MacroFlxn.rst @@ -0,0 +1,5 @@ +======== +``flxn`` +======== + +There is no input associated with this macro. It is a flag to FEHM to output all source and sink fluxes (non-zero values) by node to a file named ``source_sink.flux``. diff --git a/docs/source/Macros/MacroFlxo.rst b/docs/source/Macros/MacroFlxo.rst new file mode 100644 index 00000000..eedd09b9 --- /dev/null +++ b/docs/source/Macros/MacroFlxo.rst @@ -0,0 +1,75 @@ +======== +``flxo`` +======== + +Mass flow between two nodes is output by choosing this control statement. + +* Group 1 - NFLX + +* Group 2 - IFLX1, IFLX2 (repeated NFLX times) + +* Group 3 - X1, Y1, Z1 (as needed) + +* Group 4- X2, Y2, Z2 (as needed) + +If IFLX1 < 0, then after all IFLX1 and IFLX2 values are read, coordinates X1, Y1, +and Z1 are read and the node nearest to these coordinates is used. If IFLX2 < 0, +coordinates for the second node are read in on another line. The code cycles +through each IFLX1 and IFLX2 in this manner, reading coordinates when needed. + +Results are written to the screen if tty output is enabled and to the output +file ``iout``. + ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+===========================================================================================================================================================================+ +| AIPED | real | Same as above for AIPED under keyword flow | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NFLX | integer | Number of internode mass flows to be calculated. | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IFLX1 | integer | First node to be used in mass flow calculation. | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IFLX2 | integer | Second node to be used in mass flow calculation. If IFLX2 = 0, then the node connected to IFLX1 with the greatest internodal distance is used to calculate the mass flow. | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X1 | real | Coordinates of the first node to be used in mass flow calculation. Used only for those nodes where IFLX1 < 0. | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y1 | real | | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z1 | real | | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X2 | real | Coordinates of the second node to be used in mass flow calculation. Used only for those nodes where IFLX2 < 0. | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y2 | real | | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z2 | real | | ++----------------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following are examples of flxo. In these examples, one internode flux is calculated. + +In the first case (top), from the node numbered 193 to the node numbered 195. + ++------+-----+ +| flxo | | ++------+-----+ +| 1 | | ++------+-----+ +| 193 | 195 | ++------+-----+ + + +In the second case, between nodes closest to coordinates 0., 0., 0. m and 20., 20., 20. m. + ++------+-----+-----+ +| flxo | | | ++------+-----+-----+ +| 1 | | | ++------+-----+-----+ +| -1 | -7 | | ++------+-----+-----+ +| 0. | 0. | 0. | ++------+-----+-----+ +| 20. | 20. | 20. | ++------+-----+-----+ + + + diff --git a/docs/source/Macros/MacroFlxz.rst b/docs/source/Macros/MacroFlxz.rst new file mode 100644 index 00000000..7d192578 --- /dev/null +++ b/docs/source/Macros/MacroFlxz.rst @@ -0,0 +1,39 @@ +======== +``flxz`` +======== + +Total flow through a zone is output by choosing this control statement. When this macro is invoked, the following output is given at every heat and mass transfer time step: + +* The sum of all source flow rates for each zone + +* The sum of all sink flow rates for each zone + +* The net quantity passing through each zone + +* The net source/sink quantity for each zone + +* The following keywords can be included on the macro line to specify which flows should be output: liquid mass, vapor mass, thermal energy. The default is to output any active quantity in the simulation. + +Zones must be defined using macro zone prior to using this macro. + +* Group 1 - NFLXZ + +* Group 2 - IFLXZ(I), I = 1, NFLXZ + ++----------------+---------+-----------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+===================================================================================+ +| NFLXZ | integer | Number of zones for which output for water mass flow through the zone is written. | ++----------------+---------+-----------------------------------------------------------------------------------+ +| IFLXZ | integer | Zone numbers for which water mass flow output is written (NFLXZ zones) | ++----------------+---------+-----------------------------------------------------------------------------------+ + +The following is an example of ``flxz``. In this example water mass flow through zones 1, 6 and 10 will be output. + ++------------+---+----+ +| flxz water | ++============+===+====+ +| 3 | | | ++------------+---+----+ +| 1 | 6 | 10 | ++------------+---+----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroFper.rst b/docs/source/Macros/MacroFper.rst new file mode 100644 index 00000000..face9adc --- /dev/null +++ b/docs/source/Macros/MacroFper.rst @@ -0,0 +1,24 @@ + +======== +``fper`` +======== + +Assign permeability scaling factors. + ++----------------+--------+---------+-------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+=================================================+ +| SCALEX | real | 1.0 | Permeability scaling factor in the x-direction. | ++----------------+--------+---------+-------------------------------------------------+ +| SCALEY | real | 1.0 | Permeability scaling factor in the y-direction. | ++----------------+--------+---------+-------------------------------------------------+ +| SCALEZ | real | 1.0 | Permeability scaling factor in the z-direction. | ++----------------+--------+---------+-------------------------------------------------+ + +The following is an example of fper. In this example, the values of the permeability (defined in a previous perm macro) are multiplied by 1.0 in the X direction, 0.5 in the Y direction, and 0.1 in the Z direction. + ++------+------+---+-----+-----+-----+ +| fper | | | | | | ++======+======+===+=====+=====+=====+ +| 1 | 140 | 1 | 1.0 | 0.5 | 0.1 | ++------+------+---+-----+-----+-----+ diff --git a/docs/source/Macros/MacroFrlp.rst b/docs/source/Macros/MacroFrlp.rst new file mode 100644 index 00000000..9a982296 --- /dev/null +++ b/docs/source/Macros/MacroFrlp.rst @@ -0,0 +1,15 @@ +======== +``frlp`` +======== + +Relative permeability factors for residual air effect. + +Group 1 - JA, JB, JC, RLP_FAC (liquid), RLP_FAC (vapor) (JA, JB, JC - defined on `JA, JB, JC, PROP1, PROP2, . . . `_) + ++------------------+--------+------------------------------------------------------------------+ +| Input Variable | Format | Description | ++==================+========+==================================================================+ +| RLP_FAC (liquid) | real | Residual liquid relative permeability value (i = 1 to n0). | ++------------------+--------+------------------------------------------------------------------+ +| RLP_FAC (vapor) | real | Residual vapor relative permeability value (i = n0 + 1 to 2*n0). | ++------------------+--------+------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroFtsc.rst b/docs/source/Macros/MacroFtsc.rst new file mode 100644 index 00000000..c2f58feb --- /dev/null +++ b/docs/source/Macros/MacroFtsc.rst @@ -0,0 +1,5 @@ +``ftsc`` +======== + +Flag to allow distribution of fluxes (flux corrections) when saturation is greater than 1. + diff --git a/docs/source/Macros/MacroGdkm.rst b/docs/source/Macros/MacroGdkm.rst new file mode 100644 index 00000000..7454e9a2 --- /dev/null +++ b/docs/source/Macros/MacroGdkm.rst @@ -0,0 +1,34 @@ +======== +``gdkm`` +======== + +Generalized dual permeability model. + +The input structure for the gdkm module is the same as the gdpm input in FEHM. + +* Group 1 - GDKM_FLAG, NGDKMNODES + +* Group 2 - NGDKM_LAYERS(I), VFRAC_PRIMARY(I), (GDKM_X(I,J), J=1,NGDKM_LAYERS(I)) + +An arbitrary numbers of lines of input, terminated by a blank line. + +Group 3 - JA, JB, JC, IGDKM (JA, JB, JC - defined on `JA, JB, JC, PROP1, PROP2, . . . `_) + ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+==========================================================================================================================================================================================================================================================================+ +| GDKM_FLAG | integer | Flag to denote that the GDKM model option is being invoked. The default is 0 if GDKM is not being used. At present the only model allowed is model 11. This is a parallel fracture type model. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NGDKMNODES | integer | Total number of matrix nodes present in the simulation. The GDKM gridblocks, in contrast to GDPM gridblocks, are restricted to a single secondary node in a GDKM gridblock. Thus NGDPMNODES is equal to the number of gridblocks that have a GDKM model applied to them. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NGDKM_LAYERS | integer | The number of matrix nodes specified for this model number. This is always 1 for GDKM grid blocks. All primary nodes assigned to this model number (using the IGDPM input below) will have 1 matrix node. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VFRAC_PRIMARY | real | The fraction of the total control volume that is assigned to the primary porosity. Then, 1-VFRAC_PRIMARY is the fraction of the control volume that is assigned to the secondary porosity node. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GDKM_X | real | The matrix discretization distance for the matrix node associated with this model (units of meters). For the one secondary node allowed in the GDKM formulation, the average distance to the secondary node from the primary node. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IGDKM | integer | Model number for parameters defined in group 2. These values are assigned only for the primary nodes. The default is 0, which denotes that there are no dual permeability nodes at that primary nodes. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Input Variable Format Description + diff --git a/docs/source/Macros/MacroGdpm.rst b/docs/source/Macros/MacroGdpm.rst new file mode 100644 index 00000000..4d704615 --- /dev/null +++ b/docs/source/Macros/MacroGdpm.rst @@ -0,0 +1,64 @@ +======== +``gdpm`` +======== + +Data to define the parameters in the Generalized Dual Porosity model formulation. + +* Group 1 - GDPM_FLAG, NGDPMNODES + +* Group 2 - NGDPM_LAYERS(I), VFRAC_PRIMARY(I), (GDPM_X(I,J), J=1,NGDPM_LAYERS(I))- an arbitrary numbers of lines of input, terminated by a blank line. + +* Group 3 - JA, JB, JC, IGDPM (JA, JB, JC - defined on page 27) + ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+======================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| GDPM_FLAG | integer | Flag to denote that the GDPM model option is being invoked. The default is 0 if GDPM is not being used. If 1, matrix node geometry is parallel fractures; if 2, matrix node geometry is spherical, with the fractured medium residing at the exterior of an idealized spherical block, and transport occurs into the block. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NGDPMNODES | integer | Total number of matrix nodes present in the simulation. Since this number may not be known at runtime, the code may be run once with a placeholder value for NGDPMNODES. If the number is incorrect, the code will report the appropriate value and stop. This value can then be entered and the simulation will proceed when the code is rerun. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NGDPM_LAYERS | integer | The number of matrix nodes specified for this model number. All primary nodes assigned to this model number (using the IGDPM input below) will have NGDPM_LAYERS matrix nodes. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VFRAC_PRIMARY | real | The fraction of the total control volume that is assigned to the primary porosity. Then, 1-VFRAC_PRIMARY is the fraction of the control volume that is divided among the dual porosity nodes. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GDPM_X | real | The matrix discretization distances for the matrix nodes associated with this model (units of meters). Grid points are placed at these values to discretize each matrix block. There must be NGDPM_LAYERS values, entered in ascending order. For the parallel plate geometry, the final value is the distance to the centerline between the fractures, and for the spherical geometry, the final value is the radius of the sphere. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IGDPM | integer | Model number for parameters defined in group 2. These values are assigned only for the primary nodes. The default is 0, which denotes that there are no dual porosity nodes at that primary node. | ++----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Based on the input in this macro, the code internally assigns node numbers, finite element coefficients, +and reconstructs the connectivity array for the grid. The original nodes in the grid (the primary nodes) retain the node numbers 1 to +NEQ_PRIMARY, where NEQ_PRIMARY is the number of nodes assigned in the macro coor. The matrix nodes are assigned numbers from NEQ_PRIMARY + 1 to NEQ_PRIMARY + NGDPMNODES. +To assign matrix node numbers, the code loops through each primary node, and if GDPM nodes are specified, assigns the node numbers in increasing order within the matrix block of that primary node. + +.. note:: + + The user is responsible for assigning rock, hydrologic, and transport properties + for the matrix nodes as well as the primary nodes. For input using zones, this process is facilitated with + the convention that zone numbers associated with matrix nodes are set to ZONE_DPADD + the zone number + for the corresponding fracture node. This convention is overwritten for any matrix node for which the user assigns a zone number + using the ‘nnum' option in the macro zone. + +For output, the code can report time-varying values in the ".out", ".his", and ".trc" files for both primary and matrix nodes, but fields written for the entire grid (for example, in the AVS output using the macro cont) are output only for the primary nodes. + +The following is an example of ``gdpm``. In this example the matrix node geometry is parallel to the fractures and there are 1479 matrix nodes distributed in 29 layers. A single model is defined which is applied to the entire problem domain. + ++---------+--------+--------+--------+--------+--------+--------+--------+ +| gdpm | | | | | | | | ++=========+========+========+========+========+========+========+========+ +| 1 | 1479 | | | | | | | ++---------+--------+--------+--------+--------+--------+--------+--------+ +| 29 | .0001 | .001 | .002 | .003 | .004 | .006 | .009 | ++---------+--------+--------+--------+--------+--------+--------+--------+ +| .019 | .02901 | .03901 | .04901 | .05901 | .09902 | .19904 | .29906 | ++---------+--------+--------+--------+--------+--------+--------+--------+ +| .39908 | .49910 | .59912 | .69914 | .79916 | .89918 | .99920 | 1.4993 | ++---------+--------+--------+--------+--------+--------+--------+--------+ +| 1.9994 | 2.4995 | 2.9996 | 3.4997 | 3.9998 | 4.4999 | 5.0000 | | ++---------+--------+--------+--------+--------+--------+--------+--------+ +| | | | | | | | | ++---------+--------+--------+--------+--------+--------+--------+--------+ +| 1 | 0 | 0 | 1 | | | | | ++---------+--------+--------+--------+--------+--------+--------+--------+ +| | | | | | | | | ++---------+--------+--------+--------+--------+--------+--------+--------+ diff --git a/docs/source/Macros/MacroGrad.rst b/docs/source/Macros/MacroGrad.rst new file mode 100644 index 00000000..e1759faa --- /dev/null +++ b/docs/source/Macros/MacroGrad.rst @@ -0,0 +1,68 @@ +======== +``grad`` +======== + +Gradient model input. + +* Group 1 - NGRAD + +* Group 2 - IZONE_GRAD, CORDG, IDIRG, IGRADF, VAR0, GRAD1 + +Group 2 is repeated (NGRAD times) for each gradient model being defined. + ++----------------+---------+----------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+==========================================================+ +| NGRAD | integer | Number of gradient models | ++----------------+---------+----------------------------------------------------------+ +| IZONE_GRAD | integer | Zone associated with model | ++----------------+---------+----------------------------------------------------------+ +| CORDG | real | Reference coordinate (m) | ++----------------+---------+----------------------------------------------------------+ +| IDIRG | integer | Direction of gradient (1, 2, or 3). | ++----------------+---------+----------------------------------------------------------+ +| IGRADF | integer | | Variable to which gradient is applied. | +| | | | 1 = initial pressure | +| | | | 2 = initial temperature | +| | | | 3 = initial saturation | +| | | | 4 = Fixed pressure | +| | | | 5 = Fixed enthalpy | +| | | | -5 = Fixed inflowing temperature | +| | | | 6 = Initial methane pressure | +| | | | 7 = Fixed Methane pressure | +| | | | 8 = depending on how ``hflx`` macro is configured | +| | | this is either a temperature or a heat flux | +| | | | 9 = initial :math:`CO_2` pressure | +| | | | 10 = Fixed :math:`CO_2` cell pressure | +| | | | 11 = Pressure for secondary material in | +| | | | ``gdkm`` or ``gdpm`` model | +| | | | 12 = initial Temperature for matrix in ``gdkm`` | +| | | or ``gdpm`` model | ++----------------+---------+----------------------------------------------------------+ +| VAR0 | real | Value of variable at reference point (m). | ++----------------+---------+----------------------------------------------------------+ +| GRAD1 | real | | Gradient. | +| | | | Units: Pressure MPa/m, T degrees C/m, | +| | | enthalpy KJ/kg/m, heat flux MW/m | ++----------------+---------+----------------------------------------------------------+ + +.. note:: + + IIGRADF = 4,5,-5,7 requires that the node is previously defined as a boundary + node in a ``flow`` macro (or equivalent) + + IGRAFD = 11 or 12 requires ``gdkm`` or ``gdpm`` macro + + IGRADF = 8 requires a ``hflx`` macro + + +The following is an example of the grad macro. A temperature gradient in the Y direction from the reference point of 0 will be applied to zone 1. + ++------+----+---+---+-----+-------+ +| grad | | | | | | ++------+----+---+---+-----+-------+ +| 1 | | | | | | ++------+----+---+---+-----+-------+ +| 1 | 0. | 2 | 2 | 10. | -150. | ++------+----+---+---+-----+-------+ + diff --git a/docs/source/Macros/MacroHcon.rst b/docs/source/Macros/MacroHcon.rst new file mode 100644 index 00000000..69ebe78f --- /dev/null +++ b/docs/source/Macros/MacroHcon.rst @@ -0,0 +1,6 @@ +======== +``hcon`` +======== + +Flag to set solution to heat conduction only. + diff --git a/docs/source/Macros/MacroHead.rst b/docs/source/Macros/MacroHead.rst new file mode 100644 index 00000000..2d8d78a6 --- /dev/null +++ b/docs/source/Macros/MacroHead.rst @@ -0,0 +1,17 @@ +======== +``head`` +======== + +Hydraulic head values are used for input and output instead of pressures. Use of this macro enables the Boussinesq approximation (bous macro) and isothermal air-water two-phase simulation (airwater macro) automatically. It affects the pres and flow macros by requiring head information where pressure values were previously required. The default is to have no input associated with this macro. However, an optional head increment can be given after the head macro keyword. This value will be added to all input head values to ensure a single phase fluid state. Note that the value will be subtracted before output is written. + ++----------------+--------+---------+-----------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+=================================================================+ +| HEAD0 | real | 0. | An incremental value that will be added to all input heads (m). | ++----------------+--------+---------+-----------------------------------------------------------------+ + +The following is an example of head. In this example the optional head increment is included and a value of 1000. m is added to all input head values. + ++------+-------+ +| head | 1000. | ++------+-------+ diff --git a/docs/source/Macros/MacroHflx.rst b/docs/source/Macros/MacroHflx.rst new file mode 100644 index 00000000..5150f0f5 --- /dev/null +++ b/docs/source/Macros/MacroHflx.rst @@ -0,0 +1,33 @@ +======== +``hflx`` +======== + +Heat flow input. + +A negative heat flow indicates heat flow into the reservoir. + ++----------------+--------+---------+----------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+============================================================================+ +| QFLUX | real | 0. | | If QFLXM = 0, then QFLUX is the heat flow (MW). If QFLXM ≠ 0, | +| | | | then QFLUX is a temperature (oC) and the heat flow is | +| | | | calculated according to the formula: | +| | | | | :math:`Q_H = QFLXM \cdot (T-QFLUX)` (MW). | ++----------------+--------+---------+----------------------------------------------------------------------------+ +| QFLXM | real | 0. | | If QFLXM > 0, multiplier for heat flow equation given in QFLUX | +| | | | description (MW/oC). This must be large for large temperature gradients, | +| | | | or when a constant temperature must be maintained. | +| | | | | If QFLXM < 0, then QFLUX is interpreted as a fixed saturation and | +| | | | | :math:`Q_H = ABS(QFLXM) \cdot (S_l - QFLUX)` (MW). | ++----------------+--------+---------+----------------------------------------------------------------------------+ + +The following is an example of ``hflx``. In this example, at each node from 401 to 410, +a heat flow of 0.001 MW is being injected into the model. + ++------+-----+---+--------+-----+ +| hflx | | | | | ++------+-----+---+--------+-----+ +| 401 | 410 | 1 | -0.001 | 0.0 | ++------+-----+---+--------+-----+ +| | | | | | ++------+-----+---+--------+-----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroHist.rst b/docs/source/Macros/MacroHist.rst new file mode 100644 index 00000000..f6021a58 --- /dev/null +++ b/docs/source/Macros/MacroHist.rst @@ -0,0 +1,167 @@ +======== +``hist`` +======== + +History data output selection, output timestep intervals, and time intervals. Parameters will be output for the nodes specified in the node or nod2 macro in individual files for each parameter selected. If output zones are defined (node macro) the output will be a volume weighted average for the zone. Currently zone averaged values can be output for pressure, head, temperature, and enthalpy. History files will be named using the root portion of the history file name (``root_name.his``) provided as input, e.g., pressure output would be in a file named: ``root_name_pres.his``. The named history output file will contain run information and the list of selected output nodes (with their coordinates) and zones (with node list). + +* Group 1 - CHDUM + +or using optional input or keywords + +* Group 1 - CHDUM, NHIST, HISTIME + +where CHDUM is ‘years', ‘days', ‘hrs', or ‘seconds', or + +* Group 1 - CHDUM, CHDUM1, . . . , CHDUMn + +where CHDUM is mpa, pressure, density, viscosity, or global + ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++=====================+==============+=============================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| CHDUM | character*80 | Keyword specifying type of history plot data files to be created. Keywords are entered one per line and terminated with ‘end hist' or a blank line. Keywords must be entered starting in the 1st column. Valid keywords (case insensitive) are: | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘tecplot' - data will be output using tecplot style headers and format | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘csv' or ‘surfer' - data and parameter headers will be output as comma separated variables (‘csv' format) | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘years' - output time in years | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘days' - output time in days | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘hrs' - output time in hours | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘seconds' - output time in seconds | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘mpa' or ‘pressure' - output pressure in MPa | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘deg' or ‘temperature' - output temperature in oC | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘head' or ‘meters' - output head in meters | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘feet' - output head in feet | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘saturation' - output saturation | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘wco' - water content | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘flow' or ‘kgs' - output flow in kg/s | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘enthalpy' - output enthalpy in MJ/kg | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘efl' or ‘mjs' - output enthalpy flow (MJ/s) | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘density' - output density (:math:`kg/m^3`) | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘humidity' - output relative humidity | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘viscosity' - output viscosity (Pa-s) | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘zflux' - output zone fluxes | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘concentration' - output species concentration (concentrations for each specie will be output in a separate file) | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘wt' - output water table elevation | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘co2s' - output :math:`CO_2` saturations (volume fractions) An ‘l' or ‘g' may be appended to co2s to specify that only liquid or gas saturation should be output. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘co2m' - output total :math:`CO_2` mass (kg), free :math:`CO_2` mass fraction, and dissolved :math:`CO_2` mass fraction. Other wise use the form listed below to output specified quantity: | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘co2mt' - output total :math:`CO_2` mass (kg) | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘co2mf' - output free :math:`CO_2` mass fraction | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘co2md' - output dissolved :math:`CO_2` mass fraction | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘cfluxz' - output :math:`CO_2` zone fluxes | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘displacements' - output displacements (m), ‘disx', ‘disy' or ‘disz' may be used to select only the x, y, or z displacement. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘stress' - output stresses, ‘strsx', strsy', ‘strsz', ‘strsxy', ‘strsxz' or ‘strsyz' may be used to select specific stress components. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘strain' - output strain | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘rel' - output a table of relative permeability values for each input model. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘global' - output global parameters | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NHIST | integer | Optional: *Time step* interval for history plots (number of timesteps). Output history information each NHIST timesteps. If not entered NHIST = 1. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| HISTIME | real | Optional: *Time* interval for history plots. In addition to output each NHIST timesteps, output history information each HISTIME. Units correspond to units specified by selected time output keyword (years, days, hours, or seconds). If not entered HISTIME = 1.e30. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CHDUM1 . . . CHDUMn | character*80 | Optional keywords specifying selections for history plot data files to be created. Optional keywords are entered on the same line as primary keywords. If no optional keywords are used the code will determine what will be output based on problem input. Up to 3 optional keywords may be entered. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Valid keywords (case insensitive) used with keyword ‘pressure' or ‘mpa' are: | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘total' or ‘water'- output total or water pressure | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘air' - output air pressure | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘capillary' - output capillary pressure | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘co2' - output :math:`CO_2` pressure | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Valid keywords (case insensitive) used with keyword ‘density' or ‘viscosity' are: | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘water' - output water density or viscosity | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘air' - output air/vapor density or viscosity | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘co2' - output :math:`CO_2` liquid and gas density or viscosity. An ‘l' or ‘g' may be appended to co2 to specify that only liquid or gas density should be output. | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Valid keywords (case insensitive) used with keyword ‘global' are: | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘mass' - output mass balances only for problem (excluding steam) (used with keyword ‘global') | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘water' - output water balances only for problem (excluding steam) (used with keyword ‘global') | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘steam' - output mass/water balance only for problem including steam (used with keyword ‘global') | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘air' = output air / vapor balances only for problem (used with keyword ‘global') | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ‘energy' - output energy balances only for problem (used with keyword ‘global') | ++---------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +.. note:: + + If a time keyword (years, days, hrs, or seconds) is not entered, output time will be in days and data will be output for each timestep. The time output keywords may be used with optional input NHIST and HISTIME. + +.. note:: + + If a file format keyword is being used, it must immediately follow the macro name. Alternatively, it may be entered on the macro line. The default is for the headers and data to be output using plain text and spaces. + +.. note:: + + If no optional keywords are used with the ‘global' keyword the code will determine which balances will be output based on problem input (mass/energy or water/air). Currently only 1 optional keyword may be used with global to specify a single balance type. Balance output includes: Total (mass, water, air in kg, energy in MJ) in system, total discharge, total input, current discharge, current input, and net discharge. + +The following are examples of ``hist``. For this first example, time will be output in years and temperatures in oC. Data will be output each 100000 timesteps or at time intervals of 50 years. + ++-------+--------+-----+ +| hist | | | ++=======+========+=====+ +| years | 100000 | 50. | ++-------+--------+-----+ +| deg | | | ++-------+--------+-----+ +| end | | | ++-------+--------+-----+ + + +In this second example, pressures in MPa (water and air) and temperatures in oC +will be written each timestep and time will be output in days. The global +mass balance for water will also be output at each time step. + ++--------+-------+-----+ +| hist | | | ++========+=======+=====+ +| mpa | total | air | ++--------+-------+-----+ +| deg | | | ++--------+-------+-----+ +| global | mass | | ++--------+-------+-----+ +| end | | | ++--------+-------+-----+ + + diff --git a/docs/source/Macros/MacroHyco.rst b/docs/source/Macros/MacroHyco.rst new file mode 100644 index 00000000..1137c2e1 --- /dev/null +++ b/docs/source/Macros/MacroHyco.rst @@ -0,0 +1,28 @@ +``hyco`` +========= + +Hydraulic conductivity input. + +.. note:: + + Required if macro perm not used. + ++----------------+--------+---------+--------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+==================================================+ +| PNX | real | 1.e-30 | Hydraulic conductivity in the x-direction (m/s). | ++----------------+--------+---------+--------------------------------------------------+ +| PNY | real | 1.e-30 | Hydraulic conductivity in the y-direction (m/s). | ++----------------+--------+---------+--------------------------------------------------+ +| PNZ | real | 1.e-30 | Hydraulic conductivity in the z-direction (m/s). | ++----------------+--------+---------+--------------------------------------------------+ + +The following is an example of the ``hyco`` macro. In this example, nodes 1 through 140 are specified to have hydraulic conductivities in the X, Y, and Z directions of 1.0e-5, 1.0e-5, and 0. m/s respectively. + ++------+-----+---+----------+----------+----------+ +| hyco | | | | | | ++------+-----+---+----------+----------+----------+ +| 1 | 140 | 1 | 1.00e-05 | 1.00e-05 | 0.00e-00 | ++------+-----+---+----------+----------+----------+ +| | | | | | | ++------+-----+---+----------+----------+----------+ \ No newline at end of file diff --git a/docs/source/Macros/MacroIce.rst b/docs/source/Macros/MacroIce.rst new file mode 100644 index 00000000..584c6601 --- /dev/null +++ b/docs/source/Macros/MacroIce.rst @@ -0,0 +1,19 @@ +=================== +``ice`` or ``meth`` +=================== + +Ice phase calculations, not tested. + +* Group 1 - ICE, SIIN, TMELT + ++----------------+---------+------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+========================================================================================================================+ +| ICE | integer | Solution descriptor for ice solution.ICE = 0, information is read but not used.ICE ≠ 0, ice solution is implemented. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------+ +| SIIN | real | Default value for ice saturation (used when ice saturation SII in Group 2 is set to 0 at any node). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------+ +| TMELT | real | Freezing temperature of water (oC). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------+ +| SII | real | Ice saturation. The default value is [0]. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroImex.rst b/docs/source/Macros/MacroImex.rst new file mode 100644 index 00000000..9e307eab --- /dev/null +++ b/docs/source/Macros/MacroImex.rst @@ -0,0 +1,7 @@ +======== +``imex`` +======== + +Macro imex for implicit-explicit solution + +Documentation Pending \ No newline at end of file diff --git a/docs/source/Macros/MacroImpf.rst b/docs/source/Macros/MacroImpf.rst new file mode 100644 index 00000000..58fac78c --- /dev/null +++ b/docs/source/Macros/MacroImpf.rst @@ -0,0 +1,29 @@ +======== +``impf`` +======== + +Time step control based on maximum allowed variable change. + +* Group 1 - DELPT, DELTT, DELST, DELAT + ++----------------+--------+------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+========+====================================================================================+ +| DELPT | real | Maximum allowable pressure change for which time step will be increased. (MPa) | ++----------------+--------+------------------------------------------------------------------------------------+ +| DELTT | real | Maximum allowable temperature change for which time step will be increased. (oC) | ++----------------+--------+------------------------------------------------------------------------------------+ +| DELST | real | Maximum allowable saturation change for which time step will be increased. | ++----------------+--------+------------------------------------------------------------------------------------+ +| DELAT | real | Maximum allowable air pressure change for which time step will be increased. (MPa) | ++----------------+--------+------------------------------------------------------------------------------------+ + +The following is an examples of ``impf``. In this example, pressure changes are +limited to 0.5 MPa, temperature changes to 20 oC, saturation changes to 0.1, and +air pressure changes to 0.05 MPa during a time step. + ++------+------+-----+------+ +| impf | | | | ++------+------+-----+------+ +| 0.5 | 20.0 | 0.1 | 0.05 | ++------+------+-----+------+ diff --git a/docs/source/Macros/MacroInit.rst b/docs/source/Macros/MacroInit.rst new file mode 100644 index 00000000..ab22a9aa --- /dev/null +++ b/docs/source/Macros/MacroInit.rst @@ -0,0 +1,56 @@ +======== +``init`` +======== + +Set initial pressure and temperature at all nodes. + +.. note:: + + Required if macro ``pres`` not used. + +Group 1 - PEIN, TIN, TIN1, GRAD1, DEPTH, TIN2, GRAD2, QUAD + +Note that the macro pres may overwrite some of the values that are set by macro init. + ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+========+=============================================================================================================================================================================================================================================================================================================================================================+ +| PEIN | real | Initial value of pressure (MPa). If initial values are read from the read file (iread), then this value is ignored. If gravity is present, this is the value of the pressure at node 1, and the other nodal pressures are adjusted by applying the hydraulic head. Absolute pressures are used. Pressure as a function of depth is calculated with TIN < 0. | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TIN | real | Initial value of temperature (oC). If TIN ≤ 0, then the initial temperatures are calculated using the temperature gradient formulas given below. | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TIN1 | real | Defined in formulas below (oC) | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GRAD1 | real | Defined in formulas below (oC/m) | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DEPTH | real | Defined in formulas below (m) | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TIN2 | real | Defined in formulas below (oC) | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GRAD2 | real | Defined in formulas below (oC/m) | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| QUAD | real | Defined in formulas below (oC/m2) | ++----------------+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +:math:`T = TIN1 + GRAD1 \times Z, 0 \le Z \le DEPTH` + +:math:`T = TIN2 + GRAD2 \times Z + QUAD \times Z^2, Z \gt DEPTH` + +The following are examples of init. In the first example, the initial pressure is 3.6 +MPa and the initial temperature is 240 C over the entire range of depth for the model. + ++------+-----+------+-----+-----+------+----+----+ +| init | | | | | | | | ++------+-----+------+-----+-----+------+----+----+ +| 3.6 | 0.0 | 240. | 0.0 | 0.0 | 240. | 0. | 0. | ++------+-----+------+-----+-----+------+----+----+ + +In the second example, the initial pressure is 5.0 MPa and the initial temperature +field is defined using a surface temperature of 20 C and linear gradient of 0.3 +C/m for depths ranging from 0 - 2500 m. + ++------+-----+-----+------+-------+-----+-----+----+ +| init | | | | | | | | ++------+-----+-----+------+-------+-----+-----+----+ +| 5.0 | 0.0 | 20. | 00.3 | 2500. | 20. | 0.3 | 0. | ++------+-----+-----+------+-------+-----+-----+----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroIntg.rst b/docs/source/Macros/MacroIntg.rst new file mode 100644 index 00000000..a1492423 --- /dev/null +++ b/docs/source/Macros/MacroIntg.rst @@ -0,0 +1,7 @@ +======== +``intg`` +======== + +Macro intg for setting integration type for finite element coefs + +Documentation Pending \ No newline at end of file diff --git a/docs/source/Macros/MacroIsot.rst b/docs/source/Macros/MacroIsot.rst new file mode 100644 index 00000000..c5551c54 --- /dev/null +++ b/docs/source/Macros/MacroIsot.rst @@ -0,0 +1,6 @@ +======== +``isot`` +======== + +If used, assumes an isotropic geometry for area coefficients. The isotropic assumption results in a saving of up to 1/3 for coefficient storage. No input is associated with this macro. + diff --git a/docs/source/Macros/MacroIter.rst b/docs/source/Macros/MacroIter.rst new file mode 100644 index 00000000..5543ccf5 --- /dev/null +++ b/docs/source/Macros/MacroIter.rst @@ -0,0 +1,131 @@ +======== +``iter`` +======== + +.. note:: + + This control statement is optional but recommended. However, if the user is not + familiar with the linear equation solver routines in FEHM (Zyvoloski and Robinson, 1995) + control statement **iter** should not be used. + +* Group 1 - G1, G2, G3, TMCH, OVERF + +* Group 2 - IRDOF, ISLORD, IBACK, ICOUPL, RNMAX + +The parameters G1, G2, and G3 are used to calculate the completion criteria for +the linear equation solver. The equation for the stopping criteria is: + +:math:`EPE = G3 * \mathrm{max}(TMCH, \mathrm{MAX}(F0, \mathrm{MIN(G1*\mathrm{SQRT(R^2), G2*R^2})}))` + +where :math:`R^2` is the sum-squared of the equation residuals, and F0 is the +:math:`SQRT(R0^2)*EPM` for the first iterration (see macro ``ctrl`` for a +definition of EPM). The other parameters are defined below: + ++----------------+-----------+---------+--------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+===========+=========+====================================================================+ +| G1 | real | 1.e-6 | Multiplier for the linear convergence region of the | +| | | | Newton-Raphson iteration. | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| G2 | real | 1.e-6 | Multiplier for the quadratic convergence region of | +| | | | the Newton-Raphson iteration. | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| G3 | real | 1.e-3 | Multiplier relating Newton Raphson residuals to | +| | | | stopping criteria for linear solver | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| TMCH | real | 1.e-9 | Machine tolerance if TMCH > 0. If satisfied by | +| | | | the residual norm, the Newton iteration is assumed to | +| | | | be complete. Newton-Raphson stopping criteria if TMCH < 0 | +| | | | (recommended). If TMCH < 0 then the ABS(TMCH) is used as a | +| | | | tolerance for each equation at each node. Convergence is | +| | | | achieved if the residual of every equation at every | +| | | | node is < ABS(TMCH). | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| OVERF | real | 1.1 | Over relaxation factor for passive nodes in adaptive | +| | | | implicit method. | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| IRDOF | integer | 0 | | Enables the reduced degree of freedom method. If | +| | | | IRDOF = 0, reduced degrees of freedom are not required. | +| | | | When IRDOF = 1, a reduced degree of freedom from 3 to 2 | +| | | | or 3 to 1 is used. When IRDOF = 2, a reduced degree of | +| | | | freedom from 3 to 2 is used. If IRDOF =11, then an air | +| | | | only solution is found for the isothermal air-water | +| | | | process model. If IRDOF = -11, then the residual for | +| | | | the air equation with the airwater macro is ignored. | +| | | | If IRDOF = 13, then a liquid only solution for the | +| | | | airwater macro is assumed. {0} | +| | | | | | +| | | | | Examples of 1, 2, 3, 4 and 6 degrees of freedom models are: | +| | | | | 1 - heat only or mass only. | +| | | | | 2 - heat and mass, or air-water (isothermal) | +| | | | | 3 - air-water with heat (non-isothermal) | +| | | | | 4 - heat and mass, double permeability or air-water | +| | | | (isothermal), double permeability | +| | | | | 6 - air-water with heat, double permeability | +| | | | | | +| | | | | See Tseng and Zyvoloski (2000) for more information | +| | | | on the reduced degree of freedom method. | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| ISLORD | integer | 0 | Reordering parameter. The value of ISLORD and the | +| | | | corresponding equation order is given below. The ordering | +| | | | has an effect on the speed of convergence of several | +| | | | solution algorithms, but will not affect most users. | +| | | | For problems of order 2 or greater, the ordering can be | +| | | | understood by labeling each equation. For example for a | +| | | | 3-degree of freedom problem with mass, heat, and noncondensible | +| | | | gas, label the mass equation as 1, the heat equation as 2, | +| | | | and the noncondensible gas equation as 3. In general mass | +| | | | (water), heat or air, air. For double permeability problems | +| | | | fracture equations precede matrix equations, i.e., for an | +| | | | air-water problem - mass water fracture, mass air fracture, | +| | | | mass water matrix, mass air matrix. {0} | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| IBACK | integer | 0 | IRDOF parameter. If IBACK = 0, SOR iterations are not | +| | | | performed before call to solver. If IBACK = 1, | +| | | | SOR iterations are performed before call to solver. | +| | | | If IBACK = 2, SOR iterations are performed before | +| | | | call to SOLVER, and SOLVER is called twice. {0} | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| ICOUPL | integer | 0 | Number of SOR iterations used in reduced degree of | +| | | | freedom methods. {0} | ++----------------+-----------+---------+--------------------------------------------------------------------+ +| RNMAX | real | 1.0e+11 | Maximum running time for problem before the solution | +| | | | is stopped (cpu minutes). | ++----------------+-----------+---------+--------------------------------------------------------------------+ + + +{0} +--- + ++--------+----------------------+----------------------+----------------------+----------------------+ +| ISLORD | 2 Degrees of Freedom | 3 Degrees of Freedom | 4 Degrees of Freedom | 6 Degrees of Freedom | ++--------+----------------------+----------------------+----------------------+----------------------+ +| 0 | 1,2 | 1,2,3 | 1,2,3,4 | 1,2,3,4,5,6 | ++--------+----------------------+----------------------+----------------------+----------------------+ +| 1 | 2,1 | 1,3,2 | 1,3,2,4 | 1,4,2,5,3,6 | ++--------+----------------------+----------------------+----------------------+----------------------+ +| 2 | | 2,1,3 | | | ++--------+----------------------+----------------------+----------------------+----------------------+ +| 3 | | 2,3,1 | | | ++--------+----------------------+----------------------+----------------------+----------------------+ + + +The following is an example of ``iter``. +In this example, the tolerances for the linear and quadratic convergence regions +for the Newton-Raphson method are specified to be 1.e-5 times the initial residual, +tolerance for the adaptive-implicit method is 1.e-5, machine tolerance is 1.e-9, +and over-relaxation factor is 1.2. The reduced degree of freedom method is enabled, +reordering is not done, SOR iterations are not performed before calling the solver, +two SOR iterations are used in the reduced degree of freedom method, and the solution +procedure is terminated if not completed within 200 CPU minutes. + ++-------+-------+-------+-------+-------+ +| iter | ++-------+-------+-------+-------+-------+ +| 1.e-5 | 1.e-5 | 1.e-5 | 1.e-9 | 1.2 | ++-------+-------+-------+-------+-------+ +| 1 | 0 | 0 | 2 | 200.0 | ++-------+-------+-------+-------+-------+ + + + diff --git a/docs/source/Macros/MacroItfc.rst b/docs/source/Macros/MacroItfc.rst new file mode 100644 index 00000000..9c70c124 --- /dev/null +++ b/docs/source/Macros/MacroItfc.rst @@ -0,0 +1,123 @@ +======== +``itfc`` +======== + +Data to define flow and transport parameters at interfaces between pairs of zones. + +* Group 1 - ZONE_PAIR(I,1), ZONE_PAIR(I,2), RED_FACTOR(I)- an arbitrary number of lines of input, terminated by a blank line. + +* Group 2 - (FILTER_FLAG(J), J= 1,NSPECI) + +* Group 3 - ZONEC_PAIR(K,1), ZONEC_PAIR(K,2), FTN_FACTOR(K)- an arbitrary number of lines of input, terminated by a blank line. + + - KEYWORD ‘file' + + - SFILENAME + + - ITFCPORSIZE(I), ITFCPROBSIZE(I)- an arbitrary number of lines of input, terminated by a blank line. + ++----------------+--------------+-----------------------------------------------------------+ +| Input Variable | Format | Description | ++================+==============+===========================================================+ +| ZONE_PAIR | integer | Zone number for the zones for which the code | +| | | identifies the interface connections when | +| | | applying the permeability reduction factor. | ++----------------+--------------+-----------------------------------------------------------+ +| RED_FACTOR | real | Reduction factor multiplying the harmonically | +| | | weighted saturated permeability for all connections | +| | | at the interface identified by ZONE_PAIR | ++----------------+--------------+-----------------------------------------------------------+ +| FILTER_FLAG | integer | FEHM has a provision to apply transport mechanisms | +| | | for size exclusion or filtration at interfaces | +| | | defined in the itfc macro. These provisions can | +| | | be used to simulate conditions in which, for | +| | | example, abrupt changes in properties occur at | +| | | interfaces, or hydrologic conditions not | +| | | explicitly incorporated in a model (a thin clay | +| | | layer, for example) are thought to be present | +| | | that affect transport across the interface. | +| | | The means for specifying these interface transport | +| | | conditions is the itfc macro. Thus, this parameter | +| | | is a flag used to distinguish whether the size | +| | | exclusion or filtration is to be implemented | +| | | (a value 1) or not (a value 0) for each species | +| | | identified in the trac, ptrk, or mptr macros. | +| | | The default value is 0. See the definition of | +| | | FTN_FACTOR below for details on how to invoke | +| | | the size exclusion or filtration model. | ++----------------+--------------+-----------------------------------------------------------+ +| ZONEC_PAIR | integer | Zone number for the zones for which the code | +| | | identifies the interface connections when applying | +| | | the transport filtration or size exclusion factors. | ++----------------+--------------+-----------------------------------------------------------+ +| FTN_FACTOR | real | Filtration or size exclusion factor applied for | +| | | all connections at the interface identified by | +| | | ZONEC_PAIR. For the trac macro, a size exclusion | +| | | model is implemented, where FTN_FACTOR = 0 (size | +| | | exclusion) or 1 (no exclusion) are options. For | +| | | ptrk or mptr, a filtration model is implemented, | +| | | where the parameter is the probability of the | +| | | particle passing through the interface (if 0, | +| | | filtration is guaranteed; if 1, there is no filtration). | +| | | For the particle tracking model, FTN_FACTOR < 0 | +| | | denotes that the pore size distribution is being | +| | | used. This option is used with the particle size | +| | | distribution option in ptrk and mptr, so that | +| | | each particle is assigned a size. The cumulative | +| | | pore size distribution is then used as a | +| | | probability distribution function, and when a | +| | | particle encounters the interface, a pore size is | +| | | randomly selected from the distribution. If the | +| | | particle is larger than the pore, it is filtered. | +| | | Note that filtered particles remain at that location | +| | | in the model and are no longer transported. | ++----------------+--------------+-----------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘file' designating that the pore | +| | | size distribution information is being input in | +| | | a separate file. This input is entered only for | +| | | interfaces in which FTN_FACTOR < 0 is used. | ++----------------+--------------+-----------------------------------------------------------+ +| SFILENAME | character*80 | Optional file name containing the pore size distribution | +| | | table. This input is entered only for interfaces | +| | | in which FTN_FACTOR < 0 is used. | ++----------------+--------------+-----------------------------------------------------------+ +| ITFCPORSIZE | real | Pore size for this entry of the pore size distribution | +| | | table (paired with a value of ITFCPROBSIZE). | +| | | An arbitrary number of entries can be input, | +| | | terminated with a blank line. These entries are | +| | | located in the file SFILENAME if specified, or | +| | | in the itfc input file if the alternate input | +| | | file is not used. The code decides if particles | +| | | are irreversibly filtered by comparing the | +| | | particle size to the randomly selected pore size. | +| | | This input is entered only for interfaces in which | +| | | FTN_FACTOR < 0 is used. | ++----------------+--------------+-----------------------------------------------------------+ +| ITFCPROBSIZE | real | Cumulative probability for the distribution of | +| | | pore sizes (paired with a value of ITFCPORSIZE). | +| | | See description of ITFCPORSIZE above for details. | +| | | The final entry of the table must have | +| | | ITFCPROBSIZE = 1, since the distribution is assumed | +| | | to be normalized to unity. This input is entered | +| | | only for interfaces in which FTN_FACTOR < 0 is used. | ++----------------+--------------+-----------------------------------------------------------+ + +Note that data for each numbered group must be input. The other input is optional. +If filtration is not implemented for any species, a single blank line is input +for Groups 2 and 3, signaling the end of itfc input. + +The following is an example of itfc. In this example, the permeability reduction +factor of 0.1 is applied to all node connections at the interface between zones +6 and 10, or 6 and 11. + ++------+----+-----+ +| itfc | | | ++------+----+-----+ +| 6 | 10 | 0.1 | ++------+----+-----+ +| 6 | 11 | 0.1 | ++------+----+-----+ +| | | | ++------+----+-----+ +| | | | ++------+----+-----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroIttm.rst b/docs/source/Macros/MacroIttm.rst new file mode 100644 index 00000000..4a9731cc --- /dev/null +++ b/docs/source/Macros/MacroIttm.rst @@ -0,0 +1,7 @@ +======== +``lttm`` +======== + +Macro lttm for sticking time for phase changes + +Documentation Pending \ No newline at end of file diff --git a/docs/source/Macros/MacroItup.rst b/docs/source/Macros/MacroItup.rst new file mode 100644 index 00000000..34903c89 --- /dev/null +++ b/docs/source/Macros/MacroItup.rst @@ -0,0 +1,26 @@ +======== +``itup`` +======== + +Controls upstream direction. The use of the itup macro is sometimes useful in +problems where the flow directions are changing rapidly. The parameter UPWGT +(in macro ctrl) must be greater than 0.5 for this macro to have any effect. + +* Group 1 - IAD_UP + ++----------------+---------+---------+-------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+=========+=========+===========================================+ +| IAD_UP | integer | 1000 | | Number of iterations after which the | +| | | | upwind directions are held constant. | +| | | | | *A value of 2 is suggested* | ++----------------+---------+---------+-------------------------------------------+ + +In the following example of itup, after 10 iterations the upwind directions are +held constant. + ++------+ +| itup | ++------+ +| 10 | ++------+ \ No newline at end of file diff --git a/docs/source/Macros/MacroIupk.rst b/docs/source/Macros/MacroIupk.rst new file mode 100644 index 00000000..875943db --- /dev/null +++ b/docs/source/Macros/MacroIupk.rst @@ -0,0 +1,6 @@ +======== +``iupk`` +======== + +No input is associated with this control statement. This macro enables upwinding, the technique of evaluating the non-linear equation coefficients using the direction of flow relative to the grid block. For example, if flow is moving from grid block j to i, the coefficients for block i, are evaluated at the "upwind" block j. When upwinding is enabled the full transmissibility term will be upwinded (including the intrinsic permeability). Otherwise the fluid and relative permeability part of the transmissibility will be upwinded and the intrinsic permeability will be harmonically averaged. + diff --git a/docs/source/Macros/MacroIvfc.rst b/docs/source/Macros/MacroIvfc.rst new file mode 100644 index 00000000..6491b8de --- /dev/null +++ b/docs/source/Macros/MacroIvfc.rst @@ -0,0 +1,6 @@ +======== +``ivfc`` +======== + +Enable exponential fracture and volume model. + diff --git a/docs/source/Macros/MacroMdnode.rst b/docs/source/Macros/MacroMdnode.rst new file mode 100644 index 00000000..be71681e --- /dev/null +++ b/docs/source/Macros/MacroMdnode.rst @@ -0,0 +1,75 @@ +========== +``mdnode`` +========== + +Enables extra connections to be made to nodes. This is useful for simulating wellbore connections, faults, and flow across internal boundaries. + +* Group 1 - NUM_MD, MAX_CON, IELIM, SX_MULT + +* Group 2 - NODE, IPAR, NPAR (repeated NUM_MD times) + ++----------------+---------+---------+------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+=========+=========+======================================================+ +| NUM_MD | integer | 0 | Number of new connections to be entered. | ++----------------+---------+---------+------------------------------------------------------+ +| MDMAX | integer | 0 | Maximum number of new connections to a given node. | +| | | | This does not include old connections. Thus, | +| | | | if a node was already connected to 5 neighboring | +| | | | nodes and two new connections were added to this | +| | | | node in this macro statement and this was the | +| | | | maximum number of connections added in this | +| | | | macro statement, then MDMAX = 2. | ++----------------+---------+---------+------------------------------------------------------+ +| I_ELIM | integer | 0 | IF I_ELIM Š 0, then no action. IF I_ELIM < 0, | +| | | | then nodal connections are eliminated as needed | +| | | | if redundant. | ++----------------+---------+---------+------------------------------------------------------+ +| SX_MULT | real*8 | 1.0 | Multiplier for equilibrium conditions. | ++----------------+---------+---------+------------------------------------------------------+ +| NODE | integer | 0 | Node to which new connection is established. | ++----------------+---------+---------+------------------------------------------------------+ +| IPAR | integer | 0 | IPAR is not used at present. Its value is ignored. | +| | | | However the entered number must be an integer. | ++----------------+---------+---------+------------------------------------------------------+ +| NPAR | integer | 0 | NPAR is the new connected node. If NPAR = NODE, | +| | | | no new connection is established. | ++----------------+---------+---------+------------------------------------------------------+ + +The following are examples of mdnode. In the first example (top), 3 new connections +are specified, node 10 is connected to node 15, node 100 is connected to node +106, and node 10 is connected to node 320. A maximum of 2 new connections are +allowed per node. The multiplier for equilibrium conditions is set to 10. In the +second example (bottom), 4 new connections are specified, node 1 is connected to +node 16, node 2 is connected to node 1, node 4 is connected to node 1 and node +10 is connected to node 203. A maximum of 3 new connections are allowed per node. +The multiplier for equilibrium conditions is set to 100. + + ++--------+---+-----+----+ +| mdnode | | | | ++--------+---+-----+----+ +| 3 | 2 | 0 | 10 | ++--------+---+-----+----+ +| 10 | 0 | 15 | | ++--------+---+-----+----+ +| 100 | 0 | 106 | | ++--------+---+-----+----+ +| 10 | 0 | 320 | | ++--------+---+-----+----+ + + ++--------+---+-----+-----+ +| mdnode | | | | ++--------+---+-----+-----+ +| 4 | 3 | 0 | 100 | ++--------+---+-----+-----+ +| 1 | 0 | 16 | | ++--------+---+-----+-----+ +| 2 | 0 | 1 | | ++--------+---+-----+-----+ +| 4 | 0 | 1 | | ++--------+---+-----+-----+ +| 10 | 0 | 203 | | ++--------+---+-----+-----+ + diff --git a/docs/source/Macros/MacroMptr.rst b/docs/source/Macros/MacroMptr.rst new file mode 100644 index 00000000..33c437ec --- /dev/null +++ b/docs/source/Macros/MacroMptr.rst @@ -0,0 +1,926 @@ +======== +``mptr`` +======== + +Multiple species ingrowth particle tracking. Note that data for each numbered group must be input. The other input is optional. + +* Group 1 - NSPECI, MAXLAYERS, MAX_PARTICLES, RIPFEHM, MAX1D + +* Group 2 - POUT, PRNT_RST + + - or when PRNT_RST ≥ 20, selected output parameters + +* Group 2 - POUT, PRNT_RST, PRNT_VARNUM ( 1 . . . 6) + + - Optional keyword "tcurve" is input to indicate that transfer function curves should be input to model matrix diffusion. It is followed by NUMPARAMS and TFILENAME. + + + KEYWORD + + + NUMPARAMS, FFMAX + + + TFILENAME + + - Optional keyword "zptr" designates zones for breakthrough curves will be defined. It is followed by IPZONE and IDZONE. + + + KEYWORD ‘zptr' + + + IPZONE + + + IDZONE(I) I = 1 to IPZONE + +* Group 3 - RSEED, RSEED_RELEASE + + - Optional keyword "wtri" is input to indicate a water table rise calculation should be performed. It is followed by WATER_TABLE. For GoldSim the water table rise calculation is controlled by passing a new water table elevation to the code during the simulation and the keyword is not required. + + + KEYWORD ‘wtri' + + + WATER_TABLE + +* Group 4 - DAYCS, DAYCF, DAYHF, DAYHS + + - An optional, flexible input structure involving the assignment of transport parameters is implemented in the particle tracking input to allow multiple realization simulations to use different parameters for each realization. The user invokes this option using the keyword "file" before Group 5, followed by the name of the file that the transport parameters reside in. The applicable transport parameters are defined in Group 5 and Group 9. + + + KEYWORD ‘file' + + + PFILENAME + + - The structure of the alternate parameter file is: + + + NINPUTS + + + PTRPARAM(I) I=1 to NINPUTS + + + . + + + . + + + . + + - [a line of parameters is present for each realization] + +The method for assigning a given value of the particle tracking parameter (PTRPARAM) to a specific transport parameter, defined in Group 5 or Group 9, is discussed below. There are an arbitrary number of input lines each representing a given realization of parameter values. In a multiple-realization scenario, the code enters the input file for each realization, and for this input, reads down the corresponding number of lines to obtain the parameters for that realization. For example, for realization number 10, the code reads down to the 10th line of data (line 11 in the file) and uses those parameter values. + +Once these parameters are read in for a given realization, they must be assigned to specific transport parameters. This is done in the following way in Group 5 or Group 9. If any of the inputs other than TRANSFLAG are negative, the code takes the absolute value of the number and interprets it as the column number from which to assign the transport parameter. For example, if DIFFMFL = -5, then the diffusion coefficient is the fifth input number in the PTRPARAM array. In this way, any of the transport parameter inputs can be assigned through the alternate input file rather than the input line in mptr. It should be noted that for the colloid diversity model, only K_REV need be negative to indicate values should be read from the parameter file, if K_REV is negative then all five parameters are read from the file, otherwise the equation parameters will be read from the mptr macro. This is to accommodate the fact that the SLOPE_KF may have negative values. + +Group 5 is used to define models in which identical transport parameters are assumed to apply. Group 5 data are read until a blank line is encountered. The model number ITRC is incremented by 1 each time a line is read. Model parameters defined in Group 5 are assigned to nodes or zones using Group6. + +Optional keyword "afm" indicates the Active Fracture Model input for determining fracture spacing should be used. Optional keyword "dfree" is input to indicate that a free water diffusion coefficient and tortuosity will be entered instead of the molecular diffusion coefficient. + + KEYWORD ‘afm' + + KEYWORD ‘dfre' + +* Group 5 - TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), APERTUR(ITRC), MATRIX_POR(ITRC) + + - or when ‘afm' is implemented: + + - Group 5 - TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), APERTUR(ITRC), MATRIX_POR(ITRC), SRESIDUAL(ITRC), GAMMA_AFM(ITRC) + +* Group 6 - JA, JB, JC, ITRC (JA, JB, JC - defined on `See JA, JB, JC, PROP1, PROP2, . . . `_) + +The following groups (Group 7 - 12) are repeated for each species. + +* Group 7 - ITH_SPECI, TRAK_TYPE, HALF_LIFE, IDAUGHTER, CONFACTOR, NEWCONFACTOR, CONFTIME, GMOL, P_FRACTION, ASTEP, CFRACTION + +Optional keyword "size" is input to indicate that the colloid size distribution model option is being used. It is followed by PART_SIZE and PROBSIZE. + + KEYWORD ‘size' + + PART_SIZE(I), PROBSIZE(I) - an arbitrary numbers of lines of input, terminated by a blank line. + +Optional keyword "dive" is input to indicate that the colloid diversity model is being used. It is followed by FLAG_COL_DAUGHTER, optional keyword "file" and the name of the file containing the CDF table or equation data (a description of the format for the file is provided with the second mptr example below), the TPRPFLAG with optional SIMNUM, optional CDF equation parameters (when "file" is not used), and keyword "irreversible" or "reversible" with FLAG_LOG. + ++---------------------------------+----+--------------------------------------------+ +| KEYWORD 'dive' | or | KEYWORD 'dive | ++---------------------------------+----+--------------------------------------------+ +| FLAG\_COL\_DAUGHTER | | FLAG\_COL\_DAUGHTER | ++---------------------------------+----+--------------------------------------------+ +| KEYWORD 'file' | | TPRPFLAG | ++---------------------------------+----+--------------------------------------------+ +| CDFFILENAME | | or | ++---------------------------------+----+--------------------------------------------+ +| TPRPFLAG | | TPRPFLAG, SIMNUM | ++---------------------------------+----+--------------------------------------------+ +| or | | K\_REV, R\_MIN,R\_MAX, SLOPE\_KF, CINT\_KF | ++---------------------------------+----+--------------------------------------------+ +| TPRPFLAG, SIMNUM | | KEYWORD ‘irreversible’ | ++---------------------------------+----+--------------------------------------------+ +| KEYWORD ‘irreversible’ | | or | ++---------------------------------+----+--------------------------------------------+ +| or | | KEYWORD ‘reversible’, FLAG_LOG | ++---------------------------------+----+--------------------------------------------+ +| KEYWORD ‘reversible’, FLAG\_LOG | | | ++---------------------------------+----+--------------------------------------------+ + +Note that optional KEYWORDs "size" and "dive" are only used when colloid transport is enabled. + +* Group 8 - LAYERS + +* Group 9 - LAYER_I, TRANSFLAG, KD, RD_FRAC, DIFFMFL + +or for simulations using "dfree": + +* Group 9 - LAYER_I, TRANSFLAG, KD, RD_FRAC, H2O_DIFF, TORT_DIFF + +or for simulations with colloid (``TRANSFLAG < 0``): + +* Group 9 - LAYER_I, TRANSFLAG, KD, RD_FRAC, DIFFMFL, KCOLL, RCOLL, FCOLL + +or for simulations with colloid using "dfree": + +* Group 9 - LAYER_I, TRANSFLAG, KD, RD_FRAC, H2O_DIFF, TORT_DIFF, KCOLL, RCOLL, FCOLL + +* Group 10 - NS + +* Group 11 - JA, JB, JC, TMPCNSK + +Note that because the number of source terms is controlled by the value entered for NS, Group 11 input is not terminated with a blank line. + +* Group 12 - PINMASS, T1SK, T2SK + +For transient source terms, Group 12 is repeated for each time interval and terminated with a blank line. Groups 11 and 12 are repeated for each source term (from 1 to NS). + +For decay-ingrowth calculations, when the particle injection period is too small (for example, 1.E-4 days) compared to the half-life of the radionuclides and the half-life is large (for example 1.E+9 days), numerical errors in the decay-ingrowth calculation may arise due to truncation error. To get better accuracy, the user should try to increase the length of the injection period. + +For particle tracking simulations using the transfer function method (see `See Transfer function curve data input file `_ for input file format), it is sometimes desirable to identify the parameter ranges over which the two- and three-parameter type curves are accessed, so that an assessment can be made regarding the density of transfer function curves in a given part of the parameter space. If the flag output_flag in the transfer function file is set to "out", the code writes the real*8 array param_density to the *.out file in the following format: + +For regular parameter spacings, the output is: + + +.. code:: + + i = 1, nump1 + j = 1, nump2 + k = nump3 + + write(iout.*) param_density(i,j,k) + + end do + end do + end do + + +For two-parameter models, only the i and j loops are used. The value of param_density is the number of times any particle passes through any node at those values of the parameters. This allows the user to identify regions in which a greater density of transfer functions may be required. For the option 'free' in which there is no structure to the parameter grid used for the transfer function curves, nump1 is the total number of curves, and nump2 and nump3 are equal to 1. + ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++===================+==============+===========================================================================================+ +| NSPECI | integer | Number of species in the simulation. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| MAXLAYERS | integer | Maximum number of property layers in the model. | +|   |   | The actual number of layers used in the model must be ≤ MAXLAYERS. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| MAX_PARTICLES | integer | Maximum number of particles used for individual species. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| RIPFEHM | integer | | Flag to indicate if simulation is coupled with GoldSim. | +|   |   | | RIPFEHM = 0, FEHM standalone simulation | +|   |   | | RIPFEHM = 1, GoldSim-FEHM coupling simulation | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| MAX1D | integer | Maximum 1-D array size for holding particle tracking information for | +|   |   | all simulated species. The value of MAX1D depends on number of species, | +|   |   | number of time steps, number of radionuclide release bins, number of | +|   |   | species involved in ingrowth, and the length of the decay-ingrowth chain. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| POUT | integer | | Flag to specify the concentration output format: | +|   |   | | 1 - Concentrations computed as number of particles per unit total volume | +|   |   | (rock and fluid) | +|   |   | | 2 - Concentrations computed as number of particles per unit fluid volume | +|   |   | (the fluid is liquid for TRAK_TYPE = 1 and gas for TRAK_TYPE = 2). | +|   |   | | 3 - Concentrations computed as number of particles at a given node point. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| PRNT_RST | integer | | Flag to specify whether particle information is written to the ".fin", | +|   |   | ".ptrk_fin", or ".ptrk" files: | +|   |   | | If PRNT_RST = 0, Particle information is not written to the output files. | +|   |   | | If PRNT_RST = 1, 11, 21, 31, 41 All particle information necessary for a | +|   |   | restart is written to the ".fin" file. | +|   |   | | If PRNT_RST = -1, -11, -21, -31, -41 Only particle positions and ages are | +|   |   | written to the ".fin" file. | +|   |   | | If ABS (PRNT_RST) = 2, 12, 22, 32, 42 Mass flux values are written to the | +|   |   | ".fin" file followed by particle information. | +|   |   | | If 10 ≤ ABS(PRNT_RST) < 30 Particle exit locations and count are written | +|   |   | to the ".ptrk_fin" file. | +|   |   | | If ABS(PRNT_RST) ≥ 20 Cumulative particle counts versus time are written | +|   |   | to the ".ptrk" file, for variables specified by PRNT_VARNUM (the default | +|   |   | is to output all variables). | +|   |   | | If ABS(PRNT_RST) ≥ 40, Cumulative mass output from a FEHM/GoldSim coupled | +|   |   | simulation will be written to file ``FEHM_GSM_Mass_balance.txt``. Note that to | +|   |   | track cumulative mass an additional array of size ``maxparticles*nspeci`` must | +|   |   | be allocated so caution should be used when specifying this option to ensure | +|   |   | sufficient system memory is available. | +|   |   | | | +|   |   | | When particle tracking data or mass fluxes are written to the ``.fin`` file, | +|   |   | the arrays are written after all of the heat and mass simulation information. | +|   |   | The mass fluxes can be read into the code in a subsequent ptrk or mptr simulation | +|   |   | and the code can simulate transport on this steady state flow field (see macro | +|   |   | ``rflo``).The particle information written is sufficient to perform a restart of the | +|   |   | particle tracking simulation and to post-process the data to compile statistics | +|   |   | on the particle tracking run. However, for a large number of particles, this | +|   |   | file can become quite large, so particle tracking information should only be | +|   |   | written when necessary. Thus, 0 should be used for ``PRNT_RST`` unless restarting | +|   |   | or post-processing to obtain particle statistics is required. Selecting the | +|   |   | "-" options allows a subset of the full set of information needed for a | +|   |   | restart (particle positions and ages) to be written. Restart runs that use | +|   |   | this file as input will only be approximate, since the particle is assumed | +|   |   | to have just entered its current cell. For restart runs, ``PRNT_RST = 1`` is | +|   |   | preferred, while ``PRNT_RST = -1`` is appropriate for output of particle | +|   |   | statistics for post- processing. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| PRNT_VARNUM | integer | | A list of integers specifying which particle counts should be output. For each | +|   |   | value entered ``PRNT_VAR(PRNT_VARNUM)`` is set to true. If no values are entered | +|   |   | the default is to print all variables. | +|   |   | | 1 – Number of particles that have entered the system | +|   |   | | 2 – Number of particles currently in the system | +|   |   | | 3 – Number of particles that have left the system | +|   |   | | 4 – Number of particles that have decayed | +|   |   | | 5 – Number of particles that have been filtered | +|   |   | | 6 – Number of particles that left this time interval | +|   |   | | +|   |   | | Note: The data found in the ".ptrk" file was previously reported in the | +|   |   | general output file. From version 2.25 of the code and forward that data | +|   |   | will be reported in the optional, ".ptrk" file unless a coupled GoldSim-FEHM | +|   |   | simulation is being run. In addition, the user has the option of selecting | +|   |   | which statistics parameters are reported. The default is to report all | +|   |   | statistics parameters. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "tcurve" indicating transfer function curve data should be | +|   |   | input to model matrix diffusion. If the keyword is found then NUMPARAMS and | +|   |   | FILENAME are entered, otherwise they are omitted. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| NUMPARAMS | integer | Number of parameters that define the transfer function curves being used. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| FFMAX | real | The maximum fracture flow fraction used in the transfer function curve | +|   |   | data. Default value: 0.99. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TFILENAME | character | Name of input file containing the transfer function curve data. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘zptr' designating zones for breakthrough curves will be | +|   |   | defined. If no keyword is input, IPZONE and IDZONE are also omitted. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| IPZONE | integer | Number of zones for which breakthrough curves are to be output | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| IDZONE | integer | A list of zones for which particle breakthrough data are required. The code | +|   |   | outputs the number of particles that leave the system at each zone IDZONE | +|   |   | at the current time step. This information is written to the ".out" file | +|   |   | at each heat and mass transfer time step. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| RSEED | integer | 6-digit integer random number seed. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| RSEED_RELEASE | integer | | 6-digit integer random number seed for particle release location calculation. | +|   |   | If a value is not entered for RSEED_RELEASE it will be set equal to RSEED. | +|   |   | | | +|   |   | | Note that for GoldSim-FEHM coupled simulations the random seeds are controlled | +|   |   | by GoldSIM and the values input in the mptr macro are not used. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘wtri" indicatiing a water table rise calculation should | +|   |   | be performed. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| WATER_TABLE | real | | Water table elevation to be used for water table rise calculation. | +|   |   | | Note that for GoldSim-FEHM coupled simulations the water table | +|   |   | rise calculations are controlled by GoldSIM and the values input | +|   |   | in the mptr macro are not used and may be omitted. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| DAYCS | real | Time which the particle tracking solution is enabled (days). | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| DAYCF | real | Time which the particle tracking solution is disabled (days). | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| DAYHF | real | Time which the flow solution is disabled (days). | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| DAYHS | real | Time which the flow solution is enabled (days). | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘file' designating alternate transport | +|   |   | parameter file input for multiple simulation realizations. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| PFILENAME | character*80 | Name of file from which to read transport parameters. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘afm' designating the Active Fracture | +|   |   | Model input for determining fracture spacing should be used. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*5 | Optional keyword ‘dfree' designates that the free water | +|   |   | diffusion coefficient and tortuosity will be input instead | +|   |   | of the molecular diffusion coefficient. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TCLX | real | Dispersivity in the x-direction (m). The input value is | +|   |   | ignored when dispersion is turned off. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TCLY | real | Dispersivity in the y-direction (m). The input value is | +|   |   | ignored when dispersion is turned off. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TCLZ | real | Dispersivity in the z-direction (m). The input value is | +|   |   | ignored when dispersion is turned off. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| APERTUR | real | Mean fracture aperture (m). The input value is ignored | +|   |   | when matrix diffusion is turned off. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| MATRIX_POR | real | Porosity of the rock matrix. Used to simulate diffusion | +|   |   | and sorption in the rock matrix when matrix diffusion | +|   |   | is invoked, otherwise the input value of MATRIX_POR is ignored. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| SRESIDUAL | real | Residual saturation in the Active Fracture Model used for | +|   |   | determining the spacing between active fractures. | +|   |   | This parameter is only needed when the keyword ‘afm' is | +|   |   | included, in which case the input must be entered. | +|   |   | However, the model is only used in dual permeability | +|   |   | simulations at locations where the finite spacing matrix | +|   |   | diffusion model is invoked. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| GAMMA_AFM | real | Exponent in the Active Fracture Model used for determining | +|   |   | the spacing between active fractures. See comments for | +|   |   | SRESIDUAL above. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| ITRC | integer | Model number for parameters defined in group 5. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| ITH_SPECI | integer | Number index of the ith species. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TRAK_TYPE | integer | | Flag to denote the fluid phase of the particles: | +|   |   | | 1 - liquid phase particles | +|   |   | | 2 - vapor phase particles | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| HALF_LIFE | real | Half-life for irreversible first order decay reaction(s) | +|   |   | (days). Set HALF_LIFE = 0 for no decay. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| IDAUGHTER | integer | | Index of the daughter species (i.e., the index number of | +|   |   | the species to which the current species decays) | +|   |   | | If IDAUGHTER = 0, there is no decay and no ingrowth, | +|   |   | | If IDAUGHTER = -1, there is decay but no ingrowth. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| CONFACTOR | real | | Initial conversion factor for GoldSim-FEHM coupling and | +|   |   | FEHM standalone simulations (# of particles/mole). | +|   |   | | | +|   |   | | For FEHM stand alone simulations: | +|   |   | | If CONFACTOR = 0, no conversion is necessary. The input | +|   |   | value of PINMASS is the number of particles. | +|   |   | | | +|   |   | | For GoldSim-FEHM coupling: | +|   |   | | If CONFACTOR = 0, at each time step, the code selects a | +|   |   | conversion factor based on the available memory and the | +|   |   | remaining simulation time (end time - current time). The | +|   |   | code then uses the selected conversion factor to calculate | +|   |   | the number of particles to be injected at the current time step. | +|   |   | | | +|   |   | | For both stand alone and GoldSim-FEHM coupling cases: | +|   |   | | If CONFACTOR > 0, the code assumes the input mass is in moles | +|   |   | and uses the product of the CONFACTOR and the input mass to calculate | +|   |   | the input number of particles at each time step. | +|   |   | | When CONFACTOR >0, FEHM may use an updated conversion factor from | +|   |   | previous time step(s) as the input for the current time step instead | +|   |   | of using the original input CONFACTOR for improved results. | +|   |   | | | +|   |   | | If CONFACTOR < 0, the code uses the product of the absolute value | +|   |   | of CONFACTOR and the input mass (in moles) to calculate the input | +|   |   | number of particles at each time step. A CONFACTOR updated from a | +|   |   | previous time step will not be used. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| NEWCONFACTOR | real | | Replace the initial value of CONFACTOR with that specified by | +|   |   | NEWCONFACTOR. | +|   |   | | If NEWCONFACTOR = 0, use automatic conversion factors. | +|   |   | | If NEWCONFACTOR > 0, then use the product of the CONFACTOR | +|   |   | and the input mass (in moles) to calculate the input number of | +|   |   | particles at each time step starting from CONFTIME. In this case, | +|   |   | FEHM may use an updated conversion factor from previous time step(s) | +|   |   | as a modification to CONFACTOR. | +|   |   | | If NEWCONFACTOR < 0, then FEHM uses the product of the absolute value | +|   |   | of NEWCONFACTOR and the input mass (in moles) to calculate the input | +|   |   | number of particles at each time step (``CONFACTOR = -NEWCONFACTOR``). | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| CONFTIME | real | The time at which to change the CONFACTOR value to that specified | +|   |   | by NEWCONFACTOR. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| GMOL | real | The molecular weight of the ith species. The code uses GMOL and | +|   |   | CONFACTOR to convert the mass from number of particles to grams | +|   |   | in the final output for GoldSim-FEHM coupling. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| P_FRACTION | real | The decay-ingrowth particle release factor (percentage of the | +|   |   | maximum number of particles released for the current species). | +|   |   | For decay-ingrowth simulations, P_FRACTION is used to reduce | +|   |   | the number of particles released by parent or daughter species, | +|   |   | thus, avoiding memory overflow in the daughter species due to | +|   |   | parent decay-ingrowth where multiple parents decay to the same | +|   |   | daughter species. The normal range of P_FRACTION is from 0 to 1. | +|   |   | The default value is 0.25. A user should select an appropriate | +|   |   | value based on the mass input of parent and daughter species, | +|   |   | half-lives, importance of each species to the transport results, | +|   |   | and simulation time period. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| ASTEP | integer | Maximum length of array used to hold particle tracking information | +|   |   | for the ith species. Its value depends on number of time steps, | +|   |   | number of release bins, and number of parent species. | +|   |   | The sum of ASTEP for all species should be equal to or smaller | +|   |   | than MAX1D. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| CFRACTION | real | The fraction of the user determined maximum number of particles | +|   |   | (MAX_PARTICLES) to be assigned by mass, (1 – cfraction) will | +|   |   | then be the fraction of particles assigned by time step. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘size' designating that the colloid size | +|   |   | distribution model option is being used (combined with | +|   |   | the interface filtration option in the itfc macro). If the | +|   |   | keyword is not input, PART_SIZE and PROBSIZE are also omitted. | +|   |   | Colloid size is only sampled once for each realization. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| PART_SIZE | real | Colloid particle size for this entry of the particle size | +|   |   | distribution table (paired with a value of PROBSIZE). | +|   |   | An arbitrary number of entries can be input, terminated with | +|   |   | a blank line. The code assigns each particle a size based on | +|   |   | this distribution of particle sizes, and decides if particles | +|   |   | are irreversibly filtered based on the pore size distribution | +|   |   | assigned in the itfc macro. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| PROBSIZE | real | Colloid cumulative probability for the distribution of sizes | +|   |   | (paired with a value of PART_SIZE). See description of | +|   |   | PART_SIZE above for details. The final entry of the table | +|   |   | must have PROBSIZE = 1, since the distribution is assumed | +|   |   | to be normalized to unity. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword "dive" signifying that the specie being | +|   |   | specified is either a colloid species using the colloid | +|   |   | diversity model or a non-colloid daughter species of a | +|   |   | colloid species. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| FLAG_COL_DAUGHTER | integer | When FLAG_COL_DAUGHTER = 1 signals that the species being | +|   |   | specified is a non-colloid species that can result as a | +|   |   | daughter product of a colloid parent species. If the species | +|   |   | is not a daughter product or the daughter product is a | +|   |   | colloid, FLAG_COL_DAUGHTER = 0. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘file' designating the cumulative probability | +|   |   | distribution function (CDF) retardation parameters for the | +|   |   | colloid diversity model should be read from an external file. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| CDF_FILENAME | character*80 | | Name of the file containing the cumulative probability | +|   |   | distribution function (CDF) (entered if optional keyword | +|   |   | ‘file' follows keyword ‘dive'). See below for file formats. | +|   |   | | If TPRPFLAG = 11 or 12, Table option | +|   |   | | If TPRPFLAG = 13 or 14, Equation option | +|   |   | | | +|   |   | | The following equations are used for :math:`R_{min} \le R \le R_{max}`, | +|   |   | | :math:`R = 1 + K_f / K_{rev}`, | +|   |   | :math:`\log_{10}(CDF) = b + m \cdot \log_{10}(K_f)` | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TPRP_FLAG | integer | | Values of TPRPFLAG between 11 and 14 signify that the colloid | +|   |   | diversity model with equal weight sampling will be used: | +|   |   | | TPRPFLAG = 11: CDF vs retardation factor specified in a table | +|   |   | | TPRPFLAG = 12: similar to 11, but the SQRT(CDF) is used instead | +|   |   | of CDF for sampling | +|   |   | | TPRPFLAG = 13: CDF vs :math:`K_f` (Attachment rate constant) | +|   |   | specified as a straight line equation in the log-log space | +|   |   | | TPRPFLAG = 14: similar to 13, but the SQRT(CDF) is used | +|   |   | instead of CDF for sampling | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| SIMNUM | integer | Simulation number, used for selecting the table/equation from | +|   |   | the colloid diversity file. For GoldSim-FEHM coupled simulations | +|   |   | or FEHM runs using the ‘msim' option this parameter is passed | +|   |   | to the code. For non-coupled simulations it is an optional | +|   |   | input. (Default value = 1) | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| K_REV | real | Detachment rate constant for reversible filtration of | +|   |   | irreversible colloids. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| R_MIN | real | Minimum value of the retardation factor for reversible | +|   |   | filtration of irreversible colloids. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| R_MAX | real | Maximum value of the retardation factor for reversible | +|   |   | filtration of irreversible colloids | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| SLOPE_KF | real | | Value of the slope (:math:`m`) in the log-log space | +|   |   | for the equation: | +|   |   | | :math:`\log_{10}(CDF) = b + m \cdot \log_{10}(K_f)` | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| CINT_KF | real | Value of the intercept (:math:`b`) in the log-log space | +|   |   | for the above equation | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KEYWORD | character | Keyword specifying whether the colloid species is | +|   |   | ‘irreversible' or ‘reversible'. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| FLAG_LOG | integer | | For reversible colloids an average retardation factor is used: | +|   |   | | | +|   |   | | If FLAG_LOG = 0: a linear average of the distribution is used | +|   |   | | If FLAG_LOG = 1: a log-linear average of the distribution | +|   |   | is used | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| LAYERS | integer | Number of layers in which the transport properties of the | +|   |   | ith species are to be modified. If no property is altered, | +|   |   | then set layers=0. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| LAYER_I | integer | The index number of the ith layer defined in group 5 | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TRANSFLAG | integer | | Flag to specify which transport mechanisms apply [abs(TRANSFLAG)]: | +|   |   | | 1 - advection only (no dispersion or matrix diffusion) | +|   |   | | 2 - advection and dispersion (no matrix diffusion) | +|   |   | | 3 - advection and matrix diffusion, infinite fracture spacing | +|   |   | solution (no dispersion) | +|   |   | | 4 - advection, dispersion, and matrix diffusion, infinite fracture | +|   |   | spacing solution | +|   |   | | 5 - advection and matrix diffusion, finite fracture spacing | +|   |   | solution (no dispersion) | +|   |   | | 6 - advection, dispersion, and matrix diffusion, finite fracture | +|   |   | spacing solution | +|   |   | | 8 - use the the transfer function approach with 3 dimensionless | +|   |   | parameters and type curves for handling fracture-matrix interactions. | +|   |   | | | +|   |   | | For TRANSFLAG < 0, transport simulations include colloids. | +|   |   | | For equivalent continuum solutions, the fracture spacing in the | +|   |   | finite spacing model is determined using | +|   |   | | | +|   |   | | :math:`SPACING = APERTURE / POROSITY` | +|   |   | | | +|   |   | | For dual permeability models, the fracture spacing input parameter | +|   |   | APUV1 in the ``dpdp`` macro is used as the half-spacing between fractures. | +|   |   | If the Active Fracture Model (see keyword ‘afm') is used, APUV1 is the | +|   |   | geometric fracture half-spacing, and the additional terms SRESIDUAL | +|   |   | and GAMMA_AFM are used to determine the spacing between active | +|   |   | fractures (see below). | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KD | real | Sorption coefficient (linear, reversible, equilibrium sorption). | +|   |   | Units are kg-fluid / kg-rock (these units are equivalent to the | +|   |   | conventional units of cc/g when the carrier fluid is water at | +|   |   | standard conditions). This value applies to the medium as a whole | +|   |   | when matrix diffusion is turned off, whereas for simulations invoking | +|   |   | matrix diffusion, the value applies to the rock matrix. | +|   |   | For the latter case, sorption in the flowing system (fractures) | +|   |   | is modeled using the RD_FRAC variable. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| RD_FRAC | real | Retardation factor within the primary porosity (fractures) for a | +|   |   | matrix diffusion particle tracking simulation (use 1 for no | +|   |   | sorption on fracture faces). The input value is ignored unless | +|   |   | matrix diffusion is invoked. | +|   |   | | +|   |   | | +|   |   | | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| DIFFMFL | real | Molecular diffusion coefficient in the rock matrix (m2/s). | +|   |   | The input value is ignored unless matrix diffusion is invoked. | +|   |   | | +|   |   | | +|   |   | | +|   |   | | +|   |   | | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| H2O_DIFF | real | | Free water diffusion coefficient. The molecular diffusion | +|   |   | coefficient is calculated as | +|   |   | :math:`H2O\_DIFF \times TORT\_DIFF` | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TORT_DIFF | real | Tortuosity | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| KCOLL | real | | Colloid distribution parameter, the ratio of contaminant mass | +|   |   | residing on colloids to the mass present in aqueous form. | +|   |   | It is used to compute an effective aperture via the following: | +|   |   | | :math:`APWID = APERERTURE \cdot (1 + KCOLL)` | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| RCOLL | real | | Colloid retardation factor. Used, in conjunction with kcoll, | +|   |   | to adjust colloid retardation in fractures using the following | +|   |   | formula: | +|   |   | | :math:`FRACRD = \frac{RD\_FRAC + KCOLL \cdot RCOLL}{1+KCOLL}` | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| FCOLL | real | Colloid filtration parameter. Used to compute the probability a colloid | +|   |   | will be irreversibly filtered along the path between two nodes using | +|   |   | the following: | +|   |   | :math:`PROBFILT = 1 - \exp(DISTANCE/FCOLL)` where | +|   |   | :math:`DISTANCE` iis the leength of the path between nodes. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| NS |   | Number of spatial source terms for the ith species | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| TMPCNSK | real | | Particle injection parameter assigned for nodes defined by JA, | +|   |   | JB, and JC. Two options are available: | +|   |   | | | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +|   |   | | TMPCNSK > 0. - particles are injected at each node in | +|   |   | proportion to the source mass flow rate at the node. This | +|   |   | boundary condition is equivalent to injecting a solute of | +|   |   | a given concentration into the system. Note: the source | +|   |   | flow rates used to assign the number and timing of particle | +|   |   | injections are those at the beginning of the particle | +|   |   | tracking simulation (time DAYCS). Transient changes in this | +|   |   | source flow rate during the particle tracking simulation do | +|   |   | not change the number of particles input to the system. | +|   |   | | TMPCNSK < 0. - particles are introduced at the node(s), | +|   |   | regardless of whether there is a fluid source at the node. | +|   |   | | | +|   |   | | Default is 0. for all unassigned nodes, meaning that no | +|   |   | particles are injected at that node. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| PINMASS | real | Input mass. If CONFACTOR = 0, PINMASS is the number of particles | +|   |   | to be injected at locations defined by TMPCNSK. | +|   |   | If CONFACTOR > 0, PINMASS is the input mass expressed in moles. | +|   |   | The code uses CONFACTOR to convert PINMASS into number of particles. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| T1SK | real | Time (days) when particle injection begins. Default is 0. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ +| T2SK | real | Time (days) when particle injection ends. Default is 0. | ++-------------------+--------------+-------------------------------------------------------------------------------------------+ + + +.. note:: + **Notes on Restarting:** As with all restart runs for FEHM, a ".ini" file is + specified to be read to set the initial conditions upon restarting. However, + there are two possibilities for restart calculations with particle tracking + (mptr or ptrk): 1) the heat and mass transfer solution is being restarted, but + the particle tracking simulation is initiated during the restart run (it was not + carried out in the simulation that generated the ".ini" file); or 2) the heat + and mass transfer solution and the particle tracking simulation are both being + restarted. If the code does not find the "ptrk" key word at the top of the ".ini" + file, then the original run did not employ particle tracking, and Case 1 is assumed. + A common example is a preliminary calculation that establishes a fluid flow steady + state, followed by a restart simulation of transport. + +If "ptrk" was written into the ".ini" file in the original run, the particle data in the ".ini" file are read and used to initialize the particle tracking simulation (Case 2). In this instance, the number of particles (NPART) must be set the same for the restart run as in the original run or the results will be unpredictable.When restarting a particle tracking simulation, certain input data are overwritten by information in the ".ini" file. These parameters include RSEED, RSEED_RELEASE, PCNSK, T1SK, and T2SK. Other input parameters can be set to different values in the restart run than they were in the original run, but of course care must be taken to avoid physically unrealistic assumptions, such as an abrupt change in transport properties (Group 4 input) part way through a simulation. + +A final note on restart calculations is in order. A common technique in FEHM restart calculations is to reset the starting time at the top of the ".ini" file to 0 or in the time macro so that the starting time of the restart simulation is arbitrarily 0, rather than the ending time of the original simulation. This is useful for the example of the steady state flow calculation, followed by a restart solute transport calculation. Although this technique is acceptable for particle tracking runs that are initiated only upon restart (Case 1), it is invalid when a particle tracking run is being resumed (Case 2). The reason is that all particle times read from the ".ini" file are based on the starting time of the original simulation during which the particle tracking simulation was initiated. + +The following is an example of mptr. A multiple-species decay-chain +(:math:`\rightarrow 2 \rightarrow 3`) is simulated, with decay half lives of the +species equaling 10,000, 3,000, 10,000, and 4,000 years, respectively. In this +simulation a maximum of 3 property layers are specified although only 1 layer is used, +the maximum number of particles is specified to be 1100100, and FEHM is run in stand-alone +mode. Concentrations will be computed as number of particles per unit fluid volume and +no output will be written to the “.fin” file. Use of the ‘zptr’ keyword indicates that +a single zone will be defined for breakthrough curve output which will be written to +the “.out” file. The random number seed is defined to be 244562. The particle tracking +solution is enabled at 0.1 days, and disabled at 3.65e8 days, while the flow solution +is disabled at 38 days and re-enabled at 3.65e8 days. Dispersivity in the X-, Y-, and +Z- directions are defined to be 0.005 m, the mean fracture aperture is 0.0001 m, and +the matrix porosity is 0.3. Particles for species 1 are injected at a constant rate +from 0 to 5,000 years, and species 2, 3, and 4 are formed through the decay reactions, +with no input at the inlet. Advection and dispersion (without matrix diffusion) is being +modeled. The retardation factors for the four species are 1, 1, 1.9, and 1, respectively +(i.e. only species 3 sorbs). + ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| mptr | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 4 | 3 | 1100100 | 0 | | | | | | Group 1 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 2 | 0 | | | | | | | | Group 2 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| zptr | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 244562 | | | | | | | | | Group 3 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 0.1 | 3.65e8 | 38 | 3.65e8 | | | | | | Group 4 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 0.005 | 0.005 | 0.005 | 1.e-4 | 0.3 | | | | | Group 5 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 0 | 0 | 1 | | | | | | Group 6 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 1 | 3.652485E6 | 2 | 1 | -1 | 1. | 1. | 0.5 | Group 7 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 8 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 2 | 0. | 1. | 1.e-14 | | | | | Group 9 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 10 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 202 | 201 | -1 | | | | | | Group 11 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 10000. | 0. | | 365.25E2 | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 10000. | 365.25E2 | | 730.5E2 | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 10000. | 730.5E2 | | 1.09575E5 | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 10000. | 1.09575E5 | | 1.461E5 | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| . | | | | | | | | | . | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| . | | | | | | | | | . | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| . | | | | | | | | | . | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 10000. | 1.7532E6 | 1.789725E6 | | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 10000. | 1.789725E6 | 1.82625E6 | | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 2 | 1 | 1.095745E6 | 3 | 0 | -1 | 1. | 1. | 0.5 | Group 7 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 8 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 2 | 0. | 1. | 1.e-14 | | | | | Group 9 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 10 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 202 | 201 | -1 | | | | | | Group 11 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 0 | 0. | 1.825E6 | | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 3 | 1 | 3.652485E6 | 4 | 0 | -1 | 1. | 1. | 0.5 | Group 7 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 8 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 2 | 0.108 | 1. | 1.e-14 | | | | | Group 9 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 10 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 202 | 201 | -1 | | | | | | Group 11 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 0 | 0. | 1.825E6 | | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 4 | 1 | 1.460972E6 | -1 | 0 | -1 | 1. | 1. | 0.5 | Group 7 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 8 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 2 | 0. | 1. | 1.e-14 | | | | | Group 9 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | | | | | | | | | Group 10 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 1 | 202 | 201 | -1 | | | | | | Group 11 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| 0 | 0. | 1.825E6 | | | | | | | Group 12 | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ +| | | | | | | | | | | ++--------+------------+------------+-----------+--------+----+----+----+-----+----------+ + +In the second example, transfer function data is used along with the active fracture and colloid diversity models. The the cumulative probability distribution function (CDF) retardation parameters for the colloid diversity model are entered in an external file using the table format. The format for the new input files associated with the colloid diversity model are: + +For ptrk/sptr/mptr simulations with TPRP_FLAG = 11 or 12: + +* Header line indicating the species number (always 1 for ptrk/sptr simulations) + +* Multiple tables, each with the following format: + + * One line specifying the realization number + + * Multiple lines with two columns of data (real) representing rcdiv and probdiv. Note that probdiv should start at 0 and end with 1. + + * A blank line is used to specify the end of the distribution table. + +* A blank line is used to specify the end of the file + +For mptr, a distribution will need to be entered for each colloid species. Therefore, +the header line and tables are repeated for each colloid species. + +For ptrk/mptr simulations with TPRP_FLAG = 13 or 14: + +* Header line containing comments + +* Multiple lines, each line containing realization number, :math:`b, m, k_r, R_{min}, R_{max}` + +* A blank line is used to specify the end of the file + +For sptr simulations with TPRP_FLAG = 13 or 14: + +* Header line containing comments + +* Multiple lines, each line containing realization number, :math:`b, m, k_r, R_{min}, R_{max}, \alpha_L` + +* A blank line is used to specify the end of the file + +Particle statistics data for the cumulative number of particles that have left the sytem and the number of particles that left during the current timestep are output. + ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| mptr | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 3 | 100 | 500000 | 0 | | | | | | Group 1 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 0 | 30 | 3 | 6 | | | | | | Group 2 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| tcurve | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 3 | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| ../colloid_cell/input/uz_tfcurves_nn_3960.in | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 244562 | | | | | | | | | Group 3 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 0. | 1.e20 | 0. | 1.e20 | | | | | | Group 4 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| afm | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1.e-03 | 1.e-03 | 1.e-03 | 1.e-03 | 0.2 | 0.01 | 0.6 | // layer 1 tcwm1 zone 1 | | Group 5 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1.e-03 | 1.e-03 | 1.e-03 | 0.00e+00 | 0.2 | 0.00 | 0.0 | // layer 1 tcwm1 zone 2 | | Group 5 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | 10 | 1 | 1 | | | | | | Group 6 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 11 | 20 | 1 | 2 | | | | | | Group 6 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | 1 | 0 | -1 | 1 | 0 | 1.00E+15243 | 1.0 | speci1 | Group 7 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| diveresity | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 0 | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| file | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| ../colloid_cell/input/rcoll_data.dat | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 11 1 | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| irreversible | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 2 | | | | | | | | | Group 8 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | -2 | 0.0 | 1.0e+00 | 1.00e-30 | 1e+20 | 1 | 1.00 | #1 tcwM1 | Group 9 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 2 | -2 | 0.0 | 1.0e+00 | 1.00e-30 | 1e+20 | 1 | 1.00 | #2 tcwM2 | Group 9 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | | | | | | | | | Group 10 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | 1 | 1 | -1 | | | | | | Group 11 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 100000 | 0. | 0.01 | | | | | | | Group 12 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 3 | 1 | 0 | -1 | 1 | 0 | 1.00EE+15243 | 1.0 | speci3 | Group 7 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| diversity | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 0 | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| file | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| ../colloid_cell/input/rcoll_data.dat | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 11 3 | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| irreversible | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 2 | | | | | | | | | Group 8 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | -2 | 0.0 | 1.0e+00 | 1.00e-30 | 1e+20 | 1 | 1.00 | #1 tcwM1 | Group 9 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 2 | -2 | 0.0 | 1.0e+00 | 1.00e-30 | 1e+20 | 1 | 1.00 | #2 tcwM2 | Group 9 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | | | | | | | | | Group 10 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 1 | 1 | 1 | -1 | | | | | | Group 11 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| 0 | 0. | 0.01 | | | | | | | Group 12 | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ +| | | | | | | | | | | ++----------------------------------------------+--------+--------+----------+----------+-------+--------------+-------------------------+----------+----------+ + +With the file ``rcoll_data.dat`` as: + ++---------+----------+--------+--------+ +| Test file for 1D importance sampling | ++---------+----------+--------+--------+ +| 1 | 0.0 | 0.0 | 0.0 | ++---------+----------+--------+--------+ +| 1.0 | 0.0 | | | ++---------+----------+--------+--------+ +| 2.0 | 0.125 | | | ++---------+----------+--------+--------+ +| 3.0 | 0.25 | | | ++---------+----------+--------+--------+ +| 4.0 | 0.375 | | | ++---------+----------+--------+--------+ +| 5.0 | 0.5 | | | ++---------+----------+--------+--------+ +| 6.0 | 0.625 | | | ++---------+----------+--------+--------+ +| 7.0 | 0.75 | | | ++---------+----------+--------+--------+ +| 8.0 | 0.875 | | | ++---------+----------+--------+--------+ +| 9.0 | 1.0 | | | ++---------+----------+--------+--------+ +| | | | | ++---------+----------+--------+--------+ +| . | | | | ++---------+----------+--------+--------+ +| . | | | | ++---------+----------+--------+--------+ +| . | | | | ++---------+----------+--------+--------+ +| | | | | ++---------+----------+--------+--------+ +| 3 | 0.0 | 0.0 | 0.0 | ++---------+----------+--------+--------+ +| 1.0 | 0.0 | | | ++---------+----------+--------+--------+ +| 2.0 | 0.125 | | | ++---------+----------+--------+--------+ +| . | | | | ++---------+----------+--------+--------+ +| . | | | | ++---------+----------+--------+--------+ +| . | | | | ++---------+----------+--------+--------+ +| 9.0 | 1.0 | | | ++---------+----------+--------+--------+ +| | | | | ++---------+----------+--------+--------+ + + diff --git a/docs/source/Macros/MacroNfinv.rst b/docs/source/Macros/MacroNfinv.rst new file mode 100644 index 00000000..2a65dead --- /dev/null +++ b/docs/source/Macros/MacroNfinv.rst @@ -0,0 +1,9 @@ +========= +``nfinv`` +========= + +No input is associated with this macro. When invoked, the code will generate finite element coefficients instead of finite volume coefficients for flow terms. Note that in previous versions of FEHM the default was to perform finite element calculations. + +.. note:: + + This macro is not recommended. \ No newline at end of file diff --git a/docs/source/Macros/MacroNgas.rst b/docs/source/Macros/MacroNgas.rst new file mode 100644 index 00000000..13dab736 --- /dev/null +++ b/docs/source/Macros/MacroNgas.rst @@ -0,0 +1,77 @@ +======== +``ngas`` +======== + +Noncondensible gas transport. + +* Group 1 - ICO2D + +* Group 2 - JA, JB, JC, PCO2 + +* Group 3 - JA, JB, JC, CPNK + +* Group 4 - JA, JB, JC, QCD + +Note that all Group 2 values are entered first, followed by Group 3 values, followed by Group 4 values. + ++----------------+---------+---------+-----------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+=========+=========+=============================================================================+ +| ICO2D | integer | 3 | | Solution descriptor for noncondensible gas transport. | +| | | | | ICO2D = 1, the 3 degree of freedom solution will be | +| | | | reduced to a 1 degree of freedom problem. (See macro | +| | | | ``iter``, the parameter ICOUPL is also set to 5 if | +| | | | ICO2D = 1.) | +| | | | | ICO2D = 2, the 3 degree of freedom solution will be | +| | | | reduced to a 2 degree of freedom problem. (See | +| | | | macro ``iter``, the parameter ICOUPL is also set to | +| | | | 5 if ICO2D = 2.) ICO2D = 3, full 3 degree of freedom. | ++----------------+---------+---------+-----------------------------------------------------------------------------+ +| PCO2 | real | 0. | | Initial partial pressure of noncondensible gas. If | +| | | | PCO2 < 0 then ABS (PCO2) is interpreted as a temperature | +| | | | and the partial pressure of the noncondensible gas is | +| | | | calculated according to the formula: | +| | | | | :math:`PCO2 = P_T - P_{SAT}(T)` | +| | | | | where :math:`P_T` is the total pressure and :math:`P_{SAT}(T)` | +| | | | is the water saturation pressure and is a function of temperature only. | ++----------------+---------+---------+-----------------------------------------------------------------------------+ +| CPNK | real | 0. | | If CPNK ≤ 0, then ABS (CPNK) is the specified noncondensible | +| | | | pressure and will be held at that value. | +| | | | | If CPNK > 0, then CPNK is the specified relative humidity | +| | | | and the saturation, :math:`S_l`, is calculated using the | +| | | | vapor pressure lowering formula and the capillary pressure formula: | +| | | | | :math:`Pcap(S_l) = \mathrm{ln}(h)\rho_l RT` | +| | | | | where :math:`Pcap` is the capillary function, :math:`h` is | +| | | | the humidity, :math:`R` is the gas constant, :math:`T` | +| | | | is the temperature, and :math:`\rho_l` is the liquid | +| | | | density. Once the formula is solved, :math:`S_l` is held | +| | | | constant. The humidity condition is only enabled for the | +| | | | van Genuchten capillary function model. See macro ``rlp``. | ++----------------+---------+---------+-----------------------------------------------------------------------------+ +| QCD | real | 0. | Specified air source strength (kg/sec). | ++----------------+---------+---------+-----------------------------------------------------------------------------+ + + +The following is an example of ``ngas``. In this example, a full 3 degrees of +freedom solution is specified. The initial temperature at nodes 1 to 800 is 20 +oC and the code is asked to calculate the initial noncondensible gas pressure. +There is no specified noncondensible gas source. + + ++------+-----+---+-----+ +| ngas | | | | ++------+-----+---+-----+ +| 3 | | | | ++------+-----+---+-----+ +| 1 | 800 | 1 | -20 | ++------+-----+---+-----+ +| | | | | ++------+-----+---+-----+ +| 1 | 800 | 1 | 0. | ++------+-----+---+-----+ +| | | | | ++------+-----+---+-----+ +| 1 | 800 | 1 | 0. | ++------+-----+---+-----+ +| | | | | ++------+-----+---+-----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroNobr.rst b/docs/source/Macros/MacroNobr.rst new file mode 100644 index 00000000..2d1ff642 --- /dev/null +++ b/docs/source/Macros/MacroNobr.rst @@ -0,0 +1,6 @@ +======== +``nobr`` +======== + +Do not break connection between nodes with boundary conditions. No input is associated with this macro. + diff --git a/docs/source/Macros/MacroNod2.rst b/docs/source/Macros/MacroNod2.rst new file mode 100644 index 00000000..48146c59 --- /dev/null +++ b/docs/source/Macros/MacroNod2.rst @@ -0,0 +1,84 @@ +======== +``nod2`` +======== + +Specify the node numbers for which detailed file output is desired and alternate nodes for terminal output. + +* Group 1 - M, M2 + +* Group 2 - MN (1), MN (2), . . . , MN (M) + +* Group 3 - X, Y, Z (as needed) + +* Group 4 - MNI(1), MNI(2), . . . , MNI(M2) + +* Group 5 - X, Y, Z (as needed) + ++----------------+---------+--------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+==============================================================+ +| M | integer | Number of nodes for which information will be printed | +| | | on the output file (iout). If M ≤ 0, pressure and | +| | | temperature will be written on the output file for | +| | | all nodes but no nodal parameter values will be | +| | | printed in the history plot files. Group 2 is omitted | +| | | if M ≤ 0. | | ++----------------+---------+--------------------------------------------------------------+ +| M2 | integer | Number of nodes for short list (terminal printout). | +| | | If M2 ≤ 0, Group 4 is omitted. | +| | | | +| | | | +| | | | ++----------------+---------+--------------------------------------------------------------+ +| MN | integer | M node numbers for which information will be printed | +| | | on the output file (iout). If a MN(I) < 0, then | +| | | coordinates are used to define that print-out node, | +| | | and the coordinate sets (X, Y, Z) for each MN(I) < 0 | +| | | are added after Group 2. | ++----------------+---------+--------------------------------------------------------------+ +| MNI | integer | M2 node numbers for which information will be printed | +| | | on the terminal (short list). This group exists only | +| | | if M2 ≠ 0. If MNI(I) < 0, then coordinates are used | +| | | to define the terminal output nodes, and the coordinate | +| | | sets (X, Y, Z) for each MNI(I) < 0 are added after Group 4. | ++----------------+---------+--------------------------------------------------------------+ +| X | real | Coordinates of node for which information will be printed. | +| | | One line for each MN or MNI < 0. The code finds the node | +| | | closest to the coordinate given. For 2-D problems set | +| | | Z = 0. No input if no MN or MNI < 0. | ++----------------+---------+--------------------------------------------------------------+ +| Y | real | | ++----------------+---------+--------------------------------------------------------------+ +| Z | real | | ++----------------+---------+--------------------------------------------------------------+ + +The following are examples of ``nod2``. In the first example (top), detailed output to the +output file is specified for two nodes, the nodes numbered 50 and 88, and one node is +specified for terminal output, node 50. In the second example (bottom), two nodes are +specified for detailed output, the nodes numbered 50 and 88, and one node is specified +for terminal output, the node closest to the coordinates X = 100. m, Y = 1000. m and +Z = 0. m. + ++------+----+ +| nod2 | | ++------+----+ +| 2 | 1 | ++------+----+ +| 50 | 88 | ++------+----+ +| 50 | | ++------+----+ + + ++------+-------+----+ +| nod2 | | | ++------+-------+----+ +| 2 | 1 | | ++------+-------+----+ +| 50 | 88 | | ++------+-------+----+ +| -88 | | | ++------+-------+----+ +| 100. | 1000. | 0. | ++------+-------+----+ + diff --git a/docs/source/Macros/MacroNod3.rst b/docs/source/Macros/MacroNod3.rst new file mode 100644 index 00000000..2be42c12 --- /dev/null +++ b/docs/source/Macros/MacroNod3.rst @@ -0,0 +1,72 @@ +======== +``nod3`` +======== + +Specify the node numbers for which detailed file output is desired and alternate nodes for terminal output. + +* Group 1 - M, M2, M3 + +* Group 2 - MN (1), MN (2), . . . , MN (M) + +* Group 3 - X, Y, Z (as needed) + +* Group 4 - MNI(1), MNI(2), . . . , MNI(M2) + +* Group 5 - X, Y, Z (as needed) + +* Group 6 - MNI(1), MNI(2), . . . , MNI(M3) + +* Group 7 - X, Y, Z (as needed) + ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+=====================================================================================================================================================================================================================================================================================+ +| M | integer | Number of nodes for which information will be printed on the output file (iout). If M ≤ 0, pressure and temperature will be written on the output file for all nodes but no nodal parameter values will be printed in the history plot files. Group 2 is omitted if M ≤ 0. | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| M2 | integer | Number of nodes for short list (terminal printout). If M2 ≤ 0, Group 4 is omitted. | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| M3 | | Number of nodes for short list (variable porosity model information printout). If M3 ≤ 0, Group 6 is omitted. | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MN | integer | M node numbers for which information will be printed on the output file (iout). If a MN(I) < 0, then coordinates are used to define that print-out node, and the coordinate sets (X, Y, Z) for each MN(I) < 0 are added after Group 2. | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MNI | integer | M2 node numbers for which information will be printed on the terminal (short list). This group exists only if M2 ≠ 0. If MNI(I) < 0, then coordinates are used to define the terminal output nodes, and the coordinate sets (X, Y, Z) for each MNI(I) < 0 are added after Group 4. | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X | real | Coordinates of node for which information will be printed. One line for each MN or MNI < 0. The code finds the node closest to the coordinate given. For 2-D problems set Z = 0. No input if no MN or MNI < 0. | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y | real | | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z | real | | ++----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following are examples of ``nod3``. In the first example (top), detailed output to +the output file is specified for two nodes, the nodes numbered 50 and 88, and one +node is specified for terminal output, node 50. In the second example (bottom), two +nodes are specified for detailed output, the nodes numbered 50 and 88, and one node +is specified for terminal output, the node closest to the coordinates X = 100. m, +Y = 1000. m and Z = 0. m. + + + ++------+----+ +| nod2 | | ++------+----+ +| 2 | 1 | ++------+----+ +| 50 | 88 | ++------+----+ +| 50 | | ++------+----+ + + ++------+-------+----+ +| nod2 | | | ++------+-------+----+ +| 2 | 1 | | ++------+-------+----+ +| 50 | 88 | | ++------+-------+----+ +| -88 | | | ++------+-------+----+ +| 100. | 1000. | 0. | ++------+-------+----+ + diff --git a/docs/source/Macros/MacroNode.rst b/docs/source/Macros/MacroNode.rst new file mode 100644 index 00000000..be302f0d --- /dev/null +++ b/docs/source/Macros/MacroNode.rst @@ -0,0 +1,77 @@ +======== +``node`` +======== + +Specify the node numbers for which detailed output is desired. In version 2.30 macro node has been modified to allow multiple instances of the macro to be used (results are cumulative) and to allow the definition of "output zones" which are used in conjunction with macro hist. Only a single input format / keyword can be used for each instance of the node macro. + +* Group 1 - M + +* Group 2 - MN (1), MN (2), . . . , MN (M) + +* Group 3 - X, Y, Z (as needed) + +or + +* Group 1 - KEYWORD + ++----------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=============+=============================================================================================================================================================================================================================================================================================================+ +| M | integer | Number of nodes for which information will be printed on the output (iout) and history plot (ishis, istrc) files. If M ≤ 0, pressure and temperature will be written on the output file for all nodes but no nodal parameter values will be printed in the history plot files. Group 2 is omitted if M ≤ 0. | ++----------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MN | integer | M node numbers for which information will be printed on the output file (iout). If MN(I) < 0, then coordinates are used to define the print-out node, and the coordinate sets (X, Y, Z) for each MN(I) < 0 are added after Group 2. | ++----------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X | real | Coordinates of node for which information will be printed. One line for each MN < 0. The code finds the node closest to the coordinate given. For 2-D problems set Z = 0. No input if MN >0. | ++----------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y | real | | ++----------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z | real | | ++----------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*5 | Keyword ‘block' to invoke node specification by JA, JB, JC format. Keyword ‘azone' to invoke output zone specification by JA, JB, JC format. This keyword allows a single node to be included in multiple output zones. | ++----------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following are examples of node. In the first example, 2 nodes are specified for output, +nodes 50 and 88. + +.. code:: + + node + 2 + 50 88 + + +In the second example, two nodes are specified for output, the node numbered +50 and the node closest to the coordinates X = 100. m, Y = 1000. m +and Z = 0. m. + +.. code:: + + node + 2 + 50 -88 + + 100. 1000. 0. + + +In the third example, output is specified for the block of +nodes 1, 11, 21, 31, 41, 51, 61, 71, 81, 91 and for those nodes defined by +zone 3 (see macro zone). + +.. code:: + + node + block + 1 100 10 + -3 0 0 + +In the fourth example, output is specified for +two zones, the first zone contains nodes 1, 11, 21, 31, 41, 51, 61, 71, 81, 91 +and the second zone is made up of the nodes defined for zone 3 +(previously specified using the zone macro). + +.. code:: + + node + azone + 1 100 10 + -3 0 0 \ No newline at end of file diff --git a/docs/source/Macros/MacroNrst.rst b/docs/source/Macros/MacroNrst.rst new file mode 100644 index 00000000..598979a1 --- /dev/null +++ b/docs/source/Macros/MacroNrst.rst @@ -0,0 +1,15 @@ +======== +``nrst`` +======== + +Stop NR iterations on variable changes (not equation tolerance). + +* Group 1 - VARD, STOPC + ++----------------+-----------+-------------------------------------+ +| Input Variable | Format | Description | ++================+===========+=====================================+ +| VARD | character | Variable to check. | ++----------------+-----------+-------------------------------------+ +| STOPC | real | Value to check on variable change. | ++----------------+-----------+-------------------------------------+ diff --git a/docs/source/Macros/MacroPara.rst b/docs/source/Macros/MacroPara.rst new file mode 100644 index 00000000..ac144e8a --- /dev/null +++ b/docs/source/Macros/MacroPara.rst @@ -0,0 +1,7 @@ +======== +``para`` +======== + +Macro para is for Parallel FEHM (isothermal only) + +Documentation Pending. \ No newline at end of file diff --git a/docs/source/Macros/MacroPerm.rst b/docs/source/Macros/MacroPerm.rst new file mode 100644 index 00000000..03db6e9e --- /dev/null +++ b/docs/source/Macros/MacroPerm.rst @@ -0,0 +1,21 @@ +======== +``perm`` +======== + +Assign permeabilities of the rock. Permeabilities represent average values of a volume associated with a node. Note that using rlp models 4 or 6 to describe relative permeabilities causes these values to be overwritten. Permeabilties may be entered as log values. + +.. note:: + + Required if macro ``hyco`` not used. + ++----------------+--------+---------+---------------------------------------+ +| Input Variable | Format | Default | Description | ++================+========+=========+=======================================+ +| PNXD | real | 1.e-30 | Permeability in the x-direction (m2). | ++----------------+--------+---------+---------------------------------------+ +| PNYD | real | 1.e-30 | Permeability in the y-direction (m2). | ++----------------+--------+---------+---------------------------------------+ +| PNZD | real | 1.e-30 | Permeability in the z-direction (m2). | ++----------------+--------+---------+---------------------------------------+ + + diff --git a/docs/source/Macros/MacroPest.rst b/docs/source/Macros/MacroPest.rst new file mode 100644 index 00000000..b9cf0cd4 --- /dev/null +++ b/docs/source/Macros/MacroPest.rst @@ -0,0 +1,31 @@ +======== +``pest`` +======== + +Output variable information for PEST parameter estimation routine. + +* Group 1 - MPEST + +* Group 2 - NPEST(I), I = 1, MPEST + +* Group 3 - X, Y, Z (as needed) + ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+========================================================================================================================================================================+ +| MPEST | integer | Number of nodes for PEST output. At present the code outputs only pressures (heads), saturations, and temperatures. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NPEST(I) | integer | Node numbers printed to the output file (fehmn.pest) with values of variables listed above. If NPEST(I) < 0 then the node numbers are determined from the coordinates. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X, Y, Z | real | Coordinates in grid if NPEST(I) < 0. The coordinates are used to find the node closest in distance to that point and that node is substituted for NPEST(I). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following is an example of pest. In this example pest output is specified at +5 nodes, nodes numbered 21, 23, 35, and 47, and the node closest to the coordinates +X=10. m, Y=15. m, Z=20. m. + +.. code:: + + pest + 21 23 35 47 -50 + 10. 15. 20. \ No newline at end of file diff --git a/docs/source/Macros/MacroPhys.rst b/docs/source/Macros/MacroPhys.rst new file mode 100644 index 00000000..3a77b754 --- /dev/null +++ b/docs/source/Macros/MacroPhys.rst @@ -0,0 +1,7 @@ +======== +``phys`` +======== + +Macro phys for Non-darcy well flow + +Documentation Pending \ No newline at end of file diff --git a/docs/source/Macros/MacroPpor.rst b/docs/source/Macros/MacroPpor.rst new file mode 100644 index 00000000..3b056781 --- /dev/null +++ b/docs/source/Macros/MacroPpor.rst @@ -0,0 +1,75 @@ +======== +``ppor`` +======== + +* Group 1 - IPOROS +* Group 2 - JA, JB, JC, POR1, POR2, POR3, POR4 + ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++===============================+=========+===============================================================================+ +| IPOROS | integer | | Model type: | +| | | | IPOROS = 1, aquifer compressibility model | +| | | | IPOROS = -1, specific storage model (use | +| | | | only for isothermal conditions) | +| | | | IPOROS = -2, Gangi model (not available for | +| | | | air-water-heat conditions) | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| **Model (1):** IPOROS = 1, | | | Aquifer compressibility | +| | | :math:`\phi = \phi_0 + \alpha_a(P-P_0)` where | +| | | | :math:`\alpha_a` = aquifer compressibility (MPa-1), | +| | | | :math:`\phi_0` = initial porosity, | +| | | | :math:`P_0` = initial pressure (MPa) | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| POR1 | real | Aquifer compressibility :math:`\alpha (MPa^{-1})` | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| **Model (-1):** IPOROS = -1, | | | Specific storage | +| | | :math:`S_s = \rho(\alpha_a + \phi \beta)` where | +| | | | :math:`\rho` = liquid density (kg/m3), | +| | | | :math:`g` = gravity, | +| | | | :math:`\alpha_a` = aquifer compressibility (MPa-1), | +| | | | :math:`\phi` = porosity, | +| | | | :math:`\beta` = liquid compressibility (MPa-1) | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| POR1 | real | Specific storage :math:`S_S (m^{-1})` | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| **Model (-2):** IPOROS = -2, | | | Gangi model with calculation of initial permeability | +| | | and porosity. | +| | | | :math:`\phi = \phi_0 \left[ 1 - \left(\frac{P_c}{P_x}\right)^m \right]` | +| | | and :math:`P_c = \sigma - P - \alpha E(T-T_0)` | +| | | | where | +| | | | :math:`\phi_0` = initial porosity, | +| | | | :math:`m` = Gangi exponent, | +| | | | :math:`P_x` = fitted parameter (MPa) | +| | | | | +| | | | Note: for the Gangi model the permeability is varied by | +| | | :math:`k = k_0 \left(\frac{\phi}{\phi_0}\right)^3` | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| POR1 | real | Exponent :math:`m` in Gangi bed of nails model. | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| POR2 | real | :math:`P_x` parameter (MPa) in Gangi equation. | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| POR3 | real | :math:`\sigma` in-situ stress (MPa). | ++-------------------------------+---------+-------------------------------------------------------------------------------+ +| POR4 | real | | :math:`(\sigma E)` The product of the coefficient | +| | | of thermal expansion for the rock and the Young's | +| | | modulus (MPa/C). | +| | | | | +| | | | Note: For isothermal simulations the thermal term does not apply. | ++-------------------------------+---------+-------------------------------------------------------------------------------+ + + +In the following example of ppor, aquifer compressibility is modeled. All nodes +in the model are assigned a compressibility of 1.e-2 MPa-1. + ++------+---+---+-------+ +| ppor | | | | ++------+---+---+-------+ +| 1 | | | | ++------+---+---+-------+ +| 1 | 0 | 0 | 1.e-2 | ++------+---+---+-------+ +| | | | | ++------+---+---+-------+ + + diff --git a/docs/source/Macros/MacroPres.rst b/docs/source/Macros/MacroPres.rst new file mode 100644 index 00000000..e1a47dac --- /dev/null +++ b/docs/source/Macros/MacroPres.rst @@ -0,0 +1,19 @@ +======== +``pres`` +======== + +The initial values defined in control statement **pres** supersede all others. Note that the term "saturated" refered to in IEOSD, is not the groundwater hydrology definition (volumetric fraction of pore void that is filled with water) used elsewhere in this document. Saturated here indicates that vapor and liquid phases exist simultaneously. The superheated region means that all pore space is filled with gas. + +.. note:: + + Required if macro ``init`` not used. + ++----------------+---------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+=========+=========+==========================================================================================================================================================================================================================================================+ +| PHRD | real | PEIN | Initial pressure (MPa). | ++----------------+---------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TIND | real | | Initial temperature (oC) if IEOSD = 1 or 3, Initial saturation if IEOSD = 2 | ++----------------+---------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IEOSD | integer | 1 | Thermodynamic region parameter. IEOSD = 1, the compressed liquid regionIEOSD = 2, the saturation regionIEOSD = 3, the superheated region.If IEOSD < 0 then the code uses ABS (IEOSD) and fixes the values of PHRD and TIND to the values provided above. | ++----------------+---------+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroPtrk.rst b/docs/source/Macros/MacroPtrk.rst new file mode 100644 index 00000000..85e039e1 --- /dev/null +++ b/docs/source/Macros/MacroPtrk.rst @@ -0,0 +1,440 @@ +======== +``ptrk`` +======== + +Particle tracking simulation input. Note that data for each numbered group must be input. The other input is optional. + +.. note:: + + Macro ``ptrk`` **cannot** be used with ``trac`` + +* Group 1 - NPART, RSEED + +Optional keyword "wtri" is input to indicate a water table rise calculation should be performed. It is followed by WATER_TABLE. For GoldSim the water table rise calculation is controlled by passing a new water table elevation to the code during the simulation and the keyword is not required. + + KEYWORD ‘wtri' + + WATER_TABLE + + KEYWORD ‘rip' + +Group 2 - DAYCS, DAYCF, DAYHF, DAYHS + +or if the optional keyword ‘rip' follows Group 1 + +Group 2 - DAYCS, DAYCF, DAYHF, DAYHS, RIPFEHM, CONFREAD, GMOL, P_FRACTION + +Group 3 - TRAK_TYPE, HALF_LIFE, POUT, PRNT_RST + + or when PRNT_RST ≥ 20, selected output parameters + +Group 3 - TRAK_TYPE, HALF_LIFE, POUT, PRNT_RST PRNT_VARNUM (V1 … V6) + +Optional keyword "tcurve" is input to indicate that transfer function curves should be input to model matrix diffusion. It is followed by NUMPARAMS and TFILENAME. + + KEYWORD + + NUMPARAMS, FFMAX + + TFILENAME + +Optional keyword "zptr" designates zones for breakthrough curves will be defined. It is followed by IPZONE and IDZONE. + + KEYWORD ‘zptr' + + IPZONE + + IDZONE(I) I = 1 to IPZONE + +Group 4 is used to define models in which identical sorption and transport parameters are assumed to apply. Group 4 data are read until a blank line is encountered. The model number ITRC is incremented by 1 each time a line is read. Model parameters defined in Group 4 are assigned to nodes or zones using Group 5. + +An optional, flexible input structure involving the assignment of transport parameters is implemented in the particle tracking input to allow multiple realization simulations to use different parameters for each realization. The user invokes this option using the keyword ‘file' before Group 4, followed by the name of the file that the transport parameters reside in. + + KEYWORD ‘file' + + PFILENAME + +The structure of the alternate parameter file is: + + +.. code:: + + NINPUTS + PTRPARAM(I) I=1 to NINPUTS + . + . + . + [a line of parameters is present for each realization] + + +The method for assigning a given value of PTRPARAM to a specific transport parameter, defined in Group 4, is discussed below. There are an arbitrary number of input lines each representing a given realization of parameter values. In a multiple-realization scenario, the code enters the input file for each realization, and for this input, reads down the corresponding number of lines to obtain the parameters for that realization. For example, for realization number 10, the code reads down to the 10th line of data (line 11 in the file) and uses those parameter values. + +Once these parameters are read in for a given realization, they must be assigned to specific transport parameters. This is done in the following way in Group 4. If any of the inputs other than TRANSFLAG are negative, the code takes the absolute value of the number and interprets it as the column number from which to assign the transport parameter. For example, if DIFFMFL = -5, then the diffusion coefficient is the fifth input number in the PTRPARAM array. In this way, any of the transport parameter inputs can be assigned through the alternate input file rather than the input line in ptrk. It should be noted that for the colloid diversity model, only K_REV need be negative to indicate values should be read from the parameter file, if K_REV is negative then all five parameters are read from the file, otherwise the equation parameters will be read from the ptrk macro. This is to accommodate the fact that the SLOPE_KF may have negative values. + + KEYWORD ‘afm' + + KEYWORD ‘dfree' + +Optional keyword "size" is input to indicate that the colloid size distribution model option is being used. It is followed by PART_SIZE and PROBSIZE. + + KEYWORD ‘size' + + PART_SIZE(I), PROBSIZE(I) - an arbitrary numbers of lines of input, terminated by a blank line. + +Optional keyword "dive" is input to indicate that the colloid diversity model is being used. It is followed by optional keyword "file" and the name of the file containing the CDF table or equation data (a description of the format for the file is provided with the second mptr example), the TPRPFLAG with optional SIMNUM, optional CDF equation parameters (when "file" is not used), and keyword "irreversible" or "reversible" with FLAG_LOG. + ++---------------------------+----+-----------------------------------+ +| | KEYWORD ‘dive’ | or | | KEYWORD 'dive' | +| | KEYWORD ‘file” | | | TPRPFLAG | +| | CDFFILENAME TPRPFLAG | | | or | +| | or | | | TPRPFLAG, SIMNUM | +| | TPRPFLAG, SIMNUM | | | K_REV, R_MIN,R_MAX, SLOPE_KF, | +| | KEYWORD ‘irreversible’ | | | CINT_KF | +| | or | | | KEYWORD ‘irreversible’ | +| | KEYWORD ‘reversible’, | | | or | +| | FLAG_LOG | | | KEYWORD ‘reversible’, FLAG_LOG | ++---------------------------+----+-----------------------------------+ + +Note that optional KEYWORDs "size" and "dive" are only used when colloid transport is enabled. + +There are eight possible forms of input for Group 4, which depend on whether or not the Active Fracture Model is implemented (optional KEYWORD "afm"), the free water diffusion coefficient is used (optional KEYWORD "dfree"), and colloid transport is enabled (TRANSFLAG < 0). If colloid transport is enabled, then ABS(TRANSFLAG) is used to determine the transport mechanism. + +If there is no colloid transport, TRANSFLAG > 0 + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), DIFFMAT(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC) + +or with ‘dfree"' + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), H2O_DIFF(ITRC), TORT_DIFF(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC) + +or when ‘afm' is implemented + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), DIFFMAT(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC), SRESIDUAL(ITRC), GAMMA_AFM(ITRC) + +or when ‘afm' is implemented with ‘dfree' + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), H2O_DIFF(ITRC), TORT_DIFF(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC), SRESIDUAL(ITRC), GAMMA_AFM(ITRC) + +Or when colloid transport is enabled, TRANSFLAG < 0 + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), DIFFMAT(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC), KCOLL(ITRC), RCOLL(ITRC), FCOLL(ITRC) + +or with ‘dfree' + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), H2O_DIFF(ITRC), TORT_DIFF(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC), KCOLL(ITRC), RCOLL(ITRC), FCOLL(ITRC) + +or when ‘afm' is implemented + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), DIFFMAT(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC), KCOLL(ITRC), RCOLL(ITRC), FCOLL(ITRC), SRESIDUAL(ITRC), GAMMA_AFM(ITRC) + +or when ‘afm' is implemented with ‘dfree' + +Group 4 - TRANSFLAG(ITRC), KD(ITRC), TCLX(ITRC), TCLY(ITRC), TCLZ(ITRC), H2O_DIFF(ITRC), TORT_DIFF(ITRC), RD_FRAC(ITRC), MATRIX_POR(ITRC), APERTURE(ITRC), KCOLL(ITRC), RCOLL(ITRC), FCOLL(ITRC), SRESIDUAL(ITRC), GAMMA_AFM(ITRC) + +Group 5 - JA, JB, JC, ITRC + +Group 6 - JA, JB, JC, PCNSK, T1SK, T2SK + +If POUT = 5, an additional Group is included at the end of the ptrk input + +Group 7 - JA, JB, JC, NODEPCONC (JA, JB, JC - defined on `See JA, JB, JC, PROP1, PROP2, . . . `_) + +The concentration output is written to the ".trc", ".out", and AVS concentration output files. The ".fin" file is used only when specified (a non-zero value is input for PRNT_RST). + ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+==============+========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| NPART | integer | Number of particles in the simulation. Note: the actual number may be slightly less than the number specified by the user because when the code divides the particles among the starting nodes as specified in Group 7, the code must input an integer number of particles at each node. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RSEED | integer | 6-digit integer random number seed. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RSEED_RELEASE | integer | 6-digit integer random number seed for particle release location calculation. If a value is not entered for RSEED_RELEASE it will be set equal to RSEED. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | Note that for GoldSim-FEHM coupled simulations the random seeds are controlled by GoldSIM and the values input in the ptrk macro are not used. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MAX1D | integer | Maximum 1-D array size for holding particle tracking information for all simulated species. The value of MAX1D depends on number of species, number of time steps, number of radionuclide release bins, number of species involved in ingrowth, and the length of the decay-ingrowth chain. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘wtri" indicatiing a water table rise calculation should be performed. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| WATER_TABLE | real | Water table elevation to be used for water table rise calculation. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | Note that for GoldSim-FEHM coupled simulations the water table rise calculations are controlled by GoldSIM and the values input in the ptrk macro are not used and may be omitted. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘rip' designating this is a GoldSim coupled simulation and the alternate Group 2 data format should be used. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DAYCS | real | Time which the particle tracking solution is enabled (days). | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DAYCF | real | Time which the particle tracking solution is disabled (days). | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DAYHF | real | Time which the flow solution is disabled (days). | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DAYHS | real | Time which the flow solution is enabled (days). | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RIPFEHM | integer | Parameter for assigning the particle starting locations based on radionuclide flux input from the computer code GoldSim. Used when GoldSim is the driver program and FEHM is dynamically linked to perform particle tracking transport. If RIPFEHM = 1 Use input from GoldSim to assign particle starting locations.If RIPFEHM ≠ 1 Assign starting locations in the normal way. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CONFREAD | real | Initial conversion factor for GoldSim-FEHM coupling (# of particles/mole). If CONFREAD=0, at each time step, the code selects a conversion factor based on the available memory and the remaining simulation time (end time - current time). The code then uses the selected conversion factor to calculate the number of particles to be injected at the current time step. If CONFREAD >0, the code uses the product of the CONFREAD and the input mass (in moles) to calculate the input number of particles at each time step. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GMOL | real | The molecular weight of the ith species. The code uses GMOL and CONFREAD to convert the mass from number of particles to grams in the final output. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| P_FRACTION | real | The decay-ingrowth particle release factor (percentage of the maximum number of particles released for the parent species). Values are in the range 0. - 1. If the value is omitted it will default to 0.5. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TRAK_TYPE | integer | Flag to denote the fluid phase of the particles:1 - liquid phase particles2 - vapor phase particles | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| HALF_LIFE | real | Half-life for irreversible first order decay reaction (days). Set HALF_LIFE = 0 for no decay. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| POUT | integer | | Flag to specify the concentration output:0 - Concentration output is a running total of the number of particles which have left each node, divided by the fluid or vapor mass at that node depending on trak_type. | +|   |   | | 1 - Concentrations computed as number of particles per unit total volume (rock and fluid) | +|   |   | | 2 - Concentrations computed as number of particles per unit fluid volume (the fluid is liquid for TRAK_TYPE = 1 and gas for TRAK_TYPE = 2). | +|   |   | | 3 - Concentrations computed as number of particles at a given node point. | +|   |   | | 5 - If this option is invoked, the particles injected at a particular node are assigned concentrations according to the input concentration defined in the NODEPCONC array (Group 7). The code then outputs the mixed mean concentration at each node in the model based on the assumption of steady state flow. | +|   |   | | 6 - Used for C-14 radioactive decay particle mixing model (only liquid tracer). For meaningful results the particles must all be injected simultaneously in a pulse (give a very short duration of injection starting at time 0). The code contains data describing the function f(t) vs. time where f(t) is given as: :math:`\int_0^t \exp(-kt)dt` where :math:`t` is the time the particle enters the system and :math:`k` is the radioactive decay constant for C-14. The output is the final concentration after all the particles have left the system. | +|   |   | | -1, -2, -3, or -6 - Concentrations computed as specified above for abs(pout). The ".trc" file contains breakthrough output for the first node specified in the node macro. | +|   |   | | -7 - Output is written every time a particle leaves a cell. This output is particle number, cell number that the particle is leaving, zone number of the cell, and time the particle leaves the cell. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PRNT_RST | integer | | Flag to specify whether particle information is written to the ".fin", ".ptrk_fin", or ".ptrk" files: | +|   |   | | If PRNT_RST = 0, Particle information is not written to the output files. | +|   |   | | If PRNT_RST = 1, 11, 21, 31, 41, All particle information necessary for a restart is written to the ".fin" file. | +|   |   | | If PRNT_RST = -1, -11, -21, -31, -41, Only particle positions and ages are written to the ".fin" file. | +|   |   | | If ABS (PRNT_RST) = 2, 12, 22, 32 or 42, Mass flux values are written to the ".fin" file followed by particle information. | +|   |   | | If 10 ≤ ABS(PRNT_RST) < 30, Particle exit locations and count are written to the ".ptrk_fin" file. | +|   |   | | If ABS(PRNT_RST) ≥ 20, Cumulative particle counts are written to the ".ptrk" file, for variables specified by PRNT_VARNUM (the default is to output all variables). | +|   |   | | If ABS(PRNT_RST) ≥ 40, Cumulative mass output from a FEHM/GoldSim coupled simulation will be written to file FEHM_GSM_Mass_balance.txt. Note that to track cumulative mass an additional array of size maxparticles*nspeci must be allocated so caution should be used when specifying this option to ensure sufficient system memory is available. | +|   |   | | When particle tracking data or mass fluxes are written to the ".fin" file, the arrays are written after all of the heat and mass simulation information. The mass fluxes can be read into the code in a subsequent ptrk or mptr simulation and the code can simulate transport on this steady state flow field (see macro rflo).The particle information written is sufficient to perform a restart of the particle tracking simulation and to post-process the data to compile statistics on the particle tracking run. | +|   |   | | However, for a large number of particles, this file can become quite large, so particle tracking information should only be written when necessary. Thus, 0 should be used for PRNT_RST unless restarting or post-processing to obtain particle statistics is required. Selecting the -1 option allows a subset of the full set of information needed for a restart (particle positions and ages) to be written. Restart runs that use this file as input will only be approximate, since the particle is assumed to have just entered its current cell. For restart runs, PRNT_RST = 1 is preferred, while PRNT_RST = -1 is appropriate for output of particle statistics for post-processing. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PRNT_VARNUM | integer | A list of integers specifying which particle counts should be output. For each value entered PRNT_VAR(PRNT_VARNUM) is set to .true. If no values are entered the default is to print all variables. 1 – Number of particles that have entered the system 2 – Number of particles currently in the system 3 – Number of particles that have left the system 4 – Number of particles that have decayed 5 – Number of particles that have been filtered 6 – Number of particles that left this time interval | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | Note: The data found in the ".ptrk" file was previously reported in the general output file. From version 2.25 of the code and forward that data will be reported in the optional, ".ptrk" file unless a coupled GoldSim-FEHM simulation is being run. In addition, the user has the option of selecting which statistics parameters are reported. The default is to report all statistics parameters. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "tcurve" indicating transfer function curve data should be input to model matrix diffusion. If the keyword is found then NUMPARAMS and FILENAME are entered, otherwise they are omitted. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMPARAMS | integer | Number of parameters that define the transfer function curves being used. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TFILENAME | character | Name of input file containing the transfer function curve data. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘zptr' designating zones for breakthrough curves will be defined. If no keyword is input, IPZONE and IDZONE are also omitted. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPZONE | integer | Number of zones for which breakthrough curves are to be output | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDZONE | integer | A list of zones for which particle breakthrough data are required.The code outputs the number of particles that leave the system at each zone IDZONE at the current time step. This information is written to the ".out" file at each heat and mass transfer time step. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘file' designating alternate transport parameter file input for multiple simulation realizations. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PFILENAME | character*80 | Name of file from which to read transport parameters. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NINPUTS | integer | Number of inputs in each row of data in the alternate transport parameter input file (PFILENAME). | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PTRPARAM | real | Array of transport parameter values in the alternate transport parameter input file (PFILENAME). The parameters that may be input are those entered for Group 4. Only those parameters being changed at each realization need be entered. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘afm' designating the Active Fracture Model input for determining fracture spacing should be used. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*5 | Optional keyword ‘dfree' designates that the free water diffusion coefficient and tortuosity will be input instead of the molecular diffusion coefficient. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘size' designating that the colloid size distribution model option is being used (combined with the interface filtration option in the itfc macro). If the keyword is not input, PART_SIZE and PROBSIZE are also omitted. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PART_SIZE | real | Colloid particle size for this entry of the particle size distribution table (paired with a value of PROBSIZE). An arbitrary number of entries can be input, terminated with a blank line. The code assigns each particle a size based on this distribution of particle sizes, and decides if particles are irreversibly filtered based on the pore size distribution assigned in the itfc macro. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PROBSIZE | real | Colloid cumulative probability for the distribution of sizes (paired with a value of PART_SIZE). See description of PART_SIZE above for details. The final entry of the table must have PROBSIZE = 1, since the distribution is assumed to be normalized to unity. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword "dive" signifying that the specie being specified is either a colloid species using the colloid diversity model or a non-colloid daughter species of a colloid species. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘file' designating the cumulative probability distribution function (CDF) retardation parameters for the colloid diversity model should be read from an external file. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CDF_FILENAME | character*80 | | Name of the file containing the cumulative probability distribution function (CDF) (entered if optional keyword ‘file' follows keyword ‘dive'). | +|   |   | | If TPRPFLAG = 11 or 12, Table option | +|   |   | | If TPRPFLAG = 13 or 14, Equation option | +|   |   | | The following equations are used for :math:`R_{min} \le R \le R_{max}`, :math:`R = 1 + K_f / K_{rev}`, :math:`\log_{10}(CDF) = b + m \cdot \log_{10}(K_f)` | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TPRP_FLAG | integer | | Values of TPRPFLAG between 11 and 14 signify that the colloid diversity model with equal weight sampling will be used: | +|   |   | | TPRPFLAG = 11: CDF vs retardation factor specified in a table | +|   |   | | TPRPFLAG = 12: similar to 11, but the SQRT(CDF) is used instead of CDF for sampling | +|   |   | | TPRPFLAG = 13: CDF vs :math:`K_f` (Attachment rate constant) specified as a straight line equation in the log-log space | +|   |   | | TPRPFLAG = 14: similar to 13, but the SQRT(CDF) is used instead of CDF for sampling | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SIMNUM | integer | Simulation number, used for selecting the table/equation from the colloid diversity file. For GoldSim-FEHM coupled simulations or FEHM runs using the ‘msim' option this parameter is passed to the code. For non-coupled simulations it is an optional input. (Default value = 1) | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| K_REV | real | Detachment rate constant for reversible filtration of irreversible colloids. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| R_MIN | real | Minimum value of the retardation factor for reversible filtration of irreversible colloids. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| R_MAX | real | Maximum value of the retardation factor for reversible filtration of irreversible colloids | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SLOPE_KF | real | Value of the slope (:math:`m`) in the log-log space for the equation: :math:`\log_{10}(CDF) = b + m \cdot \log_{10}(K_f)` | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CINT_KF | real | Value of the intercept (//b//) in the log-log space for the above equation | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Keyword specifying whether the colloid species is ‘irreversible' or ‘reversible'. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FLAG_LOG | integer | For reversible colloids an average retardation factor is used: If FLAG_LOG = 0: a linear average of the distribution is usedIf FLAG_LOG = 1: a log-linear average of the distribution is used | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TRANSFLAG | integer | Flag to specify which transport mechanisms apply [abs(TRANSFLAG)]:1 - advection only (no dispersion or matrix diffusion) | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | 2 - advection and dispersion (no matrix diffusion) | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | 3 - advection and matrix diffusion, infinite fracture spacing solution (no dispersion) | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | 4 - advection, dispersion, and matrix diffusion, infinite fracture spacing solution | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | 5 - advection and matrix diffusion, finite fracture spacing solution (no dispersion) | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | 6 - advection, dispersion, and matrix diffusion, finite fracture spacing solution | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | 8 - use the the transfer function approach with 3 dimensionless parameters and type curves for handling fracture-matrix interactions. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | For TRANSFLAG < 0, transport simulations include colloids. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | For equivalent continuum solutions, the fracture spacing in the finite spacing model is determined using :math:`SPACING = APERTURE / POROSITY`. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | For dual permeability models, the fracture spacing input parameter APUV1 in the dpdp macro is used as the half-spacing between fractures. If the Active Fracture Model (see keyword ‘afm') is used, APUV1 is the geometric fracture half-spacing, and the additional terms SRESIDUAL and GAMMA_AFM are used to determine the spacing between active fractures (see below). | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KD | real | Sorption coefficient (linear, reversible, equilibrium sorption). Units are kg-fluid / kg-rock (these units are equivalent to the conventional units of cc/g when the carrier fluid is water at standard conditions). This value applies to the medium as a whole when matrix diffusion is turned off, whereas for simulations invoking matrix diffusion, the value applies to the rock matrix. For the latter case, sorption in the flowing system (fractures) is modeled using the RD_FRAC variable. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TCLX | real | Dispersivity in the x-direction (m). The input value is ignored when dispersion is turned off. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TCLY | real | Dispersivity in the y-direction (m). The input value is ignored when dispersion is turned off. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TCLZ | real | Dispersivity in the z-direction (m). The input value is ignored when dispersion is turned off. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DIFFMAT | real | Molecular diffusion coefficient in the rock matrix (m2/s). The input value is ignored unless matrix diffusion is invoked. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RD_FRAC | real | Retardation factor within the primary porosity (fractures) for a matrix diffusion particle tracking simulation (use 1 for no sorption on fracture faces). The input value is ignored unless matrix diffusion is invoked. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MATRIX_POR | real | Porosity of the rock matrix. Used to simulate diffusion and sorption in the rock matrix when matrix diffusion is invoked, otherwise the input value of MATRIX_POR is ignored. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| APERTURE | real | Mean fracture aperture (m). The input value is ignored when matrix diffusion is turned off. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KCOLL | real | Colloid distribution parameter, the ratio of contaminant mass residing on colloids to the mass present in aqueous form. It is used to compute an effective aperture via the following: :math:`APWID = APERRTURE \cdot (1 + KCOLL)`  | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RCOLL | real | Colloid retardation factor. Used, in conjunction with kcoll, to adjust colloid retardation in fractures using the following formula: :math:`FRACRD = \frac{RD_FRAC + KCOLL \cdot ROLL}{1 + KCOLL}` | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FCOLL | real | Colloid filtration parameter. Used to compute the probability a colloid will be irreversibly filtered along the path between two nodes using the following: :math:`PROBFILT = 1 - \exp(DISTANCE / FCOLL)` where :math:`DISTANCE` is the length of the path between nodes. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SRESIDUAL | real | Residual saturation in the Active Fracture Model used for determining the spacing between active fractures. This parameter is only needed when the keyword ‘afm' is included, in which case the input must be entered. However, the model is only used in dual permeability simulations at locations where the finite spacing matrix diffusion model is invoked [abs(TRANSFLAG) = 5 or 6]. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GAMMA_AFM | real | Exponent in the Active Fracture Model used for determining the spacing between active fractures. See comments for SRESIDUAL above. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ITRC | integer | Model number for parameters defined in group 4. Default is 1. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PCNSK | real | | Particle injection parameter assigned for nodes defined by JA, JB, and JC. When multiple lines of input are given for Group 6, all PCNSK values must have the same sign (i.e. the two options, described below, cannot be invoked in the same simulation). | +|   |   | | PCNSK > 0 - particles are injected at each node in proportion to the source mass flow rate at the node. When multiple lines of input are given for Group 6, PCNSK is proportional to the particle injection concentration. This boundary condition is equivalent to injecting a solute of a given concentration into the system. Note: the source flow rates used to assign the number and timing of particle injections are those at the beginning of the particle tracking simulation (time DAYCS). Transient changes in this source flow rate during the particle tracking simulation do not change the input of particles to the system. | +|   |   | | PCNSK < 0 - particles are introduced at the node(s), regardless of whether there is a fluid source at the node. When multiple lines of input are given for Group 6, abs(PCNSK) is proportional to the number of particles introduced at the node(s).Default is 0 for all unassigned nodes, meaning that no particles are injected at that node. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| T1SK | real | Time (days) when particle injection begins. Default is 0. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| T2SK | real | Time (days) when particle injection ends. Default is 0. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NODEPCONC | real | Input particle concentrations. The concentration associated with a particle entering the system at a specified node. | ++----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +The following is an example of ptrk: + +In this example, 100,000 nondecaying, liquid-borne particles are introduced as a +sharp pulse (from time 10 to 10.0001 days) with the injection fluid in zone 3 +(an injection well defined in the zone macro preceding ptrk). The particle +tracking simulation starts as the heat and mass transfer simulation is turned +off at day 10, after having established a fluid flow steady state. Two models +are defined for assigning transport properties of the particles. All nodes are +assigned to model 1, after which model 2 properties are assigned for zone 2. +A combined advection, dispersion, and matrix diffusion model is used for all nodes. +However, sorption in the matrix occurs only for model 2 (which is zone 2 in this +simulation), and the matrix transport properties (porosity, fracture spacing, +diffusion coefficient) differ for this model as well. + ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| ptrk | | | | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| 100000 | 122945 | | | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| 10. | 20. | 10. | 20. | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| 1 | 0 | 20 | | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| 4 | 0. | 2. | 2. | 2. | 5.e-11 | 1. | 0.1 | 0.333 | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| 4 | 3. | 2. | 2. | 2. | 1.e-10 | 1. | 0.28 | 2. | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| | | | | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| 1 | 0 | 0 | 1 | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| -2 | 0 | 0 | 2 | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| | | | | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| -3 | 0 | 0 | 1. | 10. | 10.0001 | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ +| | | | | | | | | | ++--------+--------+-----+-----+-----+---------+----+------+-------+ + + +In the second example, transfer function data is used along with the active +fracture and colloid diversity models. Particle statistics data for the cumulative +number of particles that have left the sytem and the number of particles that +left during the current timestep are output. + ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| ptrk | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 100000 | 244562 | 244562 | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 0. | 1.e20 | 0. | 1.e20 | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 1 | 0.230 | 3 | 6 | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| tcurve | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 3 | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| ../colloid_cell/input/uz_tfcurves_nn_3960.in | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| afm | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| diversity | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| file | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| ../colloid_cell/input/rcoll_equation.dat | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 13 5 | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| irreversible | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| -2 | 0.0 | 1.e-03 | 1.e-03 | 1.00e-30 | 1.0e+00 | 0.2 | 1.e-03 | 1e+20 | 1 | 1.00 | 0.01 | 0.6 | //layer 1 | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| -2 | 0.0 | 1.e-03 | 1.e-03 | 1.00e-03 | 1.0e+00 | 0.2 | 0.00e+00 | 1e+20 | 1 | 1.00 | 0.00 | 0.0 | //layer 2 | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 1 | 10 | 1 | 1 | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 11 | 20 | 1 | 2 | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| 1 | 1 | 1 | -1. 0. | 0.01 | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ +| | | | | | | | | | | | | | | ++----------------------------------------------+--------+--------+--------+----------+---------+-----+----------+-------+---+------+------+-----+-----------+ + +With the file ``rcoll_equation.dat`` as: + ++--------------------------------------------+ +| test file for 3Dmptr equal weight sampling | ++----+-----+-----+---------+---------+-------+ +| 1 | 1. | 1. | 1. | 0. | 0. | ++----+-----+-----+---------+---------+-------+ +| 3 | 1. | 5. | 5. | 0. | 0. | ++----+-----+-----+---------+---------+-------+ +| 4 | 1. | 5. | 5. | 0. | 0. | ++----+-----+-----+---------+---------+-------+ +| 5 | 1. | 1. | 9. | 1. | -0.9 | ++----+-----+-----+---------+---------+-------+ +| 6 | 1. | 5. | 85. | 1.16667 | -2.25 | ++----+-----+-----+---------+---------+-------+ +| 8 | 1. | 1. | 100000 | 1. | -5. | ++----+-----+-----+---------+---------+-------+ +| | | | | | | ++----+-----+-----+---------+---------+-------+ +  + diff --git a/docs/source/Macros/MacroRenu.rst b/docs/source/Macros/MacroRenu.rst new file mode 100644 index 00000000..5759d296 --- /dev/null +++ b/docs/source/Macros/MacroRenu.rst @@ -0,0 +1,13 @@ +======== +``renu`` +======== + +Re-numbers the nodes. This option should only be used by someone familiar with the linear equation solver routines and grid renumbering techniques. + +* `Group 1 - IIRB(I) I = 1, NEQ `_ + ++----------------+---------+-------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+===================================================================+ +| IIRB | integer | New node number for given node. A value is entered for each node. | ++----------------+---------+-------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroRest.rst b/docs/source/Macros/MacroRest.rst new file mode 100644 index 00000000..ce7de926 --- /dev/null +++ b/docs/source/Macros/MacroRest.rst @@ -0,0 +1,97 @@ +======== +``rest`` +======== + +The 'restart' macro controls the content and format of the initial condition file (filename appears after keyword rsti: in the control file) and the final condition file (filename appears after keyword rsto: in the control file). + +* Group 1 - CHDUM + ++----------------+--------------+--------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+==============+============================================================================================+ +| CHDUM | character*80 | Keyword(s). Keywords are entered one per line and terminated with ‘end' or a blank line. | ++----------------+--------------+--------------------------------------------------------------------------------------------+ + +Keywords are entered one per line and terminated with ‘end' or a blank line. + +Two keywords 'read' and 'write' are followed by a list of variables; all others stand alone. + +Valid keywords (case insensitive) are: + +* Keywords that control format: + + - ‘ascii' - both read and write restart files are ascii (default) + + - ‘binary' - both read and write restart files are unformatted + + - ‘rbinary' - unformatted read restart file + + - ‘wbinary' - unformatted write restart file + + - 'old' use old format (input / output format and content is hard-wired) + + - 'new' use new format (input / output format and content is controlled by restart macro keywords) + +* Keywords that control flux output: + + - 'noflux' - do not output flux + + - 'flux' - output liquid and vapor flux + + - 'lflux' - output liquid flux + + - 'vflux' - output vapor flux + +* Keywords that control the list of variables to read / write + (default is to read all variables in restart file; write + all variables in current simulation) + + - 'read' (followed by list of variables, on same line) + + - 'write' (followed by list of variables, on same line) + +Possible read/write variables: + +* none + +* all + +* temp + +* pres + +* poro + +* trac + +* ptrk + +* gasp + +* pini + +* saturation + +* co2 + +* mass + +* disp (disx, disy, disz) + +* strs or stre or strs (strx, stry, strz, stxy, stxz, styz) + + +The following is an example of rest. In this example restart data will be written +to an unformatted file and liquid flux will be output. If a read restart file +is used it will be in ascii format and if liquid flux data is present in the +file it will be read. + ++---------+ +| rest | ++---------+ +| wbinary | ++---------+ +| lflux | ++---------+ +| | ++---------+ diff --git a/docs/source/Macros/MacroRflo.rst b/docs/source/Macros/MacroRflo.rst new file mode 100644 index 00000000..44807d68 --- /dev/null +++ b/docs/source/Macros/MacroRflo.rst @@ -0,0 +1,12 @@ +======== +``rflo`` +======== + +No input is associated with this macro. This option is available for single continuum or double porosity/double permeability (dpdp) models only and is used in conjunction with transport models (trac, ptrk, mptr, or sptr macros). When this option is selected flow calculations are not done and it is assumed the flow field is at steady-state. + +When invoked, the code will read mass flux values (kg/s) from the ".ini" file. Mass flux values are read for each connection of each node, starting with node 1. The mass flux values include sources and sinks for each node. Flow into a node is negative, and flow out of a node is positive. The mass flux values for the fracture domain are read first followed by the mass flux values in the matrix domain. The mass flux between fracture and matrix elements are read last. Flow from the fracture to the matrix is denoted as positive. + +Mass flux values can be generated during a previous FEHM simulation (see rest macro) or may be generated by an alternate flow code (see Ho, 1997). + +In version 2.30 an additional option was added to the rflo macro. If the macro is entered as "rflor" the flux values will be negated and a reversed flow field will be used for the transport simulation. + diff --git a/docs/source/Macros/MacroRflx.rst b/docs/source/Macros/MacroRflx.rst new file mode 100644 index 00000000..e7364c18 --- /dev/null +++ b/docs/source/Macros/MacroRflx.rst @@ -0,0 +1,7 @@ +===================== +``rlfx`` (Deprecated) +===================== + +Macro rlfx - Radiation source term + +No longer used, behavior undefined. \ No newline at end of file diff --git a/docs/source/Macros/MacroRich.rst b/docs/source/Macros/MacroRich.rst new file mode 100644 index 00000000..e69dac4d --- /dev/null +++ b/docs/source/Macros/MacroRich.rst @@ -0,0 +1,32 @@ +======== +``rich`` +======== + +Invokes Richard's equation solution for unsaturated-saturated flow. A single +phase approach that neglects air phase flow and assumes the movement of water +is independent of air flow and pressure. + +Uses variable switching (Pressure, Saturation). + +* Group 1 - STRD_RICH, TOL_PHASE, PCHNG, SCHNG + ++----------------+--------+---------------------------------------------+ +| Input Variable | Format | Description | ++================+========+=============================================+ +| STRD_RICH | real | Newton-raphson relaxation factor | ++----------------+--------+---------------------------------------------+ +| TOL_PHASE | real | Tolerance for full saturation | ++----------------+--------+---------------------------------------------+ +| PCHNG | real | Pressure adjustment after variable switch | ++----------------+--------+---------------------------------------------+ +| SCHNG | real | Saturation adjustment after variable switch | ++----------------+--------+---------------------------------------------+ + +The following is an example of rich. + ++------+-------+-------+-------+ +| rich | | | | ++------+-------+-------+-------+ +| 0.95 | 1.e-5 | 1.e-3 | 1.e-3 | ++------+-------+-------+-------+ + diff --git a/docs/source/Macros/MacroRive.rst b/docs/source/Macros/MacroRive.rst new file mode 100644 index 00000000..67e5443f --- /dev/null +++ b/docs/source/Macros/MacroRive.rst @@ -0,0 +1,47 @@ +==================== +``rive`` or ``well`` +==================== + +River or implicit well package. + +* Group 1 - KEYWORD + + KEYWORD "wellmodel" + + NRIVER, IRIVER + + If IRIVER = 1 + + INRIVERF, ISRIVERF, IFRIVERF,IWSP + + KEYWORD "*end macro*" (required) + +The input is terminated with keyword "*end rive*", "*endrive*", "*end well*" or +"*endwell*", where the macro name should match the input macro name that was used. + ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++=========================+===========+======================================================================================+ +| KEYWORD | character | | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| KEYWORD "*wellmodel*" | | | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| NRIVER | integer | Number of models defined for this call. | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| IRIVER | integer | | Type of surface/well flow | +| | | | IRIVER = 0 no routing, ponding, groundwater connection | +| | | | IRIVER = 1 simple fluid routing, no groundwater connection | +| | | | IRIVER = 2 simple stream definition, no groundwater connection | +| | | | IRIVER = 3 simple stream definition, with groundwater connection | +| | | | IRIVER = 4 simple stream definition, with groundwater connection (with ponding) | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| INRIVERF | | Section number (id) of ith section. | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| ISRIVERF | | Number of layers for the ith section. | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| IFRIVERF | | Number of coordinate points in the ith section. | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| IWSP | | | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ +| KEYWORD "*endwell*" | | | ++-------------------------+-----------+--------------------------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroRlp.rst b/docs/source/Macros/MacroRlp.rst new file mode 100644 index 00000000..203113c1 --- /dev/null +++ b/docs/source/Macros/MacroRlp.rst @@ -0,0 +1,242 @@ +======= +``rlp`` +======= + +Relative permeability and capillary pressure model. Several models are available. + +* Group 1 - IRLP(i), RP1, RP2, RP3, RP4, RP5, RP6, RP7, RP8, RP9, RP10, RP11, RP12, RP13, RP14, RP15, RP16 (number of parameters entered depends on model selected) + +* Group 2 - JA, JB, JC, I + +Only those parameters defined for a given model need to be input. Group 1 is +ended when a blank line is encountered. The parameter i is incremented each +time a Group 1 line is read. Group 2 lines will refer to this parameter. +For model numbers 4, 6, and 7 (the combined van Genuchten model), the +permeability is isotropic and overwrites the input from macro ``perm``. +Macro fper can be used with models 4, 6, and 7 to introduce anisotropy. + +  + ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++=======================================================================+=========+===================================================================================+ +| IRLP(i) | integer | Relative permeability model type. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model -1:** IRLP(i) = -1, constant relative permeability, linear | +| capillary pressure (4 parameters required). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP1 | real | Liquid relative permeability (:math:`m^2`). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP2 | real | Vapor relative permeability (:math:`m^2`). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP3 | real | Capillary pressure at zero saturation (:math:`MPa`). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP4 | real | Saturation at which capillary pressure goes to zero. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 1:** IRLP(i) = 1, linear relative permeability, linear | +| capillary pressure (6 parameters required). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP1 | real | Residual liquid saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP2 | real | Residual vapor saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP3 | real | Maximum liquid saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP4 | real | Maximum vapor saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP5 | real | Capillary pressure at zero saturation (MPa). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP6 | real | Saturation at which capillary pressure goes to zero. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 2**: IRLP(i) = 2, Corey relative permeability, linear | +| capillary pressure (4 parameters required). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP1 | real | Residual liquid saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP2 | real | Residual vapor saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP3 | real | Capillary pressure at zero saturation (MPa). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP4 | real | Saturation at which capillary pressure goes to zero. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 3**: IRLP(i) = 3, van Genuchten relative permeability, van | +| Genuchten capillary pressure (6 parameters required). In this | +| model permeabilities are represented as a function of capillary | +| pressure [rlp(h)]. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP1 | real | Residual liquid saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP2 | real | Maximum liquid saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP3 | real | Inverse of air entry head, :math:`\alpha_G` (1/m) [note | +|   |   | some data is given in (1/Pa) convert using pressure = ρgΔh]. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP4 | real | Power n in van Genuchten formula. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP5 | real | Low saturation fitting parameter, multiple of | +|   |   | cutoff capillary pressure assigned as maximum | +|   |   | capillary pressure. If RP5 < 0 then a linear | +|   |   | fit from the cutoff saturation (RP6) is used. | +|   |   | The slope of the cutoff saturation is used | +|   |   | to extend the function to saturation = 0. | +|   |   | If RP5 = 0, a cubic fit is used. The slope | +|   |   | at the cutoff saturation is matched and the | +|   |   | conditions :math:`\frac{\partial}{\partial S}Pcap = 0` | +|   |   | and :math:`\frac{\partial^2}{\partial S}Pcap = 0` | +|   |   | are forced at :math:`S = 0`. | +|   |   | If RP5 > 0, a multiple of the | +|   |   | value of the capillary pressure at | +|   |   | the cutoff saturation, :math:`RP5\cdot Pcap(S_{cutoff}` | +|   |   | is forced at :math:`S = 0`. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP6 | real | Cutoff saturation used in fits described for RP5, | +|   |   | must be greater than RP1. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 4**: IRLP(i) = 4, van Genuchten relative permeability, van | +| Genuchten capillary pressure, effective continuum (15 parameters | +| required). In this model permeabilities are represented as a | +| function of capillary pressure [rlp(h)]. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP1 | real | Residual liquid saturation, matrix rock material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP2 | real | Maximum liquid saturation, matrix rock material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP3 | real | Inverse of air entry head, :math:`\alpha_G` (1/m) [note | +|   |   | some data is given in (1/Pa) convert using | +|   |   | pressure = :math:`\rho g \Delta h`], matrix rock material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP4 | real | Power n in van Genuchten formula, matrix rock material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP5 | real | Low saturation fitting parameter, matrix rock | +|   |   | material, multiple of cutoff capillary pressure | +|   |   | assigned as maximum capillary pressure. If | +|   |   | RP5 < 0 then a linear fit from the cutoff | +|   |   | saturation (RP6) is used. The slope of the | +|   |   | cutoff saturation is used to extend the | +|   |   | function to saturation = 0. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +|   |   | If RP5 = 0, a cubic fit is used. The slope | +|   |   | at the cutoff saturation is matched and the | +|   |   | conditions :math:`\frac{\partial}{\partial S}Pcap = 0` | +|   |   | and :math:`\frac{\partial^2}{\partial S}Pcap = 0` are | +|   |   | forced at :math:`S = 0`. If RP5 > 0, a multiple | +|   |   | of the value of the capillary pressure at the | +|   |   | cutoff saturation, :math:`RP5\cdot Pcap(S_{cutoff})` | +|   |   | is forced at :math:`S = 0`. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP6 | real | Cutoff saturation used in fits described for RP5, | +|   |   | must be greater than RP1. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP7 | real | Residual liquid saturation, fracture material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP8 | real | Maximum liquid saturation, fracture material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP9 | real | Inverse of air entry pressure, :math:`\alpha_G` (1/m) [note | +|   |   | some data is given in(1/Pa) convert using | +|   |   | pressure = :math:`\rho g \Delta h`], fracture material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP10 | real | Power n in van Genuchten formula, fracture material. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP11 | real | Low saturation fitting parameter, fracture material, | +|   |   | multiple of cutoff capillary pressure assigned as | +|   |   | maximum capillary pressure. If RP11 < 0 then a linear | +|   |   | fit from the cutoff saturation (RP12) is used. The | +|   |   | slope of the cutoff saturation is used to extend | +|   |   | the function to saturation = 0.If RP11 = 0, a cubic | +|   |   | fit is used. The slope at the cutoff saturation is | +|   |   | matched and the conditions | +|   |   | :math:`\frac{\partial}{\partial S}Pcap = 0` | +|   |   | and :math:`\frac{\partial^2}{\partial S}Pcap = 0` | +|   |   | are forced at :math:`S = 0`. If RP11 > 0, | +|   |   | a multiple of the value of the capillary | +|   |   | pressure at the cutoff saturation, | +|   |   | :math:`RP11\cdot Pcap(S_{cutoff})` is forced at | +|   |   | :math:`S = 0`. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP12 | real | Cutoff saturation used in fits described for RP11, | +|   |   | must be greater than RP7. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP13 | real | Fracture permeability (:math:`m^2`). This is the permeability | +|   |   | of the individual fractures. The bulk permeability | +|   |   | of the fracture continuum is :math:`RP13\times RP15`. | +|   |   | Can be made anisotropic with macro FPER. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP14 | real | Matrix rock saturated permeability (:math:`m^2`). Can be made | +|   |   | anisotropic with macro FPER. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP15 | real | Fracture volume fraction. Is equal to the | +|   |   | fracture aperture divided by the fracture | +|   |   | spacing (with same units). Sometimes called fracture porosity. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 5**: IRLP(i) = 5, van Genuchten relative permeability, van | +| Genuchten capillary pressure (6 parameters required). This model | +| and its input are the same as for Model 3 except that | +| permeabilities are represented as a function of saturation | +| [rlp(S)] rather than capillary pressure. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 6**: IRLP(i) = 6, van Genuchten relative permeability, van | +| Genuchten capillary pressure, effective continuum (15 parameters | +| required). This model and its input are the same as for Model 4 | +| except that permeabilities are represented as a function of | +| saturation [rlp(S)] rather than capillary pressure. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 7**: IRLP(i) = 7, van Genuchten relative permeability, van | +| Genuchten capillary pressure, effective continuum with special | +| fracture interaction term (16 parameters required). This model | +| and its input are the same as for Model 6 except that the an | +| additional term is included which represents the fracture-matrix | +| interaction. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP16 | real | Fracture-matrix interaction term. If RP16 ≤ 0, | +|   |   | then an additional multiplying term equal to the | +|   |   | relative permeability is applied to the | +|   |   | fracture-matrix interaction term for dual | +|   |   | permeability problems. If RP16 > 0, then an | +|   |   | additional multiplying term equal to :math:`sl**RP16` | +|   |   | and :math:`(1.-sl)**RP16` is applied to the | +|   |   | fracture-matrix interaction terms for the | +|   |   | liquid and vapor phases, respectively, for dual | +|   |   | permeability problems. Here, :math:`sl` | +|   |   | is the value of saturation at the given node. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| **Model 10**: IRLP(i) = 10, linear relative permeability with minimum | +| relative permeability values, linear capillary pressure (8 | +| parameters required). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP1 | real | Residual liquid saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP2 | real | Residual vapor saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP3 | real | Maximum liquid saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP4 | real | Maximum vapor saturation. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP5 | real | Minimum liquid permeability (:math:`m^2`). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP6 | real | Minimum vapor permeability (:math:`m^2`). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP7 | real | Capillary pressure at zero saturation (:math:`MPa`). | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ +| RP8 | real | Saturation at which capillary pressure goes to zero. | ++-----------------------------------------------------------------------+---------+-----------------------------------------------------------------------------------+ + + +The following is an example of ``rlp``. +In this example, Corey type relative permeability is specified, +with residual liquid saturation of 0.3, residual vapor saturation of 0.1, +a base capillary pressure of 2 MPa, and capillary pressure goes to zero at a +saturation of 1. This model is assigned to nodes numbered 1 through 140. + + ++-----+-----+-----+-----+----+ +| rlp | | | | | ++-----+-----+-----+-----+----+ +| 2 | 0.3 | 0.1 | 2.0 | 1. | ++-----+-----+-----+-----+----+ +| | | | | | ++-----+-----+-----+-----+----+ +| 1 | 140 | 1 | 1 | | ++-----+-----+-----+-----+----+ +| | | | | | ++-----+-----+-----+-----+----+ + diff --git a/docs/source/Macros/MacroRlpm.rst b/docs/source/Macros/MacroRlpm.rst new file mode 100644 index 00000000..0aa549de --- /dev/null +++ b/docs/source/Macros/MacroRlpm.rst @@ -0,0 +1,383 @@ +======== +``rlpm`` +======== + +Relative permeability and capillary pressure model. Several models are available. + +Group 1 - KEYWORD "group", GROUP_NUMBER + +* The Group 1 KEYWORD "group", which starts each model sequence. + +Group 2 - KEYWORD "rlp" PHASE, MODEL_TYPE, RLP_PARAM(i), i = 1, NUMP + +* At minimum, one entry is made for relative permeability of the wetting phase in the model. If an entry for a non-wetting phase is not present, Rnw will be calculated using the same model and parameters as Rw. + +Group 3 (optional) - KEYWORD "cap", COUPLE, MODEL_TYPE, CAP_PARAM(i), i = 1, NUMP + +* One entry is made for each phase-couple in the model. If absent, Cp=0 + +NUMP is the number of parameters needed for the selected model type (see parameter table). + +Alternatively, to enter relative permeability and capillary pressure values in a table. + +Group 2 - KEYWORD "table", COUPLE + +.. note:: + + For backwards compatability with earlier versions of FEHM Group 2 can be: KEYWORD "table" Table# PHASE1 PHASE2 COUPLE. Table#,PHASE1,& PHASE2 will be ignored. + + +Group 3 - SATURATION, PHASE1 RELPERM, PHASE2 RELPERM, CAPILLARY PRESSURE + + +Group 3 is entered multiple times to cover the full range of wetting phase saturation (0. - 1.0). + +Table input is terminated with KEYWORD ‘end' or a blank line. Note input saturation is the saturation of the wetting phase, and PHASE1 is the wetting phase. + +-or- + +Group 3 - KEYWORD "file" + + TABLE_FILE + +Table data will be read from the specified file. + +Model input is terminated with KEYWORD ‘end' or a blank line. + + + +Group 4 - JA, JB, JC, GROUP_NUMBER + + ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+===========+================================================================================================+ +| KEYWORD | character | group rlp cap | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| GROUP_NUMBER | integer | Identifier for the current model. | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| PHASE | character | Fluid state: water air co2_liquid co2_sc co2_gas vapor methane_hydrate oil gas | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| MODEL_TYPE | character | See Tables 1-3 | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| RLP_PARAM | real | Input parameters for the specified relative permeability model. See Tables 1-2 | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| NUMP | integer | Number of parameters specified for the model (see Tables 1 and 3). | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| COUPLING | character | Phase couple air/water water/co2_liquid water/co2_gas co2_liquid/co2_gas water/vapor air/vapor | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| CAP_PARAM | real |Input parameters for the specified capillary pressure model. See Table 3 | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| TBLNUM | integer | Table identifier. | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| PHASE1 | character | Fluid state of the wetting phase (see PHASE for phase ID) | ++----------------+-----------+------------------------------------------------------------------------------------------------+ +| PHASE2 | character | Fluid state of the non-wetting phase (see PHASE for phase ID) | ++----------------+-----------+------------------------------------------------------------------------------------------------+ + + +Optional parameters are shown in **bold**. +Table 1. Relative permeability options + ++-----------------------------------------------+-----------------+------+---+----------+ +| Model type | Input Parameter | | | | ++===============================================+=================+======+===+==========+ +| | 1 | 2 | 3 | 4 | ++-----------------------------------------------+-----------------+------+---+----------+ +| Linear | Sr | Smax |   |     | ++-----------------------------------------------+-----------------+------+---+----------+ +| Exponential | Sr | Smax | λ |  **C**  | ++-----------------------------------------------+-----------------+------+---+----------+ +| Corey | Sr | Smax |   |     | ++-----------------------------------------------+-----------------+------+---+----------+ +| Brooks-Corey | Sr | Smax | λ |  **D**   | ++-----------------------------------------------+-----------------+------+---+----------+ +| Van Genuchten (5 model type options, Table 2) | Sr | Smax | m |   | ++-----------------------------------------------+-----------------+------+---+----------+ + +Table 2. Van Genuchten Relative permeability options + ++----------------------+----------------------+-----------------------+ +| Keyword | Independent variable | :math:`R_{nw}` | ++======================+======================+=======================+ +| :math:`Vg_1` | S | :math:`1.-R_{w}` | ++----------------------+----------------------+-----------------------+ +| :math:`Vg` | S | VG formula | ++----------------------+----------------------+-----------------------+ +| :math:`Vg_{1_{cap}}` | Cp | :math:`1.-R_w` | ++----------------------+----------------------+-----------------------+ +| :math:`Vg_{cap}` | Cp | Roseangela | ++----------------------+----------------------+-----------------------+ +| :math:`Vg_{corey}` | S | Corey formula | ++----------------------+----------------------+-----------------------+ + +For dual porosity problems with Van Genuchten models, an optional line can follow the 'rlp' line with the following format: + +.. code:: + + KEYWORD "fracture" Sr Smax m Fracture_k Matrix_k Vf FMIT + + +Note: for backwards compatability with earlier versions of FEHM: + +1. the following input style is accepted for all the Van Genuchten model. :math:`α_G` will be ignored. + ++---------------+----+------+-------------+------+ +| Van Genuchten | Sr | Smax | :math:`α_G` | n | ++---------------+----+------+-------------+------+ + +.. code:: + + KEYWORD "fracture" Sr Smax m α_G Fracture_k Matrix_k Vf FMIT + +2. the keyword 'rlp' can be omitted. + + Table 3. Capillary Pressure options + ++---------------+-----+-----------------+---------------+----------------+----+----+ +| Model type | | Input Parameter | | | | | ++===============+=====+=================+===============+================+====+====+ +| | 1 | 2 | 3 | 4 | 5 | 6 | ++---------------+-----+-----------------+---------------+----------------+----+----+ +| Linear | Sr | Smax |   |   |   |   | ++---------------+-----+-----------------+---------------+----------------+----+----+ +| Linear_for | Cpo | Sco | | | | | ++---------------+-----+-----------------+---------------+----------------+----+----+ +| Exponential | Sr | Smax | C | | | | ++---------------+-----+-----------------+---------------+----------------+----+----+ +| Brooks-Corey | Sr | Smax | λ | :math:`C_{pe}` | S1 | S2 | ++---------------+-----+-----------------+---------------+----------------+----+----+ +| Van Genuchten | Sr | Smax | :math:`α_G` | n | S1 | S2 | ++---------------+-----+-----------------+---------------+----------------+----+----+ +   +For dual porosity problems with Van Genuchten models, an optional line can follow the 'cap' line with the following format: + +.. code:: + + KEYWORD "fracture" Sr Smax m + + +Table 4 + ++--------------------+--------+-------------------------------------------------------------------------------------+ +| Parameter | Format | Description | ++====================+========+=====================================================================================+ +| Sr | real | Residual (or minimum) wetting-phase saturation. | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| Smax | real | Maximum wetting-phase saturation. | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| λ | real | Exponent in exponential & Brooks-Corey models | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| α | real | Inverse of air entry head, :math:`α_G` (1/m) | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| n | real | Parameter n from van Genuchten (1980). | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| C | real | Optional constant in exponential model, =1 if omitted | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| k | real | Optional constant in Brooks-Corey model, (Miller et al., 1998, pg.88) =2 if omitted | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| Cpo | real | Capillary pressure at zero saturation (MPa) | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| So | real | Saturation when Capillary pressure is zero (-) | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| :math:`C_{pe}` | real | Capillary entry pressure (MPa) | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| Fracture_k | real | Fracture permeability (m2) | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| Matrix_k | real | Matrix permeability (m2) | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| Vf | real | Fracture volume fraction | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| FMIT | real | Fracture-matrix interaction term. | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| S1 | real | VG fitting parameter | ++--------------------+--------+-------------------------------------------------------------------------------------+ +| S2 | real | VG cutoff saturation | ++--------------------+--------+-------------------------------------------------------------------------------------+ + +Both Brooks-Corey and Van Genuchten models can be unstable at low saturations. Parameters S1 and S2 can be used to provide approximations to the curves at low saturations, avoiding numerical instability. + +The approximation will replace the B-C or V-G model for saturations less than S2. + +If S < S2, then: + +* If S1=0 (Van Genuchten model only), the curve will be forced to have zero slope at S=0 + +* If S1>0, Cp will vary linearly from Cp(S=S2) to Cp(S=0)=S1*Cp(S=S2) where Cp(S=S2) is capillary pressure at S=S2 calculated according to the B-C or V-G model + +* If S1<0, Cp will vary linearly from Cp(S=S2) to Cp(S=0) at the slope of the Cp curve at S2 calculated according to the B-C or V-G model + +Examples +-------- + +**Example 1**. Water Rw according to corey, non-wetting phase will be 1-Rw. Cp=0 + ++-------+-------+-------+-----+-----+ +| rlpm |   |   |   | | ++=======+=======+=======+=====+=====+ +| group | 1 |   |   | | ++-------+-------+-------+-----+-----+ +| rlp | water | corey | 0.3 | 0.1 | ++-------+-------+-------+-----+-----+ +| end |   |   |   | | ++-------+-------+-------+-----+-----+ +| 1 | 140 | 1 | 1 | | ++-------+-------+-------+-----+-----+ +|   |   |   |   | | ++-------+-------+-------+-----+-----+ +  +**Example 2**. Air/Water problem. Both water and air will have linear rlp models. Capillary pressure of air/water will be +according to the linear forsyth model. + ++-------+-----------+------------+------+------+---+ +| rlpm |   |   |   |   | | ++=======+===========+============+======+======+===+ +| group | 1 |   |   |   | | ++-------+-----------+------------+------+------+---+ +| rlp | water | linear | 0.3 | 1.0 |   | ++-------+-----------+------------+------+------+---+ +| rlp | air | linear | 0.1 | .7 |   | ++-------+-----------+------------+------+------+---+ +| cap | air/water | linear_for | 93.6 | 100. | | ++-------+-----------+------------+------+------+---+ +| end |   |   |   |   | | ++-------+-----------+------------+------+------+---+ +| 1 | 0 | 0 | 1 |   | | ++-------+-----------+------------+------+------+---+ +|   |   |   |   |   | | ++-------+-----------+------------+------+------+---+ +  +**Example 3**. Air/Water problem. Water (and air, by default) will both have vg rel perm model (see Table 2 for details). +Air/water capillary pressure will be vg. + ++-------+-----------+------+--------+-----+-----+-----+----+------+---+ +| rlpm |   |   |   |   |   |   |   | | | ++=======+===========+======+========+=====+=====+=====+====+======+===+ +| group | 10 |   |   |   |   |   |   | | | ++-------+-----------+------+--------+-----+-----+-----+----+------+---+ +| rlp | water | vg_1 | 0.0001 | 1.0 | 3.0 | |   |   | | ++-------+-----------+------+--------+-----+-----+-----+----+------+---+ +| cap | air/water | vg | 0.0001 | 1.0 | 3.0 | 3.0 | 2. | 0.05 | | ++-------+-----------+------+--------+-----+-----+-----+----+------+---+ +| end |   |   |   |   |   |   |   | | | ++-------+-----------+------+--------+-----+-----+-----+----+------+---+ +| 1 | 0 | 0 | 10 |   |   |   |   | | | ++-------+-----------+------+--------+-----+-----+-----+----+------+---+ +|   |   |   |   |   |   |   |   | | | ++-------+-----------+------+--------+-----+-----+-----+----+------+---+ +  +**Example 5**. Dual porosity air/water problem. Water (and air, by default) will both have vg rel perm model, calculated using capillary pressure as the independent variable (see Table 2 for details). Air/water capillary pressure will be vg. Fracture rel perm and capillary pressure models are specified, as well. + ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| rlpm |   |   |   |   |   |   |   |   | | ++==========+===========+========+========+==========+==========+==========+==========+========+===+ +| group | 1 |   |   |   |   |   |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| rlp | water | vg_cap | 0.0212 | 1.0 | 1.62 |   |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| fracture | 0.03 | 1.0 | 3.00 | 4.06e-09 | 2.04e-18 | 2.93e-04 | 0. | | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| cap | air/water | vg | 0.0212 | 1.0 | 0.00715 | 1.62 | 2. | 0.0312 | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| fracture | 0.03 | 1.0 | 12.05 | 3.00 | 20.0 | 0.0001 |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| group | 2 |   |   |   |   |   |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| rlp | water | vg_cap | 0.154 | 1.0 | 0.371 | 2.37 |   |   |   | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| fracture | 0.03 | 1.0 | 13.72 | 3.00 | 7.14e-09 | 2.51e-18 | 9.27e-05 | 0. | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| cap | air/water | vg_cap | 0.154 | 1.0 | 0.371 | 2.37 | 2. | 0.164 | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| fracture | 0.03 | 1.0 | 13.72 | 3.00 | 20.0 | 0.0001 |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| end |   |   |   |   |   |   |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| -1 | 0 | 0 | 1 |   |   |   |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +| -2 | 0 | 0 | 2 |   |   |   |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +|   |   |   |   |   |   |   |   |   | | ++----------+-----------+--------+--------+----------+----------+----------+----------+--------+---+ +  +**Example 6**. Water/vapor problem. Group 1 applies a corey relative permeability function (also applied to vapor, by default). cp=0. +Group 2 applies interpolated values from a table, read from an external file "doe_rlpm.table". (note: this file can be generated by FEHM +by using the keyword 'rel' in the hist macro) + ++----------------------+-------------+-------+-----+-----+---+ +| rlpm |   |   |   |   |   | ++======================+=============+=======+=====+=====+===+ +| group | 1 |   |   |   |   | ++----------------------+-------------+-------+-----+-----+---+ +|rlp | water | corey | 0.3 | 0.1 | | ++----------------------+-------------+-------+-----+-----+---+ +| group | 2 |   |   |   |   | ++----------------------+-------------+-------+-----+-----+---+ +| table | water/vapor | | | | | ++----------------------+-------------+-------+-----+-----+---+ +| file |   |   |   |   |   | ++----------------------+-------------+-------+-----+-----+---+ +| input/doe_rlpm.table |   |   |   |   | | ++----------------------+-------------+-------+-----+-----+---+ +| end |   |   |   |   |   | ++----------------------+-------------+-------+-----+-----+---+ +| 1 | 140 | 1 | 2 |   |   | ++----------------------+-------------+-------+-----+-----+---+ +|   |   |   |   |   |   | ++----------------------+-------------+-------+-----+-----+---+ + +For example, the file doe_rlpm.table would contain an arbitrary number header rows (each header row must contain a character in the first column) +followed by an arbitrary number of lines each containing the following information: +saturation, relative permeability (wetting phase), relative permeability (non-wetting phase),and capillary pressure (MPa). + ++--------------------------------------------------------+-----------------+-----------------+------------+ +| FEHM V3.00pgi64 10-10-20 QA:NA 10/20/2010 14:23:18 | | | | ++========================================================+=================+=================+============+ +| *** DOE Code Comparison Project, Problem 5, Case A *** | | | | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| Relative permeability and Capillary pressure | | | | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| "Saturation" "Liquid" "Vapor" "Capillary pressure" | | | | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.00000000 | 0.00000000 | 1.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.500000000E-01 | 0.00000000 | 1.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.100000000 | 0.00000000 | 1.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.150000000 | 0.00000000 | 1.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.200000000 | 0.00000000 | 1.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.250000000 | 0.00000000 | 1.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.300000000 | 0.732682696E-64 | 1.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.350000000 | 0.482253086E-04 | 0.834442515 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.400000000 | 0.771604938E-03 | 0.675154321 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.450000000 | 0.390625000E-02 | 0.527343750 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.500000000 | 0.123456790E-01 | 0.395061728 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.550000000 | 0.301408179E-01 | 0.281201775 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.600000000 | 0.625000000E-01 | 0.187500000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.650000000 | 0.115788966 | 0.114535108 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.700000000 | 0.197530864 | 0.617283951E-01 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.750000000 | 0.316406250 | 0.273437500E-01 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.800000000 | 0.482253086 | 0.848765432E-02 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.850000000 | 0.706066744 | 0.110918210E-02 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.900000000 | 1.00000000 | 0.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 0.950000000 | 1.00000000 | 0.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ +| 1.00000000 | 1.00000000 | 0.00000000 | 0.00000000 | ++--------------------------------------------------------+-----------------+-----------------+------------+ diff --git a/docs/source/Macros/MacroRock.rst b/docs/source/Macros/MacroRock.rst new file mode 100644 index 00000000..a5f9c1db --- /dev/null +++ b/docs/source/Macros/MacroRock.rst @@ -0,0 +1,33 @@ +======== +``rock`` +======== + +Assign rock density, specific heat and porosity. + ++----------------+--------+-------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+========+=======================================================================================================+ +| DENRD | real | Rock density (kg/m3). | ++----------------+--------+-------------------------------------------------------------------------------------------------------+ +| CPRD | real | Rock specific heat :math:`\left( \frac{MJ}{kg \cdot K} \right)`. | +| | | If CPRD > 1 the code will assume the units are | +| | | :math:`\left( \frac{J}{kg \cdot K} \right)` and multiply by :math:`10^{-6}`. | ++----------------+--------+-------------------------------------------------------------------------------------------------------+ +| PSD | real | | Porosity. | +| | | Special note on negative porosities. If the code encounters a negative porosity, | +| | | the node at which the negative porosity occurs is effectively removed from the model. | +| | | That is, the geometric connections from that node to other nodes in the model are | +| | | removed. The volume associated with the node acts as a barrier to flow. For input purposes, | +| | | the node may still be assigned properties, though they will have no effect on the simulation results. | ++----------------+--------+-------------------------------------------------------------------------------------------------------+ + +The following is an example of ``rock``. In this example the nodes numbered +1 through 140 are assigned a rock density of 2563. kg/m^3, +a rock specific heat of 1010. J/(kg K) and a porosity of 0.35. + ++------+-----+---+-------+-------+------+ +| rock | | | | | | ++------+-----+---+-------+-------+------+ +| 1 | 140 | 1 | 2563. | 1010. | 0.35 | ++------+-----+---+-------+-------+------+ + diff --git a/docs/source/Macros/MacroRxn.rst b/docs/source/Macros/MacroRxn.rst new file mode 100644 index 00000000..b3949153 --- /dev/null +++ b/docs/source/Macros/MacroRxn.rst @@ -0,0 +1,730 @@ +======= +``rxn`` +======= + +Chemical reactions between components are invoked with this control statement. +It is used in conjunction with control statement ``trac``. +For facilitating the construction of the rxn input, a header describing the +input is required before each group whether data is entered for that group or +not (see examples) unless otherwise noted. + +The header is an arbitrary text string that must be contained on a single line. +Note that for components that do not react with other components, ``rxn`` is unnecessary. +Specifically, conservative tracers or tracers that follow the equilibrium sorption +isotherms can be modeled with just the ``trac`` macro. + +Note the parameters NCPNT, NIMM, NVAP (used as indices for input) are determined +by the code using information input for the ``trac`` macro. +NCPNT is equal to the number of liquid components, NIMM is equal to the number +of immobile components, and NVAP is equal to the number of vapor components +specified in the ``trac`` macro. + +* Group 1 - NCPLX, NUMRXN + +* Group 2 - NGROUPS + + * GROUP (ICPNT), ICPNT = 1, NCPNT (repeated NGROUPS times, once for each group). + +* Group 3 - IDCPNT, CPNTNAM, IFXCONC, CPNTPRT, CPNTGS (repeated NCPNT times) + +* Group 4 - IDCPLX, CPLXNAM, CPLXPRT (repeated NCPLX times) + +* Group 5 - IDIMM, IMMNAM, IMMPRT (repeated NIMM times;) + +* Group 6 - IDVAP, VAPNAM, VAPPRT (repeated NVAP times) + +* Group 7 - ISKIP + +* Group 8 - RSDMAX + + * HEADING + +Note that this is an additional heading line that precedes the LOGKEQ heading. + +* Group 9 - LOGKEQ + +* Group 10 - CKEQ, HEQ (NCPLX times) + +or + +* Group 10 - KEYWORD, NUM_TEMPS + + * EQTEMP(I), I = 1, NUM_TEMPS + + * LKEQ(I), I = 1, NUM_TEMPS + +For group 10, the keyword ‘lookup' can be used in place of CKEQ and HEQ. LOOKUP allows a lookup table to be used to describe the equilibrium constant (K) as a function of temperature. After the keyword, the user must specify the number of values of temperature and K that will be used to describe K as a function of temperature. On the next lines the temperatures, and then the K values are entered. FEHM performs a piecewise linear interpolation between the values given. + +* Group 11 - STOIC(ICPNT), ICPNT = 1, NCPNT (repeated NCPLX times, once for each aqueous complex) + +Input for groups 9, 10 and 11 is omitted if NCPLX, the number of aqueous complexes, is zero. + +The remaining groups are entered as a unit for each kinetic reaction. If there are no kinetic reactions specified, none of the following groups (or their headers) are input. The input for groups 14 and on, depend on the kinetic reaction type specified in group 12. The input for each kinetic reaction type is described below. + +* Group 12 - IDRXN + +* Group 13 - JA, JB, JC (JA, JB, JC - defined on page 22) + +* **IDRXN = 1: Linear kinetic reaction** + +* Group 14 - IAQUEOUS, IIMMOBILE + +* Group 15 - KD + +or + +* Group 15 - KEYWORD, NUM_TEMPS + + * EQTEMP(I), I = 1, NUM_TEMPS + + * TCOEFF(I), I = 1, NUM_TEMPS + +.. note:: + + The distribution coefficient can be replaced with the keyword ‘lookup' for temperature dependent coefficients. The keyword is described in Group 10. + +* Group 16 - RATE + +* **IDRXN = 2: Langmuir kinetic reaction** + +* Group 14 - IAQUEOUS, IIMMOBILE + +* Group 15 - DISTCOEEF + +or + +* Group 15 - KEYWORD, NUM_TEMPS + + * EQTEMP(I), I = 1, NUM_TEMPS + + * TCOEFF(I), I = 1, NUM_TEMPS + +.. note:: + + The distribution coefficient can be replaced with the keyword ‘lookup' for temperature dependent coefficients. The keyword is described in Group 10. + +* Group 16 - RATE + +* Group 17 - MAXCONC + +* **IDRXN = 3: General reaction** + +* Group 14 - NIMMOBILE, NAQUEOUS, NVAPOR + +* Group 15 - KFOR, KREV + +* Group 16 - IIMMOBILE (I = 1, NIMMOBILE) + +* Group 17 - IMSTOIC (I = 1, NIMMOBILE) + +Omit groups 16 and 17 (including headers) if NIMMOBILE is zero. + +* Group 18 - IAQUEOUS (I = 1, NAQUEOUS) + +* Group 19 - AQSTOIC (I = 1, NAQUEOUS) + +Omit groups 18 and 19 (including headers) if NAQUEOUS is zero. + +* Group 20 - IVAPOR (I = 1, NVAPOR) + +* Group 21 - IVSTOIC (I = 1, NVAPOR) + +Omit groups 20 and 21 (including headers) if NVAPOR is zero. + +* **IDRXN = 4: Dual Monod kinetics biodegradation reaction** + +* Group 14 - NAQUEOUS (must be >2 and < 5), NIMMOBILE + +* Group 15 - SUBSTRATE, ELECACC, COMP3, COMP4, COMP5 + +.. note:: + + The users choice of NAQUEOUS determines whether COMP3, COMP4, and COMP5 need + to be entered. NIMMOBILE must be 1. NAQUEOUS also determines whether the + COMP3, COMP4, and COMP5 stoichiometries are to be used by the code. + However values must always be entered for groups 21-23 regardless of + the value of NAQUEOUS. + +* Group 16 - BIOMASS + +* Group 17 - KS + +* Group 18 - KA + +* Group 19 - DECAY + +* Group 20 - ELECACCSTOIC + +* Group 21 - COMP3STOIC + +* Group 22 - COMP4STOIC + +* Group 23 - COMP5STOIC + +* Group 24 - PHTHRESH + +* Group 25 - QM + +* Group 26 - YIELD + +* Group 27 - XMINIT + +* Group 28 - NBIOFRM + +Omit Group 29 if NBIOFRM = 0 + +* Group 29 - ICBIO (I = 1, NBIOFRM) + +* **IDRXN=5: Radioactive Decay Reaction** + +* Group 14 - HALFLIFE + +* Group 15 - RXNTYPE + +* Group 16 - PARENT, DAUGHTER + +* **IDRXN=6: Kinetic Henry's Law reaction** + +* Group 14 - IAQUEOUS, IVAPOR + +* Group 15 - KH + +* Group 16 - RATE + +* **IDRXN = 7: Kinetic precipitation/dissolution reaction for total component concentrations** + +* Group 14 - IIMMOBILE + +* Group 15 - NAQUEOUS + +* Group 16 - IAQUEOUS (I = 1, NAQUEOUS) + +* Group 17 - IMSTOIC + +* Group 18 - AQSTOIC (I = 1, NAQUEOUS) + +* Group 19 - SOLUBILITY + +or + +* Group 19 - KEYWORD, NUM_TEMPS + + * EQTEMP(I), I = 1, NUM_TEMPS + + * TCOEFF(I), I = 1, NUM_TEMPS + +.. note:: + + Solubility can be replaced with the keyword ‘lookup' for temperature dependent solubilities. The keyword is described in Group 10. + +* Group 20 - RATE + +* Group 21 - SAREA + +* **IDRXN = 8: Kinetic precipitation/dissolution reaction for total component concentrations with rates based on free-ion concentrations** + +.. note:: + + The input is identical to that for reaction model 7. + ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | | ++=======================================================================================================================+==============+====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| NCPLX | integer | Number of aqueous complexes (equal to number of equilibrium reactions) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMRXN | integer | Number of kinetic reactions | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NGROUPS | integer | Number of groups. See GROUP to determine how to set this parameter. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GROUP | integer | This variable controls the selective coupling solution method employed by FEHM. NCPNT values are entered for each line of input, and NGROUPS lines of input are required, one for each group. If a value is non-zero, then that aqueous component is present in the group. A value of zero denotes that the species is not present in the group. Grouping of aqueous components that take part in rapid kinetic reactions is required for convergence. However, memory requirements increase as the square of the maximum number of aqueous components in a group. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDCPNT | integer | For each total aqueous component, the number identifying each total aqueous component (e.g. 1, 2, etc.) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CPNTNAM | character*20 | For each total aqueous component, the name of the total aqueous component (e.g. Sulfate) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IFXCONC | integer | For each total aqueous component, the Flag denoting the type of total aqueous component1 - total aqueous concentration is specified in TRAC macro2 - specify log of free ion concentration in TRAC macro (use for pH). For example, if H+ is the component, IFXCONC of 2 allows for pH to be directly input in place of concentration values in the TRAC macro. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CPNTPRT | integer | For each total aqueous component, the Flag denoting which total aqueous component concentrations are printed to the ".trc" file and the AVS files.0 - Print to file1 - Do not print to file | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CPNTGS | real | Guess for the initial uncomplexed component concentration used in speciation reactions. We recommend 1.0e-9. On rare occasions, the chemical speciation solver may have trouble converging. Choosing more representative values for CPNTGS will help convergence. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDCPLX | integer | For each aqueous complex, the number identifying each aqueous complex. By convention, the first complex should be given the number 101, the second, 102, etc. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CPLXNAM | character*20 | For each aqueous complex, the name of the aqueous complex (e.g. H2SO4) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CPLXPRT | integer | For each aqueous complex, the Flag denoting which aqueous complex concentrations are printed to the ".trc" file and the AVS files.0 - Print to file1 - Do not print to file | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDIMM | integer | For each immobile component, the number identifying each immobile component (e.g. 1, 2, etc.) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IMMNAM | character*20 | For each immobile component, the name of the immobile component (e.g. Calcite, Co[adsorbed] ) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IMMPRT | integer | For each immobile component, the Flag denoting which immobile component concentrations are printed to the ".trc" file and the AVS files.0 - Print to file1 - Do not print to file | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDVAP | integer | Fore each vapor component, the number identifying each vapor component (e.g. 1, 2, etc.) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VAPNAM | character*20 | For each vapor component, the name of the vapor component (e.g. CO2[gas]) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VAPPRT | integer | For each vapor component, the Flag denoting which vapor component concentrations are printed to the ".trc" file and the AVS files.0 - Print to file1 - Do not print to file | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ISKIP | integer | Flag denoting whether chemical speciation calculations should be done at nodes which have already converged in a previous transport iteration0 - Do chemical speciation calculations at each node for every iteration (recommended option) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | 1 - To save computational time, this options tells FEHM to do equilibrium speciation calculations only at nodes which have not converged during the previous transport iteration. Sometimes, this option can lead to mass balance errors (mass balances can be checked in the ".out" file to see if results are satisfactory). This option is only recommended for very large problems. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RSDMAX | real | The tolerance for the equilibrium speciation calculations. We recommend 1x10-9 for most problems. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| HEADING | character | One line descriptive comment which precedes the LOGKEQ heading | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| LOGKEQ | integer | Flag denoting the whether K or log K is entered by the user0 - constants are given as K1 - constants are given as log K | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CKEQ | real | For each aqueous complex, the equilibrium constant | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| HEQ | real | For each aqueous complex, the enthalpy of the equilibrium reaction. The Van Hoff equation is used to determine the value of the equilibrium constant as a function of temperature. Note the keyword ‘lookup' (see [[wiki:Macro14037 |See For group 10, the keyword ‘lookup' can be used in place of CKEQ and HEQ. LOOKUP allows a lookup table to be used to describe the equilibrium constant (K) as a function of temperature. After the keyword, the user must specify the number of values of temperature and K that will be used to describe K as a function of temperature. On the next lines the temperatures, and then the K values are entered. FEHM performs a piecewise linear interpolation between the values given.]]) can be used in the place of CKEQ and HEQ. | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Keyword ‘lookup' designating a lookup table will be used to describe the equilibrium constant as function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUM_TEMPS | integer | Number of values of temperature and K that will be used to describe K as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EQTEMP | real | Temperatures for K function (oC) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| LKEQ | real | Equilibrium constants for K function | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| STOIC | real | For each aqueous complex, the stoichiometry describing how to "make" the complex from the total aqueous components must be entered. If positive, the solute is a reactant; if negative, the solute is a product; and if 0, the solute is not present in the reaction. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN | integer | For each kinetic reaction, this parameter specifies kinetic reaction model. Currently, the following reaction models are available. Additional kinetic formulations can be added without significant code development.1 - linear kinetic reaction2 - langmuir kinetic reaction3 - general kinetic reaction4 - dual Monod biodegradation reaction5 - radioactive decay reaction6 - kinetic Henry's law reaction7 - precipitation/dissolution reaction8 - precipitation/dissolution reaction with rates based on free-ion concentration | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| JA, JB, JC | integer | JA, JB, JC are described on page 22. Here these parameters are used to specify the nodes at which the current kinetic reaction takes place. If the reaction takes place throughout the problem domain simply enter 1 0 0. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN = 1: Linear Kinetic Reaction | | | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IAQUEOUS | integer | The aqueous component number (e.g. 1, 2, etc.) or the aqueous complex number (e.g. 101, 102, etc.) which corresponds to the sorbing component | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IIMMOBILE | integer | The immobile component number (e.g. 1, 2, etc.) which corresponds to the sorbed component | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KD | real | Distribution coefficient (kg water / kg rock) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Keyword ‘lookup' designating a lookup table will be used to describe the distribution coefficient as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUM_TEMPS | integer | Number of values (temperatures and distribution coefficients) that will be used to describe KD as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EQTEMP | real | Temperatures for distribution coefficient function (oC) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TCOEFF | real | Distribution coefficients corresponding to temperatures. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RATE | real | Reaction rate parameter (1/hr) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN = 2: Langmuir Kinetic Reaction | | | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IAQUEOUS | integer | The aqueous component number (e.g. 1, 2, etc.) or the aqueous complex number (e.g. 101, 102, etc.) which corresponds to the sorbing component | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IIMMOBILE | integer | The immobile component number (e.g. 1, 2, etc.) which corresponds to the sorbed component | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DISTCOEFF | real | Distribution coefficient (kg water/ moles) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Keyword ‘lookup' designating a lookup table will be used to describe the distribution coefficient as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUM_TEMPS | integer | Number of values (temperatures and distribution coefficients) that will be used to describe DISTCOEFF as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EQTEMP | real | Temperatures for distribution coefficient function (oC) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TCOEFF | real | Distribution coefficients for DISTCOEFF as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RATE | real | Reaction rate parameter (1/hr) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MAXCONC | real | Maximum concentration (moles/kg rock) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN = 3: General Kinetic Reaction | | | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NIMMOBILE | integer | The number of immobile components which participate in the reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NAQUEOUS | integer | The number of aqueous components and complexes which participate in the reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NVAPOR | integer | The number of vapor species which participate in the reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KFOR | real | The forward reaction rate parameter. [(concentration units)p x s]-1, where p is the sum of the exponents of all concentrations in the forward reaction minus 1. Thus the units of the reaction rate are (concentration units)/hr. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KREV | real | The reverse reaction rate parameter. [(concentration units)p x s]-1, where p is the sum of the exponents of all concentrations in the reverse reaction minus 1. Thus the units of the reaction rate are (concentration units)/hr. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IIMMOBILE | integer | The immobile component numbers which correspond to the immobile reactants and products in the reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IMSTOIC | real | The stoichiometry corresponding to each immobile component participating in the reaction. If positive, the solute is a reactant; if negative, the solute is a product; and if 0, the solute is not present in the reaction. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IAQUEOUS | integer | The aqueous component or aqueous complex numbers which correspond to the aqueous reactants and products in the reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AQSTOIC | real | The stoichiometry corresponding to each aqueous component or aqueous complex participating in the reaction. If positive, the solute is a reactant; if negative, the solute is a product; and if 0, the solute is not present in the reaction. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IVAPOR | integer | The vapor component numbers which correspond to the vapor reactants and products in the reaction. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IVSTOIC | real | The stoichiometry corresponding to each vapor component participating in the reaction. If positive, the solute is a reactant; if negative, the solute is a product; and if 0, the solute is not present in the reaction. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN = 4: Dual Monod Biodegradation Reaction | | | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NAQUEOUS | integer | The number of aqueous species which participate in the reaction. At least 2 aqueous species must participate, the substrate (e.g. organic carbon) and the electron acceptor (e.g. Oxygen). Up to 5 aqueous species can participate. The third, fourth and fifth aqueous components are either reactants or products of the biodegradation reaction. The value entered for NAQUEOUS determines whether COMP3, COMP4, and COMP5 stoichiometries are to be used by the code. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NIMMOBILE | integer | The number of immobile components which participate in the reaction. For the biodegradation reaction this value is 1. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SUBSTRATE | integer | The aqueous component number which corresponds to the substrate (a.k.a the electron donor) for the biodegradation reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ELECACC | integer | The aqueous component number which corresponds to the electron acceptor for the biodegradation reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COMP3 | integer | The aqueous component number which corresponds to a reactant or product in the biodegradation reaction (e.g. CO2, NH3, H+, etc.). Note that this parameter is optional. COMP3 should only be entered if NAQUEOUS>2. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COMP4 | integer | The aqueous component number which corresponds to a reactant or product in the biodegradation reaction (e.g. CO2, NH3, H+, etc.).Note that this parameter is optional. COMP4 should only be entered if NAQUEOUS>3. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COMP5 | integer | The aqueous component number which corresponds to a reactant or product in the biodegradation reaction (e.g. CO2, NH3, H+, etc.)Note that this parameter is optional. COMP5 should only be entered if NAQUEOUS>4. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| BIOMASS | real | The solid component number which corresponds to the biomass (this is the immobile component). | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KS | real | The Monod half-maximum-rate concentration for the substrate (moles/ kg water) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KA | real | The Monod half-maximum-rate concentration for the electron acceptor (moles/ kg water) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DECAY | real | First order microbial decay coefficient (hr-1) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ELECACCSTOIC | real | The stoichiometry corresponding to the electron acceptor. Note that the stoichiometry of the substrate is 1 by definition. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COMP3STOIC | real | The stoichiometry corresponding to COMP3. A value is always entered whether or not it is used. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COMP4STOIC | real | The stoichiometry corresponding to COMP4. A value is always entered whether or not it is used. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COMP5STOIC | real | The stoichiometry corresponding to COMP5. A value is always entered whether or not it is used. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PHTHRESH | real | In many systems, the biodegradation reaction will stop as the pH becomes either too acidic or basic. This parameter can be used to stop the biodegradation reaction once the simulated pH approaches a certain value. For example, if PHTHRESH = 10, the biodegradation reaction will cease if the pH is above 10 in the simulation. Note that PHTHRESH is an upper threshold for pH. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| QM | real | The maximum specific rate of substrate utilization (moles/kg biomass/hr) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| YIELD | real | The microbial yield coefficient (kg biomass/mole substrate) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| XMINIT | real | In many systems, biomass does not decay below a certain concentration. The biomass concentration is not allowed to fall below XMINIT (moles/ kg rock). | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NBIOFRM | integer | Depending on the problem setup, many aqueous complexes can be formed from a total aqueous component. Only some of these complexes may be biodegradable. This parameter is used to specify which forms (the total aqueous concentration, the free ion concentration, or various complex concentrations) of the component degrade. If NBIOFRM = 0, the total aqueous concentration of the component will degrade and the next parameter ICBIO should be omitted.If NBIOFRM = 2, then two forms of this component degrade. These forms are specified using ICBIO. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ICBIO | integer | Specify the aqueous component numbers (e.g. 1) or aqueous complex numbers (e.g. 101, 102, etc.) corresponding to the biodegradable form of the substrate. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN = 5: Radioactive Decay Reaction | | | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| HALFLIFE | real | Half life (years) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RXNTYPE | integer | Flag denoting the type of component participating in the reaction: 0 - Solid 1 - Liquid -1 - Vapor | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PARENT | integer | The number of the component which corresponds to the parent in the radioactive decay reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DAUGHTER | integer | The number of the component which corresponds to the daughter in the radioactive decay reaction. If the simulation does not model the daughter product set daughter = 0. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN = 7: Kinetic Precipitation/Dissolution Reaction | | | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IIMMOBILE | integer | The immobile component number (e.g. 1, 2, etc.) which corresponds to the dissolving mineral | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NAQUEOUS | integer | The number of aqueous species which participate in the reaction | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IAQUEOUS | integer | The aqueous component numbers which correspond to the aqueous components which enter into the solubility product expression. Note that the total aqueous concentration of the component will dissolve. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IMSTOIC | real | The stoichiometry corresponding to the immobile component participating in the reaction. If positive, the solute is a reactant; if negative, the solute is a product; and if 0, the solute is not present in the reaction. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AQSTOIC | real | The stoichiometry corresponding to the aqueous components participating in the reaction. If positive, the solute is a reactant; if negative, the solute is a product; and if 0, the solute is not present in the reaction. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SOLUBILITY | real | The solubility product. The units of the solubility product depend on the number of aqueous components participating in the reaction. For example, if there are two aqueous components participating the units would be (moles2/[kg water] 2) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Keyword ‘lookup' designating a lookup table will be used to describe the solubility as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUM_TEMPS | integer | Number of values of temperature and solubility that will be used to describe solubility as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| EQTEMP | real | Temperatures for solubility function (oC) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TCOEFF | real | Solubilities for solubility as a function of temperature. | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RATE | real | Reaction rate parameter (moles/[m2s]) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SAREA | real | Surface area of the mineral (m2/m3 rock) | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IDRXN = 8: Kinetic Precipitation/Dissolution Reaction (rates based on free-ion concentrations) | | | | +| This model and its input are the same as for IDRXN = 7 except that the rates are based on the free-ion concentration | | | | +| instead of the total concentration. | | | | ++-----------------------------------------------------------------------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +In general, the following examples illustrate only portions of the rxn macro and +putting all of these example inputs together will not result in a working FEHM ``rxn`` +macro. However, the dissolution example (the last example in this section) +provides an example of a complete rxn macro and corresponds to the first example +given for the trac macro. +In addition, the Reactive Transport Example and the Validation Test Plan for the +FEHM Application Version 2.30 (10086-VTP-2.30-00) include full example problems +with input files which demonstrate the use of rxn. These input files can +be used to see how rxn fits in with the other macros. + +Specifically, the information in rxn must be consistent with the trac macro. +For example, if a linear kinetic sorption reaction is invoked by rxn, +a liquid component and solid component must be specified in the trac macro. + +**General Reaction Parameters.** In the following example two aqueous complexes and four kinetic reactions are specified. Three liquid components, Co, Fe, and EDTA, two complexes, CoEDTA and FeEDTA, and three immobile species, Co, CoEDTA and FeEDTA, are identified. Aqueous components 1 and 3 are coupled during solution while 2 is solved independently. Note that group 6 data has been omitted since there are no vapor species in this example. + +[example] + +**Equilibrium Reaction Parameters.** Equilibrium speciation reactions modeled by +FEHM can be written in the following general form: + +:math:`\sum_{j=1}^{N_c} a_{ij}\hat{C_j} \Leftrightarrow \hat{X_i} \;\;\;\; i = 1,...,N_x` + +where :math:`\hat{C_j}` is the chemical formula for the aqueous component j, and +:math:`\hat{X_i}` is the cchemical formula for the aqueous complex i, :math:`a_{ij}` +is a stoichiometric coefficient **{STOIC}** giving the number of moles of component +j in complex i, and :math:`N_x` is the number of aaqueous components. + +Here is a simple example of an equilibrium speciation reaction: + +:math:`aA + bB \Leftrightarrow A_aB_b` + +where a and b are the stoichiometric coefficients of components A and B, respectively. +At equilibrium, the concentrations of A, B, and :math:`A_aB_b` must satisfy the +law of mass action for this reaction: + +:math:`K = \frac{[A_aB_b]}{[A]^a[B]^b}` + +where K is the equilibrium constant **{CKEQ}** for the reaction and [X] is the +molar concentration of species X. The total aqueous concentrations of components +A and B are given by: + +:math:`U_A = [A] + a[A_aB_b]` + +:math:`U_b = [B] + b[A_aB_b]` + +Therefore, the total aqueous concentrations, U, are functions of the uncomplexed component concentrations and the complex concentrations. Note that the kinetic reactions discussed in the next section are functions of the uncomplexed component concentrations and complex concentrations with the exception of the radioactive decay and precipitation/dissolution reaction in which the total aqueous concentration is used in the reaction rate law. + +The following input describes the equilibrium speciation relations between the total aqueous components and aqueous complexes. Recall that the names of the components and aqueous complexes are given in Groups 3-6. The skip node option, ISKIP, is turned off and the tolerance for the speciation solver, RSDMAX, is set to 1e-9 which is the recommended value. The stoichiometry, STOIC, is specified so that the components Co and EDTA make up the first complex CoEDTA, and the components Fe and EDTA make up the second complex FeEDTA. The equilibrium constants, CKEQ, for CoEDTA and FeEDTA are 1.e18 and 6.31e27, respectively. The enthalpy change is 0. + ++---------------------------------------------------------------------------------------+-------------------------------------+--------------------+---+---+---+---------------------------------------------+ +| ** ISKIP **0** RSDMAX1e-9** Chemical ** LOGKEQ0** CKEQ 1.0e186.31e27** STOIC **1.00.0 |   ** Information ** HEQ **00 0.01.0 |     **      1.01.0 |   |   |   | Group 7 Group 8  Group 9 Group 10  Group 11 | ++---------------------------------------------------------------------------------------+-------------------------------------+--------------------+---+---+---+---------------------------------------------+ + +Below is an example of using the ‘lookup' keyword in place of CKEQ and HEQ. This example describes the temperature dependence of the equilibrium constant of complex HCO3-. Note that LOGKEQ = 1 in this example, so log K is specified in the input rather than K. + ++----------------------------+ +| ** LOGKEQ1** KEYWORDlookup | ++============================+ +| | ++----------------------------+ +|6.5 | ++----------------------------+ +| ** NUM_TEMPS | ++----------------------------+ +| | ++----------------------------+ +| | ++----------------------------+ +|6.344 | ++----------------------------+ +|      | ++----------------------------+ +| | ++----------------------------+ +|6.268 | ++----------------------------+ +|      | ++----------------------------+ +|0 | ++----------------------------+ +|6.388 | ++----------------------------+ +|      | ++----------------------------+ +|5 | ++----------------------------+ +|6.723 | ++----------------------------+ +|      | ++----------------------------+ +|0 | ++----------------------------+ +|7.2 | ++----------------------------+ +| Group 9 Group 10   | ++----------------------------+ + +General Kinetic Parameters. In FEHM, eight kinetic reaction models are supported. Additional kinetic subroutines can be added without significant code development. The following is an example of input for the general kinetic parameters. A linear kinetic reaction, IDRXN = 1, is specified as occurring at each node in the problem (JA = 1, JB and JC = 0). + ++--------------------+-------+----------+---+---+---+-------------------+ +| ** IDRXN **1** JA1 |   JB0 |   JC **0 |   |   |   | Group 12 Group 13 | ++--------------------+-------+----------+---+---+---+-------------------+ + +**IDRXN = 1: Linear Kinetic Reaction.** The retardation of contaminants due to +adsorption/desorption can be modeled with a linear kinetic sorption/desorption +expression. The rate of adsorption/desorption of component j is given by: + +:math:`R_j = -k_m \left( c_j - \frac{m_j}{K_D} \right)` + +where :math:`c_j` denotes the uncomplexed aqueous concentration of j **{IAQUEOUS}**, +:math:`m_j` denotes the adsorbed concentration of species j **{IIMMOBILE}**, +:math:`k_m` is the mass transfer coefficient **{RATE}**, +and :math:`K_D` is the distribution coefficient **{KD}**. + +As :math:`k_m \rightarrow \infty`, this expression reduces to the linear equilibrium +isotherm. The following example illustrates input for a linear kinetic reaction. + +In this kinetic reaction, aqueous component 1 adsorbs to form the immobile component 3. +The :math:`K_D` for the reaction is 5.07 and the mass transfer coefficient is 1.0. + ++----------------------------------------------------+----------------+------------+---+---+---+----------------------------------------------+ +| ** IDRXN **1** JA1** IAQ1** KD **5.07** RATE **1.0 |   JB0IMMOBILE3 |   JC **0** |   |   |   | Group 12 Group 13 Group 14 Group 15 Group 16 | ++----------------------------------------------------+----------------+------------+---+---+---+----------------------------------------------+ + +**IDRXN = 2: Langmuir Kinetic Reaction.** The Langmuir kinetic reaction rate law is given by: + +:math:`R_j = -k_m \frac{\rho}{\theta} \left( K_L c_j \left( m_j^{MAX} - m_j \right) - m_j \right)` + +where :math:`k_m` is the rate constant for desorption **{RATE}**, :math:`\rho` is the bulk rock density +**{DENR}**, :math:`\theta` is the porosity **{POR}**. :math:`K_L` is the distribution coefficient +**{DISTCOEFF}**, and :math:`m_j^{MAX}` is the maximum concentration that can adsorb onto the j +solid **{MAXCONC}**. Ask :math:`k_m \rightarrow \infty`, this expression reduces to the Langmuir equilibrium +isotherm. Example input for a Langmuir kinetic reaction follows. +In this kinetic reaction, aqueous complex 101 sorbs to form immobile component 1. +The distribution coefficient for the reaction is 2.e5 and the mass transfer coefficient +is 0.05. The maximum sorbed concentration is 1.69e-5. + ++------------------------------------------------------------------------------+----------------+------------+---+---+---+-------------------------------------------------------+ +| ** IDRXN **2** JA1** IAQ101** DISTCO **2.0e5** RATE **0.05** MAXCO **1.69e-5 |   JB0IMMOBILE1 |   JC **0** |   |   |   | Group 12 Group 13 Group 14 Group 15 Group 16 Group 17 | ++------------------------------------------------------------------------------+----------------+------------+---+---+---+-------------------------------------------------------+ + +**IDRXN = 3: General Kinetic Reaction.** Many reactions fall under the category of the general kinetic reaction. The reaction is described by a forward rate constant {KFOR}, a reverse rate constant {KREV}, and a set of stoichiometric coefficients. The form of the general reversible reaction is given by: + +:math:`\sum_{j=1}^{N_c+N_x+N_m+N_v} \eta_j \hat{Z}_j \Leftrightarrow \sum_{k=1}^{N_c+N_x+N_m+N_v} \eta_k' \hat{z}_k` + +where :math:`N_c` is the number of aqueous components, :math:`N_x` is the number +of aqueous complexes { **NAQUEOUS** = Nc + Nx }, :math:`N_m` is the number of +immobile components **{NIMMOBILE}**, :math:`N_v` is the number of vapor components +**{NVAPOR}**, :math:`\eta_j` are reactant stoichiometric +coefficients, :math:`\eta_k'` are product stoichiometric coefficients, and +:math:`\hat{z}_i` is the chemical formula for species i, which may be an uncomplexed aqueous +component, aqueous complex, immobile component or vapor component. + +The rate law for a general reversible reaction is given by the following expression: + +:math:`R(z_i) = (\eta_i - \eta_i') \left[ k_f \prod_{j=1}^{N_c+N_x+N_m+N_v} z_j^{\eta_j} - k_r \prod_{k=1}^{N_c+N_x+N_m+N_v} z_k^{\eta_k'} \right]` + +where :math:`z_i` is the concentration of species i. + +The following is example input for a +general kinetic reaction. Solid component 1 reacts to form solid components 2 and 3. +The forward reaction rate is 1.26e-2 and the reverse reaction rate is 0. Therefore, this +is an irreversible reaction. Note also that only solid components are reacting so groups 18-21 have been omitted. + ++------------------------------------------------------------------+-------------------------------+--------------------------+--------+---+---+--------------------------------------------------------+ +| ** IDRXN **3** JA1** NIMM3** KFOR1.26e-2** IIMM **1** IMSTOIC1.0 |   JB0NAQSP0KREV **0.0 2**-1.0 |   JC **0NVAPOR0   3 -1.0 |     ** |   |   | Group 12 Group 13 Group 14 Group 15 Group 16 Group 17  | ++------------------------------------------------------------------+-------------------------------+--------------------------+--------+---+---+--------------------------------------------------------+ + +**IDRXN = 4: Dual Monod Biodegradation Reaction.** Biodegradation is an irreversible +process in which bacteria oxidize an organic substrate to produce energy and biomass. +In addition to biomass, the biodegradation process requires the presence of an electron +acceptor (e.g. oxygen, nitrate, etc.) and nutrients (e.g. nitrogen and phosphorous). +An example of a biodegradation reaction is given by the following reaction: + +:math:`\mathrm{Substrate} + \mathrm{Electron Acceptor} + H^+ + \mathrm{Nutrients} \rightarrow \mathrm{cells} + CO_2 + H_2O + NH_3` + +FEHM models the rate of biodegradation of a substrate with a multiplicative Monod model, which is given by: + +:math:`R_s = -q_m m_b \frac{[S]}{K_s + [S]K_A} \frac{[A]}{K_A + [A]}` + +where [S] is the aqueous concentration of substrate (a.k.a the electron donor) **{SUBSTRATE}**, +[A] is the aqueous concentration of the electron acceptor **{ELECACC}**, +and :math:`m_b` is the concentration of the immobile biomass **{BIOMASS}**. + +The parameter qm is the maximum specific rate of substrate utilization **{QM}**, +which represents the maximum amount of substrate that can be consumed per unit +mass of bacteria per unit time. The parameters :math:`K_S` **{KS}** and :math:`K_A` +**{KA}** are the Monod half-maximum-rate concentrations for the electron +donor and electron acceptor, respectively. The rate of microbial growth is +given by the synthesis rate (which is proportional to the rate of substrate +degradation) minus a first-order decay rate. + +:math:`R_{cells} = -YR_s - b(m_b - m_{b,init})` + +where Y is the microbial yield coefficient **{YIELD}** and b is the first-order +microbial decay coefficient **{DECAY}**. In the above equation, +the assumption is made that the background conditions are sufficient to +sustain a microbial population of a given size; therefore, the biomass +concentration is not allowed to fall below its initial background concentration +(:math:`m_{b,init}`) **{XMINIT}**. +In the following example of input for a dual monod biodegradation reaction, +aqueous component 3 is the substrate and aqueous component 4 is the electron acceptor. +Note that there are only two entries in Group 15 and Groups 21-23 are omitted since +NAQUEOUS = 2. In addition Group 29 data is left out since NBIOFRM = 0. + ++----------------------------------------------------------------------------------------------------------------------------+----------------------------------------+------------+---+---+--------------------------------------+-----------------------------------------------------------------------------------+ +| ** IDRXN **4** JA1** NAQSP 2** SUBSTRA3** BIOMASS4** KS **0.201e-3** KA ** 0.00625e-3** DECAY **0.0020833** EASTOIC3.10345 |   JB0NIMMOBILE1ELECACC **4**       **  |   JC **0** |   |   |   | Group 12 Group 13 Group 14 Group 15 Group 16 Group 17 Group 18 Group 19 Group 20  | ++============================================================================================================================+========================================+============+===+===+======================================+===================================================================================+ +| ** COMP3STOIC **0** COMP4STOIC **0** COMP5STOIC **0** PHTHRSH **8 |   |   |   |   | Group 21 Group 22 Group 23 Group 24  | | ++----------------------------------------------------------------------------------------------------------------------------+----------------------------------------+------------+---+---+--------------------------------------+-----------------------------------------------------------------------------------+ +| ** QM **8.0226 e-4 ** YIELD **44.8732 |   |   |   |   |   | Group 25 Group 26  | ++----------------------------------------------------------------------------------------------------------------------------+----------------------------------------+------------+---+---+--------------------------------------+-----------------------------------------------------------------------------------+ +| ** XMINIT **0.0** NBIOFRM0** ICBIO ** |   **   |   |   |   |   | Group 27 Group 28 Group 29 | ++----------------------------------------------------------------------------------------------------------------------------+----------------------------------------+------------+---+---+--------------------------------------+-----------------------------------------------------------------------------------+ + +**IDRXN = 5: Radioactive Decay Reaction.** Radioactive decay is a simple first order decay process given by: + +:math:`A \rightarrow B` + +where A is the parent **{PARENT}** and B is the daughter product **{DAUGHTER}**. +The half life of the reaction is defined as the time it takes for the concentration +of A to decrease by a factor of 2. In the following example of input for a +radioactive decay reaction, aqueous component 2, the parent, reacts to form aqueous +component 3, the daughter product. The half life for the reaction is 432.0 years. + ++---------------------------------------------------------+----------------------+----------------+---+---+---+-----------------------------------------------+ +| ** IDRXN **5** JA1** HALFLIFE432.0** RXNTYPE1** PARENT2 |   JB0** ** DAUGHTER3 |   JC **0    ** |   |   |   | Group 12 Group 13 Group 14 Group 15 Group 16  | ++---------------------------------------------------------+----------------------+----------------+---+---+---+-----------------------------------------------+ + +**IDRXN = 7: Kinetic Precipitation/Dissolution Reaction.** A general reaction describing +the precipitation/dissolution of a mineral p **{IIMMOBILE}** can be written in the +following form: + +:math:`m_p \Leftrightarrow \mu_{p1}c_1 + \mu_{p1}c_2 + ... + \mu_{p1}c_{N_c}` + +where the :math:`c_j` are the aqueous concentrations **{IAQUEOUS}** and the :math:`\mu_{pj}` +are stoichiometric coefficients **{AQSTOIC}**. +The equilibrium constant for this reaction is known as the solubility product. +Since the activity of a pure solid is equal to one, the reaction quotient :math:`Q_p` +is defined as follows: + +:math:`Q_p = \prod_{j=1}^{N_c} c_j^{\mu_{pj}}` + +At equilibrium, :math:`Q_p` is equal to the solubility product. The surface-controlled +rate of precipitation/dissolution of a mineral is given by: + +:math:`R(m_p) = sign\left(\log\frac{Q_p}{K_{sp}} \right) A_p k_p \left| \frac{Q_p}{K_{sp}} -1 \right|` + +where Ap is reactive surface area of the mineral **{AREA}**, :math:`k_p` is the precipitation rate +constant **{RATE}**, and :math:`K_{sp}` is the solubility product **{SOLUBILITY}**. +Currently, this precipitation/dissolution subroutine only allows for the total +aqueous concentration of a component to dissolve. +The dissolution of uncomplexed aqueous concentration and complex concentrations +is not currently supported. + +The following is example input for a kinetic precipitation/dissolution reaction (calcite dissolution). This example corresponds to the example used for the trac macro (`See In the following example of trac, calcite dissolution is simulated. The input groups are given to the right of the table to facilitate review of the example. The initial solute concentration is set to 0 (but is later overwritten by group 14 input), the implicitness factor is 1 resulting in a 1st order solution, the equation tolerance is 1.e-7, and the upstream weighting is set to 0.5. The solute transport solution is turned on as the heat and mass solution is turned off at day 1. The heat and mass solution resumes on day 1000. Two solutes are simulated in this example. Solute 1 is a nonsorbing (conservative) liquid species (a1 = a2 = 0., b = 1.) with a molecular diffusion coefficient of 1.e-9 m2/s, and dispersivity of 0.0067 m in the X-direction. This transport model applies over the entire problem domain. The initial solute concentration for solute 1 is 6.26e-5 mol/kg-water. Solute 2 is a solid species with an initial solute concentration of 2.e-5 mol/kg-solid. There is no solute source for either solute. The corresponding data for the rxn macro, that would complete this example, is given on page 159. `_). A single kinetic reaction is specified with no aqueous complexes. The liquid and immobile components are identified. Aqueous component 1 participates in the precipitation/dissolution reaction with immobile component 1. No data is input for groups 4, 6, 9, 10, and 11. The solubility product for the reaction is 6.26e-5 and the reaction rate constant is 100. + ++---------------------------------------------------------------------------+-----------------------------------------------------+----------------------------------------+-------------------+----------------------+----------+--------------------------------------------------------+ +| rxn** NCPLX0** GROUP **11** IDCPNT1** IDCPLX** IDIMM1** IDVAP |  NUMRXN **1   CPNTNAMCa[aq]CPLXNAMIMMNAMCa[s]VAPNAM |       IFXCONC0CPLXPRT IMMPRT **0VAPPRT |       CPNTPRT 0** |       CPNTGS 1.0e-9  |       ** |  Group 1 Group 2  Group 3 Group 4Group 5 Group 6 | ++---------------------------------------------------------------------------+-----------------------------------------------------+----------------------------------------+-------------------+----------------------+----------+--------------------------------------------------------+ +| ** ISKIP **0** RSDMAX1e-13** Chemical ** LOGKEQ** CKEQ ** STOIC ** |   **  reaction**HEQ **  |     information    |     ** |   |   | Group 7 Group 8  Group 9Group 10Group 11 | ++---------------------------------------------------------------------------+-----------------------------------------------------+----------------------------------------+-------------------+----------------------+----------+--------------------------------------------------------+ +| ** IDRXN **7** JA1 |   JB0 |   JC **0 |   |   |   | Group 12 Group 13  | ++---------------------------------------------------------------------------+-----------------------------------------------------+----------------------------------------+-------------------+----------------------+----------+--------------------------------------------------------+ +| ** IIMMOBLE1** NAQSP **1** IAQ **1** IMSTOIC1** AQSTOIC1** SOLPROD6.26e-5 | **     ** ** ** |       |   |   |   | Group 14 Group 15 Group 16 Group 17 Group 18 Group 19  | ++---------------------------------------------------------------------------+-----------------------------------------------------+----------------------------------------+-------------------+----------------------+----------+--------------------------------------------------------+ +| ** RATE **100** AREA **1.0 |   |   |   |   |   | Group 20 Group 21  | ++---------------------------------------------------------------------------+-----------------------------------------------------+----------------------------------------+-------------------+----------------------+----------+--------------------------------------------------------+ + +**IDRXN = 8: Kinetic Precipitation/Dissolution Reaction (rates based on free-ion concentrations).** +The reaction modeled is analogous to that for IDRXN =7, except that rates are based +on the uncomplexed (free-ion) concentration of the species. The total concentration +is equal to the free ion concentration + all of the complex concentrations. +For a more detailed discussion of the differences between total aqueous and free-ion +concentration, see the "Models and Methods Summary" of the +FEHM Application [Zyvoloski et al. 1999, [[FEHM-MMS.htm#14829|]], [[FEHM-MMS.htm#14829|]]]. + +For example, for a species such as Cobalt from the multisolute problem +(see [[FEHM-UM.9.5.htm#76956|See Reactive Transport Example]]), +the free ion concentration is simply the concentration of Cobalt in it's +uncomplexed state. The total Cobalt would be Free Ion Cobalt + all Cobalt Complexes +(e.g. CoEDTA from the multisolute verification problem). Using IDRXN = 7 +allows the total Cobalt to dissolve, while IDRXN= 8 allows only the +free ion Cobalt to dissolve. + + diff --git a/docs/source/Macros/MacroSol.rst b/docs/source/Macros/MacroSol.rst new file mode 100644 index 00000000..b593be98 --- /dev/null +++ b/docs/source/Macros/MacroSol.rst @@ -0,0 +1,28 @@ +======= +``sol`` +======= + +* Group 1 - NTT, INTG + ++----------------+---------+---------+-----------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++================+=========+=========+===========================================================+ +| NTT | integer | 1 | | Parameter that defines the type of solution required | +| | | | | NTT > 0 coupled solution | +| | | | | NTT ≤ 0 heat transfer only solution | ++----------------+---------+---------+-----------------------------------------------------------+ +| INTG | integer | -1 | | Parameter that defines element integration type | +| | | | | INTG ≤ 0 Lobatto (node point) quadrature is used, | +| | | | recommended for heat and mass problems without stress. | +| | | | | INTG > 0 Gauss quadrature is used, recommended for | +| | | | problems requiring a stress solution. | ++----------------+---------+---------+-----------------------------------------------------------+ + +The following is an example of ``sol``. In this example, a coupled heat-mass +solution using Lobatto quadrature is specified. + ++-----+-----+ +| sol | | ++-----+-----+ +| 1 | -1 | ++-----+-----+ \ No newline at end of file diff --git a/docs/source/Macros/MacroSptr.rst b/docs/source/Macros/MacroSptr.rst new file mode 100644 index 00000000..e52f01d0 --- /dev/null +++ b/docs/source/Macros/MacroSptr.rst @@ -0,0 +1,464 @@ +======== +``sptr`` +======== + +Streamline particle tracking is invoked with this control statement. + +Group 1 - DTMX, IPRT, IPRTO, RSEED, TPLIM, DISTLIM, LINELIM, DIVD_WEIGHT + +Group 2 - COURANT_FACTOR, IPRTR, ITENSOR, IREVERS, FREEZ_TIME, MAX_JUMP + +Keywords and their associated input are described below. These keywords may be entered in any order following Group 2, but must be directly followed by any associated data. All keywords are optional except "tprp" which flags input of the particle transport properties. + +Optional keyword "tcurve" is input to indicate that transfer function curves should be input to model matrix diffusion. It is followed by NUMPARAMS and TFILENAME. + +* KEYWORD "tcurve" + +* NUMPARAMS + +* TFILENAME + +Optional keyword "omr" is input to indicate the grid has octree mesh refinement. It is followed by the number of refined (OMR) nodes in the grid. An optional keyword, "file", which if input is followed by the name of a file from which to read or to write omr initialization calculation arrays, and the file format. The "file" option should only be used for particle tracking runs using steady state flow. It should also be noted that the file should be re-generated if parameter changes that affect velocity are made since velocities will not be recalculated if the file exists. + +* KEYWORD "omr" + +* OMR_NODES + +* KEYWORD "file" + +* OMRFILENAME + +* OMR_FORM + +Optional keyword "tpor" is input to indicate tracer porosity will be input and is followed by tracer porosity values input using JA, JB, JC format or the keyword "file" and the name of a file containing the tracer porosity values. + +* KEYWORD "tpor" + +* JA, JB, JC, PS_TRAC (JA, JB, JC - defined on page 33) + +-or- + +* KEYWORD "tpor" + +* KEYWORD "file" + +* TPORFILENAME + +Optional keyword "wtdt" to indicate initial particle locations should be moved below the water table by distance DELTAWT. + +* KEYWORD "wtdt", DELTAWT + +Optional keyword "volum" to indicate control volumes associated with computation of sptr velocities should be written to an output file. These volumes are used with PLUMECALC to account for the approximate control volumes used for the velocity calculations on an OMR grid. The "volume" keyword may be followed by the file format. + +* KEYWORD "volum" + +-or- + +* KEYWORD "volum", SPTRX_FORMAT + +Optional keywords "po", "sa", "pe", "de", "pr", "te", "zo", "id" define parameters to be output. No data is associated with the parameter output flags. These parameters are output in the ‘*.sptr2" file in the order entered. + +Optional keyword "xyz" indicates that coordinate data should be included in the abbreviated ‘*.sptr2' output file (see IPRTO below). + +The optional keyword "zbtc" indicates that breakthrough curves will be computed for specified zones. It is followed by NZBTC . . . and ZBTC. If keyword "alt" follows the "zbtc" keyword an alternate output format will be used where, + +* KEYWORD "zbtc" + +-or- + +* KEYWORD "zbtc" "alt" + +* NZBTC, DTMN, PART_MULT, PART_FRAC, DELTA_PART, PART_STEPS, TIME_BTC + +* ZBTC + +Optional keyword "cliff" + +Optional keyword "corner" + +Optional keyword "capture" + +Optional keyword "spring" + +Keyword (‘tprp') specifies that the particle transport properties will be entered on subsequent lines. The transport properties input (Group 4) depends on the value of TPRP_FLAG, the first value input for that group. For TPRP_FLAG = 2 or 4, format of Group 4 input also depends on the form of the dispersion coefficient tensor, as selected using the flag ITENSOR (Group 2). + +* KEYWORD "tprp" + +TPRP_FLAG = 1: + +Group 3 - TPRP_FLAG, KD + +TPRP_FLAG = 2: + +ITENSOR = 1 + +Group 3 - TPRP_FLAG, KD, DM, A1, A2, A3, A4, ASX, ASY, VRATIO + +ITENSOR = 2 + +Group 3 - TPRP_FLAG, KD, DM, AL, ATH, ATV, VRATIO + +ITENSOR = 3 + +Group 3 - TPRP_FLAG, KD, DM, ALH, ALV, ATH, ATV, VRATIO + +ITENSOR = 4 + +Group 3 - TPRP_FLAG, KD, DM, AL, AT, VRATIO + +ITENSOR = 5 + +Group 3 - TPRP_FLAG, KD, AL, ATH, ATV, DM, VRATIO + +TPRP_FLAG = 3: + +Group 3 - TPRP_FLAG, KD, DIFM, RD_FRAC, POR_MATRIX, APERTURE + +TPRP_FLAG = 4: + +ITENSOR = 1 + +Group 3 - TPRP_FLAG, KD, DIFM, RD_FRAC, POR_MATRIX, APERTURE, DM, A1, A2, A3, A4, ASX, ASY, VRATIO + +ITENSOR = 2 + +Group 3 - TPRP_FLAG, KD, DIFM, RD_FRAC, POR_MATRIX, APERTURE, DM, AL, ATH, ATV, VRATIO + +ITENSOR = 3 + +Group 3 - TPRP_FLAG, KD, DIFM, RD_FRAC, POR_MATRIX, APERTURE, DM, ALH, ALV, ATH, ATV, VRATIO + +ITENSOR = 4 + +Group 3 - TPRP_FLAG, KD, DIFM, RD_FRAC, POR_MATRIX, APERTURE, DM, AL, AT, VRATIO + +ITENSOR = 5 (not recommended, included for compatibility with older versions of the code) + +Group 3 - TPRP_FLAG, KD, DIFM, RD_FRAC, POR_MATRIX, APERTURE, AL, ATH, ATV, DM, VRATIO + +TPRP_FLAG =11 or TPRP_FLAG = 12: + +Group 3- TPRP_FLAG, SIMNUM + +* KEYWORD ‘file' + +* CDF_FILENAME + +TPRP_FLAG =13 or TPRP_FLAG = 14: + +Group 3 - TPRP_FLAG, SIMNUM + +* KEYWORD ‘file' + +* CDF_FILENAME + +or + +Group 3 - TPRP_FLAG, K_REV, R_MIN, R_MAX, SLOPE_KF, CINT_KF, AL, ATH, ATV, DM, VRATIO + +Group 4 - JA, JB, JC, MODEL_NUMBER + +Group 3 is ended when a blank line is encountered. The MODEL_NUMBER is incremented each time a Group 3 line is read, and Group 4 lines refer to this parameter. + +Group 5 - ITM, IST + +-or- + +Group 5 - ITM, IST, COUNT_STEPS_MAX, SPTR_FLAG + +Group 6 - NX, NY, NZ + +Group 7 - X10, Y10, Z10 + +Group 8 - XDIM, YDIM, ZDIM + +Group 9 - IJKV(I), X1(I), Y1(I), Z1(I) for I = 1 to NUMPART + +Group 9 input is terminated with a blank line. + +-or- + +Group 9 - KEYWORD "file" + +* SPTR_FILENAME + +Restart runs for particle tracking may be accomplished by reading particle starting locations from a file. A particle restart file is generated by adding the optional SPTR_FLAG, keyword "save" to group 5. + +Note when IST = 0 or 1, Group 10 is used and place holders are inserted for Groups 7-9 and NUMPART is equal to the number of particle starting locations that are entered; however, when IST = 2, Group 10 is not implemented and Groups 7-9 are used followed by a blank line. NUMPART equals NX*NY*NZ in this case. + ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++=================+==============+==============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| DTMX | real | Time step control (seconds). FEHM will account for all particles every abs(dtmx) seconds and write information to the ".sptr3" file if the "zbtc" keyword is present. This controls the output density for breakthrough curve information only. If you are not using/creating breakthrough curves, set DTMX very large (e.g. 1e20). If DTMX is negative, the time step for streamline calculations is forced to be abs(DTMX) seconds. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPRT | integer | Flag to denote whether individual particle positions are written at specified intervals to the ".sptr1" file. The particle coordinate positions are used to get a snapshot of the particle plume at various times during the simulation.IPRT = 0, No outputIPRT > 0, Output is written to the ".sptr1" file every IPRT time steps. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPRTO | integer | Flag to denote if particle streamline information is written to the ".sptr2" file. The information is used to draw complete particle streamlines (for a relatively small number of particles).IPRTO = 0, No outputIPRTO > 0, Extended output is written to the ".sptr2" file.IPRTO < 0, Abbreviated output is written to the ".sptr2" file.If abs(IPRTO) = 1,output is formatted, abs(IPRTO) = 2 output is unformatted, and abs(IPRTO) = 3 output is in binary format. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RSEED | integer | Random number seed for the random number generator. For compatibility with earlier versions of FEHM in which this input did not exist, if no value of RSEED is input, the code assigns a value of 466201. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TPLIM | real | Minimum amount of time (days) a particle should move before location is output. Default is 0 days. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DISTLIM | real | Minimum distance (m) a particle should move before location is output. Default is 0 meters. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| LINELIM | integer | Maximum number of lines that will be written to sptr2 file. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DIVD_WEIGHT | real | Weight factor for the derivative of the dispersion tensor term. Default is 1. If a value of zero is entered, the derivative term is not used. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COURANT_FACTOR | integer | Fraction of the distance through a cell that a particle moves in a single time step. This is used to ensure that the particle, on average, traverses less than one cell before a random-walk dispersion step is performed. For example, a factor of 0.25 indicates that the particle should take at least 4 time steps to move through a cell. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPRTR | integer | Flag for choosing the method for computing concentrations in cells based on the particle tracking information that will be written to the ".trc" or AVS output files.IPRTR Š 0, particle concentrations are computed as number of particles residing in the cell divided by the fluid mass in the cell.IPRTR < 0, an integral of the particle concentration specified above is made and reported. This integral is the normalized cumulative concentration, which for a steady state flow field is equivalent to the response to a step change in particle concentration (note that the particles are input as a pulse). | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ITENSOR | integer | Flag indicating the mathematical form of the dispersion coefficient tensor to be selected.ITENSOR = 0, No dispersion.ITENSOR = 1, Generalized form of the axisymmetric tensor, from Lichtner et al. (2002)ITENSOR = 2, Axisymmetric form of the dispersion coefficient tensor of Burnett and Frind (1987)ITENSOR = 3, Modified form of the dispersion coefficient tensor of Burnett and Frind (1987). See Lichtner et al. (2002) for detailsITENSOR = 4, Isotropic form of the dispersion coefficient tensor of Tompson et al. (1987)ITENSOR = 5, Original form of the Burnett and Frind (1987) tensor as implemented in FEHM Version 2.10. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | Note: for Version 2.10 and earlier, the variable ITENSOR did not exist. For compatibility with these earlier versions, when ITENSOR is omitted from the input file, the code uses the ITENSOR = 5 formulation and the pre-existing input format. It is recommended that new simulations use one of the other tensor formulations (ITENSOR = 1 to 4). | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | In addition, the sign of ITENSOR is used as a switch as follows: if ITENSOR < 0, abs(ITENSOR) is the flag, but the :math:`\nabla \cdot D` term is not included in the computation of particle displacements. Under normal circumstances, an approximation of the term :math:`\nabla \cdot D` is used in the particle tracking algorithm to obtain accurate solutions in cases where there are gradients in :math:`D`. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IREVERS | integer | Flag indicating if reverse particle tracking should be performed. If omitted, forward tracking is performed.IREVERS = 0, Standard forward trackingIREVERS = -1, Forward tracking only after exiting the time loop (this is needed for comparing results with reverse tracking)IREVERS = +1, Reverse tracking.Note: When using reverse tracking, turn off the dispersion, ITENSOR = 0, as it does not make sense to try to reverse the random part of the displacement. The value for ITENSOR must be entered to use this option. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FREEZ_TIME | real | If greater than zero, time (days) at which flow solution is frozen and only particle transport is computed after that time. If omitted, the flow solution continues for the entire simulation. Values for ITENSOR and IREVERS must be entered to use this option. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MAX_JUMP | integer | When using random walk, the maximum number of cells a particle is allowed to jump in a single step. (Default is 10). | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "tcurve" indicating transfer function curve data should be input to model matrix diffusion. If the keyword is found then NUMPARAMS and FILENAME are entered, otherwise they are omitted. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMPARAMS | integer | Number of parameters that define the transfer function curves being used. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TFILENAME | character | Name of input file containing the transfer function curve data. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "omr" to indicate the grid has octree mesh refinement. If the keyword is found then OMR_NODES is entered, and optionally keyword "file" with OMRFILENAME and OMR_FORM, otherwise they are omitted. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| OMR_NODES | integer | Number of refined (omr) nodes in the grid. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "file" indicating that the omr initialization calculation arrays should be written to or read from a file. This option should only be used with steday-state flow. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| OMRFILENAME | character | Name of file from which to read or to write omr arrays. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| OMR_FORM | character | Format of the omr file, formatted or unformatted. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "tpor" to indicate tracer porosities should be read. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PS_TRAC | real | Tracer porosity | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "file" indicating that the tracer porosities should be read from a file. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TPORFILENAME | character | Name of file from which to read tracer porosity. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "wtdt" | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DELTAWT | real | Distance below the water table that particles should be started. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "volum" to indicate control volumes should be output. Output is written to the ".sptrx" file. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPTRX_FORMAT | character | File format for control volume output file "formatted" or "unformatted". Default is formatted. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keywords "po" (porosity), "sa" (saturation), "pe" (permeability), "de" (density), "pr" (pressure), "te" (temperature), "zo" (zone number), "id" (particle identifier) 1 per line, indicating which parameters will be output along the particle path (written to ".sptr2" file). If no keywords are present no parameter ddata will be output. Note that in older versions of FEHM porosity and saturation were output if no keywords were entered. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Keyword ‘tprp' specifying that transport properties are to follow on subsequent lines. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TPRP_FLAG | integer | | Flag indicating what type of transport property information is to follow on the line | +|   |   | | 1 - KD only | +|   |   | | 2 - KD and 5 terms of dispersivity tensor | +|   |   | | 3 - (Dual porosity) - Matrix KD, diffusion coefficient, retardation factor in fracture, and fracture aperture. No dispersion | +|   |   | | 4 - (Dual porosity) - Matrix KD, diffusion coefficient, retardation factor in fracture, fracture aperture, and 5 terms of dispersivity tensor | +|   |   | | 11 - Colloid diversity model with importance sampling, CDF vs Retardation Factor specified as a table in the optional file specified by CDF_FILENAME | +|   |   | | 12 - Similar to case 11 above , except the SQRT(CDF) is used instead of CDF for importance sampling | +|   |   | | 13 - Colloid diversity model with importance sampling, CDF vs :math:`K_f` (attachment rate constant) specified as a straight line equation in the log-log space either on this line or in the optional file specified by CDF_FILENAME | +|   |   | | 14 - Similar to case 13 above, except the SQRT(CDF) is used instead of CDF for importance sampling | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SIMNUM | integer | Simulation number, used for selecting the table/equation from the colloid diversity file. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘file' designating the cumulative probability distribution function (CDF) retardation parameters for the colloid diversity model should be read from an external file | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| CDF_FILENAME | character*80 | | Name of the file containing the cumulative probability distribution function (CDF) (entered if optional keyword ‘file' follows keyword ‘dive'). | +|   |   | | If TPRPFLAG = 11 or 12, Table option. | +|   |   | | If TPRPFLAG = 13 or 14, Equation option. | +|   |   | | The following equations are used for :math:`R_{min} \le R \le R_{max}`, :math:`R = 1 + K_f / K_{rev}`, :math:`\log_{10}(CDF) = b + m \cdot \log_{10}(K_f)` | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KD | real | Matrix sorption coefficient | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DIFM | real | Diffusion coefficient applying to matrix diffusion submodel (m2/s) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| RD_FRAC | real | Retardation factor in fracture media | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| POR_MATRIX | real | Matrix porosity (fracture volume fraction is specified in rock macro) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| APERTURE | real | Fracture aperture (m) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AL | real | Longitudinal dispersivity, αL (m). ITENSOR = 2, 4, or 5 | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ALH | real | Horizontal longitudinal dispersivity, αLH (m). ITENSOR = 3 | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ALV | real | Vertical longitudinal dispersivity, αLT (m). ITENSOR = 3 | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AT | real | Transverse dispersivity, αT (m). ITENSOR = 4 | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ATH | real | Transverse horizontal dispersivity, αTH (m). ITENSOR = 2, 3, or 5 | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ATV | real | Transverse vertical dispersivity, αTV (m). ITENSOR = 2, 3, or 5 | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| A1 | real | Generalized dispersivity term α1 (m) from Lichtner et al. (2002) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| A2 | real | Generalized dispersivity term α2 (m) from Lichtner et al. (2002) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| A3 | real | Generalized dispersivity term α3 (m) from Lichtner et al. (2002) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| A4 | real | Generalized dispersivity term α4 (m) from Lichtner et al. (2002) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ASX | real | Direction cosine of the axis of symmetry from Lichtner et al. (2002) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ASY | real | Direction cosine of the axis of symmetry from Lichtner et al. (2002) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DM | real | Molecular diffusion coefficient (m2/s) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VRATIO | real | Parameter to control the movement of particles into low velocity cells via random walk. Used to restrict the artificial migration of particles into low permeability zones due to dispersion. The value of VRATIO is used as a ratio for determining if random walk into a new cell is allowed. If the ratio of the average velocity in the new cell divided by the velocity in the previous cell is less than VRATIO, then the particle is not allowed to migrate into the new cell. It is returned to its previous location, and a new random walk is computed and applied. Up to 10 attempts at a random walk are allowed, after which the particle location is left at the current location for the next advective step. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MODEL_NUMBER | integer | Number of model (referring to the sequence of models read) to be assigned to the designated nodes or zone. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | keyword | Optional keyword ‘zbtc' specifying that zone breakthrough curves will be computed. Output will be written to the ".sptr3" file. If ‘zbtc' is omitted, so are NZBTC and ZBTC. Note that the zones must be specified in a zone macro preceding the sptr macro in the input file before they are invoked using the keyword ‘zbtc'. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NZBTC | integer | Number of zones for which breakthrough curves will be computed. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | Note that DTMN, PART_MULT, PART_FRAC, DELTA_PART, PART_STEPS, and TIME_BTC are optional input. They must be entered in the order given. When not entered the default values will be used. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DTMN | real | Time step control (seconds). FEHM will account for all particles at time step intervals starting with dtmn seconds and write information to the ".sptr3" file if the "zbtc" keyword is present. This controls the output density for breakthrough curve information only. (Default DTMX) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PART_MULT | real | Time step multiplication factor. (Default 2.) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PART_FRAC | real | Fraction of particles that should break through before checking if time step should be increased. (Default 0.1*NUMPART) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DELTA_PART | real | Fraction of particles that should break through during a time step so that the time step is not increased | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PART_STEPS | integer | Number of time steps that should be checked for DELTA_PART before increasing the time step | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TIME_BTC | real | Time to start using small breakthrough time steps (DTMN) for late initial breakthrough (days). | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ZBTC | integer | NZBTC zone numbers of the zone(s) for which breakthrough curves will be computed. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ITM | integer | Maximum number of time steps to accomplish the FEHM time step ‘day' | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IST | integer | Flag to specify type of input for particlesIST = 0, local position and corresponding element number (Group 10)IST = 1, global position (Group 10)IST = 2, specify a zone of particles (Groups 7-9) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| COUNT_STEPS_MAX | integer | Maximim number of steps a particle is allowed to take in a sptr run. (Default 1000000) Input of this value is optional. If this value is omitted, the default will be used. The value must precede SPTR_FLAG if being used. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPTR_FLAG | character | Optional keyword "save" to signal that final particle locations and times should be written to a file, *.sptrs, for a particle restart run. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NX | integer | Number of divisions in the x-direction | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NY | integer | Number of divisions in the y-direction | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NZ | integer | Number of divisions in the z-direction | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X10 | real | X-coordinate of the origin (xmin) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y10 | real | Y-coordinate of the origin (ymin) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z10 | real | Z-coordinate of the origin (zmin) | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| XDIM | real | Length of X-direction | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| YDIM | real | Length of Y-direction | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ZDIM | real | Length of Z-direction | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IJKV(I) | integer | Node or element number | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X1(I) | real | Starting X-coordinate for a particle | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y1(I) | real | Starting Y-coordinate for a particle | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z1(I) | real | Starting Z-coordinate for a particle | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD | character | Optional keyword "file" indicating that the particle starting locations should be read from a file. If this file has been generated by the code using the "save" keyword in Group 6, particle starting times will also be read. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPTRFILENAME | character | Name of file from which to read initial particle locations. | ++-----------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following are examples of sptr. In the first example 10000 particles are +inserted at the inlet within a single cell, and the breakthrough curve at a +downstream location (defined in a call to zone) is recorded for the case of +longitudinal dispersion with a dispersivity of 100 m and sorption with a KD of +0.0223715. Breakthrough concentration is output every 1.728e8 seconds to the +".sptr3" file. + +.. code:: + + sptr + 1.728e8 0 0 0 Group 1 + 0.25 0 5 0 Group 2 + tprp + 2 0.0223715 100. 0. 0. 0. 0. Group 3 + + 1 0 0 1 Group 4 + + zbtc + 1 + 5 + 1000 2 Group 5 + 1 100 1000 Group 6 + 0. -1500. 0. Group 7 + 10. 3000. 12.5 Group 8 + Group 9 + + +In the second example, both longitudinal and transverse dispersion are invoked, +but no sorption. The solute is input as a patch on the inlet face of the model. +The dimensions of the patch will be 3,000 m in the y-direction and 12.5 m in the +vertical direction, starting at the surface, and 100000 particles are injected. +Data to generate a steady state concentration plume is output in the ".trc" file. + +.. code:: + + sptr + 2.88e7 0 0 0 Group 1 + 0.25 0 5 0 Group 2 + + tprp + 2 0. 100. 0.1 0.1 0. -1.e-10 Group 3 + + 1 0 0 1 Group 4 + + 1000 2 Group 5 + 1 100 1000 Group 6 + 0. -1500. 0. Group 7 + 10. 3000. -12.5 Group 8 + + +The third example uses the colloid diversity model with importance sampling specified +as an equation using an external input file, using the third set of parameters in +the rcoll_eqn.dat, with the file rcoll_eqn.dat as: + +.. code:: + + Colloid diversity model equation parameters + 1 1.5641426E-5 1.0 63933.785 0.7081742 0.0E+0 100. 10. 0.1 5.e-12 0.1 + 2 1.1755084E-3 1.0 851.69573 0.7676392 0.0E+0 100. 10. 0.1 5.e-12 0.1 + 3 1.0417102E-5 1.0 95996.984 0.7438557 0.0E+0 100. 10. 0.1 5.e-12 0.1 + . + . + . + 100 2.0808208E-4 1.0 4806.7954 0.62846046 0.0E+0 100. 10. 0.1 5.e-12 0.1 + +The fourth example uses the colloid diversity model with importance sampling +specified as an equation with parameters input in the sptr macro. + +.. code:: + + sptr + 1.728e8 0 0 0 Group 1 + 0.25 0 5 0 Group 2 + tprp + 13 3 Group 3 + rcoll_eqn.dat + + 1 0 0 1 Group 4 + + zbtc + 1 + 5 + 1000 2 Group 5 + 1 100 1000 Group 6 + 0. -1500. 0. Group 7 + 10. 3000. -12.5 Group 8 + Group 9 diff --git a/docs/source/Macros/MacroStea.rst b/docs/source/Macros/MacroStea.rst new file mode 100644 index 00000000..dac6445b --- /dev/null +++ b/docs/source/Macros/MacroStea.rst @@ -0,0 +1,75 @@ +======== +``stea`` +======== + +The macro ``stea`` is used to manage steady state simulations and is available with all +physics modules in FEHM. The macro directs FEHM to monitor changes in variables +from timestep to timestep and stop the steady state run when the changes are less +than some prescribed tolerance. Alternatively the steady state run is directed +to finish when the global "in" and "out" fluxes are less than a prescribed +tolerance or the simulated time exceeds the input value. + +After the steady state portion of the simulation is completed, a transient run may +be performed. This is accomplished with the boun macro and the key word ``tran``. +See the description of the ``boun`` macro for details. + +The user should be aware that when the ``stea`` macro is used, the parameters +associated with the ``time`` macro pertain to the transient portion of the +simulation if a transient part exists. Values for these parameters may be +input using a keyword but if not entered will default to the values specified +for the ``time`` macro. + + +* Group 1 - KEYWORD, VALUE + ++----------------+-----------+-------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+===========+===============================================================================+ +| KEYWORD | character | | The following keywords are used with steady to specify | +|   |   | the variables to be checked for steady state: | +|   |   | | shea - Head (m) | +|   |   | | spre - Pressure (MPa) | +|   |   | | stem - Temperature (oC) | +|   |   | | ssat - Saturation | +|   |   | | sair - Partial pressure of air/gas (MPa) | +|   |   | | sflu - Mass flux (kg/s) | +|   |   | | sent - Enthalpy (MJ/s) | +|   |   | | stim - Maximum time for steady state simulation (days) | +|   |   | | sday - Initial time step size for steady state simulation (days) | +|   |   | | smul - Time step multiplication factorsmst - Minimum | +|   |   | number of time steps to be used for steady state simulation | +|   |   | | snst - Maximum number of time steps to be used for steady | +|   |   | state simulation | +|   |   | | shtl - Option to reduce the head_tol factor as the | +|   |   | solution approaches steady-state | +|   |   | | stmc - Option to reduce the machine tolerancs factor (tmch) | +|   |   | factor as the solution approaches steady-state | +|   |   | | sacc - Maximum change allowed in the accumulation term when | +|   |   | flux is being checked | +|   |   | | sper - The tolerance is interpreted as a fractional change | +|   |   | in the variable being checked [i.e., | +|   |   | (new_value - old_value)/old_value]. Without this keyword | +|   |   | it is an absolute change in the variable value. | +|   |   | | endstea - Signifies end of keyword input, a blank line will also work. | ++----------------+-----------+-------------------------------------------------------------------------------+ +| VALUE | real | Variable tolerance or time control parameter value. | ++----------------+-----------+-------------------------------------------------------------------------------+ + +In the following example a steady state solution is specified. The tolerance for +``head`` is specified to be 0.1 m and for ``flux`` 0.00001kg/s. The steady state solution +will be allowed to run for a maximum of 1.e12 days and the time step multiplier +is set to 2. + ++--------+-------+ +| stea |   | ++========+=======+ +| shead | 1.d-1 | ++--------+-------+ +| stime | 1.e12 | ++--------+-------+ +| smult | 2. | ++--------+-------+ +| sflux | 1.d-5 | ++--------+-------+ +| end |   | ++--------+-------+ diff --git a/docs/source/Macros/MacroStop.rst b/docs/source/Macros/MacroStop.rst new file mode 100644 index 00000000..6380596e --- /dev/null +++ b/docs/source/Macros/MacroStop.rst @@ -0,0 +1,6 @@ +======== +``stop`` +======== + +No input is associated with this control statement. It signals the end of input, and as such it always appears as the last line of an input deck. + diff --git a/docs/source/Macros/MacroStrs.rst b/docs/source/Macros/MacroStrs.rst new file mode 100644 index 00000000..177fbff8 --- /dev/null +++ b/docs/source/Macros/MacroStrs.rst @@ -0,0 +1,303 @@ +======== +``strs`` +======== + +The solid mechanical deformation module is invoked with this control statement. + +Group 1- ISTRS, IHMS + +Group 2- KEYWORD + +The remaining input is entered in subgroups defined by additional keywords. These keywords are all optional unless otherwise noted, but the user should be careful to ensure the problem is completely defined with the keywords selected. + +Input associated with KEYWORDS is shown below and described in more detail in the following table. Unless otherwise specified, blank lines are not permitted. + +KEYWORD "excess_she" + +FRICTION_OUT, STRENGTH_OUT, PP_FAC_OUT + +KEYWORD "permmodel" + +IPERM, SPMF1, SPMF2, . . . SPMF13 + +(as many models as needed,one per line, terminated by a blank line) + +[[InputData#JA| JA, JB, JC, MODEL_NUMBER (JA, JB, JC-defined on [[wiki:Macro20058|See JA, JB, JC, PROP1, PROP2, . . .]]) + +KEYWORD "elastic" + +`JA, JB, JC, ELASTIC_MOD, POISSON `_ + +KEYWORD "nonlinear" + +NONLIN_MODEL_FLAG + +If the value of NONLIN_MODEL_FLAG = 1 then this model is for linear dependence on temperature of Young's modulus and Poisson's ratio: + +E_INI, DEDT, POISSON_INI, DNUEDT + +Else, if the value of NONLIN_MODEL_FLAG = 91then a table lookup is used: + +YOUNG_TEMP_FILE + +KEYWORD "plastic" + +NUMPLASTICMODELS + +The following are repeated NUMPLASTICMODELS times + +PLASTICMODEL, MODULUS, NU, [PLASTICPARAM1, PLASTICPARAM2] + +`JA, JB, JC, MODELNUMBER `_ + +KEYWORD "biot" + +` JA, JB, JC, ALPHA, PP_FAC `_ + +KEYWORD "stressboun" + +SUB-KEYWORD ‘distributed' or ‘lithostatic' (optional) + +or + +SUB-KEYWORD ‘lithograd' SDEPTH GDEPTH (optional) + +` JA, JB, JC, BOUNVAL, KQ `_ + +KEYWORD "tolerance (required) + +STRESS_TOL + +KEYWORD "end strs" (required) + +The input is terminated with keyword "//end strs//" or "//endstrs//". + ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Default | Description | ++==========================================================+=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+===================================================================================================================================================================================================================================================================================+====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| ISTRS | integer | 0 | State of stressISTRS = 0 - skip stress solutionISTRS = 1 - plain strain and 3-D solutionISTRS = 2 - plain stress solution (must be 2-D) | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IHMS | integer |   | Identify the amount and frequency of coupling between TH and M parts of the codeIHMS = -1 - stress solved only at the end of the TH (flow) simulationIHMS = -2 - stress solved at the beginning and end of the TH (flow) simulation (useful for establishing a lithostatic loadIHMS = -3 - stress solved after each timestep of the TH (flow) simulationIHMS = -4 - stress solved after a timestep of the TH (flow) simulation as determined automatically by the code (not fully implemented)IHMS = 1 - stress solved fully coupled with the TH (flow) simulationIHMS = 2 - stress solved sequentially coupled with the TH (flow) simulation | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "end strs" or "endstrs" | End of strs input. | | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "initcalc" |   | Initiate an initial stress calculation that is useful for establishing lithostatic stress. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "bodyforce" |   | Sets a body force if gravity is non zero. Force is calculated using the rock density information provided in the rock macro. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "reldisp" |   | Use relative displacement in the calculation of volume strains, permeability models, and output. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "stresspor" |   | Explicitly update the porosity after each time step. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "fem" |   | Use the Finite Element modules for forming displacement equations, and calculating stresses. Although optional, it is strongly recommended that this keyword be included. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "principal" |   | For stress output to the files generated by the cont macro, output the principal stress values and the orientation of the axis. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "strainout" |   |   | Create a file, strain.out, containing x, y, z, node number, ε,,xx,,, ε,,yy,,, ε,,zz,,, ε,,xy,,, ε,,xz,,, ε,,yz,, | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "excess_shear" | For stress output to the files generated by the cont macro, output the excess shear stress and the direction of the failure plane given in the equation below, as well as the Young's modulus[[Image(FEHM-UM.6-187.gif)]] and [[Image(FEHM-UM.6-188.gif)]]. Where [[Image(FEHM-UM.6-189.gif)]] is the excess shear, [[Image(FEHM-UM.6-190.gif)]] and [[Image(FEHM-UM.6-191.gif)]] are the maximum and minimum principal stresses, [[Image(FEHM-UM.6-192.gif)]] is the coefficient of friction, and [[Image(FEHM-UM.6-193.gif)]] is the shear strength. The angle [[Image(FEHM-UM.6-194.gif)]] between this plane and the orientation of the maximum principal stress is given by [[Image(FEHM-UM.6-195.gif)]] . | | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FRICTION_OUT | real |   | Coefficient of friction | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| STRENGTH_OUT | real |   | Cohesion | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PP_FAC_OUT | real |   | Pore pressure factor similar to Biot's coefficient in the ‘biot' macro. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "zone" |   | The format and inputs for this are described in the zone macro. Inclusion of zone macros within the strs macro are allowed to facilitate input associated with the following keywords. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "permmodel" |   | This keyword identifies the stress or displacement dependent permeability model. The permeability model can be invoked in a fully coupled, sequentially coupled, or explicitly coupled manner. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPERM | integer | 1 | Specifies the type of permeability model used, input parameters specified on this line change depending on the model selected. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPERM = 1 | Equivalent to no stress permeability model | | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPERM = 2 | Stress permeability model dependent on tensile stress in the coordinate directions. Changes are linear in stress up to the prescribed maximum change. Tensile stress in a given coordinate direction affects the permeabilities in the other two directions. Input: iperm, spm1f, spm2f, spm3f, spm4f, spm5f, spm6f, spm7f, spm8f,spm9f | | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM1F | real |   | Minimum tensile stress (x direction) for damage to occur. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM2F | real |   | Minimum tensile stress (y direction) for damage to occur | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM3F | real |   | Minimum tensile stress (z direction) for damage to occur | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM4F | real |   | Damage factor for elastic modulus in x direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM5F | real |   | Damage factor for elastic modulus in y direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM6F | real |   | Damage factor for elastic modulus in z direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM7F | real |   | Maximum factor for x-permeability. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM8F | real |   | Maximum factor for y-permeability. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM9F | real |   | Maximum factor for z-permeability. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPERM = 22 | Mohr-coulomb failure criteria on the plane that maximizes the excess shear. Here z-prime is along the normal to the plane of failure, and y-prime is along the plane of median principal stress. Input: iperm,spm1f,spm2f,spm3f,spm4f,spm5f,spm6f,spm7f, spm8f,spm9f,spmf10 | | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM1F | real |   | Friction coefficient of shear in the fault plane. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM2F | real |   | Shear strength of the fault plane. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM3F | real |   | Factor in effective stress calculation where [[Image(FEHM-UM.6-196.gif)]] | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM4F | real |   | Range of excess shear stress over which damage is ramped | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM5F | real |   | Maximum multiplier for young's modulus in x-prime direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM6F | real |   | Maximum multiplier for young's modulus in y-prime direction | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM7F | real |   | Maximum multiplier for young's modulus in z-prime direction | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM8F | real |   | Maximum multiplier for permeability x-prime direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM9F | real |   | Maximum multiplier for permeability y-prime direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SPM10F | real |   | Maximum multiplier for permeability z-prime direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IPERM = 91 |   |   | Table input from a file | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| FILENAME | character |   | Name of the file with permeability model factors. The file has the following format:Line 1: # of rows in the tableLines 2 through (# of rows)+1: stress, x-factor, y-factor, z-factor | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "elastic" |   | For linear elastic material. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ELASTIC_MOD | real |   | Young's modulus. (MPa) | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| POISSON | real |   | Poisson's ratio. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "nonlinear" |   |   | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NONLIN_MODEL_FLAG | integer |   | If NONLIN_MODEL_FLAG = 1 then this model is for linear dependence on temperature of Young's modulus and Poisson's ratio. Input: E_INI, DEDT, POISSON_INI, DNUEDT | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   |   | If NONLIN_MODEL_FLAG= 91 then a table lookup is used:. Input: YOUNG_TEMP_FILE | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| E_INI | real |   | Value of Young's modulus at the reference temperature (MPa). | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DEDT | real |   | Derivative of Young's modulus with respect to temperature (MPa/^o^C) | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| POISSON_INI | real |   | Value of Poisson's ratio at the reference temperature. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DNUEDT | real |   | Derivative of Poisson's ratio with respect to temperature (per^ o^C) | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| YOUNG_TEMP_FILE | character |   | Name of the file with nonlinear model values. The file has the following format:Line 1: # of rows in the table (nentries_young)Lines 2 through (# of rows)+1: temperature, young's modulus, poisson's ratio | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "plastic" |   |   |   | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NUMPLASTICMODELS | integer |   | Number of plastic models. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PLASTICMODEL | real |   | Plastic model numberIf PLASTICMODEL = 1 Isotropic, linear elastic solidIf PLASTICMODEL = 2 von Mises modelPLASTICPARAM1 and PLASTICPARAM2 are only entered for the von Mises model. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MODULUS | real |   | Young's modulus in the elastic region (MPa). | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NU | real |   | Poisson's ratio in the elastic region. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PLASTICPARAM1 | real |   | Yield stress for von Mises model (MPa). | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PLASTICPARAM2 | real | 0. | Currently not used. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "biot" |   |   |   | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ALPHA | real | 0 | Volumetric coefficient of thermal expansion (per^ o^C) | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PP_FAC | real |   | Factor multiplying the pore pressure coupling term in the stress-strain relations, given by [[Image(FEHM-UM.6-197.gif)]].Where the symbols have the usual meanings. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "stressboun" |   |   | Enter boundary conditions for the mechanical deformation equations. These can be a combination of specified values of displacements, stresses, or forces. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SUB-KEYWORD ‘distributed' |   | Distribute the applied force in proportion to areas of the members of the zone to which the force is applied. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SUB-KEYWORD ‘lithostatic' |   | BOUNVAL and KQ are interpreted as multipliers of the lithostatic stress and the stress direction. The lithostatic stress is always in the vertical (downward) direction. The z-axis is taken to be positive upwards. In the ctrl macro the direction of gravity must be set to 3. | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SUB-KEYWORD ‘lithograd' SDEPTH GDEPTH | BOUNVAL and KQ are interpreted as the stress gradient and stress direction. The parameters sdepth and gdepth are read on the same line as lithograd, and the KQth diagonal component of the stress at any node is calculated as follows, where z is the vertical coordinate of the node (see [[wiki:Macro94703 |See Schematic illustrating varaibles for ‘lithograd' option.]]) [[Image(FEHM-UM.6-198.gif)]] | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| SDEPTH | real |   | Depth (m) of the reference level from the free surface of the earth corresponding to the level specified by GDEPTH, i.e., model elevation of GDEPTH meters is equivalent to SDEPTH meters depth. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| GDEPTH | real |   | In the coordinate system of the model, the z coordinate of the reference level. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| BOUNVAL | real | 0 | This is a fixed displacement, specified stress, or specified force depending on the value of KQ and optional keywords.No keyword, and kq > 0 : prescribed displacement (m) in the kq directionNo keyword and kq < 0 : applied stress (MPa) in the kq directionKeyword = ‘lithograd' and kq > 0 : the stress gradient (MPa/m) in the kq directionKeyword = ‘distributed' and kq < 0 : prescribed force (MN) in the kq direction. | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KQ | integer | 0 | Parameter that determines the type of boundary conditionkq = 1 or -1: prescribed value in the x directionkq = 2 or -2: prescribed value in the y directionkq = 3 0r -3: prescribed value in the z direction | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| KEYWORD "tolerance (required) |   |   | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| STRESS_TOL | real | 0 | The tolerance for solution of the stress equations STRESS_TOL > 0 STRESS_TOL is the reduction of initial residual of the stress equationsSTRESS_TOL < 0 STRESS_TOL is the required absolute value of the residual of the normalized equations | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|  [[Image(UM3.1_Figure3.png)]] | | | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Schematic illustrating varaibles for ‘lithograd' option. | | | | ++----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +In the 3D example below, the option to explicitly couple stress with heat-mass equations is invoked. Initial stresses and displacements are calculated, a body force due to gravity is applied, optional strain output is activated, computations are performed using the finite element module, material is specified to be elastic, with temperature dependence of Young's modulus and Poisson's ratio specified in a file called "EvsT.txt", linear coefficient of thermal expansion 1.4e-5/0C, Biot's coefficient equal to 0. Zone 3 is pinned in all 3 directions, zones 4 And 5 are constrained in the X direction, and zones 6 and 7 are constrained in the Y direction. Tolerance for the stress solution is set to 1.e-3. + + +.. code:: + + strs + 1 -3 + initcalc + bodyforce + strainout + fem + elastic + 1 0 0 1.59e4 0.25 + + nonlinear + 91 + EvsT.txt + biot + 1 0 0 5.4e-5 0. + + zone + 2 ! top,Z=300 + -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 + +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 + 300.01 300.01 300.01 300.01 299.99 299.99 299.99 299.99 + 3 ! bottom, Z=0 + -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 + +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 + 0.1 0.1 0.1 0.1 -0.1 -0.1 -0.1 -0.1 + + stressboun + -3 0 0 0. 3 + + stressboun + -3 0 0 0. 2 + + stressboun + -3 0 0 0. 1 + + zone + 4 ! back X=20 + 19.99 20.01 20.01 19.99 19.99 20.01 20.01 19.99 + +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 + 300.01 300.01 300.01 300.01 -1. -1. -1. -1. + 5 ! front X=0 + -0.01 +0.01 +0.01 -0.01 -0.01 +0.01 +0.01 -0.01 + +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 + 300.01 300.01 300.01 300.01 -1. -1. -1. -1. + + stressboun + -4 0 0 0. 1 + + stressboun + -5 0 0 0. 1 + + zone + 6 ! right, Y=0 + -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 + 0.01 0.01 -0.01 -0.01 0.01 0.01 -0.01 -0.01 + 300.01 300.01 300.01 300.01 -1. -1. -1. -1. + 7 ! left, Y=60. + -1.e+15 +1.e+15 +1.e+15 -1.e+15 -1.e+15 +1.e+15 +1.e+15 -1.e+15 + 60.01 60.01 59.99 59.99 60.01 60.01 59.99 59.99 + 300.01 300.01 300.01 300.01 -1. -1. -1. -1. + + stressboun + -6 0 0 0. 2 + + stressboun + -7 0 0 0. 2 + + tolerance + -1.e-3 + + end stress + + diff --git a/docs/source/Macros/MacroSubm.rst b/docs/source/Macros/MacroSubm.rst new file mode 100644 index 00000000..b820b864 --- /dev/null +++ b/docs/source/Macros/MacroSubm.rst @@ -0,0 +1,17 @@ +======== +``subm`` +======== + +Create a new flow macro to represent boundary conditions on an extracted submodel. + +Group 1 - KEYWORD, IZONE1, IZONE2 + ++----------------+-------------+------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=============+====================================================================================+ +| KEYWORD | character*4 | Keyword "flux", "head", or "pres" to specify type of boundary condition to output. | ++----------------+-------------+------------------------------------------------------------------------------------+ +| IZONE1 | integer | Zone defining submodel nodes. | ++----------------+-------------+------------------------------------------------------------------------------------+ +| IZONE2 | integer | Zone defining nodes outside of the submodel (optional). | ++----------------+-------------+------------------------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroSvar.rst b/docs/source/Macros/MacroSvar.rst new file mode 100644 index 00000000..8e678882 --- /dev/null +++ b/docs/source/Macros/MacroSvar.rst @@ -0,0 +1,7 @@ +======== +``svar`` +======== + +Macro svar enables pressure-enthalpy variables + +Documentation Pending \ No newline at end of file diff --git a/docs/source/Macros/MacroSzna.rst b/docs/source/Macros/MacroSzna.rst new file mode 100644 index 00000000..04a14be4 --- /dev/null +++ b/docs/source/Macros/MacroSzna.rst @@ -0,0 +1,25 @@ +================ +``szna or napl`` +================ + +* Group 1 - ICO2D + +* Group 2 - TREF, PREF + +* Group 3 - DENNAPL, VISCNAPL + ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+================================================================================================================================================================================================+ +| ICO2D | integer | Determines the type of air module used. ICO2D = 1, 1 degree of freedom solution to the saturated-unsaturated problem is produced. This formulation is similar to the RIchard's Equation. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | | ICO2D = 2, 1 degree of freedom solution is obtained assuming only gas flow with no liquid present.ICO2D = 3, full 2 degree of freedom solution.All other values are ignored. The default is 3. | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TREF | real | Reference temperature for properties (oC). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| PREF | real | Reference pressure for properties (MPa). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| DENNAPL | real | NAPL density (kg/m3). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| VISCNAPL | real | NAPL viscosity (Pa s). | ++----------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroText.rst b/docs/source/Macros/MacroText.rst new file mode 100644 index 00000000..8cd6aa24 --- /dev/null +++ b/docs/source/Macros/MacroText.rst @@ -0,0 +1,25 @@ +======== +``text`` +======== + +* Group 1 - WDD1 + ++----------------+--------------+------------------------------------------------+ +| Input Variable | Format | Description | ++================+==============+================================================+ +| WDD1 | character*80 | | Line of text. A maximum of 80 characters per | +| | | | line are entered. Text is input until a | +| | | | blank line is inserted to signal the end of | +| | | | the control statement. This text is | +| | | | written to the output file (iout). | ++----------------+--------------+------------------------------------------------+ + +The following is an example of text: + ++---------------------------------------------------------------------------+ +| text | ++---------------------------------------------------------------------------+ +| This 2-d model of the PACE problem will be used to study thermal effects. | ++---------------------------------------------------------------------------+ +| user # = -20 to get waste packages | ++---------------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroThic.rst b/docs/source/Macros/MacroThic.rst new file mode 100644 index 00000000..f5b94691 --- /dev/null +++ b/docs/source/Macros/MacroThic.rst @@ -0,0 +1,13 @@ +======== +``thic`` +======== + +Input for variable thickness for two-dimensional problems. + +* Group 1 - JA, JB, JC, THIC + ++----------------+--------+-------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+========+=========================================================================+ +| THIC | real | Thickness of the model domain in the third dimension (m). Default is 1. | ++----------------+--------+-------------------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroTime.rst b/docs/source/Macros/MacroTime.rst new file mode 100644 index 00000000..f5aba392 --- /dev/null +++ b/docs/source/Macros/MacroTime.rst @@ -0,0 +1,74 @@ +======== +``time`` +======== + +Time step and time of simulation data. + +* Group 1 - DAY, TIMS, NSTEP, IPRTOUT, YEAR, MONTH, INITTIME + +* Group 2 - DIT1, DIT2, DIT3, ITC, DIT4 (as needed) + +DAY should be larger than DAYMIN defined in control statement **ctrl**. +The code proceeds to the next control statement when a blank line is encountered for Group 2. +Group 2 can be used to generate output at specific times (with multiple Group 2s). +Contour plot output will be written at each DIT1 regardless of the input in control statement **cont**. +The restart file will be written (or rewritten if one already exists) at each DIT1. If DIT4 is omitted +(for compatibility with older input files where DIT4 was not input) the maximum +time step defined in the control statement ctrl will be used. + ++----------------+---------+-----------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+=================================================================+ +| DAY | real | Initial time step size (days). | ++----------------+---------+-----------------------------------------------------------------+ +| TIMS | real | Final simulation time (days). | ++----------------+---------+-----------------------------------------------------------------+ +| NSTEP | integer | Maximum number of time steps allowed. | ++----------------+---------+-----------------------------------------------------------------+ +| IPRTOUT | integer | Print-out interval for nodal information (pressure, | +| | | enthalpy etc.), as set up under control statement node. | +| | | (i.e., number of time steps). | ++----------------+---------+-----------------------------------------------------------------+ +| YEAR | integer | Year that simulation starts. | ++----------------+---------+-----------------------------------------------------------------+ +| MONTH | integer | Month that simulation starts. | ++----------------+---------+-----------------------------------------------------------------+ +| INITTIME | real | Initial time of simulation (days). For compatibility | +| | | with older versions, if this parameter is absent the | +| | | initial time of simulation will be 0 if no restart | +| | | file is used, or the time in the restart file if one is used. | ++----------------+---------+-----------------------------------------------------------------+ +| DIT1 | real | Time (days) for time step change. | ++----------------+---------+-----------------------------------------------------------------+ +| DIT2 | real | New time step size (days). If DIT2 < 0 then ABS (DIT2) | +| | | is the new time step multiplier. | ++----------------+---------+-----------------------------------------------------------------+ +| DIT3 | real | | Implicitness factor for new time step. | +| | | | DIT3 ≤ 1.0 backward Euler. | +| | | | DIT3 > 1.0 for second-order implicit scheme. | ++----------------+---------+-----------------------------------------------------------------+ +| ITC | integer | New print-out interval. | ++----------------+---------+-----------------------------------------------------------------+ +| DIT4 | real | Maximum time step size for next time interval (days). | ++----------------+---------+-----------------------------------------------------------------+ + +The following is an example of ``time``. In this example, the initial time step size is +30 days, the final simulation time is 3650 days, the number of time steps allowed is +20, nodal information is printed out for every 5th time step, the simulation starts +in the 10th month of 1989, and the initial time of simulation is assigned a value of +0. + +The time step multiplier is changed after 1 day, and the new time step multiplier +is 1.2, backward Euler is used from this time on and the printout interval is every +10th time step. The maximum time step size for the next interval is omitted so the +default value entered in the ``ctrl`` macro will be used. + ++------+--------+-----+----+------+----+-----+ +| time | | | | | | | ++------+--------+-----+----+------+----+-----+ +| 30.0 | 3650.0 | 20 | 5 | 1989 | 10 | 0.0 | ++------+--------+-----+----+------+----+-----+ +| 1.0 | -1.2 | 1.0 | 10 | | | | ++------+--------+-----+----+------+----+-----+ +| | | | | | | | ++------+--------+-----+----+------+----+-----+ diff --git a/docs/source/Macros/MacroTrac.rst b/docs/source/Macros/MacroTrac.rst new file mode 100644 index 00000000..d332b7c6 --- /dev/null +++ b/docs/source/Macros/MacroTrac.rst @@ -0,0 +1,299 @@ +======== +``trac`` +======== + +* Group 1 - KEYWORD ‘userc', ANO, AWC, EPC, UPWGTA + + * Optional keyword "file" is used to specify the name of the data file that will contain input for the userc subroutine. + + * KEYWORD ‘file' + + * USERC_FILENAME + +or + +* Group 1 - ANO, AWC, EPC, UPWGTA + +* Group 2 - DAYCS, DAYCF, DAYHF, DAYHS + +* Group 3 - IACCMX, DAYCM, DAYCMM, DAYCMX, NPRTTRC + +* Group 4 - KEYWORD ‘tpor' + +* Group 5 - JA, JB, JC, PS_TRAC + +Tracer porosity is entered only if the Group 4 keyword (‘tpor'), which specifies tracer porosity input, is present, otherwise Groups 4 and 5 are omitted. + +* Group 6 - NSPECI + +* Group 7 - KEYWORD ‘ldsp' + +The Group 7 keyword (‘ldsp') specifies longitudinal / transverse dispersion should be used. If X, Y, Z dispersion is desired Group 7 is omitted, and dispersivities are input in X, Y, Z order in Group 9 or Group 12. When longitudinal / transverse dispersion is invoked the Z-components of dispersivity are omitted from the Group 9 or Group 12 input, and X and Y represent longitudinal and transverse dispersion respectively. Note that an "L" or "V" added to the Group 9 or Group 12 variable names (MFLAG, SEHDIFF, TCX, TCY, TCZ, IADSF, A1ADSF, A2ADSF, BETADF, DIFFM) indicates the value is for the liquid or vapor phase, respectively. + +* Group 8 - KEYWORD ‘dspl' or ‘dspv' or ‘dspb' + +The Group 8 keyword specifies that the same diffusion coefficient and dispersivities are to be used for all species of the same type (liquid and/or vapor). This will make the calculations more efficient and thus should be used if applicable. If Group 8 is omitted, Groups 9 and 10 are also omitted, and input resumes with Group 11. + +If only liquid species are present (keyword ‘dspl') or only vapor species are present (keyword ‘dspv') with no longitudinal / transverse dispersion, Group 9 is defined as follows: + +* Group 9 - MFLAG, SEHDIFF, TCX, TCY, TCZ + +Otherwise if both liquid and vapor are present (keyword ‘dspb'), parameters for both must be entered. + +* Group 9 - MFLAGL, SEHDIFFL, TCLX, TCLY, TCLZ, MFLAGV, SEHDIFFV, TCVX, TCVY, TCVZ + +* Groups 9 is used to define transport models for which diffusion and dispersion parameters are identical. Group 9 is read in until a blank line is encountered. The model number is incremented by 1 each time a line is read. + +* Group 10 - JA, JB, JC, ITRCDSP + +* Group 11 - ICNS [SPNAM] + +There are two options for group twelve. If the same diffusion coefficient and dispersivities are to be used for all species of the same type (liquid and/ or vapor - keyword ‘dspl', ‘dspv', or ‘dspb') only sorption parameters are input: + +* Group 12 - IADSF, A1ADSF, A2ADSF, BETADF + +or for a Henry's Law Species (both liquid and vapor) + +* Group 12 - IADSFL, A1ADSFL, A2ADSFL, BETADFL, IADSFV, A1ADSFV, A2ADSFV, BETADFV + +In the absence of a Group 8 keyword ("dspl', ‘dspv', or ‘dspb') the following input (for liquid or vapor) which includes the sorption and dispersion parameters is used: + +* Group 12 - IADSF, A1ADSF, A2ADSF, BETADF, MFLAG, DIFFM, TCX, TCY, TCZ + +For a Henry's Law Species (both liquid and vapor) if DIFFML ≥ 0 + +* Group 12 - IADSFL, A1ADSFL, A2ADSFl, BETADFL, MFLAGL, DIFFML, TCLX, TCLY, TCLZ, IADSFV, A1ADSFV, A2ADSFV, BETADFV, MFLAGV, DIFFMV, TCVX, TCVY, TCVZ + +* Group 13 - JA, JB, JC, ITRCD + +* Group 14 - HENRY_MODEL, HAWWA(1), HAWWA(2), HAWWA(3), HAWWA(4), HAWWA(5) (only input for a Henry's Law species, otherwise omitted) + +* Group 15 - JA, JB, JC, ANQO + +* Group 16 - JA, JB, JC, CNSK, T1SK, T2SK + +Groups 11, 12, 13, 14, 15, and 16 are entered as a unit for each solute. However, for a solid species, only groups 11, 15, and 16 are entered (groups 12, 13, and 14 are not applicable for a solid species). Groups 12 and 13 are used to define transport models for which sorption, diffusion and dispersion parameters are identical. For a liquid or vapor species, only one set of Group 12 parameters should be entered per region. However, for a Henry's Law species, two sets of parameters per region must be entered. For this case, the liquid sorption parameters should be entered on the first line and the vapor sorption parameters on a second line or as a continuation of the first line. Group 12 is read in until a blank line is encountered. The model number is incremented by 1 each time a line is read. Group 13 then assigns a transport model number to every node. + +Injection nodes must be specified in control statement **flow**. + ++----------------+--------------+-------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+==============+===============================================================================+ +| KEYWORD | character*5 | Keyword for invoking a solute transport user subroutine. | +| | | If the word ``userc`` is placed in this position, then the | +| | | code invokes a solute transport user subroutine at each time | +| | | step. Omit this key word if there is no solute user subroutine | +| | | for the simulation. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Optional keyword ‘file' designating the name for the user | +| | | subroutine input transport parameter file will be input. | +| | | If this keyword and the following line are omitted, the | +| | | default name will be ``userc_data.dat``. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| USERC_FILENAME | character*80 | Name of file from which to read transport parameters for | +| | | optional user subroutine. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| ANO | real | Initial solute concentration, set at all nodes for all | +| | | species unless overwritten by a restart file input or | +| | | values in group 14 below (moles/kg fluid). | ++----------------+--------------+-------------------------------------------------------------------------------+ +| AWC | real | | Implicitness factor for solute solution. | +| | | | AWC > 1.0 gives 2nd order solution | +| | | | AWC ≤ 1.0 gives 1st order solution | ++----------------+--------------+-------------------------------------------------------------------------------+ +| EPC | real | Equation tolerance for solute solution. When the square | +| | | root of the sum of the squared residuals is lower than | +| | | EPC, the solution is assumed to be converged. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| UPWGTA | real | | Upstream weighting term for the solute solution. | +| | | | UPWGTA < 0.5 UPWGTA is set to 0.5 | +| | | | UPWGTA > 1.0 UPWGTA is set to 1.0 | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DAYCS | real | Time which the solute solution is enabled (days). | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DAYCF | real | Time which the solute solution is disabled (days). | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DAYHF | real | Time which the flow solution is disabled (days). | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DAYHS | real | Time which the flow solution is enabled (days). | ++----------------+--------------+-------------------------------------------------------------------------------+ +| IACCMX | integer | Maximum number of iterations allowed in solute | +| | | solution if time step multiplier is enabled | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DAYCM | real | Time step multiplier for solute solution | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DAYCMM | real | Initial time step for solute solution (days) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DAYCMX | real | Maximum time step for solute solution (days) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| NPRTTRC | integer | Print-out interval for solute information. Data for | +| | | every NPRTTRC solute time step will be written to the | +| | | ".trc" file. If this parameter is omitted (for | +| | | compatibility with old input files) the default | +| | | value is 1. Note that the first and last solute | +| | | time step within a heat and mass transfer step | +| | | automatically get printed. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Keyword ‘tpor' specifying optional tracer porosity | +| | | should be input. If group 4 is omitted, porosities | +| | | assigned in macro rock are used. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| PS_TRAC | real | Tracer porosity | ++----------------+--------------+-------------------------------------------------------------------------------+ +| NSPECI | integer | Number of solutes simulated. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| KEYWORD | character*4 | Keyword ‘ldsp' specifying longitudinal / transverse dispersion. | +| | | If x, y, z dispersion is desired group 7 is omitted, and | +| | | dispersivities are input in x, y, and then z order | +| | | (group 9 or group 12). Otherwise, if longitudinal | +| | | / transverse dispersion is desired the keyword | +| | | ‘ldsp' is entered and dispersivities are instead | +| | | input in longitudinal and then transverse order | +| | | with values for the third dimension omitted. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| KEYWORD | character*4 | | Keyword specifying the same diffusion coefficient and | +| | | dispersivities are to be used for all species of the same | +| | | type (liquid and/or vapor). | +| | | | ``dspl`` indicates that only liquid species exist. | +| | | | ``dspv`` indicates that only vapor species exist. | +| | | | ``dspb`` indicates that both liquid and vapor species exist. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| ICNS | integer | | Phase designation for the ith solute | +| | | | * -2 - Henry's Law species (input and output concentration | +| | | values are gas concentrations). | +| | | | * -1 - Vapor species. | +| | | | * 0 - Solid species | +| | | | * 1 - Liquid species | +| | | | * 2 - Henry's Law species (input and output concentration | +| | | values are liquid concentrations) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| SPNAM | character*20 | For each species, the name of the species (e.g. Sulfate). | +| | | This is an optional identifier that may be input when | +| | | macro ``rxn`` is not being used. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| MFLAG | integer | | Flag denoting type of diffusion model to be used | +| | | | 0 - the molecular diffusion coefficient is a constant. | +| | | | 1 - Millington Quirk diffusion model for liquid or vapor. | +| | | | 2 - Conca and Wright diffusion model for liquid, alternate | +| | | Millington Quirk diffusion model for vapor. | +| | | | 3 - vapor diffusion coefficient is calculated as a function | +| | | of pressure and temperature using tortuosity from adif | +| | | macro, of the "Models and Methods Summary" of the FEHM Application | +| | | (Zyvoloski et al. 1999). | +| | | | | +| | | | FEHM calculates liquid contaminant flux as | +| | | J = (Water Content)x(D*)x(GradC) and vapor contaminant flux as | +| | | J = (Air Content)x(D*)x(GradC) where D\* is the diffusion | +| | | coefficient input in this macro. Water content is defined as | +| | | porosity x saturation and air content is defined as | +| | | porosity x (1 - saturation). For more explanation on the Millington | +| | | Quirk and Conca/Wright models see Stauffer, PH, JA Vrugt, HJ Turin, | +| | | CW Gable, and WE Soll (2009) **Untangling diffusion from advection | +| | | in unsaturated porous media: Experimental data, modeling, and | +| | | parameter uncertainty assessment**. Vadose Zone Journal, | +| | | 8:510-522, doi:10.2136/vzj2008.0055. | +| | | | | +| | | | SEHDIFF real Molecular diffusion coefficient (m2/s)  | +| | | | | +| | | | When MFLAG = 0, the input diffusion coefficient is used | +| | | directly in the contaminant flux equations presented above. | +| | | However, MFLAG = 1 or 2, the free air or free water diffusion | +| | | coefficient is input and the correct porous diffusion is | +| | | calculated within FEHM. For MFLAG = 3, the code assumes a | +| | | free air diffusion coefficient of 2.33e-5 m2/s for water | +| | | vapor in air as described in the Models and Methods | +| | | Summary Eq. 21.  | ++----------------+--------------+-------------------------------------------------------------------------------+ +| SEHDIFF | real | Molecular diffusion coefficient (m^2^/s) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| TCX | real | Dispersivity in x-direction (m) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| TCY | real | Dispersivity in y-direction (m) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| TCZ | real | Dispersivity in z-direction (m) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| ITRCDSP | integer | Region number for dispersion parameters given in group 9 | +| | | (keyword dspl, dspv, or dspv). Default is 1. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| IADSF | integer | | Adsorption model type for the ith species, ith region | +| | | | 0 - conservative solute | +| | | | 1 - linear sorption isotherm | +| | | | 2 - Freundlich sorption isotherm | +| | | | 3 - Modified Freundlich sorption isotherm | +| | | | 4 - Langmuir sorption isotherm | ++----------------+--------------+-------------------------------------------------------------------------------+ +| A1ADSF | real | α1 parameter in adsorption model | ++----------------+--------------+-------------------------------------------------------------------------------+ +| A2ADSF | real | α2 parameter in adsorption model | ++----------------+--------------+-------------------------------------------------------------------------------+ +| BETADF | real | β parameter in adsorption model | ++----------------+--------------+-------------------------------------------------------------------------------+ +| DIFFM | real | Molecular diffusion coefficient (m^2^/s) See discussion | +| | | for SEHDIFF. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| ITRCD | integer | Region number for group 12 sorption parameters or | +| | | for sorption and dispersion parameters (no keyword). | +| | | Default is 1. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| HENRY_MODEL | integer | | Flag denoting which model is to be used for | +| | | defining the temperature dependence of the Henry's law constant | +| | | | 1 - van't Hoff model | +| | | | 2 - Multi-parameter fit to experimental data (used for carbonate system) | +| | | | 3 - Henry's model uses water vapor pressure (:math:`H = P_{wv}`) | ++----------------+--------------+-------------------------------------------------------------------------------+ +| HAWWA(1) | real | | Term in Henry's Law temperature dependence model: | +| | | | For model 1 or 3 - parameter value is :math:`A_H` | +| | | | For model 2 - parameter value is :math:`A_{H,1}` | +| | | | For model 3 - not used | ++----------------+--------------+-------------------------------------------------------------------------------+ +| HAWWA(2) | real | | Term in Henry's Law temperature dependence model: | +| | | | For model 1 - parameter value is :math:`\Delta H_H` | +| | | | For model 2 - parameter value is :math:`A_{H,2}` | +| | | | For model 3 - Henry's constant modifier, | +| | | :math:`H = P_{wv} \cdot \Delta H_H` | ++----------------+--------------+-------------------------------------------------------------------------------+ +| HAWWA(3) | real | | Term in Henry's Law temperature dependence model: | +| | | | For model 1 - not used | +| | | | For model 2 - parameter value is :math:`A_{H,3}` | ++----------------+--------------+-------------------------------------------------------------------------------+ +| HAWWA(4) | real | | Term in Henry's Law temperature dependence model: | +| | | | For model 1 - not used | +| | | | For model 2 - parameter value is :math:`A_{H,4}` | ++----------------+--------------+-------------------------------------------------------------------------------+ +| HAWWA(5) | real | | Term in Henry's Law temperature dependence model: | +| | | | For model 1 - not used | +| | | | For model 2 - parameter value is :math:`A_{H,5}` | ++----------------+--------------+-------------------------------------------------------------------------------+ +| ANQO | real | Initial concentration of tracer, which will supersede | +| | | the value given in group 1. Note that if initial | +| | | values are read from a restart file, these values | +| | | will be overwritten. Units are moles per kg vapor or | +| | | liquid for a liquid, vapor, or Henry's law species, | +| | | and moles per kg of solid for a solid species. | +| | | Default is 0. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| CNSK | real | Injection concentration at inlet node (moles per kg | +| | | liquid or vapor). If fluid is exiting at a node, then | +| | | the in-place concentration is used. If CNSK < 0, then | +| | | the concentration at that particular node will be held | +| | | at a concentration of abs(cnsk) (default is 0 for all | +| | | unassigned nodes). | ++----------------+--------------+-------------------------------------------------------------------------------+ +| T1SK | real | Time (days) when tracer injection begins. Default is 0. | ++----------------+--------------+-------------------------------------------------------------------------------+ +| T2SK | real | Time (days) when tracer injection ends. Default is 0. | +| | | If T2SK < 0, the absolute value of T2SK is used for this | +| | | parameter, and the code interprets the negative value as a | +| | | flag to treat the node as a zero-solute-flux node for cases | +| | | in which a fluid sink is defined for that node. For this | +| | | case, the solute will stay within the model at the node | +| | | despite the removal of fluid at that location. | +| | | If a fluid source is present at the node, CNSK is | +| | | the concentration entering with that fluid, as in the | +| | | normal implementation of a solute source. Note that the | +| | | code cannot handle the case of T2SK < 0 and CNSK < 0 | +| | | (fixed concentration), as these are incompatible inputs. | +| | | Therefore, the code prints an error message and stops | +| | | for this condition. | ++----------------+--------------+-------------------------------------------------------------------------------+ + diff --git a/docs/source/Macros/MacroTrxn.rst b/docs/source/Macros/MacroTrxn.rst new file mode 100644 index 00000000..4e56f4c2 --- /dev/null +++ b/docs/source/Macros/MacroTrxn.rst @@ -0,0 +1,1120 @@ +======== +``trxn`` +======== + +Overview +-------- + +The ``trxn`` macro is designed to replace the ``trac`` (and optionally ``rxn``) macros with a more convenient, user-friendly input format. Rather than reading input as sets of nameless numbers, the ``trxn`` macro reads several "blocks" of data in which parameters are defined. The blocks may be specified in any order (with the exception of the ``ctrl`` and ``lookup`` blocks), and all blocks are optional, except for the ``header`` and ``comp`` blocks. Any parameters that are not specified will be given default values (usually zero). + +The ``trxn`` macro relies heavily on zones, and uses zones for applying all variables that can vary by node. For this reason, a ``zone`` macro must be supplied in the input file before `trxn` is read. A ``time`` macro must also be given before ``trxn``. + +If the pound character ("#") appears on a line, everything after it on that line will be treated as a comment. Lines in which the first character is a pound sign are treated as blank lines. Blocks must not contain any blank or commented lines (although they can contain comments that do not start at the beginning of the line), and blocks must be separated by at least one blank or commented line. In the ``comp``, ``water``, ``rock``, ``gas``, ``disp``, ``sorp``, and ``assign`` blocks, entire columns can be commented out. If an asterisk ("*") (separated from surrounding tokens by whitespace) appears in the column header line of one of these blocks, the contents of every column to the right of the asterisk will be ignored. An entire block (until the next blank line) can be skipped by placing the keyword ``null`` before the block name. + +trxn blocks +----------- + +The blocks are as follows: + +``ctrl`` +-------- + +This block contains control parameters, all on the same line. If it is supplied, it must be the first block in trxn. Its options are as follows: + ++----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Option | Description | ++================+=====================================================================================================================================================================+ +| ``rxnon`` | Enables reactions, which are by default disabled. Reactions will not occur in a simulation if `rxnon` is not given, even if reaction-related blocks are specified. | ++----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``co2_couple`` | Enables CO2 coupling for `rxn`. | ++----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``debug`` | Enables the output of debugging information. | ++----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Below is an example of the `ctrl` block: + +.. code:: + + ctrl co2_couple rxnon + + +In this example, CO2 coupling and reactions are enabled. + +``include`` +----------- + +The `include` block is designed to facilitate the construction of "libraries" of rock/water/gas types, component properties, dispersion models, etc. that can be shared between simulations. It allows blocks to be included from external files as though these files' contents were placed at the location of the `include` statement. External include libraries have the exact same syntax as the standard `trxn` macro. The first non-blank (and non-commented) line of the include file should be `trxn library`. Following this, as many blocks as desired may be supplied. +The `end trxn` line should be given at the end of the library file; +otherwise, reading will terminate early. +Multiple `include` statements referencing several different files may be used in +the same `trxn` macro. Libraries may include other libraries. + +The syntax is as follows: + +.. code:: + + include /scratch/nts/ms/trxn/test-problems/standard.trxl + + +This will include the library located at ``/scratch/nts/ms/trxn/test-problems/standard.trxl`` at the current location in the input file. As an example, a simple library might look something like this: + +.. code:: + + # Standard library for use with all test problems + + trxn library + + header + 0 1 1e-6 1 + 0 100000 100000 100000 + 5 2 1 1 0 + iskip=0, rsdmax=1e-9 + + disp lx ly lz vx vy vz + std_x 0.1 1e-9 1e-9 0.1 1e-9 1e-9 + std_y 1e-9 0.1 1e-9 1e-9 0.1 1e-9 + std_z 1e-9 1e-9 0.1 1e-9 1e-9 0.1 + + sorp ltype a1l a2l bl vtype a1v a2v bv + .std + * con 0 0 1 con 0 0 1 + + diff l=1e-9, v=1e-9 + + end trxn + + +All problems that include this library will be given the standard values for `header` and liquid and vapor diffusion coefficients of 1×10^-9^, and will have one sorption model ("std") and three dispersion models ("std_x", "std_y", and "std_z") available. + +Caution should be used when including libraries to prevent multiple definitions of any blocks, as this may cause unexpected behavior. `trxn` will print a warning message to the error file if a block is supplied more than once, and these warnings should be considered. Also, care should be taken to avoid placing any problem-specific parameters in the libraries. + +``header`` +---------- + +This block contains basic constant values, and is the first three lines of the `trac` macro copied verbatim. + ++------+----------------------------------------+ +| Line | Variables | ++======+========================================+ +| 1 | ``AN0 AWC EPC UPWGTA`` | ++------+----------------------------------------+ +| 2 | ``DAYCS DAYCF DAYHF DAYHS`` | ++------+----------------------------------------+ +| 3 | ``IACCMX DAYCM DAYCMM DAYCMX NPRTTRC`` | ++------+----------------------------------------+ +| 4 | Optional parameters | ++------+----------------------------------------+ + +Please refer to the `trac` section of the FEHM User's Manual for the meanings of the parameters on the first three lines. On the fourth line, optional parameters may be defined, using the form `variable=value` (no spaces), with commas between these pairs. The variables that may be set here are `ISKIP`, `RSDMAX`, and `STRAC_MAX`. Please refer to the `rxn` section of the FEHM User's Manual for the meanings of these variables. (`STRAC_MAX` is the maximum allowable saturation for vapor and Henry's Law species. When using `trac`, it is read if provided in the input file; however, it is not documented in the `trac` portion of the FEHM User's Manual.) `ISKIP` and `RSDMAX` are used only if reactions are enabled (see `rxn` below). If these optional variables are omitted, they are given the values shown in the example below. + +Below is an example of the `header` block. + +.. code:: + + header + 0.0 1.0 1.0e-6 1.0 # ANO, AWC, EPC, UPWGTA + 0.0 1e20 1e20 1e20 # DAYCS, DAYCF, DAYHF, DAYHS + 10 2.0 1.0 150000.0 1 # IACCMX, DAYCM, DAYCMM, DAYCMX, NPRTTRC + iskip=0, rsdmax=1e-9, strac_max=0.99 + + +Please note that the keyword ``userc`` is not supported in the ``header`` block. For ``userc`` support, please refer to the `userc` block below. Also, unlike in ``trac``, ``NPRTTRC`` may not be omitted from the header. + +``userc`` +--------- + +This block invokes the solute transport user subroutine as specified in the ``trac`` section of the user's manual. On the same line as the macro name should be given the path to a file containing userc parameters. See the `trac` section of the user's manual for more information on the `userc` input format. + +Below is an example of ``userc``: + +.. code:: + + userc input/userc.dat + + +In this example, the ``userc`` subroutine is called with an input file located at ``input/userc.dat``. + +``comp`` +-------- + +The ``comp`` block is used to define each component present in the simulation. (A component is any group of compounds, ions, etc., all of the same phase, that the user wishes to be treated as a single entity by the tracer solver.) It contains one line for each component, and each line consists of a phase designation for that component and the name of the component. The phase designation is one of "aqueous", "solid", "gas", and "henry"; these may be shortened to the first character to save time. + +If kinetic reactions (``rxn`` macro) are being simulated, two additional columns may be included. The `master` column indicates the "master species" for each aqueous or Henry's Law component. These master species are arbitrarily chosen forms of the components, by convention the form that is expected to dominate in reactions. The third column, `guess`, allows the user to specify a guess for the initial uncomplexed concentration of each aqueous and Henry's Law component. This is not necessary unless the chemical speciation solver has difficulty converging with the default value of 1×10^-9^, in which case specifying a more representative value may help. If this is not necessary, leave the column out entirely, or place asterisks in the rows of components that do not need help converging. + +Below is an example of the ``comp`` block: + +.. code:: + + comp master guess + aqueous H H+ * + aq C_a HCO3- 8.6e-6 + a Na_a Na+ * + a Ca_a Ca++ * + a C_a2 CO3-- * + a Cl_a Cl- 2.0e-9 + a U238 U02 * + a Th234 ThO2 * + solid AlO3 * * + s NaCl * * + s NaHCO3 * * + s CaCl2 * * + gas O2 * * + g N2 * * + henry C_h2 C6H6 1.2e-8 + h Cl_h Cl2 * + h C_h CO2 * + + +In this example, there are 17 components. "H", "C_a", "Na_a", "Ca_a", "C_a2", +"Cl_a", "U238", and "Th234" are aqueous; "AlO3", "NaCl", "NaHCO3", and "CaCl2" +are solid; "O2" and "N2" are gaseous, and "C_h", "Cl_h", and "C_h2" may be liquid +or gas according to Henry's Law. + +``water``, ``rock``, ``gas`` +---------------------------- + +These blocks are identical in form, and they are used to assign concentrations in + the simulation for components of different states. These blocks allow the user to + specify different "water types", "rock types", and "gas types", which may consist + of different combinations of components specified in `comp` in different concentrations. + See the `moles` block below for an alternative input format. + + +On the same line as the block name, the names of components specified in `comp` + are placed, separated by tabs or spaces. These are column headers. Below this line, + one line is given to each "type" desired. Each line consists of the name of the type, + followed by numbers representing the concentrations of each of the components given + in the column headers in that type. If the columns are separated by tabs, + this layout forms a neat table with types down the left side, components across + the top, and the concentration of each component in each type at the intersections + of the rows and columns. + + +Only aqueous and Henry's Law components may be included in the `water` block, +only solid components in the `rock` block, and only gaseous and Henry's Law +components in the `gas` block. In the `water` block, a special column header, +`pH`, may be included. This is the same as heading the column with "H" +(and may only be done if "H" is specified in `comp` and is aqueous), but +allows the user to enter H+ concentration in terms of pH rather than molarity. +If a concentration in the grid is negative, it is assumed that the value entered +is the base-ten logarithm of the actual concentration, and the value is adjusted +accordingly. + + +An asterisk ("*") in a space where a number is expected is the same as a 0. If a +component is omitted entirely from the table, it is assumed that that +component is not present in the simulation. +The unit for all numbers in these tables is molal, with the exception of the +`pH` column, if present. + + +A negative value in the grid for a water or gas inflow type indicates that +the concentration of that solute will be held constant at inflow nodes of that water type. +Negative values in initial condition types should be avoided. + + +An example of each of the four block types, consistent with the sample `comp` +block above, is given below: + +.. code:: + + water pH C_a Na_a C_a2 C_h2 + wt1 7.43 1e-6 1.34e-5 1e-10 0.3 + wt2 5.4 1e-3 0.002 2.4e-6 2.3 + wt3 2.3 0 10 0 0 + + rock AlO3 NaCl NaHCO3 + tuff 3.4e-2 1.24 1.6e-6 + granite 3e-5 1.5e-2 6e-5 + clay 0.3 3.9e-3 0.03 + + gas O2 N2 Cl_h C_h + vt1 0.23 0.10 1.24 2 + vt2 1.02 0.012 0.2 0 + + +In this example, there are three water types ("wt1", "wt2", and "wt3"), three rock +types ("tuff", "granite", and "clay"), and two vapor types ("vt1" and "vt2"). +Water type "wt1" has a pH of 7.3, an HCO3- concentration of 1×10^-6^ //m//, an Na+ +concentration of 1.34×10^-5^ //m//, a CO3-- concentration of 1×10^-10^ //m//, +and a C6H6 concentration of 0.3 //m//. + +``print`` +--------- + +The `print` block allows the user to specify for which components and complexes information is to be printed to tracer output(`.trc`) files. This block occupies only one line. After the keyword `print` is given a list of aqueous component and complex names that are to be printed, delimited by spaces, tabs, or commas. The keywords `all` and `none` may be given instead of the list, specifying that information is to be printed for all or none of the aqueous components and complexes, respectively. The default action, if no `print` block is specified, is the same as specifying `print all`. This information is only used if reactions are enabled. + +Below is an example of the `print` block: + +.. code:: + + print UO2 HCO3- Na_a Ca_a + + +In this example, information will be printed only about UO2, HCO3-, Na_a, and Ca_a. + +``moles`` +--------- + +This block allows the user to specify initial solute conditions as the total number of moles contained in each zone. FEHM will distribute the specified number of moles evenly throughout the volume of the zone. The `moles` block conflicts with the `water`, `rock`, and `gas` columns in the `assign` block, and they cannot both appear in the same `trxn` macro. + +The `moles` block allows the use of custom zone definitions. Unlike standard zones, these zones are permitted to overlap, and the concentrations at nodes in overlapping zones become cumulative. If these custom zones are to be used, a separate file must be created, containing a valid zone macro that defines the desired zones. Due to limited functionality in the `trac` macro, all zones in this macro must be specified using the `nnum` method and zones must be numbered rather than named. (See the manual section on the `zone` macro for more information.) Alternatively, the zones defined in previous `zone` macros may be used. + +On the same line as the `moles` keyword in this block, the path to the alternate zone file should be provided. If the standard zone definitions are to be used, leave the path blank or explicitly turn the alternate zone processing off by providing an asterisk in the place of the path. The next lines form a table with component names from `comp` across the top and zone numbers down the left-hand side. At the intersections of rows and columns is placed the number of moles of that component initially in that zone. Any omitted zones or components are assigned a zero concentration. + +Below is an example of the `moles` block: + +.. code:: + + moles input/moles.zone + C_a Na_a C_a2 C_h2 + 2 0 1.6 0.02 1 + 3 0 1.7 0.6 0.89 + 5 0 2 0.045 2.2 + 4 1.2 0 0.102 1.61 + + +In this example, zone definitions are loaded from the file `input/moles.zone`, which remain in effect for the rest of the `moles` macro. Zone 2 contains 1.6 moles of Na_a, 0.02 moles of C_a2, and 1 mole of C_h2 distributed evenly throughout it. + +``hparam`` +---------- + +The ``hparam`` block is used to assign Henry's Law parameters to different Henry's Law components. Each Henry's Law component appearing in `comp` must be included in this block. Below the block title `hparam`, each Henry's Law component is given one line. Each of these lines consists of the name of the Henry's Law component, the model that will be used to simulate that component, and then several `parameter=value` pairs (separated by commas), specifying parameters for each model. The models and their parameters are as follows: + ++----------------+-------------------------------------------------------------------------------------------------------------------------+ +| Option | Description | ++================+=========================================================================================================================+ +| `1` or `hoff` | van't Hoff model. Parameters: :math:`ah - A_H; dhh - \delta H_H` | ++----------------+-------------------------------------------------------------------------------------------------------------------------+ +| `2` or `multi` | Multi-parameter fit. Parameters: :math:`ahn - A_Hn` for each n from 1 to 5 | ++----------------+-------------------------------------------------------------------------------------------------------------------------+ +| `3` or `wvp` | Use water vapor pressure. Parameters: :math:`ah-A_H`; hh - Henry's constant modifier :math:`H=P_{wv} \cdot \Delta H_H` | ++----------------+-------------------------------------------------------------------------------------------------------------------------+ + +Below is an example of an `hparam` block that uses all three of the above models: + +.. code:: + + hparam + C6H6 hoff ah=0.34, dhh=3.2 + Cl2 multi ah1=4.12, ah2=2.4, ah3=4, ah4=0.18, ah5=1.1 + CO2 wvp hh=2.8, ah=0.04 + + +In this example, Henry's Law component C6H6 is simulated using the van't Hoff model. Its A,,H,, value is 0.34, and its ΔH,,H,, value is 3.2. + +``diff`` +-------- + +This block sets the molecular diffusion coefficients and diffusion models for liquid +and vapor components. Due to technical restrictions imposed by FEHM's solver, +there can only be one liquid and one vapor diffusion coefficient for the entire model. +The ``diff`` block consists of one line. After the keyword are up to four name/value pairs, where the name is `l` to set the liquid diffusion coefficient, `v` to set the vapor diffusion coefficient, `lm` to set the liquid diffusion model, or `vm` to set the liquid diffusion model. The possible values for the diffusion models are as follows: + ++---------------+---------------------------------------------------------------------------------------------------------+ +| Option | Description | ++===============+=========================================================================================================+ +| `0` or `con` | Constant molecular diffusion coefficient | ++---------------+---------------------------------------------------------------------------------------------------------+ +| `1` or `mq` | Millington-Quirk diffusion model | ++---------------+---------------------------------------------------------------------------------------------------------+ +| `2` or `cw` | Conca-Wright diffusion model for liquid, or alternate Millington-Quirk model for vapor | ++---------------+---------------------------------------------------------------------------------------------------------+ +| `3` or `adif` | Diffusion model calculated as a function of pressure and temperature using tortuosity from `adif` macro | ++---------------+---------------------------------------------------------------------------------------------------------+ + + +Below is an example of the ``diff`` block: + +.. code:: + + diff l=1e-9, v=1.6e-8 lm=0, vm=con + + +In this example, the liquid diffusion coefficient is 1×10^-9^, and the vapor diffusion coefficient is 1.6×10^-8^. Both liquid and vapor use a constant molecular diffusion coefficient. + +``disp`` +-------- + +This block is used to set the dispersivity constants of regions of the simulation. Dispersivity parameters are applied to dispersivity models, which are applied to zones in the `assign` block. Model names run down the left side of the block, and parameters run across the top. Dispersivity can be supplied either for the X, Y, and Z directions, or for the longitudinal and transverse directions. Parameter names consist of two characters: the first `l` or `v` for liquid or vapor, and the second `x`, `y`, `z`, `l`, or `t` for X, Y, Z, longitudinal, or transverse, respectively. Parameter names from the two modes of setting dispersion cannot be mixed. + +Below is an example of the ``disp`` block: + +.. code:: + + disp lx ly lz vx vy vz + model1 0.2 3 1.5 0.28 3.6 1.92 + model2 0.18 0.9 2.361 1.22 0.56 0.58 + + +In this example, X/Y/Z dispersivity is set. There are two models, named `model1` and `model2`. The liquid dispersivity for `model1` is 0.2 in the X direction, 3 in the Y direction, and 1.5 in the Z direction. The vapor dispersivity for `model1` is 0.28 in the X direction, 3.6 in the Y direction, and 1.92 in the Z direction. + +``sorp`` +-------- + +This block sets adsorption parameters for selected components. On the same line as the block title should appear any or all of the following column headers: + ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| Header | Description | ++=========+============================================================================================================================================+ +| `ltype` | The type of adsorption model to be used to simulate liquid adsorption. See below for the possible adsorption models from which to choose. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| `a1l` | :math:`\alpha_1` parameter in liquid adsorption model. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| `a2l` | :math:`\alpha_2` parameter in liquid adsorption model. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| `bl` | :math:`\beta` parameter in liquid adsorption model. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| `vtype` | The type of adsorption model to be used to simulate vapor adsorption. See below for the possible adsorption models from which to choose. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| `a1v` | :math:`\alpha_1` parameter in vapor adsorption model. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| `a2v` | :math:`\alpha_2` parameter in vapor adsorption model. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| `bv` | :math:`\beta` parameter in vapor adsorption model. | ++---------+--------------------------------------------------------------------------------------------------------------------------------------------+ + +If a column header is not specified, it is assumed to be zero for every component. + +The following are the available adsorption models to use for ``ltype`` and ``vtype``: + ++----------------+---------------------------------------+ +| Option | Description | ++================+=======================================+ +| `0` or `con` | Conservative solute | ++----------------+---------------------------------------+ +| `1` or `lin` | Linear sorption isotherm | ++----------------+---------------------------------------+ +| `2` or `freu` | Freundlich sorption isotherm | ++----------------+---------------------------------------+ +| `3` or `mfreu` | Modified Freundlich sorption isotherm | ++----------------+---------------------------------------+ +| `4` or `lang` | Langmuir sorption isotherm | ++----------------+---------------------------------------+ + +The :math:`\alpha_1, \alpha_2,` and :math:`\beta` parameters are used differently +according to the adsorption model chosen: + ++---------------------+-----------------------------------------------------------+---------------------------------+------------------+-----------------------+ +| Model | Expression | :math:`\alpha_1` | :math:`\alpha_2` | :math:`\beta` | ++=====================+===========================================================+=================================+==================+=======================+ +| Linear | :math:`C_r = K_d \cdot C_l` | :math:`K_d` | 0 | 1 | ++---------------------+-----------------------------------------------------------+---------------------------------+------------------+-----------------------+ +| Freundlich | :math:`C_r = \Lambda \cdot C_1^\beta` | :math:`\Lambda` | 0 | :math:`0 < \beta < 1` | ++---------------------+-----------------------------------------------------------+---------------------------------+------------------+-----------------------+ +| Modified Freundlich | :math:`C_r / (C_{r,max} - C_r) = \Lambda \cdot C_l^\beta` | :math:`\Lambda \cdot C_{r,max}` | :math:`\Lambda` | :math:`0 < \beta < 1` | ++---------------------+-----------------------------------------------------------+---------------------------------+------------------+-----------------------+ +| Langmuir | :math:`C_r = (r_b \cdot C_l) / (1 + r \cdot C_l)` | :math:`r_b` | r | 1 | ++---------------------+-----------------------------------------------------------+---------------------------------+------------------+-----------------------+ + +For a more in-depth description of the models used for sorption, please refer to the FEHM Models and Methods Summary. + +Models are designated by a line starting with a period ("."), immediately followed by the name of the model and nothing else. On the next several lines, components specified in `comp` may be given, with their corresponding parameters for the current model in the correct column. The same components, in the same order, must be given in each model. If a component is liquid- or vapor-only, then asterisks should be placed in the columns that do not apply to that component. An asterisk can also be placed in the column containing component names to indicate that all components that have not yet been explicitly given sorption parameters should use the model on the line with the asterisk. Thus, to assign the same sorption parameters to all components, only one line per model would be supplied, containing an asterisk in the first column. + +Below is an example `sorp` block: + +.. code:: + + sorp ltype a1l a2l bl vtype a1v a2v bv + .model1 + CO3-- freu 3.02 0.061 0.89 * * * * + C6H6 lin 0.89 3.16 0.2 freu 0.35 4.519 0.688 + CO2 mfreu 1.20 3.31 0.4 con 0.01 2.01 0.61 + .model2 + CO3-- con 0.001 2.02 0.88 * * * * + C6H6 con 1.20 0.58 1.12 lin 2.2 2.043 2.7 + CO2 mfreu 3.006 1.0 9.8 mfreu 0.229 3.434 2.33 + + +In this example, C6H6 is modeled using the linear sorption isotherm model with a liquid α,,1,, parameter of 0.89 and a vapor α,,1,, parameter of 0.35 in adsorption model `model1`, and modeled using the conservative solute model with a liquid α,,1,, parameter of 1.20 and a vapor α,,1,, parameter of 2.2 in model `model2`. + +If ``sorp`` is omitted, it is assumed to contain zeros for all values except the β parameters, which are assumed to be 1. + +``cden`` +-------- + +The `cden` block allows the user to input the molecular weights of aqueous and aqueous Henry's Law components and have the code adjust the density of the water according to the concentrations of these components. It should not be used if `trxn` is preceded by a `cden` macro, as some values may be modified. `cden` accepts several lines, each consisting of the name of a master species and its molecular weight, separated by spaces, tabs, or commas. + +Below is an example of the ``cden`` block: + +.. code:: + + cden + HCO3- 61 + CO3-- 60 + C6H6 78 + + +In this example, HCO3- is defined to have a molecular weight of 61, CO3-- to have a molecular mass of 60, and C6H6 to have a molecular mass of 78. + +If database lookup is enabled (see the `lookup` block below), one of the lines in `cden` may consist of only an asterisk. If such a line is provided, all components that `lookup` dynamically imports will be inserted into the `cden` block with the appropriate molecular weights. These imported molecular weights can be overridden by explicitly listing the component and its desired molecular weight on a separate line. + +``group`` +--------- + +The information in this block is only used if reactions are enabled (see ``ctrl`` above). It is used to group aqueous components that take part in rapid kinetic reactions. On the line below the keyword `group`, place one line for each group. Each line should contain the names of all aqueous components present in that group, separated by spaces, tabs, or commas. + +Below is an example of the `group` block: + +.. code:: + + group + H + C_a Cl_a + Na_a Ca_a Ca_a2 + U238 Th234 + + +In this example, H is in its own group, C_a and Cl_a are in a group together, Na_a, Ca_a, and Ca_a2 are grouped together, and U238 and Th234 are grouped together. + +``cplx`` +-------- + +The `cplx` block allows the user to specify instantaneous reactions that form aqueous complexes from the aqueous master species and non-aqueous components specified in `comp`. One equation is specified on each line, using a slightly modified version of the standard reaction format detailed in the `rxn` block below. The left side of the reaction should contain only the name of the aqueous complex, without a number denoting its stoichiometry (the stoichiometry of the aqueous complex must be 1). The right side should contain stoichiometry/compound pairs as specified by the standard format. If a compound needs to be removed to make the aqueous complex, negate its stoichiometry. After the equation, two comma-separated values in the format `variable=value` (not padded by spaces) are required: `ckeq` for the equilibrium constant of that complex, and `heq` for the enthalpy of the formation of that complex. On the same line as the keyword `cplx`, the keyword `log10` may be provided to denote that the values for all constants in the block will be given as the base-ten logarithm of the actual values. Asterisks supplied in place of the equilibrium constant or enthalpy value always signify a zero, even if the `log10` keyword is specified. + +If the keyword `equi` is supplied on the same line as the block name, the `equi` block below will be consulted to calculate equilibrium constants as functions of temperature. In this case, the `log10` keyword and any values given to the right of the equations will be ignored. + +If the database lookup option is enabled (see the `lookup` block below), complexes from the `% CPLX` section of the database file may be imported using a line that omits the right-hand side of the equation, and possibly the equilibrium information as well. If such a line is encountered, the code will search for the named complex in the lookup database, and import the complex's constituents, stoichiometry, and equilibrium-related constants. The `comp` block will be automatically updated to include all components required for the imported complexes. Note that the `equi` option cannot be used if database lookup is enabled, as this conflicts with the five-parameter fit used by PHREEQC databases for calculating the equilibrium constant as a function of temperature. These equilibrium values can be overridden by placing explicit values for ckeq and heq on the same line. + +Below is an example of `cplx`: + +.. code:: + + cplx log10 + CaHCO3+ = 1 Ca++ + 1 HCO3- ckeq=-13.456, heq=0 + OH- = -1 H+ ckeq=-14, heq=0 + Ca2UO2(CO3)3 = 2 Ca++ + 2 UO2 + 3 HCO3- + -3 H+ ckeq=-20.26, heq=* + MgHPO4 + + +In this example, there are four complexes. The complex Ca2UO2(CO3)3 is made by combining 2 Ca++, 2 UO2, and 3 HCO3- and removing 3 H+. The information for the complex MgHPO4 is automatically imported from the database given in the `lookup` block. All six equilibrium and enthalpy values are given as the base-ten logarithms of their actual values. The equilibrium constant for CaHCO3+ is 1.0×10^-13.456^. The enthalpies of CaHCO3+ and OH- are 1.0×10^0^ = 1, but the enthalpy of Ca2UO2(CO3)3 is zero. + +``equi`` +-------- + +This block allows equilibrium constants for aqueous complexes from the `cplx` block above to vary with temperature. If the keyword `equi` is provided in the `cplx` block above, `trxn` will not read equilibrium constants in `cplx`; instead, the `equi` block will be used to determine the constants as a function of temperature. + +Every aqueous complex appearing in `cplx` must be included in `equi`. For each aqueous complex, a line should be provided that contains only the name of the complex, prefixed by a single period. On the lines that follow, the equilibrium constants should be specified by placing on each line a temperature in o C, a tab or space, and the equilibrium constant at that temperature. The number of temperatures need not be the same for each complex. + +Below is an example of the `equi` block: + +.. code:: + + equi + .CaHCO3+ + 0 1e-10 + 10 2e-10 + 40 4e-9 + .OH- + 0 1e-14 + .CaUO2(CO3)3 + 20 1.3e-8 + 40 2.64e-6 + 60 8.7e-4 + 80 2.1e-1 + + +In this example, CaHCO3+ has an equilbirium constant of 1×10^-10^ at 0o C, 2×10^-10^ at 10o C, and 4×10^-9^ at 40o C. OH- has an equilibrium constant of 1×10^-14^ at all temperatures. + +``dist`` +-------- + +This block specifies distribution models that can be used for reaction types 1 and 2 to describe the distribution coefficient as a function of temperature. For each distribution model, a line beginning with a period and then the name of the model (without a separating space) is given. This is followed by a set of temperature/distribution coefficient pairs, one per line, for as many lines as desired. FEHM will perform a piecewise linear interpolation between the values given to determine the value of the distribution coefficient for intervening temperatures. + +Below is an example of the `dist` block: + +.. code:: + + dist + .model1 + 0 1 + 10 2 + 20 4 + 30 8 + 40 16 + .model2 + 0 20 + 50 40 + 100 70 + + +There are two models in this example. The first one, `model1`, has five data points at 10o C intervals from 0 to 40o C. The distribution coefficient at 0o C is 1, the coefficient at 10o C is 2, and the coefficient at 20o C is 4. Intermediate temperatures are linearly interpolated, so the distribution coefficient for `model1` at 25o C is 6. + +``sol`` +------- + +The ``sol`` block specifies solubility models that can be used for reaction types 7 and 8. For each solubility model, a line beginning with a period, immediately followed by the model name, is given. This is followed by temperature/solubility coefficient pairs, one per line, for as many lines as desired. FEHM will perform a piecewise linear interpolation between the values given to determine the solubility coefficient for intervening temperatures. + +Below is an example of the `sol` block: + +.. code:: + + sol + .model1 + 0 0 + 10 1e-16 + 20 1e-4 + 30 1e-2 + 50 1 + + +This example contains one model, `model1`. In this model, the solubility coefficient changes from 0 to 1 over a range from 0o C to 50o C. The solubility coefficient at 10o C is 1×10^-16^, and the coefficient at 20o C is 1×10^-4^. Because FEHM linearly interpolates between successive values of the solubility coefficient, the coefficient at 40o C is 0.505. + +``lookup`` +---------- + +This block enables the dynamic lookup process for mineral dissolution and aqueous complexation. `lookup` uses a lookup database (generated by `trxndb` from a USGS PHREEQC geochemical database) to determine which reactions occur among a specific set of minerals and aqueous complexes. The `lookup` block adds data to the `comp`, `cden`, `group`, `cplx`, and `rxn` blocks based on the information provided it. + +In order to use `lookup`, a database in `trxn`'s standard format must be supplied. This format is as follows: + +.. code:: + + Keyword `% MASTER`\\ + Blank line(s)\\ + Component 1 parameters: component 1 name, component 1 master species name, component 1 molar mass\\ + Component 2 parameters...\\ + Blank line(s)\\ + Keyword `% CPLX`\\ + Blank line(s)\\ + Complex 1 name\\ + Complex 1 products: product 1 stoichiometry, product 1 name; product 2 stoichiometry, product 2 name...\\ + Equilibrium constant for this complex\\ + Enthalpy of reaction for this complex\\ + Up to five values defining temperature dependence of equilibrium constant: A,,1,,, A,,2,,, A,,3,,, A,,4,,, A,,5,,, where log,,10,, K = A,,1,, + A,,2,, · T + A,,3,, / T + A,,4,, · log,,10,, T + A,,5,, / T^2^.\\ + Blank line(s)\\ + Complex 2 parameters...\\ + Blank line(s)\\ + Keyword `% MIN`\\ + Blank line(s)\\ + Mineral 1 name, mineral 1 formula\\ + Mineral 1 products\\ + Equilibrium constant for this mineral\\ + Enthalpy of reaction for this mineral\\ + Up to five values defining temperature dependence of equilibrium constant\\ + Blank line(s)\\ + Mineral 2 parameters...\\ + Blank line(s)\\ + Keyword `% END`\\ + + +Comments can be included anywhere in the input file by using a pound sign ("#"). + +Below is a brief example of a database in this form. + +.. code:: + + % MASTER + + E e- 0 + H H+ 1.007942 + Mn(+2) Mn++ 54.938045 + Mn(+3) Mn+++ 54.938045 + F F- 18.9984032 + Al AlOH++ 26.9815386 + Si H4SiO4 28.08554 + Mg Mg++ 24.305 + Ca Ca++ 40.0782 + S HS- 32.0652 + Fe Fe++ 55.845 + + % CPLX + + Al+++ + 1 AlOH++ 1 H+ + -5.00 + 11.49 + -38.253 0.0 -656.27 14.327 + + Mn++ + 1 e- 1 Mn+++ + -25.510 + 25.800 + + + MnF+ + 1 Mn++ 1 F- + 0.840 + + % IMM + + Sepiolite Mg2Si3O7.5OH:3H2O + 3 H4SiO4 -4 H+ 2 Mg++ + 15.760 + -10.700 + + Fluorite CaF2 + 1 Ca++ 2 F- + -10.600 + 4.690 + 66.348 0.0 -4298.2 -25.271 + + + Pyrite FeS2 + 2 HS- -2 e- 1 Fe++ -2 H+ + -18.479 + 11.300 + + % END + + +In this example, there are three complexes and three minerals. The first complex is Al+++, which is formed by the master species AlOH++ and H+. Its equilibrium constant is -5.00, its enthalpy of formation is 11.49, and four of five possible temperature-dependence parameters are supplied. For the complex MnF+, no enthalpy of formation or temperature-dependence parameters are supplied. + +A conversion script, ``trxndb``, is available to automate conversion of certain USGS PHREEQC input files to the appropriate format. The converter script understands a limited subset of the complete syntax used in PHREEQC input files; if it gives improper results or errors, ensure that the input file is in a consistent format and that the keywords `log_k`, `delta_h`, and `-analytic` are used rather than their shortened alternatives. An example file that can be converted flawlessly by `trxndb` can be found at `/scratch/nts/ms/trxn/geochem/phreeqc.dat`. The converter script is written in Perl and located at `/scratch/nts/ms/trxn/geochem/trxndb`. The script should be called with the name of the PHREEQC input file as the only argument. It will create a file in the same directory with the same name and extension `trxd` containing the `trxn`-compatible database. For example: + +.. code:: + + $ ls + phreeqc.dat + $ /scratch/nts/ms/trxn/geochem/trxndb phreeqc.dat + 45 master species, 187 solution equations read + 58 mineral equations read + 45 master species, 180 solution equations written + 57 mineral equations written + $ ls + phreeqc.dat phreeqc.trxd + $ + + +The ``lookup`` block must be the first block in the ``trxn`` macro (excepting the ``ctrl`` block if it is used) and consists of one line, which contains the block name `lookup` and the full path to the database file. The `lookup` block should be followed by a blank or commented line. + +Below is an example of the ``lookup`` block. + +.. code:: + + lookup /scratch/nts/ms/trxn/geochem/phreeqc.trxd + + +In this example, the database is located at ``/scratch/nts/ms/trxn/geochem/phreeqc.trxd``. + +Once ``lookup`` has been enabled, the ``cden``, ``cplx``, and ``rxn`` blocks may be modified by the user to utilize the information from the lookup database. Please see the sections for these blocks for the appropriate syntax to take advantage of this information. If the `debug` option is provided in the `ctrl` block, the final version of each block will be printed to the output (`.out`) file, which may aid in debugging if the results of the run are not as expected. + +``rxn`` +------- + +The ``rxn`` blocks are used to model kinetic reactions between simulated compounds. Seven types of reactions my be used, each with its own input parameters and input format. `rxn` is intended to be specified multiple times, once for each reaction that is taking place. For each reaction, the first line of the block contains the keyword `rxn` and the number representing the type of the reaction (see below). The next several lines are used for the parameters unique to that reaction type, which are detailed below. The end of the `rxn` block is signaled by a blank line. + +Most of these reactions take one line of input in the standard reaction format, which is used to specify reactants, products, and stoichiometries simultaneously. In this format, each reactant or product is specified by a number denoting the stoichiometry of that compound, a space, and then the name of the compound as given in `comp`. Compounds are separated from each other by a plus sign padded on either side with spaces (" + "). The products and reactants are separated from each other by a token containing an equals sign ("="). Optionally, directional indicators may be added to the equals sign to indicate the direction of the reaction (e.g., "=>"). The reactants must be placed on the left side of the equals sign, and the products on the right side. For example: + +.. code:: + + 6 HCl + 2 Al_s => 2 AlCl3 + 3 H2 + + +The reaction types and their parameters are as follows. A depthier description of the mechanics of each type of reaction can be found at the end of the `rxn` section of the FEHM User's Manual. + ++---------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Number | Type | Description | ++=========+====================================+===============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| 1 | Linear kinetic reaction | This reaction accepts one aqueous reactant and one solid product with 1:1 stoichiometry. The first parameter line for this reaction is a reaction in standard format, without the stoichiometric coefficients. The second parameter line in a list of comma-separated name/value pairs, where the acceptable names are `rate` to specify the rate of the reaction and `distcoef` to specify the distribution coefficient. The value for `distcoef` my be a real number of the coefficient is constant, or the name of a model specified in `dist` (without the beginning period). | ++---------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 2 | Langmuir kinetic reaction | This reaction's parameter input is identical to the input for reaction type 1 except for an extra available parameter for the name/value pairs. This parameter is `maxconc`, used to set the maximum concentration that can sorb. | ++---------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 3 | General kinetic reaction | This reaction accepts its first line of of input as a generic reaction in the standard format described above. This is followed by a line of name/value pairs, for which the name can be `forward` to set the forward rate constant for the reaction or `reverse` to set the reverse rate constant. | ++---------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 4 | Dual Monod biodegradation reaction | The first three to six parameter lines of this reaction consist of a name, a colon, and one or more component/complex names. The name `substrate` accepts a single immobile component name that is to be the substrate that is degraded. The name `electronacceptor` accepts the stoichiometry and name (separated by a space) of the aqueous complex that is the electron acceptor for the reaction. The name `biomass` accepts the stoichiometry and name of the solid component that is the biomass produced by the reaction. The name `reactants` is optional and accepts the stoichiometries and names of any extra reactants that are participating in the reaction. Likewise, `products` is optional and accepts the names of any extra products of the reaction. Only a total of three additional reactants and products can be specified. If only certain forms of the substrate are biodegradable, those can be listed with the `biodegradable` name.\\The last parameter line contains a list of name/value pairs as follows: `ks` - the half-maximum-rate concentration of the substrate; `ka` - the half-maximum-rate concentration of the electron acceptor; `decay` - the microbial decay rate (1/hr); `phthreshold` - the pH threshold above which biodegradation will not occur; `qm` - the maximum rate of substrate utilization (mol/kg biomass/hr); `yield` - the microbial yield coefficient (kg biomass/mol substrate); `xminit` - the minimum concentration of biomass (mol/kg rock). | ++---------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 5 | Radioactive decay reaction | This reaction accepts one aqueous component reactant and one aqueous component product with 1:1 stoichiometry. This first parameter line is a reaction in standard format without stoichiometric coefficients. The reactant is the component that is decaying, and the product is the decay product. If the decay product is not being modeled in the simulation, an asterisk may be given in place of the product name. The second parameter line contains a single name/value pair. The name is `halflife`, and the value is the half-life of the reaction in years. | ++---------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 7 and 8 | Precipitation/dissolution reaction | For reaction type 7, the rates are based on the total aqueous concentration of the components; whereas for reaction type 8, the rates are based on the free-ion concentrations alone. This reaction accepts one solid component and any number of aqueous master species. The first line of input for this reaction should be a reaction in standard format, containing only a solid component on one side, and at least one master species on the other. The second line should contain the following name/value pairs: `solubility` - the solubility product (either a real number or the name of a solubility model specified in `sol`); `rate` - the reaction rate (mol/m^2^/s); `sarea` - the surface area of the mineral (m^2^/m^3^ rock); `molecularweight` - the molecular weight of the mineral; `density` - the density of the mineral. `molecularweight` and `density` should only be provided for reaction type 8.\\For reaction types 7 and 8 only, if the database lookup option is enabled (see the `lookup` block above), an alternate form of the reaction can be input. On the first line of the reaction, provide only the name of a mineral defined in the `% IMM` section of the lookup database. The information on the reactants and products, as well as the solubility constant, are imported from the database, and any components that are necessary for the reaction are dynamically added to the `comp` block. However, the `rate` and `sarea` parameters (and `molecularweight` and `density` parameters for reaction type 8) are not contained in the database, and must still be set by the user on the second line of the reaction. | ++---------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Please note that in all name/value pairs, the name and value must be separated by only an equals sign that is not padded by spaces. + +Here is an example of each reaction type. Two versions of reaction type 5 are given to demonstrate the optional unsimulated daughter species, and two versions of reaction type 7 are provided to demonstrate the database lookup option. + +.. code:: + + rxn 1 + Ca_a <=> Ca_s + rate=10, distcoef=2 + + rxn 2 + Ca_a <=> Ca_s + rate=10, maxconc=2, distcoef=model2 + + rxn 3 + 3 H + 2 Ca + 5 U238 <=> Cl + 2 Cl2 + 3 C_a + forward=2, reverse=1.5 + + rxn 4 + substrate: U238 + electronacceptor: 3 H + biomass: Ca + reactants: 2 Cl + products: 1 Na, 5 Th234 + biodegradable: UO2 + ks=1.2, ka=1.35, decay=0.69, phthreshold=8.2, qm=0.20, yield=1.2, xminit=0.067 + + rxn 5 + U238 => Th234 + halflife=20 + + rxn 5 + U234 => * + halflife=10 + + rxn 7 + NaCl <=> Na + Cl + solubility=0.0231, rate=1.02, sarea=2.2 + + rxn 7 + Quartz + rate=0.2, sarea=1 + + rxn 8 + CaCl2 <=> Ca + 2 Cl + solubility=model1, rate=0.2, sarea=5, molecularweight=60, density=5.25 + + +``assign`` +---------- + +This block allows the user to assign the parameters stored in models in the above blocks to the zones defined in the `zone` macro. The `assign` block also allows assignment of some other parameters that are specific to zones. + +Zone numbers run down the side of the `assign` block, and parameters run across the top. The following parameters may be supplied; all are optional: + ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| Option | Description | Default Value | ++=========+===========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+===================================================================================================================+ +| `water` | Sets the initial water type filling the zone. This parameter must be the name of a water type defined in the `water` block. | Pure water | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| `boun` | Sets the concentrations of species coming from inflow nodes in this zone. This parameter may consist of a water type defined in `water` and/or a gas type defined in `gas`. If both a water type and a gas type are flowing in, they should be separated by a period (not padded by spaces). If there is no inflow in this zone, give an asterisk for this parameter. An asterisk can also be used to specify inflow of pure water. | Pure water | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +|`time` | Sets the time range during which the inflow nodes in this zone are injecting, in days. A lone zero ("0") gives no inflow. An asterisk provides no inflow if the entry in the `boun` column is "*" or if the `boun` column is missing, but provides inflow over the entire simulation otherwise. A single number other than zero will give inflow for one day starting at the specified day. A range separated by a greater-than sign (">") not padded by spaces will run injection from the first number specified to the second number. If the number before or after the greater-than is ommitted, it will default to the beginning or end of the simulation, respectively. Thus, ">30" will run injection from time 0 through time 30, "30>" will run injection from time 30 to the end of the simulation, and ">" will run injection for the entire simulation. | Inflow for the entire simulation if valid water/gas types are specified in the `boun` column, no inflow otherwise | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| `rock` | Sets the composition of the rock in this zone. This parameter must be the name of a rock type defined in `rock`. | Rock contains no relevant species | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| `gas` | Sets the initial composition of the gas in this zone. This parameter must be the name of a gas type defined in `gas`. If there is no gas in this zone, give an asterisk for this parameter. | No gas | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| `disp` | Sets the dispersivity constants for this zone. This parameter must be the name of a dispersivity model defined in `disp`. | No dispersivity | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| `sorp` | Sets adsorption parameters for this zone. This parameter must be the name of an adsorption model defined in `sorp`. While the models in `sorp` are defined by starting the line with a period, do not include the period in this parameter. | No adsorption for any components | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| `tpor` | Sets the optional tracer porosity for this zone. This parameter must be a real number from 0 to 1. | 0.32 | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| `opt` | Sets miscellaneous options per-zone. Options should be separated by periods with no spaces. The available options are: `const` causes the concentrations of solutes in the inflow water to be held constant at nodes in the current zone; `accum` enables solute accumulation in the current zone. Note that `const` and `accum` are mutually exclusive. An asterisk can be used to specify no options. | No options | ++---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ + +An asterisk may be given for any of the parameters above for a given zone, in which case the default values given above are used. If an entire column is omitted, that parameter will be given the default values shown above for every zone. If a zone is omitted, it will receive default values for every column. Nodes that are not in any zone at the time when `trxn` is called will also receive default values. + +Below is an example of the ``assign`` block. + +.. code:: + + assign water rock gas boun time disp sorp tpor + 1 wt3 granite * vt1.wt1 20>30 model1 model1 0.28 + 2 wt2 clay vt2 * * model2 model2 0.69 + 3 wt2 granite vt2 * * model1 model2 0.32 + + +In this example, there are three zones. The first zone is initially filled with water of type `wt3` and no gases, and water of type `wt1` and gas of type `vt1` are flowing into it starting at time 20 days and ending at time 30 days. Its rock is of type `granite`, it uses the dispersivity parameters defined in `model1` and the adsorption parameters defined in `model1`, and has a tracer porosity of 0.28. Note also that zones 2 and 3 have no inflow. + +After specifying all applicable blocks, use the `end trxn` keyword to end the reading of the `trxn` macro. + +Example +------- + +Below is a complete, commented working example `trxn` macro, with its accompnaying zone macro for reference. This example was taken from the `multi_solute` test case in FEHM's standard verification suite. + + +.. code:: + + zone + default + all + bound + nnum + 2 1 102 + + trxn + + # In the zone macro above, all nodes are placed into the zone named "default", + # except for nodes 1 and 202, which are placed in the zone named "bound". + # Zone "bound" will be used for inflow. + + ctrl rxnon # Enable reactions. + + # Include header information from trac. + header + 1.d-80 1.0 1.e-6 0.5 + 1. 2000 1.0 2000 + 5 5.0 1.e-6 2.8333e-3 0 + iskip=0, rsdmax=1e-10 + + # There are six components in this simulation: aqueous cobalt, iron, and EDTA, + # and solid Co-EDTA, Fe-EDTA, and cobalt. + comp master + a Cobalt Cobalt_a + a Iron Iron_a + a EDTA EDTA_a + s Co-EDTA_s * + s Fe-EDTA_s * + s Cobalt_s * + + # There is only one type of water, called "inflow", which contains 3.16e-5 M + # aqueous cobalt, 1e-13 M aqueous iron, and 3.16e-5 M aqueous EDTA. + water Cobalt Iron EDTA + inflow 3.16e-5 1e-13 3.16e-5 + + # There is one sorption model. It models all components with a linear sorption + # isotherm, using alpha-1 and alpha-2 parameters of zero, and a beta parameter + # of 1. + sorp ltype a1l a2l bl + .smod + Cobalt lin 0 0 1 + Iron lin 0 0 1 + EDTA lin 0 0 1 + + # We assign the liquid diffusion coefficient for the simulation to be 1e-9. + diff l=1e-9 + + # There is one model for dispersivity, "dmod". It sets the dispersivity to + # 0.05 in the X direction, and 1e-34 in the Y and Z directions. + disp lx ly lz + dmod 0.05 1e-34 1e-34 + + # There are two groups for the coupled solver. One contains cobalt and EDTA, + # and the other contains iron. + group + Cobalt EDTA + Iron + + # Here, two aqueous complexes are defined: Co-EDTA and Fe-EDTA. Co-EDTA is + # composed of one aqueous cobalt and one aqueous EDTA; Fe-EDTA is composed of + # one aqueous iron and one aqueous EDTA. Both complexes have enthalpy zero; + # Co-EDTA has equilibrium constant 1e18 and Fe-EDTA has equilibrium constant + # 6.31e27. + cplx + Co-EDTA_a = 1 Cobalt_a + 1 EDTA_a ckeq=1e18, heq=0 + Fe-EDTA_a = 1 Iron_a + 1 EDTA_a ckeq=6.31e27, heq=0 + + # There are four reactions taking place in this simulation. + + # Reaction 1 is a linear kinetic reaction describing the dissolution of + # Co-EDTA. The distribution coefficient is 0.533, and the rate of reaction is + # 1. + rxn 1 + Co-EDTA_a <=> Co-EDTA_s + distcoef=0.533, rate=1 + + # Reaction 2, also linear kinetic, describes the dissolution of cobalt. The + # distribution coefficient is 5.07, and the rate of reaction is again 1. + rxn 1 + Cobalt_a <=> Cobalt_s + distcoef=5.07, rate=1 + + # Reaction 3 is also linear kinetic and describes the dissolution of Fe-EDTA. + # The distribution coefficient here is 0.427, and the rate of reaction is 1. + rxn 1 + Fe-EDTA_a <=> Fe-EDTA_s + distcoef=0.427, rate=1 + + # Reaction 4 is a general kinetic reaction that describes the complexation of + # solid cobalt and Fe-EDTA to form Co-EDTA. The forward rate constant is + # 1.26e-2, and the reaction never occurs in reverse (the reverse rate constant + # is zero). + rxn 3 + Co-EDTA_s = Fe-EDTA_s + Cobalt_s + for=1.26e-2, rev=0 + + # Finally, attributes are assigned to zones. The first zone, "default", con- + # tains most of the nodes; the zone "bound" contains only the inflow nodes. + # The initial water filling both zones is pure water, as signified by the + # asterisks in the water column, and the rock does not contain any species that + # participate in the reactions, as signified by the lack of a rock column. + # (The water column could also have been left out entirely, but is included + # here for clarity.) No inflow occurs in the default zone, as shown by the + # asterisk in the boun column, but water of the "inflow" type defined in the + # water block is flowing in through the nodes in the bound zone from time 1 + # through time 4.167 of the simulation. The dispersivity model "dmod" and the + # sorption model "smod" are applied to both zones. + assign water boun time disp sorp + default * * 0 dmod smod + bound * inflow 1>4.167 dmod smod + + end trxn + + +Below are the ``trac`` and ``rxn`` macros that were replaced by the above ``trxn``, for reference and comparison. + + +.. code:: + + trac + 1.d-80 1.0 1.e-6 0.5 + 1. 2000 1.0 2000 + 5 5.0 1.e-6 2.8333e-3 + 6 + 1 + 1 0. 0. 1. 1.e-9 .05 1.e-34 1.e-34 + + 1 202 1 1 + + + 1 202 101 3.1623e-5 1.0 4.16667 + + 1 + 1 0. 0. 1. 1.e-9 .05 1.e-34 1.e-34 + + 1 202 1 1 + + + 1 202 101 1.e-13 1.0 4.16667 + + 1 + 1 0. 0. 1. 1.e-9 .05 1.e-34 1.e-34 + + 1 202 1 1 + + + 1 202 101 3.1623e-5 1.0 4.16667 + + 0 + + + 0 + + + 0 + + + end trac + rxn + ** NCPLX, NUMRXN + 2,4 + ** Coupling of the aqueous components (dRi/dUj) + 2 + 1 0 1 + 0 1 0 + ** IDCPNT(IC),CPNTNAM(IC),IFXCONC(IC),CPNTPRT(IC) (comp,name,cond.; NCPNT rows) + 1 Cobalt[aq] 0 0 1.e-9 + 2 Iron[aq] 0 0 1.e-9 + 3 EDTA[aq] 0 0 1.e-9 + ** IDCPLX(IX), CPLXNAM(IX),CPLXPRT(IX) (ID # and name of complex, NCPLX rows) + 101 Co-EDTA[aq] 0 + 102 Fe-EDTA[aq] 0 + ** IDIMM(IM), IMMNAM(IM),IMMPRT(IM)(ID # and name of immoblie spec, NIMM rows) + 1 Co-EDTA[s] 0 + 2 Fe-EDTA[s] 0 + 3 Cobalt[s] 0 + ** IDVAP(IV), VAPNAM(IM), VAPPRT(IV) (ID # and name of vapor spec, NVAP rows) + ** Skip nodes + 0 + ** RSDMAX + 1.0e-10 + **** Chemical reaction information for equilibrium reactions ****** + ** LOGKEQ (=0 if stability constants are given as K, =1 if given as log(K)) + 0 + ** CKEQ(IX) ,HEQ(IX) (Stability constants and Enthaplys, NCPLX rows) + 1.0e+18 0 + 6.31e+27 0 + ** STOIC(IX,IC) (Stoichiometric coeff: NCPLX rows, NCPNT columns) + 1.0 0.0 1.0 + 0.0 1.0 1.0 + ** LINEAR KINETIC REACTION (type 1) ** + 1 + ** Where does the reaction take place? ** + 1 0 0 + + ** Aqueous Component/Complex #, Solid Component # + 101 1 + ** Distribution coeffienct (kg water/ kg rock) ** + 0.533 + ** Mass transfer coefficient (1/hr) ** + 1.0 + ** LINEAR KINETIC REACTION (type 1) ** + 1 + ** Where does the reaction take place? ** + 1 0 0 + + ** Aqueous Component/Complex #, Solid Component # + 1 3 + ** Distribution coeffienct (kg rock/ kg water) ** + 5.07 + ** Mass transfer coefficient (1/hr) ** + 1.0 + ** LINEAR KINETIC REACTION (type 1) ** + 1 + ** Where does the reaction take place? ** + 1 0 0 + + ** Aqueous Component/Complex #, Solid Component # + 102 2 + ** Distribution coeffienct (kg rock/ kg water) ** + 0.427 + ** Mass transfer coefficient (1/hr) ** + 1.0 + ** GENERAL EXCHANGE REACTION (type 3) ** + 3 + ** Where does the reaction take place? ** + 1 0 0 + + ** # of solid, liquid and vapor species ** + 3 0 0 + ** forward and reverse rate constants (1/hr) ** + 1.26e-2 0 + ** Solid Species in reaction ** + 1 2 3 + ** Stoichiometry ** + 1.0 -1.0 -1.0 + end rxn + + +Additional Notes +---------------- + +Removed Features +---------------- + +Please note that the following features present in `trac` and `rxn` have been removed in `trxn`: + +* ``trac`` + * Inflow concentrations for solids + * Varying molecular diffusion coefficient by either species or location + * Setting different dispersivities for different species +* ``rxn`` + * Using `IFXCONC` to specify that concentrations are free-ion only (all concentrations in `water`, `rock`, and `gas` must be total aqueous concentrations) + * Enabling reactions at specific nodes only + * Reaction type 6 +* Both + * JA JB JC format for entering specific nodes for tracer injection, etc. (These must be defined by zones.) + +If these features are desired, old-style input using `trac` and `rxn` must be used instead. + +Further resources and verification +---------------------------------- + +Several test problems from the standard FEHM test suite that have `trac` and/or `rxn` macros have been converted to the `trxn` format. These can be found in `/scratch/nts/ms/trxn/test-problems`. The input files contain the original `trac` and/or `rxn` macros (turned off), along with an equivalent `trxn` macro. The output for the `trxn` macro has been verified against the output for the original macros in each of these cases; the results of the comparison can be found in the `plot/plot.png` and `plot/plot-orig.png` files in the test directory. The location of the input file in the test directory is included in parentheses after the test problem name. The following test problems have been verified to work successfully with `trxn`: + +* `baro_trans` (`input/baro_trans.in`) +* `cden_test (`input/static-multi1.dat`)` +* `dissolution` (`input/dissolution.in`) +* `fracture_transport` (`input/tangtestN.in`) +* `henrys_law` (`input/henrytest.in`) +* `multi_solute` (`input/multi_solute.in`) +* `sorption` (`input/sorption.in`) +* `transport3D` (`input/3d_trac.dat`) + +In addition, several new test problems have been developed in order to better test the full range of `trxn`'s functionality. These are also found in `/scratch/nts/ms/trxn/test-problems`, and documentation of the problem setup and expected results can be found in `/scratch/nts/ms/trxn/test-problems/meta/doc`. The following test problems fall into this category: +* `multirock` +* `inflow` +* `decay` + +Bugs, error handling, and limitations +------------------------------------- + +* `trxn` will try to print out a nice error message if something goes wrong. However, this is not guaranteed. +* A `zone` macro with at least one valid zone is required before `trxn`. This `zone` macro may contain no more than 100 zones. +* If a block is specified multiple times, the values from the last block should be used; however, do not rely on this feature. +* The maximum permitted length of input lines is 200 characters. +* The maximum number of characters in a name (of a component, zone, model, etc.) is 40. +* The maximum number of specifications (models, components, etc.) that any given block may contain is 100. +* The zone macro preceding `trxn` may not contain more than 100 zones. +* Model and species names should be strictly alphanumeric plus the five characters "(", ")", "+", "_", and "-". Use of other characters may cause incorrect behavior. +* If only the `trac` blocks of the macro are given, `trxn` should be compatible with an old `rxn` macro, as long as the `trxn` macro is read before the `rxn` macro. However, this has not been tested and may not work reliably. Furthermore, `trxn` is not compatible with the old `trac` macro. + +Debug tools +----------- + +* The keyword `debug` in the `ctrl` block will enable some informational output that may be useful for debugging problems. The `stop` keyword in the `ctrl` block will halt FEHM immediately after reading and processing `trxn`. +* `null` blocks are ignored by default, but are printed if debugging output is enabled. diff --git a/docs/source/Macros/MacroUser.rst b/docs/source/Macros/MacroUser.rst new file mode 100644 index 00000000..742b7de7 --- /dev/null +++ b/docs/source/Macros/MacroUser.rst @@ -0,0 +1,20 @@ +======== +``user`` +======== + +Group 1 - KK + ++----------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+===============================================================================================================================================================================================================================================================================================================================================+ +| KK | integer | Integer number passed to subroutine user for user defined input parameters. This user subroutine call differs from the one invoked in the control file in that whereas that subroutine is called at every time step, this one is called only at the beginning of the simulation to set parameters that do not change later in the simulation. | ++----------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following is an example of user. In this example, the number 5 is passed to the user subroutine. + ++------+ +| user | ++======+ +| 5 | ++------+ + diff --git a/docs/source/Macros/MacroVapl.rst b/docs/source/Macros/MacroVapl.rst new file mode 100644 index 00000000..7920e78d --- /dev/null +++ b/docs/source/Macros/MacroVapl.rst @@ -0,0 +1,6 @@ +======= +``vap`` +======= + +Enable vapor pressure lowering. For more information see the "Models and Methods Summary" of the FEHM Application (Zyvoloski et al. 1999). No input is associated with this macro. + diff --git a/docs/source/Macros/MacroVbou.rst b/docs/source/Macros/MacroVbou.rst new file mode 100644 index 00000000..ec4c2cc5 --- /dev/null +++ b/docs/source/Macros/MacroVbou.rst @@ -0,0 +1,7 @@ +======== +``vbou`` +======== + +Macro vbou for reading non-physical gridblock volumes + +Documentation Pending. \ No newline at end of file diff --git a/docs/source/Macros/MacroVcon.rst b/docs/source/Macros/MacroVcon.rst new file mode 100644 index 00000000..140820ee --- /dev/null +++ b/docs/source/Macros/MacroVcon.rst @@ -0,0 +1,96 @@ +======== +``vcon`` +======== + +Variable thermal conductivity information. + +1. Thermal conductivity for intact salt: :math:`\lambda_{IS} = \lambda_{IS,300}(300/T)^{\gamma_1}` + +2. Thermal conductivity for crushed salt: :math:`\lambda_{CS} = \lambda_{CS,300}(300/T)^{\gamma_1}` + +where: + +:math:`\lambda_{CS,300} = 1.08 \left( \alpha_4 \phi^4 + \alpha_3 \phi^3 + \alpha_2 \phi^2 + \alpha_1 \phi + \alpha_0 \right)` + +Parameters related to thermal conductivity are +:math:`\lambda_{IS,300},\gamma_1,\gamma_2,\alpha_4,\alpha_3,\alpha_2,\alpha_1,\alpha_0` and :math:`\phi`. +An additional parameter is the specific heat of salt. + +* Group 1 - IVCON(I), VC1F(I), VC2F(I), VC3F(I) + +* Group 2 - JA, JB, JC, IVCND + +The parameter (I) is incremented each time Group 1 is read. Group 2 lines will refer to this parameter. Group 1 is ended with a blank line. + ++----------------+---------+-----------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+=============================================================================+ +| IVCON(i) | integer | | Model type for ith conductivity model. | +| | | | IVCON(i) = 1, linear variation of thermal conductivity with temperature. | +| | | | IVCON(i) = 2, square root variation of thermal conductivity with liquid | +| | | saturation. | ++----------------+---------+-----------------------------------------------------------------------------+ +| VC1F(i) | real | Reference temperature (oC) for IVCON(i) = 1. | +| | | Conductivity :math:`\left( \frac{W}{m \cdot K} \right)` at liquid | +| | | saturation = 1 for IVCON(i) = 2. | ++----------------+---------+-----------------------------------------------------------------------------+ +| VC2F(i) | real | Reference conductivity ( :math:`^oC` ) for IVCON(i) = 1. Conductivity | +| | | :math:`\left( \frac{W}{m \cdot K} \right)` at liquid saturation = 0 for | +| | | IVCON(i) = 2. | ++----------------+---------+-----------------------------------------------------------------------------+ +| VC3F(i) | real | Change in conductivity with respect to temperature for IVCON(i) = 1. | +| | | Not used for IVCON(i) = 2. | ++----------------+---------+-----------------------------------------------------------------------------+ +| IVCND | integer | Number referring to the sequence of models read in Group 1. | +| | | The default is 1. | ++----------------+---------+-----------------------------------------------------------------------------+ + + +The following are examples of ``vcon``. In the first example, +a linear conductivity model is defined and applied at each node. +The reference temperature is :math:`20^o C`, the reference +conductivity is :math:`1\frac{W}{m \cdot K}`, and the change +in conductivity with temperature is 0.01. + ++-------+--------+-------+---------+ +| vcon |   |   |   | ++=======+========+=======+=========+ +| 1 |  20.0 |  1.0 |  1.e-2 | ++-------+--------+-------+---------+ +|   |   |   |   | ++-------+--------+-------+---------+ +| 1 | 0 | 0 | 1 | ++-------+--------+-------+---------+ +|   |   |   |   | ++-------+--------+-------+---------+ + +For the second example, three models are defined for the entire domain. +Model 1 defines the constant thermal conductivity of 16.26 W/m K at 26.85 °C +(=300 °K) for a stainless steel canister (zone 1). + +Model 2 defines all parameters for a crushed salt (zone 2). + +Model 3 defines reference thermal conductivity of 5.4 W/m K at 26.85 °C +(=300 °K) and exponent 1.14 for the intact salt in the rest of the domain. + ++------+-------+-------+-------+-------+-------+-----+-----+------+ +| vcon |   |   |   |   |   |   |   |   | ++======+=======+=======+=======+=======+=======+=====+=====+======+ +| 1 | 26.85 | 16.26 | 0. |   |   |   |   |   | ++------+-------+-------+-------+-------+-------+-----+-----+------+ +| 4 | 26.85 | 1.08 | 270.0 | 370.0 | 136.0 | 1.5 | 5.0 | 1.14 | ++------+-------+-------+-------+-------+-------+-----+-----+------+ +| 3 | 26.85 | 5.4 | 1.14 |   |   |   |   |   | ++------+-------+-------+-------+-------+-------+-----+-----+------+ +|   |   |   |   |   |   |   |   |   | ++------+-------+-------+-------+-------+-------+-----+-----+------+ +| 1 | 0 | 0 | 3 |   |   |   |   |   | ++------+-------+-------+-------+-------+-------+-----+-----+------+ +| -1 | 0 | 0 | 1 |   |   |   |   |   | ++------+-------+-------+-------+-------+-------+-----+-----+------+ +| -2 | 0 | 0 | 2 |   |   |   |   |   | ++------+-------+-------+-------+-------+-------+-----+-----+------+ +|   |   |   |   |   |   |   |   |   | ++------+-------+-------+-------+-------+-------+-----+-----+------+ + + diff --git a/docs/source/Macros/MacroWeli.rst b/docs/source/Macros/MacroWeli.rst new file mode 100644 index 00000000..c511f51c --- /dev/null +++ b/docs/source/Macros/MacroWeli.rst @@ -0,0 +1,27 @@ +======== +``weli`` +======== + +Peaceman type well impedance. + +* Group 1 - ITYPEWELL, KEYWEL1, PARMWEL1, PARMWELL2, PARMWEL3 + +Enter one line per model defined, terminated with a blank line. + +* Group 2 - JA, JB, JC, IZONEWELL + ++----------------+---------+---------------------------------------+ +| Input Variable | Format | Description | ++================+=========+=======================================+ +| ITYPEWELL | integer | Well model type | ++----------------+---------+---------------------------------------+ +| KEYWEL1 | integer |   | ++----------------+---------+---------------------------------------+ +| PARAMWEL1 | real | Peaceman's rw, wellbore radius (m). | ++----------------+---------+---------------------------------------+ +| PARAMWEL1 | real | Peaceman's h, reservoir thickness (m) | ++----------------+---------+---------------------------------------+ +| PARAMWEL1 | real | Print parameter | ++----------------+---------+---------------------------------------+ +| IZONEWELL | integer | Peaceman model assignment. | ++----------------+---------+---------------------------------------+ diff --git a/docs/source/Macros/MacroWflo.rst b/docs/source/Macros/MacroWflo.rst new file mode 100644 index 00000000..2d38c3c4 --- /dev/null +++ b/docs/source/Macros/MacroWflo.rst @@ -0,0 +1,68 @@ +======== +``wflo`` +======== + +Create a new flow macro to represent boundary conditions on an extracted submodel. Alternate submodel boundary output. + +* Group 1 - KEYMS1, KEYMS2, KEYMS3, KEYMS3 + +or, if KEYMS4 = ‘type': + +* Group 1 - KEYMS1, KEYMS2, KEYMS3, KEYMS4, ITYPSD + +Enter one line per model defined, terminated with a blank line. + +* Group 2 - JA, JB, JC, ISUBMD + ++----------------+-----------+-------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+===========+=====================================================================================+ +| KEYMS1 | character | | Macro SKD type. The letters given in ( ) are sufficient to identify the keyword: | +| | | | (p)ressure | +| | | | (h)ead | +| | | | (f)lux | ++----------------+-----------+-------------------------------------------------------------------------------------+ +| KEYMS2 | character | | Macro ESKD type. The letters given in ( ) are sufficient to identify the keyword: | +| | | | (s)aturation | +| | | | (t)emperature | +| | | | (e)nthalpy | +| | | | (w)ater (water only source, output saturation as 1.0) | ++----------------+-----------+-------------------------------------------------------------------------------------+ +| KEYMS3 | character | | Macro AIPED type: | +| | | | imph - Impedance parameter = 1.0 | +| | | | impl - Impedance parameter = 1.0e-4 | +| | | | impn - Impedance parameter = -1.0 | +| | | | If KEYSM1 = ‘flux' the impedance parameter = 0.0, otherwise for any other input, | +| | | the impedance parameter = 1.0e2. | ++----------------+-----------+-------------------------------------------------------------------------------------+ +| KEYMS4 | character | | Flag to indicate submodel type will be input: | +| | | | type | ++----------------+-----------+-------------------------------------------------------------------------------------+ +| ITYPSD | INTEGER | | Submodel type: | +| | | | :math:`ITYPSD = 0`, generate 'flow' macro. | +| | | | :math:`ITYPSD \ne 0`, generate 'flo3' macro. | ++----------------+-----------+-------------------------------------------------------------------------------------+ +| ISUBMD | integer | Submodel assignment. | ++----------------+-----------+-------------------------------------------------------------------------------------+ + +The following is an example of the wflo macro. A flow macro will be written for two output zones. +Because, they are specified using two models, the macros will be written to two separate files. +The macro file names will be generated using the root file name (as input or determined from the output +file name) appended with the model number and suffix ``.wflow`` (e.g. ``file.0001.wflow`` and ``file.0002.wflow``). + ++------+-----+------+----+ +| wflo | | | | ++------+-----+------+----+ +| flux | wat | impl | na | ++------+-----+------+----+ +| flux | wat | impl | na | ++------+-----+------+----+ +| | | | | ++------+-----+------+----+ +| -308 | 0 | 0 | 1 | ++------+-----+------+----+ +| -309 | 0 | 0 | 2 | ++------+-----+------+----+ +| | | | | ++------+-----+------+----+ + diff --git a/docs/source/Macros/MacroWgtu.rst b/docs/source/Macros/MacroWgtu.rst new file mode 100644 index 00000000..92bdc370 --- /dev/null +++ b/docs/source/Macros/MacroWgtu.rst @@ -0,0 +1,43 @@ +======== +``wgtu`` +======== + +User defined destributed source boundary weight factors used in conjunction with macro boun. + +* Group 1 - NAREA + +* Group 2 - IZONE_AREA(I), IAREAF(I), AREA01(I), AREA02(I), I = 1 to NAREA + +If ``(IAREAF(I) = 7)`` a weight factor is read for each node in the current zone. + +* Group 3 - II, (JJ, WGT_AREA(JJ), IJ = 1 to II) + +If ``(IAREAF(I) = 8)`` a weight factor is read for each node in the current zone from the specified file. See Group 3 above for file format. + +* Group 3 - WFILENAME + ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+===============+==================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| NAREA | integer | Number of zones for which a weight factor will be calculated. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IZONE_AREA | integer | Zone on which to calculate weight factors. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IAREAF | integer | Method for calculating weight factor for current zone.1 : Calculate area of each node in zone2 : Calculate area of each node based on total area given (area01) and portioned by volume size 3 : Calculate area of each node based on total area given (area01) and portioned by approximate area size 4 : Calculate weighting based on area (used in boun)5 : Calculate weighting based on area*perm (used in boun)6 : Calculate weighting based on vol*perm (used in boun)7 : Read a list of weights for every node in zone8 : Read a file with weights for every node in zone | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AREA01 | real*8 | Input area. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AREA02 | real*8 | Base impedance parameter. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| II | integer | Number of nodes in the current zone. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| JJ | integer | Node number of the ijth node. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| WGT_AREA | real*8 | Weighting factor for JJ | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| WFILENAME | character*100 | Name of file contining weight factors for the current zone. | ++----------------+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + + + diff --git a/docs/source/Macros/MacroWtsi.rst b/docs/source/Macros/MacroWtsi.rst new file mode 100644 index 00000000..f7f25378 --- /dev/null +++ b/docs/source/Macros/MacroWtsi.rst @@ -0,0 +1,21 @@ +======== +``wtsi`` +======== + +Water table, simplified. + +Group 1 - NFREE, IZONE_FREE(I), I = 1 to NFREE, IFREE_IM_EX, HEAD_TOL, RLPTOL, + ++----------------+---------+--------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=========+==============================================================+ +| NFREE | integer | Number of zones to which water table condition are applied. | ++----------------+---------+--------------------------------------------------------------+ +| IZONE_FREE | integer | Zone number. | ++----------------+---------+--------------------------------------------------------------+ +| IFREE_IM_EX | integer | Update parameter (0 - explicit update, 1 - implicit update). | ++----------------+---------+--------------------------------------------------------------+ +| HEAD_TOL | real*8 | Tolerance for head (m) | ++----------------+---------+--------------------------------------------------------------+ +| RLPTOL | real*8 | Tolerance for saturation | ++----------------+---------+--------------------------------------------------------------+ diff --git a/docs/source/Macros/MacroZeol.rst b/docs/source/Macros/MacroZeol.rst new file mode 100644 index 00000000..4443ed49 --- /dev/null +++ b/docs/source/Macros/MacroZeol.rst @@ -0,0 +1,7 @@ +======== +``zeol`` +======== + +Macro zeol for Zeolite water balance input + +No longer used, behavior is undefined. \ No newline at end of file diff --git a/docs/source/Macros/MacroZneg.rst b/docs/source/Macros/MacroZneg.rst new file mode 100644 index 00000000..fc5c75ce --- /dev/null +++ b/docs/source/Macros/MacroZneg.rst @@ -0,0 +1,7 @@ +======== +``zneg`` +======== + +The zneg keyword is a problem solving tool that allows the user to zero out geometric coefficients that represent negative areas. It is useful for investigating causes of instability in highly-nonlinear simulations. A message will be written to the output file that states how many coefficients were set to zero. + +Use with caution as the numerical grid will no longer be consistent in the mathematical sense. diff --git a/docs/source/Macros/MacroZone.rst b/docs/source/Macros/MacroZone.rst new file mode 100644 index 00000000..55870f1f --- /dev/null +++ b/docs/source/Macros/MacroZone.rst @@ -0,0 +1,69 @@ +======== +``zone`` +======== + +Geometric definition of grid for input parameter assignment, the default is input by nodes. + +* Group 1 - IZONE + +* Group 2 - X1, X2, X3, X4 (for 2-D) or X1, X2, X3, X4, X5, X6, X7, X8 (for 3-D) + +* Group 3 - Y1, Y2, Y3, Y4 (for 2-D) or Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8 (for 3-D) + +* Group 4 - Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8 (for 3-D problems only) + +The following alternate form of input may be used (starting with Group 2): + +* Group 2 - MACRO + +* Group 3 - XG, YG (for 2D) or XG, YG, ZG (for 3-D) [used with ‘list' option] + +or + +* Group 3 - NIN, NODE(1), . . . , NODE(NIN) [used with ‘nnum' option] + +or + +* Group 3 - TOL_ZONE, ZXY_MIN, ZXY_MAX [used with ‘xyli' option] + +* Group 4 - XG, YG [used with ‘xyli' option] + ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input Variable | Format | Description | ++================+=============+======================================================================================================================================================================================================================================================================================================================================================================================================================================+ +| IZONE | integer | Zone identification number for geometric input. | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| X1-X8 | real | X coordinates defining zone IZONE (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Y1-Y8 | real | Y coordinates defining zone IZONE (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Z1-Z8 | real | Z coordinates defining zone IZONE (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| MACRO | character*4 | String denoting alternate input formatMACRO = "list", read a list of X, Y, Z - coordinates, one set per line until a blank line is encountered. The nodes corresponding to these coordinates make up the zone. MACRO = "nnum", read the number of specified nodes, followed by the node numbers. These comprise the zone. | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|   |   | MACRO = "xyli", read a column radius, followed by a list of X, Y - coordinates, one set per line until a blank line is encountered. The nodes contained in columns centered on each x, y pair and extending to the defined boundaries in the Z direction make up the zone. The column radius is necessary because there are (usually) slight variations in the Z direction of nodes above and below the prescribed X, Y coordinates. | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| XG | real | X coordinate of node to be included in IZONE (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| YG | real | Y coordinate of node to be included in IZONE (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ZG | real | Z coordinate of node to be included in IZONE (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NIN | integer | Number of nodes in IZONE. | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| NODE(i) | integer | NIN node numbers of the nodes to be included in IZONE. | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| TOL_ZONE | real | Column radius (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ZXY_MIN | real | Minimum Z coordinate for XY list (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ZXY_MAX | real | Maximum Z coordinate for XY list (m). | ++----------------+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The geometric zone description is implemented by defining geometric regions. The coordinates given in Group 2, 3, and 4 refer to node positions. All properties defined by node (JA, JB, JC) in any control statements may be defined by **zone**. In the previous macro descriptions if JA < 0, then the zone IZONE = ABS (JA) is referenced. + +It is a good policy to refer to the input check file to insure that node assignments have been made as expected. When X, Y, Z coordinates are used to define zones, boundaries of those zones may be slightly different than specified. This is due to the inclusion of volume from elements adjoining included nodes. + +When macro statements dpdp and dual are used, additional zone definitions are automatically generated. These are identified by zones 101-200 for the first set of matrix nodes and 201-300 for the second set of matrix nodes. For example, Zone 101 corresponds to the matrix material occupying the same space occupied by the fracture identified by Zone 1. Furthermore, Zone 201 refers to the second matrix layer in the dual control statement. Zones for the dpdp and dual matrix nodes may be explicitly defined and will not be superseded by automatically generated zones. + +The macro **zone** must precede the usage of a ZONE reference. **zone** is ended with a blank line. **zone** can be called more than once and regions redefined. When this is done, all previous zone definitions are eliminated. A node may be included in only a single zone at a time. diff --git a/docs/source/Macros/MacroZonn.rst b/docs/source/Macros/MacroZonn.rst new file mode 100644 index 00000000..4c0f872d --- /dev/null +++ b/docs/source/Macros/MacroZonn.rst @@ -0,0 +1,5 @@ +======== +``zonn`` +======== + +The input for this macro is identical to macro zone, except that previous zone definitions are retained between calls unless specifically overwritten. diff --git a/docs/source/Makefile b/docs/source/Makefile new file mode 100644 index 00000000..b1ee1f1a --- /dev/null +++ b/docs/source/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = FEHM +SOURCEDIR = source +BUILDDIR = docs + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/source/Output.rst b/docs/source/Output.rst new file mode 100644 index 00000000..7f136eaa --- /dev/null +++ b/docs/source/Output.rst @@ -0,0 +1,1347 @@ +====== +Output +====== + +Output is found in the code generated files (output file, write file, history plot file, solute plot file, contour plot file, contour plot file for dual or dpdp, stiffness matrix data file, input check file, submodel output file, PEST output files, streamline particle tracking output files, and AVS output files) described in `Data Files `_. + +Macro commands (input options) dealing with output control are `cont `_, `ctrl `_, `nod2 `_, `node `_, `mptr `_, `pest `_, `ptrk `_, `sptr `_, `subm `_, `wflo `_, and `time `_: cont is used to specify output format and time intervals for contour data output (:code:`fehmn.con`, :code:`fehmn.dp`); ctrl is used to specify if element coefficients calculated in the code should be saved (:code:`fehmn.stor`); node and nod2 are used to provide nodal or coordinate positions for which general information and history data will be output (:code:`fehmn.out`, :code:`fehmn.his`, :code:`fehmn.trc`, and terminal output); mptr has an option to specify whether or not particle tracking information is written to the restart file (:code:`fehmn.fin`); pest is used to specify PEST parameter estimation routine output format (:code:`fehmn.pest, fehmn.pest1`); ptrk has an option to specify whether or not particle tracking information is written to the restart file (:code:`fehmn.fin`) and what information to output; sptr has options to specify what streamline particle tracking information will be output (:code:`fehmn.sptr1, fehmn.sptr2, fehmn.sptr3`); submand wflo are used to specify nodes and boundary conditions should be output for an extracted submodel region; and time provides input on the time printout interval for nodal information (:code:`fehmn.out` and terminal output). + +The code itself provides no graphical capabilities. History plots of the energy source, source strength, temperature, pressure, capillary pressure, and saturation are made from the filen.his FEHM output files. Data from the filen.trc files is used to make history tracer plots of the 10 species concentrations. Contour plots can be made from the :code:`filen.con`, :code:`filen.dp`, and AVS FEHM output files. + +AVS provides tools for visualization and analysis of volumetric scalar and vector data Contour plots using 2-d quad grids and 3-d hex grids for material properties, temperature, saturation, pressure, velocities, and solute concentrations can be made. The plots can be rotated, zoomed, scaled, translated, and printed. Axis values and the color bar can be customized. AVS FEHM output files are available for the following node data: material properties, liquid and vapor phase values, velocity and pressure values, temperature, saturation, concentrationand, and for the dua and dpdp models. The AVS output files from FEHM are written in an ASCII format that can be imported into AVS UCD graphics routines for viewing. + +Additional information on the data found in the output files is given below. + +Output file (:code:`filen.out`) +=============================== + +Information contained in the general output file is mostly self explanatory. The file starts with the code version, date, and time followed by the user input problem title. A summary of the I/O files used, macro control statements read, and array storage follow. Variable information for user specified nodes at user selected time intervals is written. The file ends with a summary of simulation time, number of time steps in the problem, the number of iterations taken, and total cpu time. + +Write file (:code:`filen.fin`) +============================== + +The write file contains the final values of pressure, temperature, saturation, and simulation time for the run. The final version of the file is generally written at the end of the simulation. This information is also written if the minimum user supplied time step has been realized and execution is terminated. The primary use of the write file is as a restart file. The write file contains the following: + +* Code version number, date, time + +* Problem title + +* Simulation time (days) + +* Gas flag [h20 (default), ngas, air] + +* Tracer flag [trac, ptrk, ntra (default - no output)] + +* Stress flag [strs, nstr (default - no output)] + +* Dpdp flag [dpdp, ndpd (default - no output)] + +* Dual flag [dual, ndua (default - no output)] + +* If the gas flag is ‘h20' (neither air or ngas are set), followed by + +* Final temperature (oC) at each node + +* Final saturation (dimensionless) at each node + +* Final pressure (MPa) at each node + +* Or if ‘ngas' flag is set, followed by + +* Final temperature (oC) at each node + +* Final saturation (dimensionless) at each node + +* Final pressure (MPa) at each node + +* Final capillary pressure (MPa) at each node + +* Or if ‘air' flag is set, followed by + +* Final saturation (dimensionless) at each node + +* Final pressure (MPa) at each node + +* If fluxes have been specified in the rest macro (or for compatibility with older versions of the code if (ABS (PRNT_RST) = 2 in ptrk macro) + +* Label: ‘all fluxes' or ‘liquid flux' or ‘vapor flux' + +* Number of mass flux values + +* Mass flux value (kg/s) for each connection of each node, starting with node 1. Note: mass flux values for the fracture domain are listed first followed by the mass flux values in the matrix domain. The mass flux between fracture and matrix elements are listed last. If both liquid and vapor fluxes as written liquid flux will be output first. + +Otherwise: + +* Label: ‘no fluxes' + +* If ‘trac' flag is set followed by + +* Number of species + +* Species concentration (vapor or liquid, dimensionless) for each node for each species + +* Or if ‘ptrk' flag is set followed by + +* Number of particles, final random number seed for transport calculations, final random number seed for particle release position (use by GoldSim) + +* Final node position for each particle. If the value is negative, the particle left the model domain at a fluid sink at that node. + +* Fractional time remaining at current node for each particle. + +* Multiplier to the plug flow residence time for each particle at the current node position, accounting for dispersion, sorption, and matrix diffusion effects. + +* Age for each particle, i.e. the time since the particle entered the system. However, if the particle has left the system, this value is the time that the particle left the system. + +* If the random number seed for transport calculations in the file is negative, the arrays for the fractional time remaining and the multiplier to the plug flow time have been omitted using the PRNT_RST = -1 or PRNT_RST = -2 option (see PRNT_RST description in the PTRK macro). A restart simulation using this input file will only approximate the behavior of particles since each particle will be assumed to have just entered the node. It is preferable to restart a particle tracking simulation using a file that contains the full restart information. + +* If strs (not implemented in this version) + +* If ‘dpdp' or ‘dual' flag is set + +The above information includes dual porosity/dual permeability nodes. + +Example of FEHM restart (:code:`fin`) file using original format +================================================================ + +.. code:: + + FEHM V3.1gf 12-02-02 QA:NA 02/14/2012 10:33:49 + Unsaturated Diffusion tests + 5000.0000000000000 + ngas + trac + nstr + ndpd + ndua + 34.99999999987494 34.99999999987494 29.99740954219060 29.99740954219060 + 24.99481908388880 24.99481908388880 19.99222863160355 19.99222863160355 + 14.99935303204482 14.99935303204482 10.00000000012507 10.00000000012507 + 0.1000000000000000E-98 0.1000000000000000E-98 0.1000000000000000E-98 0.1000000000000000E-98 + 0.1000000000000000E-98 0.1000000000000000E-98 0.1727371363921276 0.1727371363921281 + 0.4344871249926068 0.4344871249926068 0.7817833455822488 0.7817833455822516 + 0.1001154694602094 0.1001154694602094 0.1001154694628803 0.1001154694628803 + 0.1001154694707533 0.1001154694707533 0.1001154694901246 0.1001154694901246 + 0.1001154722096991 0.1001154722096991 0.1001154822144740 0.1001154822144740 + 0.9766094917448133E-01 0.9766094917448133E-01 0.9770095207050181E-01 0.9770095207050181E-01 + 0.9774097492577727E-01 0.9774097492577727E-01 0.9778102503811041E-01 0.9778102503811041E-01 + 0.9841762151617499E-01 0.9841762151617499E-01 0.9888735221221216E-01 0.9888735221221216E-01 + no fluxes + 1 + 1.040511468 1.040511468 1.023454397 1.023454397 + 1.006402317 1.006402317 0.9893551455 0.9893551455 + 0.9701457197 0.9701457197 0.9516070487 0.9516070487 + + +In FEHM Version 3.00 or newer, the format of the file was simplified to allow user selection of output parameters. The modified header contains: + +* Code version number, date, time + +* Problem title + +* Simulation time (days) + +* Number of nodes (n), type keyword (‘dual', ‘dpdp' or ‘nddp) to designate if dual porosity or double permeability were invoked or not for the simulation. + +The remainder of the data is output following a ‘keyword' header specifying the type of data to follow. n values will be output for each specified output parameter. Flux data will be output using the original format following the parameter output and preceding any particle tracking ‘ptrk' or transport ‘trac' output. Particle tracking output or transport output will be preceded by a ‘keyword' header and use the same format as before. + +Example of FEHM restart (:code:`fin`) file using new format +----------------------------------------------------------- + +.. code:: + + FEHM V3.1gf 12-02-09 QA:NA 02/09/2012 11:48:27 + Unsaturated Diffusion tests + 5000.0000000000000 + 12 nddp + temperature + 34.99999999987494 34.99999999987494 29.99740954219060 29.99740954219060 + 24.99481908388880 24.99481908388880 19.99222863160355 19.99222863160355 + 14.99935303204482 14.99935303204482 10.00000000012507 10.00000000012507 + saturation + 0.1000000000000000E-98 0.1000000000000000E-98 0.1000000000000000E-98 0.1000000000000000E-98 + 0.1000000000000000E-98 0.1000000000000000E-98 0.1727371363921276 0.1727371363921281 + 0.4344871249926068 0.4344871249926068 0.7817833455822488 0.7817833455822516 + pressure + 0.1001154694602094 0.1001154694602094 0.1001154694628803 0.1001154694628803 + 0.1001154694707533 0.1001154694707533 0.1001154694901246 0.1001154694901246 + 0.1001154722096991 0.1001154722096991 0.1001154822144740 0.1001154822144740 + gaspressure + 0.9766094917448133E-01 0.9766094917448133E-01 0.9770095207050181E-01 0.9770095207050181E-01 + 0.9774097492577727E-01 0.9774097492577727E-01 0.9778102503811041E-01 0.9778102503811041E-01 + 0.9841762151617499E-01 0.9841762151617499E-01 0.9888735221221216E-01 0.9888735221221216E-01 + no fluxes + trac + 1 + 1.040511468 1.040511468 1.023454397 1.023454397 + 1.006402317 1.006402317 0.9893551455 0.9893551455 + 0.9701457197 0.9701457197 0.9516070487 0.9516070487 + + +History plot file (:code:`filen.his`) +------------------------------------- + +The history plot file contains the following: + +* Code version number, date, time + +* Problem title + +* Gas flag (‘ngas', ‘airw', or blank) + +* Tracer flag (‘trac' or blank) + +* Stress flag (‘strs' or blank) + +* Number of nodes for which data are output + +* Node number and X, Y, and Z coordinate (m) of each node for which data are output + +* ‘headings' + +* Depending on problem flags, 2 lines with field descriptors, Case 1 (default): + +* "node flow enthalpy(Mj/kg) flow(kg/s) temperature (deg C) total pressure (Mpa)" + +* "capillary pressure (Mpa) saturation (kg/kg)" + +or Case 2 (hydraulic head): + +* "node flow enthalpy(Mj/kg) flow(kg/s) temperature (deg C) hydraulic head (m)" + +* "total pressure (Mpa) saturation (kg/kg)" + +or Case 3 (ngas): + +* "node flow enthalpy(Mj/kg) flow(kg/s) temperature (deg C) total pressure (Mpa)" + +* "air pressure (Mpa) capillary pressure (Mpa) saturation (kg/kg) relative humidity" + +And for each time step + +* Time (days) followed by + +For Case 1: + +* Node number, Energy source (MJ/s), Source strength (kg/s), Temperature (oC), Total pressure (MPa), Capillary pressure (MPa), and Saturation (dimensionless) for each specified output node. + +For Case 2 (hydraulic head): + +* Node number, Energy source (MJ/s), Source strength (kg/s), Temperature (oC), Hydraulic head (m), Total pressure (MPa), and Saturation (dimensionless) for each specified output node. + +For Case 3 (ngas): + +* Node number, Energy source (MJ/s), Source strength (kg/s), Temperature (oC), Total pressure (MPa), Air pressure (MPa), Capillary pressure (MPa), Saturation (dimensionless), and Relative humidity for each specified output node + +Example of history output file, :code:`filen.his` +------------------------------------------------- + +.. code:: + + FEHM V2.30sun 05-04-19 QA:NA 04/20/2005 08:45:05 + ***** 2-D Heat Conduction Model ***** + 1 + 111 0.000000000E+00 0.000000000E+00 0.000000000E+00 + headings + node flow enthalpy(Mj/kg) flow(kg/s) temperature(deg C) total pressure(Mpa) + capillary pressure(Mpa) saturation(kg/kg) + 0.0E+0 + 111 0.100000000E-19 0.00000000 200.000000 10.0000000 0.00000000 0.00000000 + 5.0E-3 + 111 0.100000000E-19 0.00000000 199.999999 10.0000000 0.00000000 0.00000000 + . + . + . + 4.000049999999937 + 111 0.100000000E-19 0.00000000 100.183607 10.0000000 0.00000000 0.00000000 + -4.000049999999937 + 111 0.100000000E-19 0.00000000 100.183607 10.0000000 0.00000000 0.00000000 + + +Alternate History plot files (:code:`filen.his, filen_param.his`) +----------------------------------------------------------------- +The history plot file (:code:`filen.his`) contains the following: + +* Code version number, date, time + +* Problem title + +* Gas flag (‘ngas', ‘airw', or blank) + +* Tracer flag (‘trac' or blank) + +* Stress flag (‘strs' or blank) + +* List of parameters written to individual history files (possible paramenters are: pressure, temperature, head, saturation, flow, enthalpy, humidity, zone flux, and global) + +* Number of nodes for which data are output + +* Node number and X, Y, and Z coordinate (m) of each node for which data are output + +Example of alternate history output file, :code:`filen.his` +----------------------------------------------------------- + +.. code:: + + FEHM V2.30sun 05-04-20 QA:NA 04/20/2005 08:50:56 + ***** 2-D Heat Conduction Model ***** + Parameters written to individual history files: + temperature + for the following nodes: + 1 + 111 0.00000000 0.00000000 0.00000000 + + +If zones for output are specified: + +* Number of zones over which output is averaged + +And for each zone: + +* Number of nodes in the zone and zone number followed by a list of nodes in the zone. + +Example of alternate history output file including zones, :code:`filen.his` +---------------------------------------------------------------------------- + +.. code:: + + FEHM V2.30sun 05-04-20 QA:NA 04/20/2005 09:10:21 + ***** 2-D Heat Conduction Model ***** + Parameters written to individual history files: + temperature + for the following nodes and zones: + 1 + 111 0.00000000 0.00000000 0.00000000 + Number of averaged output zones: 2 + 121 Nodes averaged in Zone -1 + 0000001 0000002 0000003 0000004 0000005 0000006 0000007 0000008 0000009 0000010 + 0000011 0000012 0000013 0000014 0000015 0000016 0000017 0000018 0000019 0000020 + . + . + . + 0000121 + 11 Nodes averaged in Zone -2 + 0000001 0000012 0000023 0000034 0000045 0000056 0000067 0000078 0000089 0000100 + 0000111 + + +The history plot parameter files (filen_param.his) contain the following: + +* Code version number, date, time + +* Problem title + +* Blank line + +* Output parameter title and units + +* Heading: Time (units) Nodes: Node number 1 . . . Node number n + +-or- if zones are specified + +* Heading: Time (units) Nodes: Node number 1 . . . Node number n Zones: Zone number 1 . . . Zode number n + +And for each time step (time units may be seconds, days, or years as specified in hist macro) + +* Time (units) followed by parameter value for each specified node and zone. + +Example of alternate history output file, :code:`filen_temp.his` +---------------------------------------------------------------- + +.. code:: + + FEHM V2.30sun 05-04-20 QA:NA 04/20/20 09:39:26 + ***** 2-D Heat Conduction Model ***** + Temperature (C) + Time (seconds) Nodes: 111 + 0.0E+0 200.0 + 432.0 199.99999943712558 + 864.0 199.99999502157842 + . + . + . + 345599.9999999945 100.18362295565089 + 345604.31999999453 100.18360733099975 + + +Example of alternate history output file including zones, filen_temp.his +------------------------------------------------------------------------ + +.. code:: + + FEHM V2.30sun 05-04-20 QA:NA 04/20/20 09:10:21 + ***** 2-D Heat Conduction Model ***** + Temperature (C) + Time (seconds) Nodes: 111 Zones: -1 -2 + 0.0E+0 200.0 199.99999999999985 200.0 + 432.0 199.99999943712558 187.43603443819043 193.49769265774958 + 864.0 199.99999502157842 184.97995686212098 192.16893175137713 + . + . + . + 345599.9999999945 100.18362295565089 100.07411373139031 100.11665754330934 + 345604.31999999453 100.18360733099975 100.07410742498257 100.11664761680842 + +The history plot global parameter file (filen_param.his) contains the following: + +* Code version number, date, time + +* Problem title + +* Blank line + +Depending on output selected the following possible headings: + +* mass / energy: Time (days) Total mass in system (kg) Total mass of steam in system (kg) Water discharge (kg) Water input (kg) Total water discharge (kg) Total water input (kg) Net (kg) water discharge Total enthalpy in system (MJ) Enthalpy discharge (MJ) Enthalpy input (MJ) Total enthalpy discharge (MJ) Total enthalpy input (MJ) Net (MJ) enthalpy discharge + +* water / air: Time (days) Total water in system (kg) Total mass of steam in system (kg) Water discharge (kg) Water input (kg) Net (kg) water discharge Total water discharge (kg) Total water input (kg) Total air in system (kg) Air discharge (kg) Air input (kg) Total air discharge (kg) Total air input kg (kg/s)Net (kg) air discharge + +* mass / water only (no steam): Time (days) Total water in system (kg) Water discharge (kg) Water input (kg) Total water discharge (kg) Total water input (kg) Net (kg) water discharge + +* mass / water only (steam): Time (days) Total mass in system (kg) Total mass of steam in system (kg) Water discharge (kg) Water input (kg) Total water discharge (kg) Total water input (kg) Net (kg) water discharge + +* air only: Time (days) Total air in system (kg) Air discharge (kg) Air input (kg) Total air discharge (kg) Total air input kg (kg/s) Net (kg) air discharge + +* energy only: Time (days) Total enthalpy in system (MJ) Enthalpy discharge (MJ) Enthalpy input (MJ) Total enthalpy discharge MJ Total enthalpy input (MJ)Net (MJ) enthalpy discharge + +And for each time step + +* Time (days) followed by selected global parameter values. + +Solute plot file (:code:`filen.trc`) +------------------------------------ + +Solute data is output for the same nodes used for the history plot file. The solute plot file contains: + +* Code version number, date, time + +* Problem title + +* Number of nodes for which data are output + +* Node number and X, Y, and Z coordinate (m) of each node for which data are output + +* Number of different species/components for tracer solution, Number of liquid components, Number of immobile components, Number of vapor components, and Number of aqueous complexes + +and for each time step and each species + +* Time (days), species number followed by + +* Species concentration (dimensionless) for each specified output node. + +When particle tracking is used, the concentration can be output in several different forms (number of particles, number per fluid mass, or number per total volume). The choice of which form to use is input in the ptrk macro. + +Example of solute data history plot file +---------------------------------------- + +.. code:: + + FEHM V2.30sun 05-04-06 QA:NA 04/06/2005 19:58:25 + Check of FEHMN against SORBEQ, All isotherms + 1 + 201 0.100000000E+01 0.100000000E+01 0.100000000E+01 + 5 5 0 0 0 + 1.550709E-4 1 species #001 + 4.855185258201169E-29 + 1.550709E-4 2 species #002 + 3.7325204274237394E-53 + 1.550709E-4 3 species #003 + 3.7325204274237394E-53 + 1.550709E-4 4 species #004 + 1.0E-90 + 1.550709E-4 5 species #005 + 1.0E-90 + . + . + . + 1.3E-3 1 species #001 + 0.999994799250939 + 1.3E-3 2 species #002 + 0.9999246650715027 + 1.3E-3 3 species #003 + 0.9999947753362215 + 1.3E-3 4 species #004 + 0.9999947668674314 + 1.3E-3 5 species #005 + 0.9999947643072644 + + +Contour plot file (:code:`filen.con`) +------------------------------------- + +The contour plot file contains: + +* Code version number, date, time + +* Problem title + +* Tracer (‘trac') solution or blank + +* Stress (‘strs') solution or blank + +* Number of nodes for which data are output + +* X, Y, and Z coordinate (m) of each node for which data are output + +* Number of nodes per element, total number of elements + +* Nodal connectivity information for each node of each element + +* X, Y, Z permeability (:math:`m^2`) for each node + +* X, Y, Z thermal conductivity :math:`\left(\frac{W}{m \cdot K}\right)` for each node + +* Porosity, Rock specific heat :math:`\left(\frac{MJ}{kg \cdot K}\right)`, Capillary pressure (:math:`MPa`) for each node + +* Number of degrees of freedom per node for the current problem, Direction of gravity in problem, Value of gravity + +If tracer solution is present: + +* Number of species + +and for each specified time: + +* Time (days), injection phase (Š 0 liquid, < 0 vapor) followed by + +If injection phase is liquid: + +* Liquid transmissibility / density, Liquid density (kg/m3), Pressure - Capillary Pressure (MPa), Temperature (oC) + +and if tracer solution is present: + +* Species concentration of liquid phase + +Or if injection phase is vapor: + +* Vapor transmissibility / density, Vapor density (kg/m3), Pressure (MPa), Temperature (oC) + +and if tracer solution is present: + +* Species concentration of vapor phase. + +Contour plot file for dual or dpdp (:code:`filen.dp`) +----------------------------------------------------- + +The contour plot file for dual or dpdp contains the same information as the regular contour plot file only the parameter values are for the dual porosity / dual permeability nodes. + +Stiffness matrix data (:code:`filen.stor`) +------------------------------------------ +The stiffness matrix data file is used to store the finite element coefficients for each node. It eliminates the need for the code to recompute the coefficients for subsequent runs. It contains the following: + +* Code version number, date, time + +* Problem title + +* Number of storage locations needed to store geometric input types, Number of nodes, Size of connectivity array + +* Volume associated with each node + +* Nodal connectivity information for each connection + +* Position of geometric coefficient for each connection + +* Diagonal position in connectivity array for each node + +* Finite element geometric coefficient for each storage location + +* If stress solution is enabled + +* Finite element geometric coefficient for each storage location for the stress module. + +Input check file (:code:`filen.chk`) +------------------------------------ + +This file contains a summary of input information that may be of use in debugging or memory management of the code. The positions of maximum and minimum values of input parameters and derived quantities are given. Also provided is an analysis of array storage requirements. + +Submodel output file (:code:`filen.subbc`) +------------------------------------------ + +The submodel output file contains "flow" macro data that represents boundary conditions for an extracted submodel (i.e., the output will use the format of the "flow" input macro). The file contains: + +* Heading: "flow Boundary Conditions Output:", code version number, date, time for each submodel node, if boundary type is head or pressure, + +* Node number, Node number, 1, Head (m) or Pressure (MPa), Impedance parameter, #, X coordinate, Y coordinate, Z cooordinate + +or if boundary type is flux: + +* Node number, Node number, 1, Flux (kg/s), 0.0d00, #, X coordinate, Y coordinate, Z cooordinate + +A blank line to signal end of flow macro input followed by the file termination macro :code:`stop`. + +An example is provided with `subm `_ input on. + +Error output file (:code:`fehmn.err`) +------------------------------------- + +This file contains the code version number, date, and time followed by any error or warning messages issued by the code during a run. + +Multiple simulations script files (:code:`fehmn.pre, fehmn.post`) +----------------------------------------------------------------- + +The multiple simulations script file fehmn.pre contains UNIX shell script style instructions for pre-processing input data, while the script file fehmn.post contains UNIX shell script style instructions for post-processing data. + +PEST output files (:code:`filen.pest, filen.pest1`) +--------------------------------------------------- + +The PEST output file is used to output data in a format suitable for use by the Parameter Estimation Program (PEST) (Watermark Computing, 1994). The first file (filen.pest) contains: + +* Heading: "PEST Output:", code version number, date, time + +* First parameter label: "pressures" or "heads" + +* node number and pressure (MPa) or head (ft) for each specified output node + +* Second parameter label: "saturations" + +* node number and saturation for each specified output node + +* Third parameter label: "temperatures" + +* node number and temperature (oC) for each specified output node + +* Fourth parameter label: "permeabilities" + +* node number and x, y, and z permeability (m2) for each specified output node + +* Heading: "Total Flux (kg/s) Leaving Zone (flxz macro option)" + +* "Zone Number Source Sink Net Boundary" + +* zone number, source flux, sink flux, net flux, boundary flux + + +The second file (filen.pest1) contains: + +* Heading: "PEST Output:", code version number, date, time + +* Parameter label: "pressures" or "heads" + +* node number, relative permeability model used, pressure (MPa) or head (ft), saturation, and temperature (oC) for each specified output node + +Particle statistics file (:code:`filen.ptrk`) +--------------------------------------------- + +The data found in the ".ptrk" file was previously reported in the general output file. From version 2.25 of the code and forward that data will only be reported in the optional, ".ptrk" file unless a coupled GoldSim-FEHM simulation is being run (see the PRNT_RST flag, see Control Statement `mptr `_). In addition, the user has the option of selecting which statistics parameters are reported. The default is to report all statistics parameters. + +For the default case, the :code:`.ptrk` file contains: + +* Title line: **TITLE="V1=Number Having Entered System, V2=Number Currently In System, V3=Number Having Left System, V4=Number Having Decayed, V5=Number Having Been Filtered, V6=Number That Left This Time"** + +* Header line: **VARIABLES="Time (days)" "Sp001 V1" "Sp001 V2" "Sp001 V3" "Sp001 V4" "Sp001 V5" "Sp001 V6" . . . "Spnnn V1" "Spnnn V2" "Spnnn V3" "Spnnn V4" "Spnnn V5" "Spnnn V6"** + +A heading is output for each variable (V1 to V6) for each species in the model and nnn is the total number of species in the simulation. The header line is followed by (for each output time step) the simulation time (days), and the six output variables for each species modeled (See the first example below). When the user selects a subset of the statistics parameters the header line and data will only contain those variables that have been selected for output (See the second example below). + +Example of default ".ptk" particle statistics file. +--------------------------------------------------- + +.. code:: + + TITLE="V1=Number Having Entered System, V2=Number Currently In System, V3=Number Having Left + System, V4=Number Having Decayed, V5=Number Having Been Filtered, V6=Number That Left This Time" + VARIABLES="Time (days)" "Sp001 V1" "Sp001 V2" "Sp001 V3" "Sp001 V4" "Sp001 V5" "Sp001 V6" + "Sp002 V1" "Sp002 V2" "Sp002 V3" "Sp002 V4" "Sp002 V5" "Sp002 V6" + 365.25000000000 18760 18686 74 0 0 74 18760 18670 90 0 0 90 + 1278.3750000000 18760 17860 900 0 0 826 18760 17895 865 0 0 775 + . + . + . + 7270752.1054688 18760 932 16710 1118 0 6 18760 912 16692 1156 0 14 + 7305000.0000000 18760 929 16712 1119 0 2 18760 905 16695 1160 0 3 + +Example of ".ptk" particle statistics file with five output variables selected. +------------------------------------------------------------------------------- + +.. code:: + + TITLE="V1=Number Having Entered System, V2=Number Currently In System, V3=Number Having Left + System, V4=Number Having Decayed, V5=Number Having Been Filtered, V6=Number That Left This Time" + VARIABLES="Time (days)" "Sp001 V1" "Sp001 V2" "Sp001 V3" "Sp001 V4" "Sp001 V6" "Sp002 V1" + "Sp002 V2" "Sp002 V3" "Sp002 V4" "Sp002 V6" + 365.25000000000 18760 18686 74 0 74 18760 18670 90 0 90 + 1278.3750000000 18760 17860 900 0 826 18760 17895 865 0 775 + . + . + . + 7270752.1054688 18760 932 16710 1118 6 18760 912 16692 1156 14 + 7305000.0000000 18760 929 16712 1119 2 18760 905 16695 1160 3 + + +Mass Output from GoldSim Particle Tracking Simulation +----------------------------------------------------- + +To provide a simplified method for tracking solute mass from a FEHM/GoldSim coupled simulation an optional output file may be written that contains cumulative mass output (mg/l) (see the PRNT_RST flag!,, `mptr `_). The data found in :code:`FEHM_GSM_Mass_balance.txt` has a format similar to that used for the particle statistics output (see above) and contains: + +* Title line: **TITLE="V1=Mass Having Entered System, V2=Mass Currently In System, V3=Mass Having Left System, V4=Mass Having Decayed, V5=Mass Having Been Filtered, V6=Mass Having Decayed Outside The UZ, V7=Filtered Mass Having Decayed"** + +* Header line: **VARIABLES="Time (years)" "Sp001 V1" "Sp001 V2" "Sp001 V3" "Sp001 V4" "Sp001 V5" "Sp001 V6" "Sp001 V7". . . "Spnnn V1" "Spnnn V2" "Spnnn V3" "Spnnn V4" "Spnnn V5" "Spnnn V6" "Spnnn V7"** + +A heading is output for each variable (V1 to V7) for each species in the model and nnn is the total number of species in the simulation. The header line is followed by (for each output time step) the simulation time (days), and the seven output variables for each species modeled. + +Particle Exit Locations and Count Output +---------------------------------------- + +To facilitate use of particle tracking simulation statistics an optional output file may be written that contains particle exit locations and count (see the PRNT_RST flag, section, see `mptr `_). The data found in the ".ptrk_fin" file can also be extracted from the ".fin" files through use of post-processors and/or file editors. + +The ".ptrk_fin" file output file contains: + +* Header line: **VARIABLES = "Node" "X" "Y" "Z" "Num_exited" "Zone"** + +Followed by (for each node where particles have exited the system) the node number, the X, Y, and Z coordinates of the node (m), the number of particles that exited at that node, and the number of the zone (if defined) that contains that node. + +Streamline particle tracking output files (filen.sptr1, filen.sptr2, filen.sptr3) +--------------------------------------------------------------------------------- + +The streamline particle tracking output files contain information generated during a streamline particle tracking simulation. Depending on output options selected (macro sptr) zero, one, two or three output files are generated. + +When option IPRT ≥ 1, the first file (filen.sptr1) contains: + +* Code version number, date, time + +* Problem title + +* "days=", Current time of streamline particle tracking iteration (days), streamline particle tracking timestep number for current iteration, and + +For each particle: + +* Particle number, X coordinate of particle, Y coordinate of particle, Z coordinate of particle, Element or node number where the particle is located + +When option IPRTO ≥ 1, the second file (filen.sptr2) contains: + +* Code version number, date, time + +* Problem title + +* Heading: "particle_number x y z time porosity saturation permeability rock_density pressure temperature zone old_node new_node" (Note that the heading only includes property titles for the default properties or those properties specified by keyword.) + +For each particle: + +* Particle number, X coordinate of particle, Y coordinate of particle, Z coordinate of particle, Current time that the particle has reached (days), Property value of the unit the particle is residing in for each specified keyword [in the following order, if specified: porosity, saturation, permeability (m2), density (kg/m3), pressure (MPa), temperature (oC), zone number], Element or node number where the particle is located, Previous node number + +If option "zbtc" is invoked, the third file (filen.sptr3) contains: + +* Code version number, date, time + +* Problem title + +* Heading: " Time (days) Zone1 Particles . . ." + +* Time (days), Cumulative number of particles that have arrived at each specified zone for breakthrough curve output + +or when option ‘alt' is specified: + +* Code version number, date, time + +* Problem title + +* Heading: Time (days) Particle# ID Zone Node + +* Followed by breakthrough time, particle number, particle ID, breakthrough zone, break through node for each particle that reaches the breakthrough zone. + +Or when option ‘alt xyz' is specified: + +* Heading: x(m) y(m) z(m) Time (days) Particle # ID Zone Node + +* Followed by x, y, z coordinate where particle entered breakthrough zone, breakthrough time, particle number, breakthrough zone, break through node for each particle that reaches the breakthrough zone. + +Example of default ".sptr3" file. +--------------------------------- + +.. code:: + + FEHM V3.1win32 12-02-02 QA:NA 02/02/2012 10:22:34 + *** Validation1 Test Problem: 3-D Homogeneous Flow and Transport *** + Time (days) Zone1 Particles . . . + 208000.0 0 + 210000.0 40 + + +Example of ".sptr3" file generated using option "alt". +------------------------------------------------------ + +.. code:: + + FEHM V3.1win32 12-02-02 QA:NA 02/02/2012 10:22:41 + *** Validation1 Test Problem: 3-D Homogeneous Flow and Transport *** + Time (days) Particle# ID Zone Node + 209391.24384033 1 1888 5 1938 + 209391.24384033 2 1888 5 1938 + ... + 209391.24381900 39 51256 5 51306 + 209391.24381900 40 51256 5 51306 + + +Example of ".sptr3" file generated using option "alt xyz". +---------------------------------------------------------- + +.. code:: + + FEHM V3.1win32 12-02-02 QA:NA 02/02/2012 10:22:48 + *** Validation1 Test Problem: 3-D Homogeneous Flow and Transport *** + x(m) y(m) z(m) Time (days) Particle# ID Zone Node + 19800.0000 0.100000000 -5.50000000 209391.24384033 1 1888 5 1938 + 19800.0000 0.200000000 -5.50000000 209391.24384033 2 1888 5 1938 + ... + 19800.0000 -2800.90000 -200.000000 209391.24381900 39 51256 5 51306 + 19800.0000 -2801.00000 -200.000000 209391.24381900 40 51256 5 51306 + + +Log output file (filen.avs_log) +------------------------------- + +The log output file is identical for AVS, AVS Express, Surfer and Tecplot. It contains: + +* Code version number, date + +* AVS log identifier + +* Problem title + +and for each specified time: + +* Output file prefix, Call number, and Time. The output time units will correspond to those selected in the cont macro. + +Example of contour log output file +---------------------------------- + +.. code:: + + # FEHM V3.1gf 12-02-09 QA:NA 02/09/2012 + # LOG AVS OUTPUT + # Unsaturated Diffusion tests + # Root filename Output Time (days) + output/box.00001 0.00000000 + output/box.00002 1001.68908 + output/box.00003 2002.77258 + output/box.00004 3002.77258 + output/box.00005 4003.12657 + output/box.00006 5000.00000 + + +AVS header output files (filen.type_head) +----------------------------------------- + +The AVS ASCII (formatted) header files are identical for AVS and AVS Express output (see `See Example of AVS header output file. `_). The data types, "mat", "sca", "vec" or "con", are described below. The header files contain: + +20 lines of text with information about the FEHM AVS output files. The text is followed by a one line AVS UCD file header containing: + +* number of nodes + +* number of cells + +* number of data components for the nodes + +* number of data components for the cells (currently 0) + +* number of data components for the model (currently 0) + +Example of AVS header output file +--------------------------------- + +.. code:: + + # FEHM V3.1gf 12-02-02 QA:NA 02/14/2012 + # AVS UNSTRUCTURED CELL DATA (UCD) FROM FEHM + # Unsaturated Diffusion tests + # ***************************************************** + # To prepare files for input to avs one must + # concatinate header/geometry/node_value files. + # For example, if your FEHM input file was fe.dat, + # headers are fe10001_sca_head fe10001_vec_head, ..., + # mesh geometry will be in fe10001_geo, + # field output will be in fe10001_sca_node, + # fe10001_vec_node, fe10001_con_dual_node + # + # A UCD input file can be produced using + # cat fe10001_sca_head fe10001_geo fe10001_sca_node > + # fe10001_sca_node.inp + # + # The UNIX foreach command is useful for processing + # multiple files. Also use the shell script fehm2avs + # to perform automatic processing of all output. + # ***************************************************** + 0000000012 5 5 0 0 + + +Geometry output files (filen.geo, filen_grid.dat) +------------------------------------------------- +Geometry data will be output when keyword "geom" or "grid" are included in the output variable list. For AVS the geometry data is output in a separate file when keyword ‘geom' is used. For Tecplot, output of the geometry data depends on the input keyword, ‘geom' or ‘grid'. If keyword "geom' is used the geometry data is contained in the first contour file for each type of data requested. If keyword ‘grid' is used the geometry data is output to a separate Tecplot "grid" file. + +The ASCII (formatted) geometry file for AVS contains the following: + +* Node id and X, Y, Z coordinates for each node + +* Cell id, Material id, Cell type, and the list of Cell vertices + +* The ASCII (formatted) geometry file for AVS Express contains one additional line of data at the beginning of the file, followed by the data specified above: + +* Number of nodes, Number of elements, 0, 0, 0 + + +Example of AVS geometry output file +----------------------------------- + +.. code:: + + 0000000001 0.000000000E+00 0.000000000E+00 0.000000000E+00 + 0000000002 0.100000000E+01 0.000000000E+00 0.000000000E+00 + 0000000003 0.000000000E+00 0.200000000E+00 0.000000000E+00 + 0000000004 0.100000000E+01 0.200000000E+00 0.000000000E+00 + 0000000005 0.000000000E+00 0.400000000E+00 0.000000000E+00 + 0000000006 0.100000000E+01 0.400000000E+00 0.000000000E+00 + 0000000007 0.000000000E+00 0.600000000E+00 0.000000000E+00 + 0000000008 0.100000000E+01 0.600000000E+00 0.000000000E+00 + 0000000009 0.000000000E+00 0.800000000E+00 0.000000000E+00 + 0000000010 0.100000000E+01 0.800000000E+00 0.000000000E+00 + 0000000011 0.000000000E+00 0.100000000E+01 0.000000000E+00 + 0000000012 0.100000000E+01 0.100000000E+01 0.000000000E+00 + 0000000001 1 quad 1 2 4 3 + 0000000002 1 quad 3 4 6 5 + 0000000003 1 quad 5 6 8 7 + 0000000004 1 quad 7 8 10 9 + 0000000005 1 quad 9 10 12 11 + + +The Tecplot "grid" file contains the following (note that only the grid coordinates used are output): + +* Header line with problem title + +* Filetype header + +* Variable header (coordinates used) + +* Zone header with grid specification and type (N = number of nodes, E = number of elements) + +Followed by: + +* "N" node coordinate sets + +* Element connectivity for the grid for "E" elements. + +Example of Tecplot grid output file +----------------------------------- + +.. code:: + + TITLE = "Unsaturated Diffusion tests" + FILETYPE = "GRID" + VARIABLES = "X coordinate (m)" "Y coordinate (m)" + ZONE T = "GRID", N = 12, E = 5, DATAPACKING = POINT, ZONETYPE + ******************************************** + FEQUADRILATERAL, STRANDID 0, SOLUTIONTIME 0. + ******************************************** + 0.000000000E+00 0.000000000E+00 + 0.100000000E+01 0.000000000E+00 + 0.000000000E+00 0.200000000E+00 + 0.100000000E+01 0.200000000E+00 + 0.000000000E+00 0.400000000E+00 + 0.100000000E+01 0.400000000E+00 + 0.000000000E+00 0.600000000E+00 + 0.100000000E+01 0.600000000E+00 + 0.000000000E+00 0.800000000E+00 + 0.100000000E+01 0.800000000E+00 + 0.000000000E+00 0.100000000E+01 + 0.100000000E+01 0.100000000E+01 + 1 2 4 3 + 3 4 6 5 + 5 6 8 7 + 7 8 10 9 + 9 10 12 11 + + +Geometry data when contained in the normal tecplot data files uses shared variables. Coordinates and connectivity are output only in the first file. The data files contain the following: + +* The Tecplot "grid" file contains the following: + +* Header line with code version number, date, time and problem title + +* Variable header + +* Zone header with time, grid specification and type + +Followed by: + +* "N" node coordinate, node number and datasets + +* Element connectivity for the grid for "E" elements + +Example of Tecplot data output file with geometry data included +--------------------------------------------------------------- + +.. code:: + + TITLE = "FEHM V3.1gf 12-02-09 QA:NA 02/09/2012 11:48:26 Unsaturated + Diffusion tests" + VARIABLES = "X (m)" "Y (m)" "Node" "Vapor_Species_001" + ZONE T = "Simulation time 0.00000000 days", N = 12, E = 5, + DATAPACKING = POINT, ZONETYPE = FEQUADRILATERAL, N = 12, E = 5, + DATAPACKING = POINT, ZONETYPE = FEQUADRILATERAL + 0.00000000 0.00000000 0000000001 1.00000000 + 1.00000000 0.00000000 0000000002 1.00000000 + 0.00000000 0.200000000 0000000003 1.00000000 + 1.00000000 0.200000000 0000000004 1.00000000 + 0.00000000 0.400000000 0000000005 1.00000000 + 1.00000000 0.400000000 0000000006 1.00000000 + 0.00000000 0.600000000 0000000007 1.00000000 + 1.00000000 0.600000000 0000000008 1.00000000 + 0.00000000 0.800000000 0000000009 1.00000000 + 1.00000000 0.800000000 0000000010 1.00000000 + 0.00000000 1.00000000 0000000011 1.00000000 + 1.00000000 1.00000000 0000000012 1.00000000 + 1 2 4 3 + 3 4 6 5 + 5 6 8 7 + 7 8 10 9 + 9 10 12 11 + + +Contour data output files (filen.number_type_node.suffix) +--------------------------------------------------------- + +All the ASCII (formatted) node data files for AVS (suffix ‘avs') contain the following headers: + +* Number of data components and size of each component + +* A label/unit string for each data component + +followed by, for each node: + +* the associated node data (described by data type below). + +* All the ASCII (formatted) node data files for AVS Express (suffix ‘avsx') contain the following headers, on a single line delimited by " : " : + +* Current simulation time (with format "nodes at time days") + +* A label/unit string for each data component + +followed by, for each node: + +* the associated node data (described by data type below), delimited by " : ". + +All of the node data files for Surfer (suffix ‘csv') contain a single header line containing: + +* A label/unit string for each data component separated by "," + +followed by for each node: + +* the associated node data (described by data type below), delimited by " , ". + +All the node data files for Tecplot (suffix ‘dat') contain the following headers: + +* Header line with code version number, date, time and problem title + +* Filetype header when keyword "grid" is used + +* Variable header (the variable header is only output to the first data file unless keyword ‘grid' is used) + +* Zone header with time (not output for material property files if keyword ‘grid' is used) + +or + +* Zone header with time and grid specification and type if keyword geom is used + +followed by for each node: + +* the associated node data (described by data type below). + +The dual or dpdp values for each of these fields will be written to a file with "dual" in the file name. + ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| Contour File Content | Data Type Designation | Output Parameters* | ++==============================================================+=======================+============================================================================================================================================+ +| Material properties | mat, mat_dual | Permeability in each active direction (m^2) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Thermal conductivity in each active direction :math:`\left( \frac{W}{m \cdot K} \right)` | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Porosity | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Rock bulk density (kg/m^3) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Rock specific heat :math:`\left( \frac{MJ}{kg \cdot K} \right)` | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Capillary pressure (MPa) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Relative permeability model | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Capillary pressure model. | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Note: Output to the material properities file is dependent on the simulation being performed. | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| Scalar parameters | sca, sca_dual | Zone number | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Pressure (MPa) - liquid, vapor, capillary | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Temperature (oC) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Saturation | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | CO2 (Water volume fraction, Liquid CO2 fraction, Gaseous CO2 fraction, Dissolved CO2 mass fraction, Phase state of CO2 | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Head (m) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Porosity | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Density (kg/m^3) - liquid, vapor | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Permeability in each active direction (m^2) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Source (kg/s) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Mass Flux (kg/s) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Volume weighted Mass Flux (kg/s/m^3) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Displacement (m) for each specified direction | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Stress (MPa) for each specified direction | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | | Volume Strain | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| Vector parameters | vec, vec_dual | Volume Flux (m^3/m^2/s) - liquid, vapor | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| Solute concentrations | con, con_dual | Species concentration (moles/kg) | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ +| | * Output parameters are dependent upon the simulation | | | +| | being performed and keywords specified in the cont macro. | | | ++--------------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------+ + + + +Example of AVS material properties output file +---------------------------------------------- + +.. code:: + + 11 1 1 1 1 1 1 1 1 1 1 1 + Permeability (m**2) in X, (m**2) + Permeability (m**2) in Y, (m**2) + Thermal Conductivity (W/m*K) in X, (W/m*K) + Thermal Conductivity (W/m*K) in Y, (W/m*K) + Porosity, (non dim) + Rock bulk density (kg/m**3), (kg/m**3) + Rock specific heat (MJ/kg*K), (MJ/kg*K) + Capillary pressure (MPa), (MPa) + Relative permeability model, (flag) + Capillary pressure model, (flag) + 0000000001 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000002 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000003 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000004 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000005 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000006 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000007 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000008 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000009 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000010 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000011 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000012 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + + +Example of AVS Express material properties output file +------------------------------------------------------ + +.. code:: + + node : Permeability (m**2) in X : Permeability (m**2) in Y : Thermal Conductivity (W/ + m*K) in X : Thermal Conductivity (W/m*K) in Y : Porosity : Rock bulk density (kg/m**3) + : Rock specific heat (MJ/kg*K) : Capillary pressure (MPa) : Relative permeability model + : Capillary pressure model + 0000000001 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000002 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000003 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000004 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000005 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000006 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000007 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000008 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000009 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000010 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000011 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + 0000000012 : 1.000000E-12 : 1.000000E-12 : 1.000000E-05 : 1.000000E-05 : 0.800000 + : 1000.00 : 0.00000 : 1 : 1 + + +Example of Surfer material properties output file +------------------------------------------------- + +.. code:: + + node , Permeability (m**2) in X , Permeability (m**2) in Y , Thermal Conductivity (W/ + m*K) in X , Thermal Conductivity (W/m*K) in Y , Porosity , Rock bulk density (kg/m**3) + , Rock specific heat (MJ/kg*K) , Capillary pressure (MPa) , Relative permeability model + , Capillary pressure model + 0000000001, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000002, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000003, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000004, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000005, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000006, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000007, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000008, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000009, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000010, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000011, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + 0000000012, 1.000000E-12, 1.000000E-12, 1.000000E-05, 1.000000E-05, 0.800000 + , 1000.00, 0.00000, 1, 1 + + +Example of Tecplot material properties output file without geometry keyword +--------------------------------------------------------------------------- + +.. code:: + + TITLE = "FEHM V3.1gf 12-02-15 QA:NA 02/15/2012 11:29:32 Unsaturated Diffusion tests" + VARIABLES = "node" "Permeability (m**2) in X" "Permeability (m**2) in Y" "Thermal + Conductivity (W/m*K) in X" "Thermal Conductivity (W/m*K) in Y" "Porosity" "Rock bulk + density (kg/m**3)" "Rock specific heat (MJ/kg*K)" "Capillary pressure (MPa)" "Relative + permeability model" "Capillary pressure model" + 0000000001 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000002 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000003 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000004 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000005 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000006 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000007 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000008 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000009 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000010 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000011 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000012 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + + +Example of Tecplot material properties output file with ‘grid' keyword +------------------------------------------------------------------------ + +.. code:: + + TITLE = "FEHM V3.1gf 12-02-15 QA:NA 02/15/2012 07:58:21 Unsaturated Diffusion tests" + FILETYPE = "SOLUTION" + VARIABLES = "node" "Permeability (m**2) in X" "Permeability (m**2) in Y" "Thermal + Conductivity (W/m*K) in X" "Thermal Conductivity (W/m*K) in Y" "Porosity" "Rock bulk + density (kg/m**3)" "Rock specific heat (MJ/kg*K)" "Capillary pressure (MPa)" "Relative + permeability model" "Capillary pressure model" + 0000000001 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000002 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000003 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000004 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000005 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000006 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000007 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000008 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000009 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000010 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000011 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + 0000000012 1.000000E-12 1.000000E-12 1.000000E-05 1.000000E-05 0.800000 + 1000.00 1.000000E-03 0.00000 1 1 + + +Example of Tecplot material properties output file with ‘geom' keyword +------------------------------------------------------------------------ + +.. code:: + + VARIABLES = "X coordinate (m)" "Y coordinate (m)" "node" "Permeability (m**2) in X" + "Permeability (m**2) in Y" "Thermal Conductivity (W/m*K) in X" "Thermal Conductivity (W/ + m*K) in Y" "Porosity" "Rock bulk density (kg/m**3)" "Rock specific heat (MJ/kg*K)" + "Capillary pressure (MPa)" "Relative permeability model" "Capillary pressure model" + ZONE T = "Material properties", N = 12, E = 5, DATAPACKING = POINT, ZONETYPE + *************** + FEQUADRILATERAL + *************** + 0.00000000 0.00000000 0000000001 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 1.00000000 0.00000000 0000000002 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 0.00000000 0.200000000 0000000003 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 1.00000000 0.200000000 0000000004 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 0.00000000 0.400000000 0000000005 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 1.00000000 0.400000000 0000000006 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 0.00000000 0.600000000 0000000007 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 1.00000000 0.600000000 0000000008 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 0.00000000 0.800000000 0000000009 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 1.00000000 0.800000000 0000000010 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 0.00000000 1.00000000 0000000011 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 1.00000000 1.00000000 0000000012 1.000000E-12 1.000000E-12 1.000000E- + 05 1.000000E-05 0.800000 1000.00 1.000000E-03 0.00000 1 1 + 1 2 4 3 + 3 4 6 5 + 5 6 8 7 + 7 8 10 9 + 9 10 12 11 + + +SURFER and TECPLOT contour output files with specified ‘zone' +---------------------------------------------------------------- +The content of the contour files generated when the ‘zone' keyword is used in the cont macro is the same as that for the regular output with the following exceptions: + +#. Geometry keywords, ‘geom' and ‘grid', are ignored; + +#. Data is output only for the nodes in the specified zones; + +#. For "surfer", a separate file is written for each output zone and the file names generated include the output zone number (using 4 digits, e.g., 0001); + +#. For tecplot, the simulation time is written into a text string, and the zone headers include only the zone number, and output is separated by zone. diff --git a/docs/source/ProgramConsiderations.rst b/docs/source/ProgramConsiderations.rst new file mode 100644 index 00000000..319a6a14 --- /dev/null +++ b/docs/source/ProgramConsiderations.rst @@ -0,0 +1,216 @@ +###################### +Program Considerations +###################### + +Program Options +--------------- +The uses and capabilities of FEHM are summarized below with reference to the macro input structure discussed in `Input Data `_. + +FEHM Capabilities and Associated Macro Command Statements +--------------------------------------------------------- + +* Mass, energy balances in porous media + + - Variable rock properties (``rock``) + + - Variable permeability (``perm, fper``) + + - Variable thermal conductivity (``cond, vcon``) + + - Variable fracture properties, dual porosity, dual porosity/dual permeability (``dual, dpdp, gdpm``) + +* Multiple components available + + - Air-water isothermal mixture available (``airwater, bous, head``), fully coupled to heat and mass transfer (**ngas**, vapl, adif) + + - Up to 10 solutes with chemical reactions between each (``trac, rxn``) + + - Multiple species particle tracking (``ptrk, mptr, sptr``) + + - Different relative permeability and capillary pressure models (``rlp, exrl``) + +* Equation of state flexibility inherent in code (``eos``) + +* Pseudo-stress and storativity models available + + - Linear porosity deformation (``ppor``) + + - Gangi stress model (``ppor``) + +* Numerics + + - Finite element with multiple element capabilities (``elem``) + + - Short form input methods available (``coor, elem, fdm``) + + - Flexible properties assignment (``zone, zonn``) + + - Flexible solution methods + + + Upwinding, implicit solution available (``ctrl``) + + + Iteration control adaptive strategy (``iter``) + + - Finite volume geometry (``finv, isot``) + +* Flexible time step and stability control (``time``) + +* Time-dependent fixed value and flux boundary conditions (``flow, boun, hflx``) + + +Initialization +-------------- +The coefficient arrays for the polynomial representations of the density (crl, crv), +enthalpy (cel, cev), and viscosity (cvl, cvv) functions are initialized to the values +enumerated in Appendix of the "Models and Methods Summary" of the +FEHM Application (Zyvoloski et al. 1999), while values for the saturation pressure and +temperature function coefficients are found in Appendix of that document. +All other global array and scalar variables, with the exception of the variables listed in the +table below, are initialized to zero if integer or real, character variables are initialized +to a single blank character, and logical variables are initialized as false. + ++----------+----------+---------------------------+---------+---------------+---------+ +| | | Initial (Default) Values | | | | ++==========+==========+===========================+=========+===============+=========+ +| Variable | Value | Variable | Value | Variable | Value | ++----------+----------+---------------------------+---------+---------------+---------+ +| aiaa | 1.0 | contim | 1.0e+30 | daymax | 30.0 | ++----------+----------+---------------------------+---------+---------------+---------+ +| daymin | 1.0e-05 | g1 | 1.0e-06 | g2 | 1.0e-06 | ++----------+----------+---------------------------+---------+---------------+---------+ +| g3 | 1.0e-03 | iad_up | 1000 | iamx | 500 | ++----------+----------+---------------------------+---------+---------------+---------+ +| icons | 1000 | irlp | 1 | nbits | 256 | ++----------+----------+---------------------------+---------+---------------+---------+ +| ncntr | 10000000 | nicg | 1 | rnmax | 1.0e+11 | ++----------+----------+---------------------------+---------+---------------+---------+ +| str | 1.0 | strd | 1.0 | tmch | 1.0e-09 | ++----------+----------+---------------------------+---------+---------------+---------+ +| upwgt | 1.0 | upwgta | 1.0 | weight_factor | 1.0e-3 | ++----------+----------+---------------------------+---------+---------------+---------+ + +Restart Procedures +------------------ +FEHM writes a restart file for each run. The restart output file name may be given in the input control file or as terminal input, or if unspecified will default to fehmn.fin (see `Control File or Terminal I/O Input `_). The file is used on a subsequent run by providing the name of the generated file (via control file or terminal) for the restart input file name. It is recommended that the restart input file name be modified to avoid confusion with the restart output file. For example, by changing the suffix to .ini, the default restart output file, fehmn.fin would be renamed fehmn.ini, and that file name placed in the control file or given as terminal input. Values from the restart file will overwrite any variable initialization prescribed in the input file. The initial time of simulation will also be taken from the restart file unless specified in the macro `time `_ input. + +Error Processing +---------------- +Due to the nonlinearity of the underlying partial differential equations, it is possible to produce an underflow or overflow condition through an unphysical choice of input parameters. More likely the code will fail to converge or will produce results which are out of bounds for the thermodynamic functions. The code will attempt to decrease the time step until convergence occurs. If the time step drops below a prescribed minimum the code will stop, writing a restart file. The user is encouraged to look at the input check file which contains information regarding maximum and minimum values of key variables in the code. All error and warning messages will be output to an output error file or the main output file. + +The table below provides additional information on errors that will cause FEHM to terminate. + ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Error Conditions Which Result in Program Termination | | ++=====================================================================================+=====================================================================================================================================================================================================================================================================================================================================================+ +| Error Condition | Error Message | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| I/O file error | | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to create / open I/O file | \*\*\*\* Error opening file fileid \*\*\*\*⋅⋅⋅\*\*\*\*---------------------------\*\*\*\*\*\*\* JOB STOPPED \*\*\*\*\*\*---------------------------\*\*\*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Coefficient storage file not found | program terminated because coefficient storage file not found | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Coefficient storage file can not be read | error in parsing beginning of stor file-or-stor file has unrecognized format:quit-or-stor file has neq less than data file:quit | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Coefficient storage file already exists | changing name of new \*.stor (old file exists) new file name is fehmn_temp.stor-and->>> name fehmn_temp.stor is used : stopping | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Optional input file not found | ERROR nonexistant file filenameSTOPPED trying to use optional input file | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to open optional input file | ERROR opening filenameSTOPPED trying to use optional input file | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to determine file prefix for AVS output files | FILE ERROR: nmfil2 file: filename unable to determine contour file prefix | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to determine file prefix for pest output files | FILE ERROR: nmfil15 file: filename unable to determine pest file name-or-FILE ERROR: nmfil16 file: filename unable to determine pest1 file name | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to determine file prefix for streamline particle tracking output files | FILE ERROR: nmfil17 file: filename unable to determine sptr1 file name-or-FILE ERROR: nmfil18 file: filename unable to determine sptr2 file name-or-FILE ERROR: nmfil19 file: filename unable to determine sptr3 file name | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to determine file prefix for submodel output file | FILE ERROR: nmfil24 file: filename unable to determine submodel file name | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input deck errors | | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Coordinate or element data not found | \*\*\*\* COOR Required Input \*\*\*\*-or-\*\*\*\* ELEM Required Input \*\*\*\*\*\*---------------------------\*\*\*\*\*\* JOB STOPPED \*\*\*\*\*\*---------------------------\*\*\*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Inconsistent zone coordinates | inconsistent zone coordinates izone = izone please check icnl in macro CTRL | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid AVS keyword read for macro cont | ERROR:READ_AVS_IOunexpected character string (terminate program execution)Valid options are shown:⋅⋅⋅The invalid string was: string | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid keyword or input order read for macro boun | time change was not first keyword,stop-or-illegal keyword in macro boun, stopping | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid keyword read for macro subm | >>>> error in keyword for macro subm <<<< | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid macro read | \*\*\*\* error in input deck : char \*\*\*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid parameter values (macros using loop construct) | Fatal error - for array number arraynummacro - macroGroup number - groupnumSomething other than a real or integer has been specified-or-Line number - lineBad input, check this line-or-Fatal error, too manyreal inputs to initdata2-or-Fatal error, too manyinteger inputs to initdata2 | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid streamline particle tracking parameter | ist must be less than or equal to 2 | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid tracer input | \*\* Using Old InputEnter Temperature Dependency Model Number: 1 - Van Hoff 2 - awwa model, see manual for details \*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid transport conditions | Fatal error You specified a Henrys Law species with initial concentrations input for the vapor phase (icns = -2), yet the Henrys Constant is computed as 0 for species number speciesnum and node number nodenum. If you want to simulate a vapor-borne species with no interphase transport, then you must specify a gaseous species. | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid flag specified for diffusion coefficient calculation | ERROR -- Illegal Flag to concadiffCode Aborted in concadiff | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Optional input file name can not be read | ERROR reading optional input file nameSTOPPED trying to use optional input file | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Optional input file contains data for wrong macro | ERROR --> Macro name in file for macro macroname is wrong_macronameSTOPPED trying to use optional input file | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Option not supported | This option (welbor) not supported.Stop in input-or- | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | specific storage not available fornon isothermal conditions : stopping-or-gangi model not yet available forair-water-heat conditions : stopping-or-Gencon not yet set for rd1dof.Stop in gencon | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Parameter not set | >>>> gravity not set for head problem: stopping <<<< | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Relative permeabilities specified for non-dual or -double porosity model. | \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*f-m terms but no dpdp : stopping\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid parameters set | | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Dual porosity | \*\*\*\* check fracture volumes,stopping\*\*\*\*\*\*\*\*\* check equivalent continuum VGs \*\*\*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Finite difference model (FDM) | >>>> dimension (icnl) not set to 3 for FDM: stopping <<<< | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Maximum number of nodes allowed is less than number of equations | \*\*\*\* n0(n0) .lt. neq(neq) \*\*\*\* check parameter statements *** | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Node number not in problem domain (macros dvel, flxo, node, nod2, nod3, zone, zonn) | \*\*\*\* Invalid input: macro macro \*\*\*\*'\*\*\*\* Invalid node specified, value is greater than n0 ( n0 ): stopping **** | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Noncondensible gas | cannot input ngas temp in single phase-or-ngas pressure lt 0 at temp and total press givenmax allowable temperature temp-or-ngas pressure gt total pressure i= i-or-ngas pressure lt 0. | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Particle tracking | ERROR: Pcnsk in ptrk must be either always positive or always negative.Code aborted in set_ptrk.f | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Relative permeabilities | cannot have anisotropic perms for rlp model 4 or rlp model 7 with equivalent continuum stopping | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Tracer | ERROR: Can not have both particle tracking (ptrk) and tracer input (trac).Code Aborted in concen.f-or-Gencon not yet set for rd1dof.Stop in gencon-or-ERROR - solute accumulation option cannot be used with cnsk<0-or-** On entry to SRNAME parameter number I2 had an illegal value | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Insufficient storage | | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Boundary conditions | exceeded storage for number of models | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Dual porosity | \*\*\*\* n > n0, stopping \*\*\*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Generalized dual porosity | In gdpm macro, ngdpmnodes must be reduced to reduce storage requirementsA value of ngdpm_actual is requiredThe current value set is ngdpmnodes-or-Fatal error in gdpm macroA value of ngdpm_actual is required'The current value set is ngdpmnodesIncrease ngdpmnodes to ngdpm_actual and restart | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Geometric coefficients | program terminated because of insufficient storage | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Tracer | \*\*\*\* memory too small for multiple tracers \*\*\*\* | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid colloid particle size distribution | Fatal error, the colloid particle size distribution must end at 1 | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid particle diffusion | Fatal errorFor a dpdp simulation, Do not apply the matrix diffusion particle tracking to the matrix nodes, only the fracture nodes | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Invalid particle state | Initial state of particles is invalidParticle number i1 | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Error computing geometric coefficients | iteration in zone did not converge, izone = zone_number please check icnl in macro CTRL | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Too many negative volumes or finite element coefficients | too many negative volumes : stopping-or-too many negative coefficients : stopping | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to compute local coordinates | iteration in zone did not converge, izone = zone please check icnl in macro CTRL | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Unable to normalize matrix | cannot normalize | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Singular matrix in LU decomposition | singular matrix in ludcmp | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Singular matrix in speciation calculations | Speciation Jacobian matrix is singular!-or-Scaled Speciation Jacobian matrix is singular!-or-Speciation scaling matrix is singular! | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Solution failed to converge | timestep less than daymin timestep_number current_timestep_size current_simulation_time-or-Tracer Time Step Smaller Than Minimum StepStop in resettrc-or- | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | Newton-Raphson iteration limit exceeded in speciation subroutine!-or-Newton-Raphson iteration limit exceeded in scaled speciation subroutine!Failure at node i | ++-------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ \ No newline at end of file diff --git a/docs/source/References.rst b/docs/source/References.rst new file mode 100644 index 00000000..8134f808 --- /dev/null +++ b/docs/source/References.rst @@ -0,0 +1,39 @@ +########## +References +########## + +#. Burnett, R. D., and E. O. Frind "Simulation of Contaminant Transport in Three Dimensions. 2. Dimensionality Effects," Water Resources Res. 23:695-705 (1987). TIC:246359 + +#. Carslaw, H. S., and J. C. Jaeger, //Conduction of Heat in Solids//, 2nd Edition, Clarendon Press (1959). TIC:206085 + +#. Conca, J. L., and J. V. Wright, "Diffusion and Flow in Gravel, Soil, and Whole Rock," Applied Hydrogeology 1:5-24 (1992). TIC:224081 + +#. Golder Associates, "User's Guide GoldSim Graphical Simulation Environment", Version 7.40, Golder Associates Inc., Redmond, Washington (2002). MOL.20030130.0347, TIC:235624 + +#. Ho, C. K., "T2FEHM2 Post-Processor to Convert TOUGH2 Files to FEHM-Readable Files for Particle Tracking User's Manual," Sandia National Laboratories, November 1997. MOL.19980218.0246 + +#. Installation Test Plan for the FEHM Application Version 2.21, 10086-ITP-2.21-00. + +#. Lichtner, P.C., S. Kelkar, and B. Robinson, "New Form of Dispersion Tensor for Axisymmetric Porous Media with Implementation in Particle Tracking," Water Resources Research, 38, (8), 21-1 to 21-16. Washington, D.C.: American Geophysical Union (2002). 163821, TIC:254597 + +#. Molloy, M. W., "Geothermal Reservoir Engineering Code Comparison Project," //Proceedings of the Sixth Workshop on Geothermal Reservoir Engineering//, Stanford University (1980). TIC:249211 + +#. Software Installation Test Plan for the FEHM Application Version 2.21, 10086-ITP-2.21-00. + +#. Tompson, A. F. B., E. G. Vomvoris, and L. W. Gelhar, "Numerical Simulation of Solute Transport in Randomly Heterogeneous Porous Media: Motivation, Model Development and Application," Lawrence Livermore National Laboratory report, UCID 21281 (1987). MOL.19950131.0007 + +#. Tseng, P. -H., and G. A. Zyvoloski, "A Reduced Degree of Freedom Method for Simulating Non-isothermal Multi-phase Flow in a Porous Medium," Advances in Water Resources 23:731-745 (2000). TIC:254768 + +#. Validation Test Plan for the FEHM Application Version 2.21, 10086-VTP-2.21-00. + +#. Watermark Computing, "PEST Model-independent parameter estimation: User's Manual," Oxley, Australia: Watermark Computing (1994). MOL.19991028.0052 + +#. Zyvoloski, G. A., and Z. V. Dash, "Software Verification Report FEHMN Version 1.0," LA-UR-91-609 (1991). NNA.19910806.0018 + +#. Zyvoloski, G. A., Z. V. Dash, and S. Kelkar, "FEHM: Finite Element Heat and Mass Transfer Code," LA-11224-MS (1988). NNA.19900918.0013 + +#. Zyvoloski, G. A., Z. V. Dash, and S. Kelkar, "FEHMN 1.0: Finite Element Heat and Mass Transfer Code," LA-12062-MS, Rev.1 (1992). NNA.19910625.0038 + +#. Zyvoloski, G. A., and B. A. Robinson, GZSOLVE Application, ECD-97 (1995). MOL.19950915.0248 + +#. Zyvoloski, G. A., B. A. Robinson, and Z. V. Dash, FEHM Application, SC-194 (1999). MOL.19990810.0029 \ No newline at end of file diff --git a/docs/source/ReleaseNotes/ReleaseNotes_v3.4.0.pdf b/docs/source/ReleaseNotes/ReleaseNotes_v3.4.0.pdf new file mode 100644 index 00000000..faa6dd90 Binary files /dev/null and b/docs/source/ReleaseNotes/ReleaseNotes_v3.4.0.pdf differ diff --git a/docs/source/ReleaseNotes/release_notes.rst b/docs/source/ReleaseNotes/release_notes.rst new file mode 100644 index 00000000..9ccf3789 --- /dev/null +++ b/docs/source/ReleaseNotes/release_notes.rst @@ -0,0 +1,13 @@ +============= +Release Notes +============= + +.. toctree:: + :maxdepth: 1 + + v3.4.0.rst + v3.3.1.rst + v3.3.0.rst + v3.2.0.rst + v3.1.0.rst + diff --git a/docs/source/ReleaseNotes/v3.1.0.rst b/docs/source/ReleaseNotes/v3.1.0.rst new file mode 100644 index 00000000..036a8f92 --- /dev/null +++ b/docs/source/ReleaseNotes/v3.1.0.rst @@ -0,0 +1,1716 @@ +====== +V3.1.0 +====== + +This version brings current all code work since January 2008 and includes the +internal release V3.0 on which must of the User Manual was based. +The FEHM copyright for FEHM LA-CC-2012-083 was based on this version of code. + +------------------------------------------ + +.. code:: + + Release Notes for Version 3.1.0 Jan 29 2008 to Aug 20 2012 + + Use trac/ Browse Source for list of changesets by Archive number, Age and Author + Use trac/ Timeline for changesets listed by date + Next Code Release will TAG V3.1.0 with docs V3.1 + + ------------------------------------------ + 08/20/12 dev compile mac version for use of trxn for E. Keating + + @465:8b356280cfe7 3 weeks spchu + rename params_eosco2 to params_eosco2.h to be used by co2_fugacity.f + + @464:e9d99e2042a8 3 weeks spchu + rename params_eosco2 to params_eosco2.h to be used by co2_fugacity.f + + ------------------------------------------ + 08/16/12 + + @463:f90e801271bc 4 weeks spchu + Added fix to set ifxconc correctly when using pH. + + @462:79484e04dce0 4 weeks spchu + remove params_eosco2.h, renamed it to be params_eosco2 which is not an object file needed to be included in the depends file + + @461:45b7068b66f5 4 weeks spchu + modified depends for params_eosco2 + + @460:2cfd7db27534 4 weeks spchu + Added several error messages and removed the testing subroutine trxn_varcheck. + + @459:67e0168fdcc5 4 weeks spchu + Modified to move print block processing from rxn section of the code to trac section. + + ------------------------------------------ + 08/09/12 + + Matthew Schauer enhancements to combine trac and rxn to macro trxn. + This commit incorporates a number of major updates and revisions to the trxn + macro. The macro is now current with the documentation on the manual wiki at + https://ancho.lanl.gov/fehm/trac/wiki/MacroTrxn + + @458:b1e4124c911e 5 weeks spchu + Subroutine removed from project because it only existed for debugging purposes. + + @457:f277f7c2c6aa 5 weeks spchu + Subroutine changed to trxnint and moved to rdtr.f90. + + @456:7ba4b938ee53 5 weeks spchu + Subroutine changed to rdtr and moved to rdtr.f90. + + @455:815a25a34966 5 weeks spchu + New file. This is a module containing variables that need to be + shared among rdtr and its helper subroutines, and any variables that + need to be shared with external subroutines. + + @454:8e21b9e21f46 5 weeks spchu + New file. This file contains trxn's main input reader subroutine, + rdtr, and supporting subroutines. + + @453:6edd3ed74b1b 5 weeks spchu + New file. This is a module containing variables related to + trxn's database lookup functionality, all of which need to be shared + among rdtr and its helper subroutines. + + @452:70e74fe9870a 5 weeks spchu + Modified the zone macro reader to provide rudimentary support for + naming zones, useful only in conjunction with trxn. + + @451:e73022ec7918 5 weeks spchu + Added a line including the trxnvars module, and modified the trxn + reader to permit recursiveuse of the include block in trxn. + + @450:66e26e8f516f 5 weeks spchu + Changed the name of the main trxn reader subroutine and added some + code to handle errors and permit the moles block to be used in trxn. + + @449:250591ba74f2 5 weeks spchu + Added a line including the trxnvars module, which is now required due + to the changes in comrxni. + + @448:f89fd752925a 5 weeks spchu + Added a statement to allow a five-parameter fit when calculating + tkeq. + + @447:48c5c0a30624 5 weeks spchu + Removed variables that have been moved to trxnvars. + + @446:f730ab43ca3a 5 weeks spchu + Increased hard limits in the code to permit up to 40 species to be + given. + + @445:4679b3dff9d4 5 weeks spchu + Added a statement to allow a five-parameter fit when calculating + tkeq, a new functionality introduced with trxn. + + @444:3f8d20f1ee15 5 weeks spchu + Added allocation statements required for the enhanced zone reader + (see changes to zone.f) and modified allocation for heq to allow for a + multi-parameter fit for determining equilibrium constant temperature- + dependence. + + @443:daf59df26031 5 weeks spchu + Modified depends file to account removing three routines: + readtracrxn.f90, tracrxn_init.f90, trxn_varcheck.f90 + adding three new routines: + rdtr.f90, trxnvars.f90, lookupvars.f90 + + ------------------------------------------ + 06/07/12 + + @442:09c58b87244b 3 months kelkar + stressctr.f + debuged the input of flag_element_perm on the same line as the macro 'fem' + + @441:cf8567988230 3 months kelkar + Makefile.depends + Added dependancies for new routines. Updated several older ones. + + @440:02f9a2fa7f3b 3 months kelkar + startup.f + for stress calculations, save FE coefficients in dnidnj type arrays + + @439:a8a75c623100 3 months kelkar + porosity_wrt_displacements.f + NEW routine. for coupled flow-stress, calculate defivatives of pore volume wrt displacements + + @438:bf9788602993 3 months kelkar + setup_edgePointers_3D.f + initialize permfactor and permtmp arrays. + + @437:f08de4a9ac29 3 months kelkar + geneq1.f + for coupled permeability-stress, replacing the conditional + if(ihms.gt.0) with if(allocated(permfactor)) + + @436:7fad84e9520b 3 months kelkar + compute_permfactor_effstrs.f + passign the recompute_stress to replace 'recompute' and not evaluating it within the routine + + @435:b6bed5a9b67f 3 months kelkar + compute_flow_residual.f + added flag_permmodel + passing the flag recompute_stress to the 'computer_permfactor_*' routines + + @434:783b3361bc69 3 months kelkar + geneq1_stress_coupl_porosi.f + NEW routine. heat-mass equations for coupled porotity-stress with ihms = 15 or 17 + + @433:66d16d946e41 3 months kelkar + gensl1.f + added abs(ndex(1) to the 'cannot normalize, stopping," message + for debugging, added routines to extract elements of the a matrix + + @432:e4ae9707fba9 3 months kelkar + bnswer.f + for coupled porosity-stress, added call to porosity_wrt_displacememnt + for permeability-stress coupling, if flag_permmodel, setup memory and update permfactor. + + @431:caab5eaad792 3 months kelkar + comfem.f + added flag flag_element_perm + + @430:abe59fc780ff 3 months kelkar + fem_DruckerPrager_stiffness.f + New routine + Returns the 6x6 material stiffness (D) matrix for Drucker Prager without cap + model + + @429:b9a986537f83 3 months kelkar + fem_DruckerPrager_stress_update.f + New routine. Computes the stresses from strains for the drucker-prager (without cap) plasticity model + + @428:c59d7d9968f8 3 months kelkar + fem_transverse_isotropy_elastic_stiffness.f + New routine. Returns the 6x6 material stiffness (D) matrix for a transverse isotropic elastic solid + + @427:00092becb8f4 3 months kelkar + fehmn.f + + @426:dd2e58ac928b 3 months kelkar + fehmn.f + if flag_permmodel then setup arrays if using element permfactor and call update routine + + @425:2937e48b6817 3 months kelkar + fem_material_stiffness.f + if stress_anisotropy_in call the matrix form routine fo relastic stifffness + added call for iPlastic, using Drucker-Prager + + @424:aac548fa22f4 3 months kelkar + fem_elastic_stress_update.f + added the flag stress_anisotropy_in + if stress_anisotropy_in then call fem_transverse_isotropy_elastic_stiffness + for matrix firmulaiton of the equations + + @423:da9b1b4a3865 3 months kelkar + fem_vonMises_stress_update.f + removed calculation of phi_trial as it was not used + + @422:180d8498fece 3 months kelkar + geneq_stress_fem_3D.f + added calculation of D matrix for the axisymmetric case + + @421:802180c3fd43 3 months kelkar + gensl_stress_coupled_3D.f + added routine calls for coupling options ihms = 15, 16, 17 + for iPlastic, save plastic_strain in conv_strain + + @420:2a72d0c592d6 3 months kelkar + stressctr.f + added input_msg, etc. for paresing input lines + initialized flag_element_perm and ifem + added coupled flow-stress cases 15, -15, 16, 17 + c ihms = 15 : derivatives of pore volume only wrt displacements + c in heat-mass equations, but not those of permeability + c (ihms = -15 : allow sequentially coupled porosity changes, + c ihms is reset to -3) + c ihms = 16 : derivatives of permeability only in heat and + c mass equations, but not those of pore volume + c ihms = 17 : derivatives of both permeability and pore volume + c in heat-mass equations + for ihms = 15, -15 or 16 or 17, added optional input of pore_factor, with the default value of 1 if absent in the input file. + if using fem, added on the same input line the optional flag flag_element_perm with default value of 1 flag_element_perm = 0 : nodal permfactors + 1 : element permfactors + input for Drucker-Prager plastic model + for output, if using excess-shear, use the values of friction and strength input on that line instead of those in the permmodel macro. + + @419:1cfc605bc7cd 3 months kelkar + comsi.f + added plasticParam3 for Drucker-Prager. + Added the flag flag_pstrain_perm_coupling for coupled plastic + permeability + + @418:db0d625b7b53 3 months kelkar + compute_permfactor_vonMises.f + New ROUTINE. permfactors for coupled plasticity with Von Mises model + + @417:192d5966e833 3 months kelkar + stress_perm.f + for now, if ifem and ihms>0 then node based permmodels are not allowed, skip this routine + + @416:9086283d4637 3 months kelkar + thermw.f + save arrays density and internal_energy if coupled porosity solution with + ihms = 15 or 17 + + @415:152893d77a26 3 months kelkar + update_permfactors.f + if iplastic then forcing the entire domain to have the same plastic model + added call to compute_permfactor_effstrs_pp + added check to enforce permfactor>0. + + @414:a284b2546537 3 months kelkar + fem_material_stress_update.f + added calls for Drucker-Prager plastic model + + @413:0275b11b25fa 3 months kelkar + material_stiffness.f + added 'stop' if iplastic = 0 + + @412:32d942bd3fda 3 months kelkar + material_stress_update.f + added 'stop' if iplastic = 0 + + @411:45f40667d669 3 months kelkar + compute_permfactor_effstrs_pp.f + New routine, add an option to have -ve strx_min, in which case pore pressure is used to drive the permeability change + + ------------------------------------------ + 08/14/12 change version tag to 3.1.1 + + @410:5d466e3241cc 4 months spchu + Add params_eosco2.h for co2_fugacity.f to include + + @409:9bf85d6da91a 4 months spchu + Changed dated.template with new version 3.1.1 + + @408:0837caecfe52 4 months spchu + Changed co2_fugacity.f to include params_eosco2.h instead of params_eosco2 + + %%%%%%% VERS3.1.0_012_0418 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + In order to better synch version numbers embedded in the code and documentation + Change this version to 3.1.0 instead of 3.00 and continue on with versions 3.1.* + + 04/05/12 Release V3.1.0 Distribution for WINDOWS, Shaoping compile + + @407:ea3d18147a29 5 months zvd + Added output of node number along with number of connections. Code now reports itis stopping once the connections list is written. + + ------------------------------------------ + 03/27/12 + + @406:357f079c5f5b 6 months zvd + Fix improper assignment of function return value for the cden correction. + + @405:f31ff8101402 6 months zvd + Add new routines for concntration dependent density correction. + + @404:e0475fcc9318 6 months zvd + Added option for liquid density correction using multiple species (cden macro) and actual NaCl? concentration for CO2 brine calculations. Added coding developed by M. Schauer for alternate input for transport and reactions (trxn macro). + + @403:04f133efb034 6 months zvd + Updated check for end of stress macro input to be consistent with end keywords used with the "off" keyword option. + + @402:1a97d1c75f85 6 months zvd + Made keyword "off" error message consistent with specified usage of the keyword. Added output of the error message to the terminal and output file if active. + + @401:ae76cc99c60d 6 months zvd + Modified naming of output for CO2 total mass to be consistent with naming of mass fractions and documentation. Changed volume variable for computation of CO2 total mass to be consistent with what was used in the CO2 output routine. + + @400:915324fd2ab0 6 months zvd + Added initialization for variables used in streamline particle tracking when the colloid diversity model is invoked (allocmem). Added deallocation for those variables in releasemem. + + @399:c7d066d87687 6 months zvd + Coding was added to compute concntration flux for vapor species. A correction was made to use the correct index for density, volume, saturation and porosity. + + @398:f52723379110 6 months zvd + Fixed output order problem (unformatted output) for particle numbers by species for mptr simulations. Modified code to only output information for the number of particles for a given species. Previously output was controlled by number of particles that species 1 had. + + ------------------------------------------ + 03/29/12 + + @397:e275d496561d 6 months zvd + Corrected tecplot 'zone t' line when zone identifier is requested without grid or geom specified. + + @396:405f3078f079 6 months zvd + Corrected header for sptr btc output when keywords 'alt' and 'xyz' are used. + + @395:ee6a53bb01ca 6 months zvd + Added initialization for thermal conductivity model assignment. + + @394:b0d8aee8fd95 6 months zvd + Added potential energy correction for enthalpy to table lookup. + Added cden correction for density to table lookup. + + %%%%%%% VERS3.0_012_0418 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + 02/02/12 Release V3.1.0 Distribution for Linux and Mac, Zora compile + + @393:cbe68b96552c 7 months zvd + Updated files for gfortran compilation. + + @392:ce633efaf54f 7 months zvd + Added check for alternate macro end string, endstrs or end strs, to be compatible with implementation of the macro "off" option. Incorporate changes from GAZ so "zone rad" can be used with stresses. + + @391:b5212ce80ceb 7 months zvd + Modify so output headers for tecplot are consistent with other data file types. + + @390:3a1eb1408362 7 months zvd + Added check for alternate macro end string, endcarb or end carb, to be compatible with implementation of the macro "off" option. + + @389:f15e5ac6aa8e 7 months zvd + Updates for the MDAG version of fehmn.f for coupling with GoldSim?. + + ------------------------------------------ + 01/25/12 + + @388:e003f26c68e3 8 months zvd + Make arguments to min/max functions consistent type for Absoft compiler. + + @387:18c47c7651f1 8 months zvd + Updated compiler for Absoft compiler on MACs. + + @386:579a25684a49 8 months zvd + Modified so effective saturation will never be smaller than residual saturation defined in rlp macros. + + @385:8a5a89720874 8 months zvd + Update to make consistent with code for mixing model from Shaoping used in the natural systems modeling. + + @384:1e595b23b214 8 months zvd + Changes to make mixing model code consistent with code from Shaoping used for the natural systems models. + + @383:3a92ca4a69b7 8 months zvd + Fixed argumnet mismatch in subroutine calls from these routines. + + @382:16f30f45fcff 8 months zvd + Removed duplicate specification for use of variable ipermstr2 from module comsi. + + @381:6d3bf5cac2c2 8 months zvd + Added check for maximum number of words that can be parsed. + + @380:841ac28cb818 8 months zvd + Added output of dpdp nodes to the check file for auto-generated zones. + + @379:7bfd71da0874 8 months zvd + Added condition so that "zonn" macros will also be read prior to reading the mptr input. + + ------------------------------------------ + 12/20/11 + + @378:007efc7a9355 9 months zvd + Modifications to keep in sync with EM version of FEHM and correct minor issues. + + ------------------------------------------ + 11/29/11 + + @376:32308f3a8a76 10 months zvd + Fixed variable assignment for CO2 gas density and viscosity output. Added time option + where hours can be fully spelled out instead of abbreviated. + + @375:f2c1d491a8a1 10 months zvd + Fixed output flag to only output enthalp fluxes when available in simulation. + + @374:10f2743202a8 10 months zvd + Made output time variable consistent with what was written to log file. + + @373:2f4406f401f8 10 months zvd + Corrected derivative sign for CO2 liquid variable in relative perm calculation. + + @372:9ef263594766 10 months zvd + Corrected allocation of local variable to match size of global equivalent. Mismatch in size + caused crash on deallocation. + + ------------------------------------------ + 11/17/11 + + @371:d4a2b28e680b 10 months kelkar + Initialize the arrays fac and fac_E in routines calling stressperm_22 and stressperm_222 + + @370:e2aaf6911381 10 months kelkar + output stress dependant permeabilities, plastic strain + + @369:15b373aa5248 10 months kelkar + output plastic strain + + @368:cd107ba056ee 10 months kelkar + changed model to allw tensile as well as shear failure + + @367:549f5ad0a7fe 10 months kelkar + changed call parameters so various subroutines cna be used from other places + + @366:7f4b9628d2b9 10 months kelkar + 1) added permmodel222 2) allocate arrays, use increamental strains for plastic model + + @365:2e18cb861b89 10 months kelkar + save converged strain for plasticity + + @364:c2fd9f365a30 10 months kelkar + skipp routine if using 'fem' option with coupled stress (it is hardwired to permmodel=2 for now. + will be changed in future) + + @363:a1bfd2c8330b 10 months kelkar + add calculations for plastic condition + + @362:8937581d1156 10 months kelkar + Allow upto 28 edges (8nodes, 7 connections per node ) per element + + @361:6f513721da41 10 months kelkar + added permmodel=222 + + @360:a7d290d03a45 10 months kelkar + changed tol to 10-20 + + @359:a6258bb36a2d 10 months kelkar + added calls to :comfem, fem routines, element-setup routines, permfactor routines, + + @358:23accd8e8d65 10 months kelkar + added unloading parameter + + @357:1e7414319ca6 10 months kelkar + added permeability updates for stress depenadnce + + @356:ce9670347914 10 months kelkar + added stress and strain calculations + + @355:d029b2cc1154 10 months kelkar + cleaned up use statements and deviatoric stress calculations + + @354:d9bf5d27dfce 10 months kelkar + changed to use increamental displacements, added unloading check, cleaned up + + @353:0b6a861b592a 10 months kelkar + added parameter to check unloading + + @352:948c0ec5e6d0 10 months kelkar + clean up + + @351:74e0929e9af4 10 months kelkar + added gauss point strain calculations + + @350:04ab6998034f 10 months kelkar + added model asignments for plasticity + + @349:d86894e96324 10 months kelkar + added arrayes for increamental displacements, and for permmodel222 + + @348:39530227f70d 10 months kelkar + moved permfactor calculations to compte_permfactor. added average effective stress calculations + + @347:987bf3b2bc2b 10 months kelkar + add arrays for plastic strain + + @346:4d672d546ca4 10 months kelkar + update incremental displacements for coupled stress + + @345:2159a33983c8 10 months kelkar + FIles needed for evaluating stress-dependant permeability when using 'fem' option. + + @344:aa8805286800 10 months kelkar + Files needed for calculating the second invariant of the deviatoric stress used in Plastic stress-strain models + + ------------------------------------------ + 11/08/11 + + @343:ba11f03c899d 10 months zvd + Added back in co2 flow option inadvertently ommited during merge due to duplicate use of a flag ID. + + @342:153f2c936819 10 months zvd + Corrected problem with zone definitions for dpdp problems, where auto-generated zones overwrote user defined zones for the matrix. Do not want to auto-generate the matrix node zones if the user has created their own zone definitions. + + %%%%%%% VERS3.00 Nov 2011 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 10/31/11 TAG V3.1 with docs V3.0 + + @336:765d52a467e1 11 months zvd + Merge and addition of routines from GAZ for gdkm, stress, etc. Revision update to v3.1. + + @335:f1ec194c8cb2 11 months zvd + Only deallocate nelm_temp if it has been allocated. + + @334:02c2b58b566f 11 months zvd + Add correct (and correctly named version) of gdkm_connect for new generalized double porosity / double permeability model. + + @333:adae71333d1e 11 months zvd + Define parameter pi and set input variables. + + @332:10cc67d40f30 11 months zvd + Update routine to recognize new end keyword ("end cont" or "endcont") so it can be recognized if "off" keyword is used with the cont macro. + + @331:817c391f7c1d 11 months zvd + Modifications for co2 restarts to ensure routines are called in correct order, appropriate minimum values are used, and initialization is captures end state of previous simulation. + + @330:77e435392c7f 11 months zvd + Added new keyword "off" to let a macro be disabled without deleting it from an input deck when testing model options. This option also called for needing an end statement when a macro is disabled and allowing an end statement to be added for any macro that takes the form "end macro" or "endmacro". + + @329:06c630827fd1 11 months zvd + Correct second index for particle concntration calculation. + + @328:36aaf420510a 11 months zvd + Add coding to output multiple species for mptr problems. Original version only output data for species 1 in a multiple species particle tracking simulation. + + @327:b2a654b9a595 11 months zvd + Set index offset for ith species. + + ------------------------------------------ + 09/20/11 + + @326:b7d09afa5f8e 12 months zvd + Add variable definition from comco2 for icarb. + + @325:4c0d961bd93d 12 months zvd + After reading for CO2 restart set ieos and ices, and make sure phase calculations are subsequently done in startup. (Changes by R. Pawar) + + @324:c713a92e444a 12 months zvd + Update output headers to meaningful descriptors for particle tracking simulations. + + @323:4f44aea5f6d1 12 months zvd + Add flag and code for CO2 coupling in trac and rxn. (developed by E. Keating) + + @322:c168089d5342 12 months zvd + Implemented co2 flow input with the boun macro. The two new keywords are sco2 and dsco2 for source iput and distributed source input. + + @321:dc2c02e5a125 12 months zvd + Changed the default size of the in array to be consistent with iofile modification for GoldSim?. + + @320:196e7024d70b 12 months zvd + Changed the default size of the in array to be consistent with iofile modification for GoldSim?. + + ------------------------------------------ + 09/06/11 + + @319:5864dd76bb97 12 months zvd + Add logic to invoke options related to a GOLDSIM linked run with parameter in(4) = 666. + + @318:677914dbd67b 12 months zvd + Added logic to set default control file, error file, and check for command line only if this is not a GOLDSIM linked run with input parameter in(4) = 666. + + @317:6851cfaf2c16 12 months zvd + Modify part_track output to include cumulative time when outputting particle location (pout = -7) and correct header to reflect the values output to file for that option. + + @316:a026b8af6eab 12 months zvd + Added option to output tecplot style header in zbtc file. Added code to read zbtc data from sptr particle restart file if used. + + @315:8c7532e1126e 12 months zvd + Fix scanning routine so code is reading correct unit if the rlpm macro is entered in an optional file. Add check to scanning of particle restart data to determine if zbtc data was written so particle count is calculated correctly. + + @314:6841d26d272d 12 months zvd + Add options to output fluid density or viscosity with time. + + @313:4b5b61705a47 12 months zvd + Add option to input/define a zone using ja, jb, jc loop index format. + + @312:f282bde89297 12 months zvd + Added option to insptr to write tecplot style header to zbtc file. Updated routines to save and/or read breakthrough information for particle tracking restart when particle restart file is used. + + ------------------------------------------ + 07/18/11 + + @311:e4ce0e26c3b5 14 months zvd + Add logic so that relative perm for a fracture / matrix system is only output for both the fracture and matrix if a Van Genucthen fracture/matrix model is used and a dpdp problem is being run. + + @310:35626defa85f 14 months zvd + Correct input unit number so rlpm macro can be correctly read/scanned from an external file. + + ------------------------------------------ + 06/23/11 + + @309:69aca1255ef0 15 months zvd + Ensure array assignments that use permeability arrays uses correct portion of pnx, pny, and pnz arrays. + + @308:fcf58778ce0f 15 months zvd + Modified conditional checks to allow capillary pressure output when ico2 > 0 or irdof ne 0 or ifree ne 0. Was not outputting capillary pressure for isothermal air/water problem. + + @307:4dc4208e6948 15 months zvd + Add option for EOS table lookup for super critical water. + + @306:68cb023032e8 15 months zvd + Update in call order for icectrco2. Define tboil as large value if supercritical water table is used. + + @305:d157b0d12aa1 15 months zvd + Update to call order for icectrco2 in bnswer and conditional check in ther_co2_h2o. + + @304:836f107bac33 15 months zvd + Made variable type consistent with use in subroutine: maxitp --> integer in psat and psatl, matrix_node --> logical in bc_far_ctr. + + ------------------------------------------ + 06/13/11 Tested version includes CO2 codes from R. Pawar 15-May-11 + + @303:e65f0471d894 15 months zvd + Latest updates and version tested by zvd. + + @302:acff0a5fa2d9 15 months zvd + Added checks for "iout" to make sure the output file is assigned and open before writing. + + @301:cdc1c90bb417 15 months zvd + Save "ifile" so the assigned unit is used for writes. + + @300:2189a200874f 15 months zvd + Added params_eosco2 to project and uncommented include statement in co2_fugacity to use the file. + + ------------------------------------------ + 05/17/11 + + @299:37f3318223c0 16 months zvd + Updated dependencies for CO2 updates and new routine, co2_fugacity.f + + @298:b8abce31a662 16 months zvd + Commit changes from branch merge of CO2 changes from R. PAwar 15-May-11. + + @297:6eb18c1cd8a8 16 months zvd + Commit changes from R. Pawar update to CO2 routines 15-May-11. + + @296:6096cf50b73d 16 months rajesh + Changed model for calculation of fugacity in co2_properties module. Went back to the + earlier formulation based on Span and Wagner. + Added a new subroutine 'co2_fugacity.f'. Made appropriate changes + for calling co2_properties in other subroutines. + Changed the order of call for icectrco2 and ther_co2_h2o in bnswer, varchk and startup + This was done because the fugacity formulation requires density which is calculated + with ther_co2_h2o with flag 0. + Changed the formulation for calculating heat outflow bc in ther_co2_h2o. + Modified output of zone fluxes. + + ------------------------------------------ + 04/19/11 + + @295:d5792a841c5e 17 months zvd + Make array size for parser variables consistent with parse_string2. + + @294:d97c45efa9eb 17 months zvd + Commit after pull and fixes for changes that didn't get into repository or were over written. + + @293:ec1d3a0c79db 17 months zvd + As far as I can tell, no changes were made to these routines. + + @292:f035b837244f 17 months zvd + Make call variables consitent with other code. + + @291:1bbf2e58140b 17 months zvd + Fixed prolog and some spacing. + + @290:45bc2673e3ad 17 months zvd + Add newline at end of file. + + @289:54b5151cc904 17 months zvd + Changed variable "day" (time step size) to "days" (total simulation time) where an average rate was being calculated using the total input or output. + + @288:d0b23d00790f 17 months zvd + Fixed cast of type where real value was used in calculation of an index for the in array. + + @287:66748f5a4aed 17 months zvd + Made some corrections to allocation (only allocate if unallocated) and assignment of "in" array (only check wtrise if linked to GoldSim?). Changes were needed with respect to adding "in" to comuserc. + + @286:a82bc5f39580 17 months zvd + Made call sequence consistent with subroutine for call to max_excess_shear. + + @285:948c7207758e 17 months zvd + Made data type consistent in function min. + + @284:ec3209a8e2e9 17 months zvd + Added coding so parameter range sampled could be checked for runs using diffusion type curves. + + @283:67985234a59d 17 months zvd + Made call to subroutine fem_material_stress_update consistent with coding for the subroutine. + + @282:4f379c4f747d 17 months zvd + Added coding to allow checks for the data range being sampled when diffusion type curves are used. + + @281:68c7e893f581 17 months zvd + Changed particle node output for initial transient location (sptr2 using "TRA' keyword) so it could be distinguished from a particle that has been excluded, not just delayed in time. + + @280:33fd6d33905b 17 months zvd + Updated dependencies for changes to module files and use. + + @279:2c41ee9f367a 17 months zvd + Added check for specification of liquid or vapor when density output is requested. + + @278:a2a59c39c56b 17 months zvd + Added CO2 to 'flxo'. Modified calculations of CO2 fluxes (in, out, net) and there outputs. + + @277:52b0c9913626 17 months zvd + Updated input to not pass "in" array in call to concen. + Updated read for 'chea' to use parse_string to assign default values for reference conditions. + Close input file at end of data read if no "mptr" macro (which reads data later) is used. + + @276:7c57acc0f36f 17 months zvd + Update for getting "in" array from comuserc instead of being passed in. + Add check of range of values accessed when using diffusion type curves. + + @275:e003dc0fec22 17 months zvd + Add call to flxo for CO2. Update for eliminating passing of "in" array through multiple routines that don't use it (call to concen in this case) by adding it to comuserc. + + @274:d77d61d43e8a 17 months zvd + Update trac routines to eliminate passing of "in" array when it is only need by userc routine. Also make files consistent with adaptation for trac used with GoldSim?. + + ------------------------------------------ + 02/07/11 + + @271:0c85505d5e13 19 months kelkar + removed unnecessary arrays DSai and gp_strain_mech + + @272:3026d9e63429 20 months zvd + Changes from last pull and update. + + @270:c61cb1fc89e9 20 months sai + Added routines for stress computations in 2-D using 'fem' + Fixed a minor bug in the bodyforce computations + + @269:a4bd15eaf505 20 months kelkar + zero out initial strains in fem calculations + + ------------------------------------------ + 01/19/11 + + @267:8249ed5b9cb4 20 months kelkar + Merge after pull of 19Jan2011 + + @266:892413ff3aa9 20 months kelkar + Broke up the stress_perm routine to make seperate subroutines for each permmodel. Added stressperm_91 for table input. Added stressperm_21 to combine Mohr-Coulomb failure on a user specified plane with permmodel=2. Added stressperm_22 which is simillar to _21 except the failure is on the plane of maximum excess shear stress (Jaeger and Cook 1979). + + @265:93489af04609 20 months kelkar + Changes related to the inclusion of 'fem' macro in the strs macro, option to do standard finite element calculations - by Saikiran Rapaka. This option is included to incorporate Gauss point stress & strain calculations, instead of the node-based FEHM approach. + + @264:2910c24a437b 20 months zvd + Add coding that changes check for number of nodes found in restart file compared to nodes in code because for a gdpm problem additional nodes do not have to be in increments of neq_primary like for dpdp or dual problems. + + @263:43e675fb216a 20 months zvd + Commit changes from pull/update of January 13, 2011. + + @262:3da2f4ae9cbe 20 months zvd + Corrected assignment of end-point values for linear rlp and capillary pressure models. + + @261:8f0e9349aa4e 20 months zvd + Modified history output routines to output liquid enthalpy at specified nodes. Corrected output of enthalpy source / sink so that absolute value was not used to screen values being reported (input enthalpy will be negative). Added new entahlpy keyword eflow or mjs. + + @260:5e139ecc1183 20 months zvd + Changes to fix problems with sptr. In insptr insure dtmin is set to positive value, and freeze_time is correctly initialized. In ptrac3 add warning for illegal particle moves and check to make sure that for sptr2 for plumecalc output only occurs when a particle leaves a cell. For move particle remove old coding for random walk jumps in regular grids that erroneously exited loop at edge nodes. Add bilinear interpolation routine for type curve interpolation. + + @259:025cbf26a2e4 20 months zvd + Add option to use root file name when naming ptrk output file. + + ------------------------------------------ + 12/21/10 + + @258:d64ece8896ec 21 months zvd + Commit changes from merge with gaz updates. + + @257:e9c2ac08aa2d 21 months zvd + Removed redundant assignment of alpha and beta for model 19. + + @256:931efcd15b69 21 months zvd + Per gaz finding, moved assignment of alpha and beta before conditional for rlp or capillary calculation. Previously they were undefined on return call to routine for calculation of capillary pressure (model 19). + + @255:a55823a3ce56 21 months zvd + Added coding from Lagrit parse_string routine to correct problem where the parser was identifying a string made up of integers and "-" as an integer instead of a string. + + @252:02de775996e4 21 months sai + Added files needed for the 'fem' macro for stress computations. + + @251:06a224c066e8 21 months gaz + new file for far field boundary conditions + + @250:e6d7421d20f4 21 months gaz + added capability to manage far-field boundary conditions (comai,combi,data,scanin, + input,gensco2h2o.f) + fixed errors in vgcap and rlperm_co2 + + @254:c17a4408e4e9 22 months zvd + Added routines from Lagrit that determine whether or not a character string was an integer or a real number. Previous + logic was not correctly identifying as a string a number sequence that contained "-" (such as a date in format 10-10-2 + 010).@253:ebc1d409c9a5 22 months zvd + Removed extraneous "end if" from fehmn_pcx.f. Updated fehmn_pc_dll.f to be consistent with changes ro fehmn_pcx.f. + + @249:10f47afe77a5 22 months gaz + merged with routines from central repository + + @248:d8b5f10cf1ca 22 months gaz + enrich_ctr.f initial attempt at enrichment scheme + phase_balance_ctr.f- test forcing energy balance during phase change + + @247:f069dd612198 22 months gaz + anonp-changed averaging fo sx array when using isotropic coefficients + comai- added more parameters + data-zeroed out additional arrays and parameters + geneq_co2- will have to comapre + gensco2h2o- added diffrent NR stopping criteria + icectrco2- don't know + nr_stop_ctr- added variable change limits as stopping critera for CO2 + ther_co2_h2o- changed constant co2 saturation (important) + varchk-commented out correction to co2 equations (done elsewhere) + + @246:c445533310be 22 months gaz + src/icectrco2.f cosmetic changes + src/scanin.f minor changes + src/stressctr.f diffrent perm models + src/ther_co2_h2o.f permsd for fg(mi) + + @236:9e721d07ada3 22 months zvd + Modified new rlpm macro routines. Worked through issues with definition of phase for rlp and capillary calculations, added routines to check the rlp functions and generate a table of output, completed integration so new macro would work with CO2. + + @235:f473b5f16909 22 months zvd + Moved call to sptr_save for data write out of ptrac1 and added after call to load_omr_flux_array in fehmn. The velocities had not been calculated before the write with the previous sequence. + + @234:dfeca9dcf569 22 months zvd + Added output for CO2 in vapor phase. + + @233:4e7b6fe431e8 22 months zvd + Modified call sequence so that stress variables are defined for call to diskwrite, when stress variables are written to restart file. + + @232:3d04ca869fa1 22 months zvd + Added coding to allow output and reading of stress variables from new style restart files. + + @231:b6a69fa28508 22 months zvd + Assign values of an to array anl so it will be defined when restarting a problem with concentration density corrections. + + @230:763bcf14d21c 22 months zvd + Corrected accumulation terms for solute diffusion. For solute diffusing into or out of a cell a positive change in the cell concentration should be added to the sumin and a negative subtracted from the sumout. + + ------------------------------------------ + 11/01/10 + + @245:2dae114d9530 23 months gaz + gencof.f improved volume/body force calculation for FE applications + gncf2.f and gncf3.f improved body force calculation + geneq_stress_uncoupled_2D.f geneq_stress_uncoupled_3D.f- make + compatble with corrections above + genco2.f small energy term correction (zeroed out) + startup.f call to correct FE coefficient readstress_2D_post.f stress_3D_post.f body force correctionsx_combine.f correct FE coefficient read + ther_co2_h2o.f small corrections for Co2 energy term (and production term) + zone.f added 3d zone capability to 2d problems + + + ------------------------------------------ + + + @244:f9af6e74318b 2 years gaz + corrected bug in shape function routine + changed the definition of volumes generated in gncf3 to match that needed for body + forces + added test routine in user_ymp.f + + @243:741d77fece29 2 years gaz + commit after merge + + @242:0760302730bd 2 years gaz + Corrected co2 production terms + + @241:956a0f8937b5 2 years gaz + fixed errors + + @240:430cd04846e2 2 years gaz + fixed bugs in CO2 code + (geneq_co2.f,geneq_h2o_co2.f,gensco2h2o.f,ther_co2_h2o.f,etc + fixed a minor bug in vgrlps.f + fixed minor bug in steady.f + + @238:4662341c3052 2 years gaz + testing different NR multipliers + + @237:8eae8ef26020 2 years gaz + continued development + + ----------------------------------------- + 10/12/10 + + @229:18db16872dff 2 years zvd + Files changed and modified for a new style of rlp model input. Macro "rlpm" was added to the input to indicate the new style of rlp input should be used. This macro is keyword based including phase and model type designations, to simplify inout of model parameters. A tabular input format has with linear interpolation has also been added. + + @228:f7a9b83f39be 2 years zvd + Fixed co2 code to correct enthalpy terms for water and co2 fluxes. Fixed upper limit check for saturation in vgrlps. + + @227:d63d8d72c24d 2 years zvd + Add check to ensure that the water saturation used to compute diffusion is between 0. to 1.0 so diffusion is computed correctly. Saturations lieing outside that range can lead to NaN's being computed and bad results. + + @226:63e74782ebc8 2 years zvd + Compute solute fluxes in terms of rcss instead of flow. That way solute movement by diffusion can be accounted for. + + @225:1bc1702c0e9b 2 years zvd + For runs with the well / river macro modified code to set header_flag to 'old', so restart file would be correct for runs with trac or ptrk. + + @224:c5fc17235ffa 2 years zvd + Modified the initialization of bigblock array when dealing with the gmres, b, and piv pointers. + + @223:925262c1147b 2 years zvd + Modified check for permmodel to correctly read past input when model type 4 is used. + + @222:71662dab50e3 2 years zvd + Modified code so "chea" variable is only used when the problem is not already a "head" problem. Setting the "chea" variable was causing double output of head. + + @221:551098684a58 2 years zvd + Commented out variable declarations in comriv that could potentially be in conflict with variables in comwellphys. Commented out an unnecessary initialization in wellphysicsctr that used an unitialized variable index. + + @220:8d76bcefacc2 2 years zvd + Added call variable type definitions to subroutine exit_pollock. + + @219:c1c02ca32dd2 2 years zvd + Modified coding to not set ichead variable for a regular head problem and to only put out a single head value when chead is invoked. + + @218:ee0e7c84cb0b 2 years zvd + Remove double + from dis equation. + + @217:40f1ad3900de 2 years zvd + Removed double + from dis equations. + + ----------------------------------------- + 06/24/10 + + @216:4138aed9d7b1 2 years zvd + Resolve inconsistencies found on merge of open code with ExxonMobil? base code. + + @215:90586bc3cbd7 2 years zvd + Update dependencies for new routines added by GAZ. Add back in changes that didn't make it into code updated and merged by GAZ 22-Jun-10. + + @214:64b44025034f 2 years gaz + added files + + @213:5b93321ad570 2 years gaz + added these files + + @212:901945ec7f50 2 years gaz + made changes to stress calc routine + added more sterss coefficients (stress averaging) + added changes for tensor perm and heat and mass flow + added partial fix for spatially variable GDKM + minor fix for peaceman well + + @211:6364768c4e5b 2 years gaz + Organized new use modules and minor changes + + @208:2ba3b6b0d5d0 2 years zvd + Added additional write statement for output so solute identifier will be output for multiple species runs. + + @207:12493f1b1e81 2 years zvd + Added coding to distribute solute entered as moles over complete specified zone when there is the possibility of overlap between zones that could reduce the number of nodes that the solute is distributed over. + + @206:49efd98cd146 2 years zvd + Added coding to apply scaling of permeability (fperms) to models that include relative permeability. Arrays were added to save permeability scaling factors so they could be applied to rlp perms during a simulation. + Added reading of variable ihms to scanin so it can be used for some history plot set up if strs macro is not read before hist macro. + + @205:6a8998a14b17 2 years zvd + Added coding to apply scaling of permeability (fperms) to models that include relative permeability. Arrays were added to save permeability scaling factors so they could be applied to rlp perms during a simulation. + + @204:19fd1184147f 2 years zvd + Corrected indexing problem with particle output when particle restarts are used for the minimal (plumecalc style) sptr2 output. Also, added option to only output final particle location when particle time is greater than simulation time if an output end flag is set. + + @203:73e4bd7e4863 2 years zvd + Corrected type decalrations for ncon and nop to integer in the routine to match the variables being passed in. + + @202:a792c181091e 2 years zvd + Added deallocation of n_col variable when column data is being generated for a grid. Caused code crash on Windows PC when the already allocated array was reallocated when rereading the data from the just generated file. + + @201:25f08da112b6 2 years zvd + Corrected trac output for Henry's Law species. For history output, the concentration values output were correct for the model component, but the headers were wrong for vapor species - reporting output as aqueous instead of vapor. For contour output, the aqueous values were always output instead of the vapor concnetrations when a vapor species was used. + + @200:78589ef7794b 2 years zvd + Extend particle exclusion option to also exclude particles whose initial location places them at a node with porosity <= 0. + + ------------------------------------------ + 03/04/10 + + @210:d8ac62b7e519 3 years gaz + Fixed minor out of bounds + + @209:c3913611527b 3 years gaz + add_gdpm.f : added new model and minir changes + area_flow_bc.f : added calculation of control volume lengths in all directions + bnswer.f : changed call to outbnd + comai.f : added global variables + resetv.f : minor bug fix + gradctr.f : additional capability + + + @199:8ef559671e5c 3 years zvd + For strs problem, read parameter "ihms" in scanin. This parameter controls whether or not history output will be written, and eliminates need for putting "hist" macro after "strs" macro in the input deck so output will be properly invoked. + + @198:83bf968958f4 3 years zvd + Added conversion for log permeability if permeability was entered as negative value for model option -1. + + @197:f8c72fc1cc21 3 years zvd + Added keyword 'output_end' to sptr macro to flag output of final particle position in standard sptr2 file if the partivcle time exceeds the total simulation time. The default is to not output the location if the particle time is greater than the ending time. + + @196:d65de61536c1 3 years zvd + Corrected incorrect input unit designator in reads for 'well' macro, so data can be correctly read from an alternate input file. + + @195:3b1a11d08006 3 years zvd + Fixed terminal and output file headers for flux output to match new format of zone flux output. + + @194:c5d98ca2644c 3 years zvd + Fixed indexing variable so zone idnetifiers are written correctly to output title string. + + @193:0f42bf2d586f 3 years zvd + Fixed default conditions for macro flxz so that vapor output is not enabled for wtsi problems. + + @192:20eed7004adc 3 years zvd + Added an option to exclude input particle locations that fall outside the problem doamin instead of moving the particle to a position within the domain. + + @191:77786116cb9e 3 years zvd + Replaced extraneous comma in header for zone flux output using CSV format. + + @190:2fb8505d431d 3 years zvd + Eliminate extraneous "+" in distance calculation and assignment. + + @189:f17bcc17d5e8 3 years zvd + Corrected incorrect goto location when rxn macro and zone output are used. + + @188:e50237e91734 3 years zvd + Fixed time reporting problem when using transient particle release with initial simulation time greater than particle release time. Particle movement is now related to initial simulation time, if greater than particle release time. + + @187:7b2df28fe5e5 3 years zvd + Add correction for calls to solve_new and solve_dual when igauss = 1. + + @186:411fbd96cc97 3 years zvd + Added keyword option to generate a single-phase flow macro (i.e. output 0. or 1.0 for saturation). + + @185:ce2bfb5e1f89 3 years zvd + Fixed problem with coordinate output in vector file when 2D geometry is not in terms of XY but XZ or YZ. + + @184:6859ca9914a4 3 years zvd + Updates to rdcon to correctly partition input moles between liquid, vapor, and sorbed quantities for a Henry's Law species. Also reworked partitioning of species when sorption is invoked. + + @183:38b921e30668 3 years zvd + Did manual merge to recover changes that got lost when pulled GAZ updates on 19-November-09. + + @182:4e32c6b17e4e 3 years zvd + Updated dependencies to include new routine (area_flow_bc.f) and account for addition of use modules in hstz, plot_new, write_avs_node_mat, and + write_avs_node_s + + @181:b3fce545cb9c 3 years gaz + Resolved small (rlp= -4) in rlperm.f + inpyt and scanin have only small changes. + + @180:b6fa4fe6aacb 3 years gaz + area_flow_bc.f - new routine to calculated physically based BC "aipeds" + + @179:ab5d379cf4ac 3 years gaz + airctr.f- added additional flo3 boundary conditions + comai.f - more global parameters + inflo3.f- addition BC types + input.f - don'y know + rlperm.f - added another fracture matrix model(-4) + scanin.f check for rlp = -4 + startup.f added call to area_flow_bc.f + thrair.f- added flo3 BCs + vgcap.f - don't know + vgcap_fit.f - different fit for high saturation end + + @178:d30fa951c93d 3 years zvd + Modified 0. arguments to max function, wouldn't compile on intel MAC using absoft compiler due to type mismatch. + + @177:8d7ea705ff3a 3 years zvd + Changes from merge with GAZ updates of 27-Oct-09. + + @176:6c5ec1828792 3 years zvd + Add newline to end of file so file will merge. + + @175:92e1dff371a6 3 years zvd + Insure proper allocation of all stress variables. + + @174:14b6cc8eed00 3 years zvd + Comment out calls to vg_regions (not used) and set ireg = 1. + + @173:952cd9c4bb7f 3 years zvd + Fixed index for output in diagnostics and gensdp_switch. Checked for open output file in infiles before write. Added allocatio for unallocated stress parameters. + + @172:2197eae6f71b 3 years gaz + comai - made mine consistent with zoras + write_avs_node_con - corrected allocation error + + @171:2d6367069af7 3 years gaz + merge with zoras files hope it works + + @170:69752dc1deb3 3 years gaz + got these from zora + + @169:a9b4009e8e7f 3 years gaz + datchk. small changes to data checking for EOS and dimensionality + open_file.f small and don't remember + structured.f corrected generated element output from fdm input + write_avs_node_con.f added elements with fdm + write_avs_node_s.f added elements with fdm + + @168:8a905759b5ab 3 years 090334 + minor changed to data checkin + + ----------------------------------- + 10/20/09 + + @167:fe48975f2ab8 3 years gaz + merged keita's code with george's code + + @166:7b0ba975a79c 3 years gaz + airctr.f changes to control phase changes (could be important) + comai.f added parameters + data.f set default values for some ne phase change control parameters + input.f added new input macro ittm for pase change sticking time + stress_perm.f minor corrections + structured.f added routine to generate an element file (not tested!) + user_ymp.f added case 455 (covert NER data to permeabilities) + write_avs_node_con.f,write_avs_node_mat.f,write_avs_node_s.f - read,write elem(for fdm) to graphics file. + + @165:fdf5952c2f68 3 years zvd + Made changes to rdcon to check for 0 or negative porosities when distributing input moles in a zone. Fixed incorrect goto label for zone output for transport with reactions in write_avs_node_con. Added better conditional check for air/vapor flux output to ensure phase is present and variables have been defined in input and flxz. + + @164:4c8a9148607d 3 years zvd + Commit changes from merge and add modifications to output head values in history and countour files when using chead macro, and add vapor zone flux output and keywords to select zone flux phase for liquid-air/vapor problems. + + @163:f0c8b606e975 3 years zvd + Correctly set vboun flag and modify to allow 0 volume input. + + @162:7b52ff7b1b6d 3 years zvd + Remove extraneous commas from write statements in compute_exit_new and steady. Add back in density assignment to rolf in ther_co2_h2o that is needed for correct functioning of transport. + + @161:58a7322b14d1 3 years zvd + Commit changes from merge, updated Makefile.depends for modified common file and new file added, fixed call to subroutine max in stress_perm so data types matched. + + @160:7d95937de499 3 years zvd + In steady.f move format statement to contained subroutine wher it is used. For write_avs_node_s, fix coordinate for avs express. + + @159:17cd9ad6e50b 3 years gaz + correction for writing head output + added sticking parameter for phase changes + + @158:5213955b6514 3 years gaz + changed some phase change parameters for geothermal problems + + @157:8da8877cf727 3 years gaz + more changes for potential energy + some initial changes for anisotropic multiphase + + @156:ab437de78729 3 years gaz + all these changes are to implement tha potential energy term + in the enthalpy + + @155:4ffa96d8bab4 3 years zvd + Modified comsteady, steady to output steady state message for each output time. Fixed problem in write_avs_node_s that was causing double zone headers to be written when xyz output was invoked. + + @154:cf02bca151a3 3 years zvd + Add new routine from GAZ and update dependencies. + + @153:021849c3a761 3 years zvd + Moved my latest version of plot_new.f back into project because the updates to it did not properly merge into GAZ version from last pull. + + @152:aed2feb61e8a 3 years gaz + change only to comment statements + + @151:04979d734d86 3 years gaz + comsi- new variable + plot_new.f - mods for relative displacement + + @150:c77f49df78bd 3 years gaz + airctr.f -insignificant cganges + bcon.f - added ifree.eq.0 + comriv.f - added more well variables + comriv.f - added and passed through implicit well variables + geneq1.f - small change for river or well connections (only for iriver=2) + geneq2_wtsi.f - small change for river or well connections (only for iriver=2) + geneq_stress_uncoupled_2D.f - minor changes + geneq_stress_uncoupled_2D_FEM_rad.f - minor changes + geneq_stress_uncoupled_3D.f - minor changes + gensl2.f - insignificant changes + implicit_well2.f - cleaned up generation of well segments + plot_new.f - don't know + plot_new.f + rlperm_wtsi.f - commented out per iteraioin output + startup.f- don't know + stress_2D_post.f - minor + stressctr.f - minor + user_ymp.f - added case 455 permeabilty data conversion to fehm input + wtsictr.f - minor + + @149:6b303a0dfd09 3 years zvd + Corrected initializations so multiple boun macros in an input deck would work correctly. For PC corrected inconsistencies between versions of the fehmn subroutine. + + @148:734eb0cc6acf 3 years zvd + Added conditional check so data won't be written for sptr2 output when not requested. + + @147:b51ac15eb065 3 years zvd + Add additional output options for CO2 (mass fraction) and minor bug fixes in logic. + + @146:3be075e24044 3 years zvd + Correct logic for output of relative displacements for history plots. + + @144:ce08bedefe10 3 years zvd + Updates to history output for addition of CO2 pressure output and split of pressure output into multiple files. + + @143:d1afc7e95636 3 years gaz + changes to improve efficiency for anisortropy calcs + merged keita's changes to stress perm + + @142:f846be920e37 3 years zvd + Minor fixes that were not correct from last update: fehmn.f modified to match fehmn_pcx.f, missing conditional in stress_perm and type conversion fixes, and delete unnecessary variables from geneq_stress_uncoupled_2D. + + @141:4649c1a16f56 3 years gaz + miscellaneous snall corrections and corretcions for running heat conduction with stress + + @140:6b5e47c7d50a 3 years gaz + corrected files for anisotropy, wells, and minor changes to stress solution + + @138:db1aea21180a 3 years zvd + Miscellaneous fixes: cntlio - fixed read of usub_num to be non formatted integer, comai & cntlio - implemented flag to suppress output of nodal equation residuals, storsx & storsx_write - fixed file checks and assignments, wellphysicsctr - added check to see if variable is already allocated, flxz, inhist & plot_new - fixed output headers, etc and variables for co2, split co2 saturations into two output files. + + @137:5915093c3de5 3 years zvd + Fixes for stress with thermal only simulation. Use conditional idoff .eq. -1 for check. + + @136:d211cc0d3323 3 years zvd + Fixes to routines for stress used with thermal only simulation. Corrected conditional checks from idof .le. 1 to idoff .eq. -1. + + @135:9a50f74a8ee8 3 years zvd + Implemented option to input total moles for a species. The moles will be distributed over the input zone. For single nodes it is scaled by the nodal volume. + + @134:68b14b782d2a 3 years zvd + Add updates from GAZ for modifications to anisotropy routines and calculations. + + @133:c1710e4535e3 3 years zvd + Minor modificatins to file naming and manipulation for use with gfortran compiler. + + @132:4e55c2ce1d6f 3 years zvd + Moved continuation label to appropriate location in block. + + @131:45e9e733a21c 3 years zvd + Minor modifications to correct line length, position of continuation character, change to real variable where integer was used incorrectly used. + + @130:1d70fc17995d 3 years zvd + Modifications to have code output initial particle positions when there is a time delay in particle start and to output the upcoming location of a particle that is delayed past the end simulation time due to diffusion. + + @129:faefad97f8b9 3 years zvd + Update file dependencies for new files and recent changes. + + @128:68bca1e21804 3 years zvd + New files from update by GAZ. + + @126:c731823792ba 3 years zvd + Moved output position for source to be adjacent to other flux output options. Added call to diskwrite for case where run terminates based on maximum run time to ensure fin file is updated before program stops. + + @125:e0fdf6fae5e0 3 years gaz + src for new wells and peaceman well + + @124:71c80bfa1d92 3 years gaz + modifed files for peaceman well, improved stress, and multisegmented wells + + @123:27926c34fa88 3 years zvd + Merge and update from GAZ changes of 18-Jun-09 + + ------------------------------------ + 06/18/09 + + @122:d5650132fc95 3 years zvd + These modifications include changes to fehmn.f for FEHM V2.26 modifications and the sptr module updates. Also included are modifications to improve/correct the functionality of a free drainage condition (inflo3.f), new sub-model input and output functionality (input.f, submodel_bc.f), data updates (data.f, setparams.f), fixes/changes to output logic (flxz.f, cflxz.f, write_avs_node_con.f, wrtout.f) and any other associated changes to variables or logic. + + @121:ffea1a9199e7 3 years zvd + These modifications incorporate changes to the sptr module including an alternate output format for breakthrough (added for FEHM V2.26) and updates to improve code performance and behavior when particles move into poorly connected regions of the grid created by addition of zero porosity nodes. Changes have also been made to sptr2 output to be used with PLUMECALC. + + @120:14d4e4d22fd0 3 years zvd + These changes incorporate the functionality and fixes incorporated in YMP qualified version FEHM V2.26. It includes a variable permeabilty option in the boun macro and a solute recirculation with erosion model. Logic corrections were made in the GoldSim? coupled model for colloid filtration where the random number used was incorrectly set and the full colloid distribution was not sampled, and to correctly apply a change in water table elevation. + + @118:c0c49293eabc 3 years gaz + merged update + + @117:197f5fb3952e 3 years gaz + changes to riverctr(model 2) , submodel bc, airctr (kq = -2 and -23) stress perm model + + @116:94def0377502 3 years zvd + Changed bcon to enforce outflow condition correcting sk. Uncommented line in plot_new that flushed flxz data output after write. + + @115:9221767ebc07 3 years zvd + Incorporate updates for CO2 code to correctly implement CO2 flow input and to implement CO2 chemistry. + + @114:682e28a40274 3 years zvd + Corrected problem when reading an existing connectivity file for tecplot output if generated for avsx. Fixed a conditional check for velocity output when zones are being used that resulted in all nodes being output multiple times. + + @113:f9145cd3fb35 3 years zvd + Added check for existence of output file. + + @112:215fde755bd7 3 years zvd + Added option to output particle start time for reduced output options at node 0. + + @111:f4895b713974 3 years zvd + Added files to repository that have changes implemented for use with gfortran compiler which does not support 'binary' format. + + @109:3e375b61764e 3 years zvd + Date change for PC recompile. + + @108:a85473d6c62d 3 years gaz + added call to stressctr lor lithostatic BC + + @107:bc1256befe36 3 years zvd + Increased size of variable name character string so variable headers will be correctly output for tecplot. + + @106:556c13037fbf 3 years zvd + Update date for PC compilation. + + @105:bff77cbdfa29 3 years zvd + Updated dependencies resulting from recent code modifications. + + @104:c1a645111276 3 years zvd + Integrated changes from scanin.f and startup.f that got omitted/lost from gaz merge of routines with his changes. + + @103:2f306b19c72a 3 years zvd + Fixed problem of printing out particle after it has left the system (current_node = 0) + + @102:79ae896a0e57 3 years zvd + Commit changes from pull. + + @101:782dbe6a5fa6 3 years zvd + Commit changes from pull of repository. + + @100:af57b6f4ce36 3 years zvd + Update date time satamp. + + @99:296b7ea6d1fb 3 years zvd + Partial fix for water not getting into system. + + @98:2cad21cf7375 3 years zvd + Partial fix to porosi call for model falg. + + @97:2d97a8f738ca 3 years zvd + Added stopping conditions for when particles get into ill-defined (not completely connected) regions. + + @96:2a1ebe2796c9 3 years gaz + committing files with minor cosmetic changes + + @95:47f9587aae44 3 years gaz + added correct date stamp + + @94:397af23187c4 3 years gaz + removed some unused code that was there for testing + + @93:493bc4c9051d 3 years gaz + commmented out used and unallocted variables that were initialized + + @92:6e7d0103b9ca 3 years gaz + added additional variables + + @91:a788a7322c13 3 years gaz + added additional capability and rlp-like stress-perm models + + @90:83d842a41b99 3 years gaz + generalized some stress-permeability models + + @89:756b7dde37ee 3 years zvd + Added stress variables to time history and contour output. + Expanded keyword options for hist to be more compatible with contour output. + Added/modified keyword scanning for cont and hist in scanin to avoid conflicts with macro names. + + @88:a5f2ef6131d8 3 years zvd + Moved variable sptr_time inside particle loops for correct value assignment by index. + + @87:c15627c0f0df 3 years zvd + Added routine for computing number of connections for each node after connectivity has been simplified based on porosity. + + @86:20c77a7994a9 3 years zvd + Added option to gnerate list with number of connections for each node after connections have been simplified based on porosity. Code terminates after list is generated. + + @85:7152e2717fa8 3 years zvd + Wrapped do loop with conditional block, to prevent segmentation fault that occurred with PGI optimized code for do i = 1, 0 loop. + + @84:3251c519f1e4 3 years zvd + Expanded error message to provide additional information on cause of program exit. + + @83:fb077ace19bc 3 years zvd + Commented out unnecessary saturation check, to ensure "to" is initialized correctly for a conduction only restart. + + @82:c8e731b77301 3 years zvd + Added flag to suppress warning messages for compilation using Absoft compiler on MAC. + + @81:401bf5325e2b 3 years zvd + Removed unneccesary change of "iporos" variable before call to subroutine porosi that prevented correct initialization of variables for ppor model -5. + + @80:515f01f6763c 3 years zvd + Initialize variable boun_out for optional suppression of boundary model output messages -- default is true to cause messages to be output. + + @79:7fdcba8787ce 3 years zvd + Added initialization for variable istrs_coupl. + + @78:5ac9b8cab32a 3 years zvd + Added optional keyword to suppress output messages for boundary model changes. + + @77:154283f8c581 3 years zvd + Updated version identifier for code to version 3.00 to reflect addition of stress. + + @76:c6aa26cb636a 3 years zvd + Corrected problem caused by attempt to output undefined variable pcp. + + ------------------------------------------ + 03/30/09 Version 3.00 + + @74:1962ecdd3f0a 3 years zvd + Major revision/update of fehm-open: Version 3.00 + Added and changed routines to implement stress. Changes made to the stress-related subroutines to fix array addressing problems, simplify input, and allow for different conceptual models of aperture-displacement-stress relationships to be implemented. Split storsx into 3 parts to simplify modification. Added additional well bore gridding options. Added options to allow reading of different element conventions. Added a framework for specifying different wellbore physics. Added option for output of initial pressures and temperatures for stress calculations. MOdified submodel_bc to output boundary fluxes for keyword 'flux'. Added keyword 'all' to zone input to allow every node in grid to be put into a zone without having to specify coordinates. + + @75:1fec9a244f41 3 years zvd + Corrected inconsistency in number of parameters checked for rlp model 19. + + @70:56d6979c894f 3 years zvd + Modified to just use sk array when 'flux' is the requested output for the submodel. + + %%%%%%% VERS2.30 Nov 2008 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 03/16/09 + + /scratch/nts/BIN + -rwxr-xr-x 1 zvd 8098863 Mar 30 2009 xfehm_v2.30pgi32.30Mar09 + -rwxr-xr-x 1 zvd 8395796 Mar 30 2009 xfehm_v2.30pgi64.30Mar09 + -rwxr-xr-x 1 zvd 8395796 Mar 26 2009 xfehm_v2.30pgi64.26Mar09 + -rwxr-xr-x 1 zvd 8099023 Mar 26 2009 xfehm_v2.30pgi32.26Mar09 + -rwxr-xr-x 1 zvd 6486176 Jan 13 2009 xfehm_v2.30mac.13Jan09 + -rwxr-xr-x 1 zvd 11757716 Jan 13 2009 xfehm_v2.30sun.13Jan09 + -rwxrwxr-x 1 zvd 4407296 Jan 13 2009 fehm_v2_30sa13Jan09.exe + -rwxrwxr-x 1 zvd 8386430 Jan 13 2009 xfehm_v2.30pgi64.13Jan09 + -rwxr-xr-x 1 zvd 8088864 Jan 13 2009 xfehm_v2.30pgi32.13Jan09 + -rwxr-x--x 1 zvd 4335494 Jul 21 2008 xfehm_v2.26lnx + + + @72:20fe6b667682 4 years viswana + Updated from repository + + @71:90a287193902 4 years viswana + Changed the appropriate tracer and co2 flow routines so that tracers work with co2 problems. + chemod.f: made it so that the dissolved co2 concentration from the flow code controls the amount of co2 in the water + coneq1.f, icetrco2.f, ther_co2_h2o.f: variables that have changed in the co2 code that are needed by the trac macro we + re accounted for. + + @69:2d96b4ec6022 4 years zvd + Output format changes and updates. + + ------------------------------------------ + 02/27/09 + + @68:acdc6b125a78 4 years rajesh + Merge changes + + @67:7b3cfad6a6b4 4 years rajesh + Changed drivatives in co2_properties for maximum dissolved CO2 saturation. + Changed the way enthalpy is calculated for water(brine) with dissolved + CO2 and associated derivatives in geneq_co2, gener_h2o_co2 and ther_co2_h2o. + Changed the way phase change is done for CO2, for dissolved CO2 case. + + @66:18b76e3b63f3 4 years zvd + Minor updates to io options. + + @65:026be620baec 4 years zvd + Updates for implementation of CO2 restart. + + @64:a9febac53924 4 years zvd + Updates for new CO2 rlperm model. + + @63:9d582079ba2f 4 years zvd + Updated id file for PC. + + @62:6a9160a4e786 4 years zvd + Change resizing of b matrix for Richard's dpdp problems. + + ------------------------------------------ + 11/21/08 + + @61:2d83a486c594 4 years zvd + New conductivity models and temperature dependent porosity. + + @60:0f132e93bf14 4 years zvd + Updates to timing routines, timcrl to ensure all dits are reached, csolve to keep + transport time step at previous value if cut to a smaller value to hit end of + tracer time step. + + @59:5c8b1ed87722 4 years zvd + CO2 code updates. + + @58:a0cdd5de58be 4 years zvd + Update to make sure particles are placed in non-zero porosity control volumes. + + @57:5ec85da07c1a 4 years zvd + Updates for Richard's equation with dpdp. + + @56:4c7eff0fbe03 4 years zvd + Minor small fixes so code will compile on all compilers. Fix to cnswer to addresss + convergence criteria counter reset when necessary at start of SIA iteration. + + @55:faf3a2b4b757 4 years zvd + Merged open source with CO2 additions and minor changes. + + @54:ecd104c9e01f 4 years zvd + Correction to variable assignment for restart output. + + @53:b78108af6b05 4 years zvd + Updates and working out bugs. + + @52:9a46e441ae26 4 years zvd + Merge with changes from FEHM_V2.30open repository. + + @51:9a0e94e9ab23 4 years zvd + Fixes for problems with CO2 and open code merge. + + ------------------------------------------ + 08/11/08 + + @50:691ed239dd6a 4 years zvd + Add and commit CO2 routines + + @49:7b0c951390cd 4 years zvd + Updates from RAJ and some from FEHM_V2.30open + + @46:c57a050f2355 4 years zvd + Code fixes that impacted gfortran compilation and execution of test cases (fdm & gdpm). + + @45:0b8ea1b5f576 4 years zvd + Minor modifications to work with Absoft compiler. + + @44:f6c63812f4ae 4 years zvd + Added error condition for no output nodes defined when using 'hist' macro. + + @43:c8f5a63d7ad6 4 years zvd + Updated dependencies for new routines and updates (Richard's equation/evaporation) + + @42:ec6b1b1b04f3 4 years zvd + Added reporting of current variable status when steady state time exceeded. + + @41:8549978c1e8d 4 years zvd + Incorporate new macros/functionality for evaporation and Richard's equation into FEHM. + + @40:f36f3e72a096 4 years zvd + Modified transport output filtering options and added component names to + concentration output file names. + + @39:bfb6a0521b33 4 years zvd + Fixed logic for creation of geometry files and added time unit output option for tecplot. + + @38:871aee93fd66 4 years zvd + Fixed anonp to use neq_primary for wellbore/river problems. + + @37:72817523e748 4 years zvd + Added change in mass/energy to global output. + + @36:74fbff3ad929 4 years zvd + Correct problem with global variable headers and index problem for trac vapor species + when multiple species are used. + + @35:af2d5097130a 4 years zvd + Release memory for allocatable Henry's LAw arrays. + + @34:d917473f3135 4 years zvd + Initialize idebug to 0 for not printing SIA iterations. + + @33:773ff8f0d721 4 years zvd + Remove trac SIA iteration count messages from output. May be reinstated by + setting idebug = 1 + + @32:586f47fcf4ba 4 years zvd + Initialize henry_model variable. + + @31:d404fe681b22 4 years zvd + Fixed trac macro Henry's law variables to use allocatable arrays instead of a + fixed size which limited runs to 10 species. + + @30:cd3f3c12ca81 4 years zvd + Various minor updates including variable initializations, data/logic checks. + + @29:4856462eb1ff 4 years zvd + Updated flux output routines. For history plots added input options for + specifying which flux values to output. For contour output added option + for using cell volume weighting for boundary flux output. + + @28:1505e7d8e5e7 4 years zvd + Updated routines to use transport porosity variable for streamline particle tracking. + + @27:c2fb14af5ab8 4 years zvd + Added option for specifying the maximum saturation for vapor or Henry's species + and set a default value. + + @26:58362a65d22d 4 years zvd + Added module for steady-state variables that needed to be saved between calls. + Added an option for specifying minimum number of time steps that should be used + before deciding if steady-state has been achieved. + + @25:8787ec8cf40a 4 years zvd + Updated header for air source/sink output. + + @24:29ac4b7ea70f 4 years zvd + Corrected contour output for 2D problems to correctly output specified coordinates. + Also fixed problem with tecplot headers for vector output. + + + @23:fe743a495ad2 5 years zvd + Added control logic to update steady-state flag when flux is not used to determine steady-state condition. + Added usage and comments to Makefile.fehm. + + @22:a31aaffa42b3 5 years zvd + Added declaration for undeclared variable. + + @21:b478fceb89d8 5 years zvd + Corrected problem with potential close of unassigned unit. + + @20:99311d000265 5 years zvd + Files were removed or renamed so Makefile configuration would work + correctly on UNIX/Linux systems. + + @19:bd7b1d1a9fa7 5 years zvd + Added Makefiles and template for automatic updating of dated.f for + compilation on UNIX/Linux systems + + @18:16397d541843 5 years zvd + Moved files specifically modified for compilation on a PC to subdirectory + PC to ensure Makefile for Linux/Unix? works correctly. + + @17:0e1b97593ea9 5 years zvd + Moved/added variable initializations to ensure they were performed before + the variable was used. + + @12:7a20c9e0db2d 5 years zvd + Added new files from GAZ + + @11:3b77d68c2d5f 5 years zvd + Removed extraneous files + + @10:44e6bb775a51 5 years zvd + Incorporated changes from GAZ and worked on insuring uninitialized variables were properly initialized. + + @5:0172b2f83706 5 years zvd + Correctly initialized flag for reading pressure using new restart format. + + @4:d7e234760ed6 5 years zvd + Added new routine for simplified restart files. + + @3:6bcce696e86b 5 years zvd + Added date file for 64 bit PGI compiler + + @2:6cb79ea4860d 5 years zvd + Implemented output options for restart files and variable initialization. + + Start Trac 01/29/08 09:33:06 + FEHM (open source pending release) V 2.30 from Zora Dash. + Original source from: /scratch/eeyore1/dash/FEHM_V2.x/SRC_V2.30 + + + %%%%%%% VERS2.24 Dec 2006 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + These are the YMP QA released codes. + + /scratch/eescommon/ymp-qacodes + drwxr-xr-x 4 zvd 4096 Jan 4 2007 FEHM_V2.24/ + drwxr-xr-x 3 zvd 4096 Jul 27 2007 FEHM_V2_24-01/ + drwxr-xr-x 3 zvd 4096 Jul 27 2007 FEHM_V2.25/ + + /bin/ + -rwxr-xr-x 1 root 294912 Jan 6 2003 fehm_v2_20.exe* + -rwxr-xr-x 1 root 3375104 Jan 6 2003 fehmn_v2_20.dll* + -rwxr-xr-x 1 root 299008 Sep 23 2003 fehm_v2_21win.exe* + -rwxr-xr-x 1 root 3190784 Oct 1 2003 fehmn_v2_21.dll* + + -rwxr-xr-x 1 root 3207168 Feb 18 2005 fehmn_v2_23.dll* + -rwxr-xr-x 1 root 299008 Feb 18 2005 fehm_v2_23win.exe* + + -rwxr-xr-x 1 root 3469572 Apr 24 2006 fehm_v2_24lah.exe* + -rwxr-xr-x 1 zvd 3125248 Apr 24 2006 fehmn_v2_24.dll* + -rwxr-xr-x 1 root 299008 Apr 24 2006 fehm_v2_24win.exe* + -rwxr-xr-x 1 zvd 299008 Apr 24 2006 fehm_v2_24win_2000.exe* + -rwxr-xr-x 1 zvd 294912 Dec 7 2006 fehm_v2_24win_xp.exe* + -rwxr-xr-x 1 zvd 3485956 Jan 4 2007 FEHM_V2_24lahey.exe* + -rwxr-xr-x 1 zvd 2838528 Jan 10 2007 fehmn_v2_24-01.dll* + -rwxr-xr-x 1 zvd 262144 Jan 11 2007 fehm_v2_24-01win.exe* + + -rwxr-xr-x 1 zvd 3227648 Apr 19 2007 fehmn_v2_25.dll* + -rwxr-xr-x 1 zvd 299008 Apr 19 2007 fehm_v2_25win.exe* + + -rwxr-xr-x 1 root 245760 Feb 12 2003 ppptrk_v1.0win.exe* + -rwxr-xr-x 1 root 2541 Mar 4 2003 run_fehm2post.pl* + -rwxr-xr-x 1 root 5638 Mar 11 2003 fehm2post_pc.pl* + -rwxr-xr-x 1 root 266240 Apr 10 2003 discrete_tf_v1.0win.exe* + -rwxr-xr-x 1 root 270336 Aug 14 2003 discrete_tf_v1.1win.exe* + diff --git a/docs/source/ReleaseNotes/v3.2.0.rst b/docs/source/ReleaseNotes/v3.2.0.rst new file mode 100644 index 00000000..3685d1dc --- /dev/null +++ b/docs/source/ReleaseNotes/v3.2.0.rst @@ -0,0 +1,721 @@ +====== +V3.2.0 +====== + +The major changes in the FEHM application from V3.1 to this release V3.2, are +improvements to geothermal, CO2, and stress capabilities. +All changes are described in detail in release notes and Appendix documents +posted on fehm.lanl.gov web page. Enhancements to this FEHM release include: + +* Additional stress models have been added, including stess permeability for shear-stimulated fractures and settings for incremental shear for porosity damage. + +* Enhanced functionality for C02 problems have been added. The User Manual documentation has been updated for both "carb" and "grad". Output for macro "rlpm" has been generalized to include both co2 gas /water and co2 liquid /water output. + +* For mass, energy balances in porous media, "anpe" (anisotropic permeability) has been modified to work with dual or dpdp or gdpm or gdkm for the isothermal case. The macro "anpe" works with "trac" for transport and "gdkm" works with isothermal and thermal. + +* The macro "trxn" is a new macro, which does not add functionality but is a user-friendly interface to "trac" and "rxn". + +-------------------------------------------------------------------------------- + +.. code:: + + Release Notes for Version 3.2.0 Aug 20 2012 to Jul 11 2013 + + Executables notes: + Linux (64-bit): fehm_v3.2.0lin.11Jul13 compiled with gfortran 4.5.1 + MAC: fehm_v3.2.0mac.11Jul13 compiled with gfortran 4.8.1 + PC Windows (32-bit): FEHM_V3.2.0w32.11Jul13.exe compiled with Intel Parallel Studio XE 2011 + PC Windows (64-bit): FEHM_V3.2.0w64.11Jul13.exe compiled with Intel Parallel Studio XE 2011 + + New Release FEHM OPEN V3.2.0 in directory VERS_3.2.0_013_0711 + The major changes are: Fix to CO2 capabilities, Updates to stress model, Updates to GDKM + + Summary of FEHM V3.2 Application Changes + + The major changes in the FEHM application from V3.1 to this release V3.2, are + improvements to geothermal, CO2, and stress capabilities. All changes are + described in detail in release notes and Appendix documents posted on the + fehm.lanl.gov web page. Enhancements to this FEHM release include: + + Additional stress models have been added, including stress permeability for + shear-stimulated fractures and settings for incremental shear for porosity + damage. + + Enhanced functionality for C02 problems have been added. The User Manual + documentation has been updated for both "carb" and "grad". Output for macro + "rlpm" has been generalized to include both co2 gas/water and co2 liquid/water. + + For mass, energy balances in porous media, "anpe" (anisotropic permeability) + has been modified to work with dual or dpdp or gdpm or gdkm for the isothermal + case. The macro "anpe" works with "trac" for transport and "gdkm" works with + isothermal and thermal. + + The macro "trxn" is a new macro, which does not add functionality but is a + user-friendly interface to "trac" and "rxn". + + + Summary of FEHM V3.2 Test Suite Additions + + The V&V Test Suite for V3.2 has the same test problems as releases V2.26 (for + YMP QA) and V3.1 (April 2012). New test problems have been added to the test + suite. After confirming successful tests on each operating system, a + compressed archive file is created for each operating system; VERIFICATION_V3.2lnx.tar.gz, VERIFICATION_V3.2mac.tar.gz, and VERIFICATION_V3.2win.zip. + + + The following is a partial list of the added tests (and associated test name): + + Tests for macro co2 with co2pres, co2flow, and co2frac (co2test) + Test the macro evap (evaporation) + Test macros ngas and trac (wvtest) + Tests for infiltration using the ecm and dpm models with Richard’s equation + (infiltration*) + Test new concentration dependent density formulation (cden_test) + Test concentration flux output option (cflxz_test) + Test a new stress permeability model (stress_prem) + Tests using the rlpm macro instead of the rlp macro, using both equation and + table input. + Tests using trxn format input in place of the trac and rxn macros. + + + Developer Notes 9/27/2012 to 7/11/2013 ----------------------------- + + 06/24-07/11/2013: + Fixed GDKM problems and modified routines for improvement: + + area_length_calc.f - modified to make gdkm and anpe work, corrected routine so that cell dimensions are calculated for only the total gridblock dimensions in dpdp problems - not the primary and secondary volumes. + incoord.f - modified to allow different ordering to 3D tets (variable ich_pebi) + setparams.f - initialized new variable ich_pebi + comai.f - added ich_pebi and other new variables + gncf3.f - added code to correct ordering for 3D tets if necessary(see variable ich_pebi) + diskread.f- set some secondary stress variables to zero if primary stress variables are readi in + ther_co2_h2o.f - changed (only) where some variables are declared. Now more are declared in comco2.f + icectrco2.f - changed (only) where some variables are declared. Now more are declared in comco2.f + h2o_properties.f - changed (only) where some variables are declared. Now more are declared in comco2.f + wellphysicsctr.f - changed (only) where some variables are declared. Now more are declared in comco2.f + commeth.f - changed (only) where some variables are declared. Now more are declared in comco2.f + diagnostics.f - minor changes for identifying Nans + + input.f - added capability for removing negative coefficients (macro zneg) + varchk.f - commented out ieos = 1 about line 587 (co2 tests passed!) + inpres.f - minor changes taht will be used in next version of co2 module. + structured.f - added 1 comment line + + releasemem.f - release memory for new variable nvar_select() (will be used in next co2 version) + david.f - added declaration for variables nvar_select(:) and max_variables + + allocmem.f - added allocation for variables nvar_select(:) + scanin.f - set vatiable icoef_neg = 0 + setord.f - added option for another variable ordering + switch.f - allowed possibility if move equation ordering + switchb.f - allowed possibility if move equation ordering + + mdnodes.f - minor correction to zero indexing (still ran in release mode) + gensco2h2o.f - minor addition thatwill be useful in next co2 version + comco2.f - moved many local co2-related variables to this module + startup.f - changed calling sequence for area_length_calc.f and some code related to equation ordering + coeff_management.f - sets to zero all area coefficients that are generated or read in a stor file. This capability should be used with caution but is helpful in determining if negative area coefficients are causing stability issues. + + gdkm_calc.f - corrected an array out of bounds (from i4 = nelm(kb) to i4 = nelm(kb+1), line 140) + + thrair.f - added a new constant pressure condition that controls saturation by adding or taking out gas. Useful in 2 phase gas injection problems + + airctr.f - changed the calculation of initial density so that the denisity is calculated correctly for concentration dependent density when a tracer restart file is present + + 05/08/2013: + Modified mdnodes.f + Minor bug fix for array out of bound. + + 04/03-10/2013: + Modified diskread.f diskwrite_new.f + Added ability to read and write porosity to restart file + Corrected allocation of stress variables for reading + + Modified fehmn.f, iofile.f, and added new routine write_copyright.f90 for output copyright disclosure statement (output to terminal and in output file). + + Modified inhist.f to fix an error where the wrong unit number was being used for some output. + + 03/20/2013: + Add stress permeability model 24 + + Summary of source code changes: + + 1. comsif.f + Change: allocate new integer ipermstr24. + Purpose: indicates whether stress perm model 24 applies to a particular node. + + 2. stress_perm.f + Change: add call for stressperm_24. + Purpose: applies the stress perm model when called. + + 3. stressperm_allocate.f + Change: save initial values for permeability. Already implemented for models 2, 6, 21, + 22, 31 - extended to 24. + Purpose: new stress perm model formulated in terms of a multplier applied to initial pe + rmeability. + + 4. stress_uncoupled.f + Change: save initial pore pressure in str_pf0_perm. + Purpose: for later calculation, permeability as a function of pressure change. + + 5. stressctr.f + Change: reads in parameters associated with stress perm model 24. + Purpose: for later use when doing calculations with stress perm model 24. + + 6. stressperm_24.f *new file* + Contains routines for calculating permeability multipliers as a function of in situ str + ess assuming a ubiquitously fractured media. + Steps: + i. Allocate initial values + ii. Generate N (input parameter) fractures with a uniform distribution of orientations (subroutine stressperm_24_spiral) + iii. For each of the N fractures... + a. Construct local coordinate system in frame of fracture. z-prime is fracture normal, x-prime aligned with shear stress (subroutine stressperm_24_local) + b. Transform global stress state into local frame (subroutine stressperm_24_rotate) + c. Calculate elastic change in fracture aperture using Bai et al. model (subroutine stressperm_24_prefailure) + d. Assess if frictional failure (Mohr-Coulomb) of fracture occurs (subroutine stressperm_24_failure) + e. If failure, calculate permeability increase along fracture using Lee and Cho (2002) empirical curves (subroutine stressperm_24_postfailure) + f. Transform modified fracture permeability back to global frame, add to total (subroutine stressperm_24_perm) + iv. Calculate overall permeability modifier as ensemble average of all fractures, apply to initial permeability. + + 01/31/2013 - 02/011/2013: + + Fixed a minor bug in write_avs_node_mat.f, add missing + specific heat value which didn't get write out for avsx mat_node file. + + + 12/20/2012: + + Updated with Stress model changes and RTD mixing model changes, + passed stress test (fracture_aperture). + + + bnswer.f + a. moved permeability updating from 'fehmn' to bnswer + b. changed the flags for choosing nodal vs edge updating of + permeability as a funciton of stress + + compute_flow_residual.f + a. minor changes to variable names + b. include 'recoumpte_stress' in the call to compute_permfactor + + compute_permfactor_effstrs.f + changed to using properties of the model assigned to the current node + instead of that asigned to node '1' + + compute_permfactor_effstrs_pp.f + a. minor changes to variable names + b. changed the definition of 'average' pore pressure between nodes + + compute_permfactor.f + passign 'recompute_stress' thru the parameter list instead of computing + it within the subroutine + + compute_permfactor_vonMises.f + a. use permmodel 100 instead 22 + b. use only spm1f(1) = perx_m in computing permFactor + c. print mean_accum_pstrain, fac,norm_per,perm_fac to 'iout' + + comsi.f + a. created a new flag for using incremental shear in permmodel-22 + b. created a new flag for permmodel-23 + c. declare arrays for increamental shear in permmodel22 + + fehmn.f + a. added updating of converged strain when using 'fem' option + b. moved to bnswer permeability updates related to stress + + geneq_stress_fem_3D.f + minor changes to variable names + + gensl_stress_coupled_3D.f + changed call to geneq_flowflux_perm() instead of geneq_flow_coupled() + + stressctr.f + a. modified arrangement of conditional statements for ihms = -15, 16 and 17 + b. changed allocation of array itemp_term22 + c. modified input for permmodel=22 to allow use increamenatl shear + d. modified input for permmodel=22 to allow porosity damage + e. for young's modulus as a funciton of temperature, if using table entry + make the first line of the input file optional + f. for 'plastic' case, forcing the use of a single model for whole domain + + stressperm_22.f + c. modified permmodel=22 to allow use increamenatl shear + d. modified permmodel=22 to allow porosity damage + + stressperm_2.f + If strx_min `. \ No newline at end of file diff --git a/docs/source/Support.rst b/docs/source/Support.rst new file mode 100644 index 00000000..0f430db7 --- /dev/null +++ b/docs/source/Support.rst @@ -0,0 +1,38 @@ +############ +User Support +############ + +Email: `fehm-help@lanl.gov `_ + +Website: `https://fehm.lanl.gov `_ +  + +Code +---- + +* Zyvoloski, George A. + +* Robinson, Bruce A. + +* Dash, Zora V. + +* Kelkar, Sharad + +* Viswanathan, Hari + +* Pawar, Rajesh + +* Stauffer, Phil + +  + +Documentation +------------- + +* Birdsell, Kay + +* Tauxe, Dustin + +* Livingston, Daniel + +* Miller, Terry Ann \ No newline at end of file diff --git a/docs/source/SystemInterface.rst b/docs/source/SystemInterface.rst new file mode 100644 index 00000000..a8c998da --- /dev/null +++ b/docs/source/SystemInterface.rst @@ -0,0 +1,72 @@ +################ +System Interface +################ + +System-Dependent Features +------------------------- +In addition to standard intrinsic math routines only two system routines are required by the FEHM code. The code uses a system call to get the date (subroutine dated) and a system routine to get the CPU clock time (subroutine tyming). + +Compiler Requirements +--------------------- +FEHM Version 2.30 is written for Fortran 90. FEHM has been successfully compiled and run on SUN, PC, Linux and macOS computers. + +Hardware Requirements +--------------------- +No special hardware features or environments are required by the software. The code will run on SUN workstations running Solaris 7 or later (UNIX), PC workstations running Windows 2000 or later, Linux 2.4.18 or later, and macOS Snow Leopard or later. Memory requirements depend on the problem being modeled (based on the number of nodes). It is suggested that the system being used have a minimum of 128 MB of memory. + +Control Sequences or Command Files +---------------------------------- +None. + +Software Environment +-------------------- +N/A + +######################### +Installation Instructions +######################### + +1. Installing a compiled executable +----------------------------------- +Copy the executable to a location on the current search path. Refer to the Installation Test Plan for the FEHM Application Version 2.30 (10086-ITP-2.30-00). + +2. Creating the FEHM binary from source (UNIX) +---------------------------------------------- +On the system where FEHM is to be installed, make an installation directory, with subdirectories src and objects: + +.. code:: + + mkdir fehm + mkdir src objects + +Copy all fehm source files (i.e., extract them from a tar file -- ``fehm_src.tar``) into the src directory: + +.. code:: + + cd fehm/src + tar xvf fehm_src.tar + +A Makefile is included and should be placed in your objects directory. To compile and link FEHM, change into the objects directory and compile the code: + +.. code:: + + cd fehm/objects + make -OR- make -f Makefile + +The makefile creates an executable called: + +.. code:: + + xfehm_v2.30 + +It should be noted that FEHM uses the GZSOLVE Application (ECD-97) reuse components, solve_new, solve_rdof, and slvesu. The GZSOLVE subroutines are compiled directly into this version of FEHM. + +3. Installation Verification and Validation +------------------------------------------- + +A series of test scripts have been developed to automate the validation procedure for FEHM. They are described in more detail in the FEHM-VTP.APP, of the Validation Test Plan for the FEHM Application Version 2.30 (10086-VTP-2.30-00). See the FEHM VTP for a discussion of the tests performed and their results. + +4. FEHM for YMP +--------------- + +For official use of the FEHM code on the YMP project, an executable version should be obtained from the project configuration management group. For binary installation instructions, refer to the Installation Test Plan for the FEHM Application Version 2.30 (10086-ITP-2.30-00). diff --git a/docs/source/_ext/edit_on_github.py b/docs/source/_ext/edit_on_github.py new file mode 100644 index 00000000..ab9d142b --- /dev/null +++ b/docs/source/_ext/edit_on_github.py @@ -0,0 +1,42 @@ +""" +Sphinx extension to add ReadTheDocs-style "Edit on GitHub" links to the +sidebar. + +Loosely based on https://github.com/astropy/astropy/pull/347 +""" + +import os +import warnings + + +__licence__ = 'BSD (3 clause)' + + +def get_github_url(app, view, path): + return 'https://github.com/{project}/{view}/{branch}/{path}'.format( + project=app.config.edit_on_github_project, + view=view, + branch=app.config.edit_on_github_branch, + path=path) + + +def html_page_context(app, pagename, templatename, context, doctree): + if templatename != 'page.html': + return + + if not app.config.edit_on_github_project: + warnings.warn("edit_on_github_project not specified") + return + + path = os.path.relpath(doctree.get('source'), app.builder.srcdir) + show_url = get_github_url(app, 'blob', path) + edit_url = get_github_url(app, 'edit', path) + + context['show_on_github_url'] = show_url + context['edit_on_github_url'] = edit_url + + +def setup(app): + app.add_config_value('edit_on_github_project', '', True) + app.add_config_value('edit_on_github_branch', 'master', True) + app.connect('html-page-context', html_page_context) \ No newline at end of file diff --git a/docs/source/_static/theme_overrides.css b/docs/source/_static/theme_overrides.css new file mode 100644 index 00000000..174fade5 --- /dev/null +++ b/docs/source/_static/theme_overrides.css @@ -0,0 +1,13 @@ +/* override table width restrictions */ +@media screen and (min-width: 767px) { + + .wy-table-responsive table td { + /* !important prevents the common CSS stylesheets from overriding + this as on RTD they are loaded after this stylesheet */ + white-space: normal !important; + } + + .wy-table-responsive { + overflow: visible !important; + } +} \ No newline at end of file diff --git a/docs/source/_templates/sourcelink.html b/docs/source/_templates/sourcelink.html new file mode 100644 index 00000000..c7d3bc9f --- /dev/null +++ b/docs/source/_templates/sourcelink.html @@ -0,0 +1,15 @@ +{%- if show_source and has_source and sourcename %} +

{{ _('This Page') }}

+ +{%- endif %} \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 00000000..23f5c1f1 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,185 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/stable/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('_ext')) + +import sphinx_rtd_theme + +# -- Project information ----------------------------------------------------- + +project = u'FEHM' +copyright = u'2018, Los Alamos National Laboratory' +author = u'Los Alamos National Laboratory' + +# The short X.Y version +version = u'3.3.1' +# The full version, including alpha/beta/rc tags +#release = u'3.3.0' +release = version + + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +edit_on_github_project = 'lanl/FEHM' +edit_on_github_branch = 'master' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.mathjax', + 'sphinx.ext.githubpages', + 'edit_on_github' +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path . +exclude_patterns = [] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +#html_theme = "hbp_sphinx_theme" +#html_theme_path = [hbp_sphinx_theme.get_html_theme_path()] + +#html_theme = "classic" +#html_theme_options = { +# "rightsidebar": "true", +# "relbarbgcolor": "black" +# } + +html_theme = "sphinx_rtd_theme" +html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +html_theme_options = { + 'sticky_navigation': True, + 'display_version': True +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +html_context = { + 'css_files': [ + '_static/theme_overrides.css', # override wide tables in RTD theme + ], + } + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. +# +# html_sidebars = {} + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = 'FEHMdoc' + + +# -- Options for LaTeX output ------------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'FEHM.tex', u'FEHM Documentation', + u'Los Alamos National Laboratory', 'manual'), +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'fehm', u'FEHM Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'FEHM', u'FEHM Documentation', + author, 'FEHM', 'One line description of project.', + 'Miscellaneous'), +] + + +# -- Extension configuration ------------------------------------------------- diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 00000000..5f246de4 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,57 @@ +=================================================== +Software Users Manual (UM) for the FEHM Application +=================================================== + +This online version of the FEHM User's Manual documents the use of the FEHM application. +It is the most current description of FEHM and its use and is continually updated as code is developed. + +The following modeling and functional capabilities lists are additional to the +FEHM UMV3.1 and are provided as an overview and command context for FEHM +users. + +Overview of FEHM Capabilities +----------------------------- + +* 3-dimensional complex geometries with unstructured grids +* saturated and unsaturated media 
 +* simulation of production from gas hydrate reservoirs 
 +* simulation of geothermal reservoirs +* non-isothermal, multi-phase flow of gas, water, oil 
 +* non-isothermal, multi-phase flow of air, water 
 +* non-isothermal, multi-phase flow of CO2, water 
 +* multiple chemically reactive and sorbing tracers 
 +* preconditioned conjugate gradient solution of coupled linear equations +* fully implicit, fully coupled Newton Raphson solution of nonlinear equations 
 +* double porosity and double porosity/double permeability capabilities 
 +* control volume (CV) and finite element method (FE) methods +* coupled geomechanics (THM) problems (fluid flow and heat transfer coupled with stress/deformation) including non-linear elastic and plastic deformation, nonlinear functional dependence of rock properties (e.g.permeability, porosity, Young's modulus) on pressure, temperature and damage/stress + +FEHM Documentation +------------------ + +.. toctree:: + :maxdepth: 1 + :caption: Getting Started + + SystemInterface.rst + DataFiles.rst + DefinitionsAndAcronyms.rst + ExamplesAndSamples.rst + +.. toctree:: + :maxdepth: 1 + :caption: Program Specifications + + Macros.rst + InputData.rst + Output.rst + ProgramConsiderations.rst + +.. toctree:: + :maxdepth: 1 + :caption: References & Support + + References.rst + Support.rst + ReleaseNotes/release_notes.rst +