p.exp {ReacTran} | R Documentation |
Common Properties with Distance, to be used with setup.prop.1D
Description
Functions that define an y-property as a function of the one-dimensional x-coordinate. These routines can be used to specify properties and parameters as a function of distance, e.g. depth in the water column or the sediment.
They make a transition from an upper (or upstream) zone, with value
y.0
to a lower zone with a value y.inf
.
Particularly useful in combination with setup.prop.1D
-
p.exp
: exponentially decreasing transitiony = y_{\inf} + (y_0-y_{\inf}) \exp(-\max(0,x-x_0)/x_a)
-
p.lin
: linearly decreasing transitiony = y_0; y = y_0 - (y_0-y_{inf})*(x-x_L)/x_{att}) ; y = y_{inf}
for
0 \leq x \leq x_L
,x_L \leq x \leq x_L + x_{att}
and(x \geq x_L + x.att )
respectively. -
p.sig
: sigmoidal decreasing transitiony = y_{inf} + (y_0-y_{inf})\frac{\exp(-(x-x_L)/ (0.25 x_{att}))}{(1+\exp(-(x-x_L))/(0.25 x_{att}))})
Usage
p.exp(x, y.0 = 1, y.inf = 0.5, x.L = 0, x.att = 1)
p.lin(x, y.0 = 1, y.inf = 0.5, x.L = 0, x.att = 1)
p.sig(x, y.0 = 1, y.inf = 0.5, x.L = 0, x.att = 1)
Arguments
x |
the x-values for which the property has to be calculated. |
y.0 |
the y-value at the origin |
y.inf |
the y-value at infinity |
x.L |
the x-coordinate where the transition zone starts;
for |
x.att |
attenuation coefficient in exponential decrease, or the size of the transition zone in the linear and sigmoid decrease |
Details
For p.lin
, the width of the transition zone equals x.att
and
the depth where the transition zone starts is x.L
.
For p.sig
, x.L
is located the middle of the smooth transition zone of approaximate width x.att
.
For p.exp
, there is no clearly demarcated transition zone;
there is an abrupt change at x.L
after which the property
exponentially changes from y.0
towards y.L
with attenuation
coefficient x.att
; the larger x.att
the less steep the change.
Value
the property value, estimated for each x-value.
Author(s)
Filip Meysman <filip.meysman@nioz.nl>, Karline Soetaert <karline.soetaert@nioz.nl>
Examples
x <- seq(0, 5, len = 100)
plot(x, p.exp(x, x.L = 2),
xlab = "x.coordinate", ylab = "y value", ylim = c(0, 1))
lines(x, p.lin(x, x.L = 2), col = "blue")
lines(x, p.sig(x, x.L = 2), col = "red")