# IRP=12  Regular hysteresis

*IRP* = 12         Regular hysteresis

The hysteretic form of the van Genuchten model (Parker and Lenhard, 1987; Lenhard and Parker, 1987) has been implemented. Details of the implementation are described in Doughty (2013). The regular hysteresis model is invoked by setting both *IRP* and *ICP* to 12.

$${k\_{rl}} = \sqrt {{{\bar S}*l}} {\left\[ {1 - \left( {1 - \frac{{{{\bar S}*{gt}}}}{{1 - \bar S\_l^\Delta }}} \right){{(1 - {{({{\bar S}*l} + {{\bar S}*{gt}})}^{1/m}})}^m} - \left( {\frac{{{{\bar S}\_{gt}}}}{{1 - \bar S\_l^\Delta }}} \right){{(1 - {{(\bar S\_l^\Delta )}^{1/m}})}^m}} \right]^2}$$

$${k\_{rg}} = {k\_{rg\max }}{(1 - ({\bar S\_l} + {\bar S\_{gt}}))^\gamma }{(1 - {({\bar S\_l} + {\bar S\_{gt}})^{1/m}})^{2m}}$$

where

$${\bar S\_l} = \frac{{{S\_l} - {S\_{lr}}}}{{1 - {S\_{lr}}}}$$, $$\bar S\_l^\Delta  = \frac{{S\_l^\Delta  - {S\_{lr}}}}{{1 - {S\_{lr}}}}$$, $${\bar S\_{gt}} = \frac{{S\_{gr}^\Delta ({S\_l} - S\_l^\Delta )}}{{(1 - {S\_{lr}})(1 - S\_l^\Delta  - S\_{gr}^\Delta )}}$$

$$S\_{*{gr}}^\Delta  = \frac{1}{{1/(1 - S\_l^\Delta ) + 1/{S*{gr\max }} - 1/(1 - {S\_{lr}})}}$$

$$S\_l^\Delta$$ is the turning-point saturation, and $$S\_{gr}^\Delta$$ is the residual gas saturation.

*RP(1)* = *m*; van Genuchten *m* for liquid relative permeability (need not equal *CP(1)* or *CP(6)*);  $$k\_{rl}$$  uses the same *m* for drainage and imbibition.

&#x20;

*RP(2)* = $$S\_{lr}$$ : $$k\_{lr}(S\_{lr})$$ = 0, $$k\_{rg}(S\_{lr}) = k\_{rgmax}$$. Must have $$S\_{lr}$$ > $$S\_{lmin}$$ in capillary pressure (*CP(2)*).  $$S\_{lr}$$  is minimum saturation for transition to imbibition branch. For  $$S\_{l}$$  <  $$S\_{lr}$$ , curve stays on primary drainage branch even if  $$S\_{l}$$  increases.

&#x20;

*RP(3)* = $$S\_{grmax}$$; maximum possible value of  $$S\_{gr}^\Delta$$ .  Note that the present version of the code requires that  $$S\_{lr}$$  + $$S\_{grmax}$$ < 1, otherwise there will be saturations for which neither fluid phase is mobile, which the code cannot handle. Setting  $$S\_{grmax}$$  = 0 effectively turns off hysteresis. As a special option, a constant, non-zero value of *S*gr may be employed by setting *CP(10)*>1 and making *RP(3)* negative. The code will set  $$S\_{gr}^\Delta$$  = -*RP(3)* for all grid blocks at all times.

&#x20;

*RP(4)* = $$\gamma$$; typical values 0.33 – 0.50.&#x20;

*RP(5)* = $$k\_{rgmax}$$

*RP(6)* = fitting parameter for *krg* extension for  $$S\_{l}$$  <  $$S\_{lr}$$  (only used when  < 1); determines type of function for extension and slope of  $$k\_{rg}$$ at  $$S\_{l}$$ = 0.

≤ 0       use cubic spline for 0 <  $$S\_{l}$$  < $$S\_{lr}$$ , with slope at  $$S\_{l}$$ = 0 of *RP(6)*

\> 0       use linear segment for 0 <  $$S\_{l}$$  < *RP(8)Slr* and cubic spline for *RP(8)*  $$S\_{lr}$$  <  $$S\_{l}$$  <  $$S\_{lr}$$ *,* with slope at  $$S\_{l}$$ = 0 of –*RP(6)*.&#x20;

&#x20;

*RP(7)* = numerical factor used for *krl* extension to $$S\_{l}$$  >  $$S\_{l}^*$$ ,. *RP(7)* is the fraction of *Sl*\* at which *krl* curve departs from the original van Genuchten function.  Recommended range of values: 0.95–0.97. For *RP(7)*=0, *krl* =1 for  $$S\_{l}$$  >  $$S\_{l}^*$$  (not recommended).

&#x20;

*RP(8)* = numerical factor used for linear *krg* extension to   $$S\_{l}$$  <   $$S\_{lr}$$  (only used when  $$k\_{rgmax}$$< 1). *RP(8)* is the fraction of  $$S\_{lr}$$  at which the linear and cubic parts of the extensions are joined.

&#x20;

*RP(9)* = flag to turn off hysteresis for  $$k\_{rl}$$  (no effect on *Pc* and  $$k\_{rg}$$ ; to turn off hysteresis entirely, set  $$S\_{grmax}$$  = 0 in *RP(3)*).

\=0        hysteresis is on for *krl*

\=1        hysteresis is off for *krl* (force  $$k\_{rl}$$ to stay on primary drainage branch ( $$k\_rl^{d}$$) at all times)

&#x20;

*RP(10)* =  $$m\_{gas}$$ ; van Genuchten *m* for gas relative permeability (need not equal *CP(1)* or *CP(6)*); $$k\_{rg}$$ uses same *mgas* for drainage and imbibition. If zero or blank, use *RP(1)* so that $$m\_{gas}$$ = *m*.

&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lbl-2.gitbook.io/tough4-user-manual/appendix/a-relative-permeability-functions/irp-12-regular-hysteresis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
