IRP=13 Simple hysteresis
The regular hysteresis option (IRP = ICP = 12) provides a rigorous representation of hysteretic relative permeability and capillary pressure curves. However, it can significantly slow down TOUGH simulations, because small time steps are often required at turning points, when a grid block switches between drainage and imbibition, because the slopes of the characteristic curves are discontinuous. Moreover, several control parameters are needed, which generally must be determined by trial and error, for the code to run smoothly. An alternative means of capturing the essence of hysteresis, while maintaining continuous slopes and requiring no additional control parameters, is the simple hysteresis algorithm of Patterson and Falta (2012), which is invoked with IRP = ICP = 13
The Mualem (1976) relative permeability model is used for the non-wetting phase:
where
Sˉwn=1−Swr−SnrSw−Swr
and Swr and Snr are residual saturations of the wetting and non-wetting phases, respectively. Hysteresis is implemented by considering Snr to be a variable, which is calculated from the maximum historical non-wetting phase saturation in a grid block, Snmax . The user has the option to specify Snr as a linear function of the historical Snmax :
Snr=fsnrSnmax
or Snr can be calculated using a modified form of the Land (1968) relationship
Snr=1+CSnmaxSnmax
with
C=Snrmax1−1−Swr1
where fsnr and Snmax , the maximum residual non-wetting phase saturation, are user-specified material properties. Snr is calculated during every Newton-Raphson iteration. If Sn drops below Snr by dissolution or compression, Snmax is recalculated as
Snmax=fsnrSn or Snmax=1−CSnSn
Wetting-phase relative permeability (non-hysteretic) is from van Genuchten (1980)
krw=Sˉw[1−(1−Sˉw1/m)m]2
where
Sˉw=Sws−SwrSw−Swr
Parameters:
RP(1) = m to use in krw
RP(2) = Swr
RP(3) = Sws (recommend 1)
RP(4) If <0 = - fsnr in linear trapping model
If >0 = Snrmax in Land trapping model
RP(5) = mgas, m to use in krn; if zero or blank, use RP(1)
RP(6) = power to use in first term in krn (default ½)
RP(7) If = 0 Use ( ) in first term in krn (Mualem, 1976)
If > 0 Use Sg in first term in krn (Charbeneau, 2007), so that krn does not go to 1 when immobile liquid phase is present