Equations, units, and PALEO variable name conventions
Conservation equations for a species C in PALEO are defined in terms of moles of C per cell, where a cell volume (m^3) is partitioned into solute volume volume_solute = volume * phi (m^3) and a solid volume volume_solid = volume * phi_solid (m^3) where phi is the porosity and phi_solid = 1 - phi.
The conservation equation for a species C is then:
dC/dt = C_sms   (mol yr-1)A solute concentration is defined as moles per m^3 of solute:
C_conc = C / volume_solute  (mol m-3)and a solid concentration as moles per m^3 of solid:
C_conc = C /  volume_solid (mol m-3)Reservoir configuration
For the usual case where C is defined by a ReactionReservoir or ReactionReservoirTotal, the yaml file configuration for a solute reservoir should include:
                variable_links:
                    volume:                         volume_solute   # relink volume so C_conc is solute concentration
                variable_attributes: 
                    R_conc:vphase:                  VP_Solute      # label phase for transport etcand the yaml file for a solid reservoir should include:
                variable_links:
                    volume:                         volume_solid   # relink volume so C_conc is solid-phase concentration
                variable_attributes: 
                    R_conc:vphase:                  VP_Solid      # label phase for transport etcRate laws for reactions
PALEO units for rate constants for both solute and solid-phase first-order rate constants are (mol m-3)-1 yr-1.  This follows the convention in (Van Cappellen and Wang, 1996) (see Table 3 and equations 72 and 76).
Reactions between solute species
For a hypothetical reaction between solutes A, B, C
A + B -> Cwith first-order kinetics hence reaction rate
R_abc = k_abc * A_conc * B_conc   (mol (m^3 solute)-1 yr-1)k_abc has units (mol m-3)-1 yr-1, where concentration units are mol (m^3 solute)-1.  A_sms and similar contributions to tracer conservation equations are then:
A_sms = - R_abc * volume_solute  (mol yr-1)and similar for B_sms, C_sms.
This means that PALEO Reactions implementing eg secondary redox between solute species usually will require the yaml configuration to include:
                variable_links:
                    volume:                         volume_solute   # relink volume so volume refers to solute volumeReactions between a solid phase species and solute phase species
For a hypothetical reaction between solid-phase species D and solute B
D + B -> Cwith first-order kinetics hence reaction rate
R_dbc = k_dbc * D_conc * B_conc   (mol (m^3 solid)-1 yr-1)k_dbc (still) has units (mol m-3)-1 yr-1, where concentration units for D are mol (m^3 solid)-1 and for B are mol (m^3 solute)-1.  D_sms and similar contributions to tracer conservation equations are then:
D_sms = - R_dbc * volume_solid  (mol yr-1)and similar for B_sms, C_sms.
This means that PALEO Reactions implementing eg secondary redox between a solid and solute species usually will require the yaml configuration to include:
                variable_links:
                    volume:                         volume_solid   # relink volume so volume refers to solid phase volumeUnit conversions for rate laws
[mol/l]-1 [yr-1]    = [mol m-3] [yr-1]
1 M-1 yr-1          = 1e-3  (mol m-3)-1 yr-1
1 M-0.5 yr-1        = 3.16e-2 (mol m-3)^-0.5 yr-1
1 M-1 h-1           = 8.766  (mol m-3)-1 yr-1
1 M-0.5 h-1         = 277.2  (mol m-3)^-0.5 yr-1