5.0 KiB
Input Scripts
In the following the expected schemes of the input scripts is described.
Therefore, each section of the input script gets its own chapter. All sections
should return a list as results, which are concatenated to one setup list at
the end of the file. All values must have the same name in order to get parsed
by POET.
Grid initialization
| name | type | description |
|---|---|---|
n_cells |
Numeric Vector | Number of cells in each direction |
s_cells |
Numeric Vector | Spatial resolution of grid in each direction |
type |
String | Type of initialization, can be set to scratch, phreeqc or rds |
init_cell |
Data Frame | Containing all exactly one value per species to initialize the field. |
props |
String Vector | Names of all species |
database |
String | Path to Phreeqc database |
input_script |
String | Path to Phreeqc initial script |
Diffusion parameters
| name | type | description |
|---|---|---|
init |
Named Numeric Vector | Initial state for each diffused species |
vecinj |
Data Frame | Defining all boundary conditions row wise |
vecinj_inner |
List of Triples | Inner boundaries |
vecinj_index |
List of 4 elements | Ghost nodes boundary conditions |
alpha |
Named Numeric Vector | Constant alpha for each species |
Remark on boundary conditions
Each boundary condition should be defined in vecinj as a data frame, where one
row holds one boundary condition.
To define inner (constant) boundary conditions, use a list of triples in
vecinj_inner, where each triples is defined by (i,x,y). i is defining the
boundary condition, referencing to the row in vecinj. x and y coordinates
then defining the position inside the grid.
Ghost nodes are set by vecinj_index which is a list containing boundaries for
each celestial direction (important: named by N, E, S, W). Each direction
is a numeric vector, also representing a row index of the vecinj data frame
for each ghost node, starting at the left-most and upper cell respectively. By
setting the boundary condition to 0, the ghost node is set as closed boundary.
Example
Suppose you have a vecinj data frame defining 2 boundary conditions and a grid
consisting of 10 \times 10 grid cells. Grid cell (1,1) should be set to the
first boundary condition and (5,6) to the second. Also, all boundary
conditions for the ghost nodes should be closed. Except the southern boundary,
which should be set to the first boundary condition injection. The following
setup describes how to setup your initial script, where n and m are the
grids cell count for each direction (n = m = 10):
vecinj_inner <- list (
l1 = c(1, 1, 1),
l2 = c(2, 5, 6)
)
vecinj_index <- list(
"N" = rep(0, n),
"E" = rep(0, m),
"S" = rep(1, n),
"W" = rep(0, m)
)
Chemistry parameters
| name | type | description |
|---|---|---|
database |
String | Path to the Phreeqc database |
input_script |
String | Path the the Phreeqc input script |
Final setup
| name | type | description |
|---|---|---|
grid |
List | Grid parameter list |
diffusion |
List | Diffusion parameter list |
chemistry |
List | Chemistry parameter list |
iterations |
Numeric Value | Count of iterations |
timesteps |
Numeric Vector | \Delta t to use for specific iteration |
store_result |
Boolean | Indicates if results should be stored |
out_save |
Numeric Vector | optional: At which iteration the states should be stored |
DHT setup
| name | type | description |
|---|---|---|
signif_vector |
Numeric Vector | Indicates significant digits to use for DHT rounding. Order of props vector. |
prop_type |
String Vector | Set type of species for rounding, can be left blank or set to act or ignore |