poet/docs/Input_Scripts.md
2023-03-07 13:44:41 +01:00

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