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:

    \(\sum_{j=1}^{N_c} a_{ij}\hat{C_j} \Leftrightarrow \hat{X_i} \;\;\;\; i = 1,...,N_x\)

    where \(\hat{C_j}\) is the chemical formula for the aqueous component j, and \(\hat{X_i}\) is the cchemical formula for the aqueous complex i, \(a_{ij}\) is a stoichiometric coefficient {STOIC} giving the number of moles of component j in complex i, and \(N_x\) is the number of aaqueous components.

    Here is a simple example of an equilibrium speciation reaction:

    \(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 \(A_aB_b\) must satisfy the law of mass action for this reaction:

    \(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:

    \(U_A = [A] + a[A_aB_b]\)

    \(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:

    \(R_j = -k_m \left( c_j - \frac{m_j}{K_D} \right)\)

    where \(c_j\) denotes the uncomplexed aqueous concentration of j {IAQUEOUS}, \(m_j\) denotes the adsorbed concentration of species j {IIMMOBILE}, \(k_m\) is the mass transfer coefficient {RATE}, and \(K_D\) is the distribution coefficient {KD}.

    As \(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 \(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:

    \(R_j = -k_m \frac{\rho}{\theta} \left( K_L c_j \left( m_j^{MAX} - m_j \right) - m_j \right)\)

    where \(k_m\) is the rate constant for desorption {RATE}, \(\rho\) is the bulk rock density {DENR}, \(\theta\) is the porosity {POR}. \(K_L\) is the distribution coefficient {DISTCOEFF}, and \(m_j^{MAX}\) is the maximum concentration that can adsorb onto the j solid {MAXCONC}. Ask \(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:

    \(\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 \(N_c\) is the number of aqueous components, \(N_x\) is the number of aqueous complexes { NAQUEOUS = Nc + Nx }, \(N_m\) is the number of immobile components {NIMMOBILE}, \(N_v\) is the number of vapor components {NVAPOR}, \(\eta_j\) are reactant stoichiometric coefficients, \(\eta_k'\) are product stoichiometric coefficients, and \(\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:

    \(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 \(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:

    \(\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:

    \(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 \(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 \(K_S\) {KS} and \(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.

    \(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 (\(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:

    \(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:

    \(m_p \Leftrightarrow \mu_{p1}c_1 + \mu_{p1}c_2 + ... + \mu_{p1}c_{N_c}\)

    where the \(c_j\) are the aqueous concentrations {IAQUEOUS} and the \(\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 \(Q_p\) is defined as follows:

    \(Q_p = \prod_{j=1}^{N_c} c_j^{\mu_{pj}}\)

    At equilibrium, \(Q_p\) is equal to the solubility product. The surface-controlled rate of precipitation/dissolution of a mineral is given by:

    \(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}, \(k_p\) is the precipitation rate constant {RATE}, and \(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.

    © Copyright 2018, Los Alamos National Laboratory