Calculates the value of a given property at the middle of grid cells
(mid) and at the interfaces of the grid cells (int).
Two possibilities are available: either specifying a mathematical function
(func) that describes the spatial dependency of the property, or
asssuming a constant value (value). To allow for anisotropy, the
spatial dependency can be different in the x and y direction.
For example, in a sediment model, the routine can be used to specify the
porosity, the mixing intensity or other parameters over the grid of the
reactangular sediment domain.
Usage
setup.prop.2D(func = NULL, value = NULL, grid, y.func = func,
y.value = value, ...)
## S3 method for class 'prop.2D'
contour(x, grid, xyswap = FALSE, filled = FALSE, ...)
Arguments
func
function that describes the spatial dependency in the
x-direction; defined as func <- function (x,y, ...);
it should return as many elements as in x or y
value
constant value given to the property in the x-direction
grid
list specifying the 2D grid characteristics, see
setup.grid.2D for details on the structure of this list
y.func
function that describes the spatial dependency in the
y-direction; defined as y.func <- function (x, y, ...);
it should return as many elements as in x or y.
By default the same as in the x-direction.
y.value
constant value given to the property in the y-direction.
By default the same as in the x-direction.
x
the object of class prop.2D that needs plotting
filled
if TRUE, uses filled.contour, else contour
xyswap
if TRUE, then x- and y-values are swapped and
the y-axis is oriented from top to bottom. Useful for drawing
vertical depth profiles
...
additional arguments that are passed on to func or
to the method
Details
When the property is isotropic, the x.mid and
y.mid values are identical. This is for example the case for
sediment porosity.
When the property is anisotropic, the x.mid and
y.mid values can differ. This can be for example the case for
the velocity, where in general, the value will differ between the x and
y direction.
Value
A list of type prop.2D containing:
x.mid
property value in the x-direction defined at the middle of the
grid cells; Nx * Ny matrix (where Nx and Ny = number of cells in x, y
direction)
y.mid
property value in the y-direction at the middle of the grid
cells; Nx * Ny matrix
x.int
property value in the x-direction defined at the
x-interfaces of the grid cells;
(Nx+1)*Ny matrix
y.int
property value in the y-direction at the y-interfaces of the
grid cells; Nx*(Ny+1) matrix
Note
For some properties, it does not make sense to use y.func different
to func. For instance, for volume fractions, AFDW.
For other properties, it may be usefull to have y.func or
y.value different from func or value, for instance
for velocities, surface areas, ...
Author(s)
Filip Meysman <filip.meysman@nioz.nl>,
Karline Soetaert <karline.soetaert@nioz.nl>
Examples
# Inverse quadratic function
inv.quad <- function(x, y, a = NULL, b = NULL)
return(1/((x-a)^2+(y-b)^2))
# Construction of the 2D grid
x.grid <- setup.grid.1D (x.up = 0, L = 10, N = 10)
y.grid <- setup.grid.1D (x.up = 0, L = 10, N = 10)
grid2D <- setup.grid.2D (x.grid, y.grid)
# Attaching the inverse quadratic function to the 2D grid
(twoD <- setup.prop.2D (func = inv.quad, grid = grid2D, a = 5, b = 5))
# show
contour(log(twoD$x.int))