# GMS:ART3D

ART3D
Model Info
Model type Three-dimensional analytic reactive transport
Developer Dr. T. Prabhakar Clement
Documentation ART3D Manual
Tutorials ART3D Tutorials

ART3D is a three-dimensional analytic reactive transport model developed by Dr. T. Prabhakar Clement. As a screening model, it is fairly simple and requires homogeneity and constant transport properties. It allows for complex reaction sequences with first order decay as well as three dimensional dispersion. A single retardation coefficient must be applied to all species. The user can enter any number of observation points and ART3D will exactly calculate the concentration of each specie at these points and compare then to known values (if included). In addition to a simple forward run, ART3D can be run in inverse and stochastic mode.

GMS supports ART3D as a pre- and post-processor. The user enters all necessary data to GMS and then the ART3D input file is written out and ART3D runs from within GMS. On completion, the solution files are read into GMS for post-processing.

## Building an ART3D Simulation

1. ART3D requires a mesh-centered grid with equally sized grid cells. This grid is for display purposes only. ART3D is an analytic model and so, does not need to discretize the area into a grid. See the section on Creating a Grid.
2. Once the grid has been created, the user should enter any observed data in an observation coverage in the MAP module. Observation data is not required except for a parameter estimation run. See the section on adding Observation data.
3. The user can then enter all of the necessary data using the menu items provided in the ART3D menu in the grid module.
4. ART3D can then be run from inside GMS and the results can be viewed and analyzed using several post-processing techniques available in GMS.

In this dialog, the user selects the type of simulation to run: Normal Forward Run, Parameter Estimation Mode or a Stochastic Mode.

In the case of a parameter estimation run, four options for stopping tolerances become available. The user can select the maximum number of iterations, the maximum number of objective function calculations, the absolute convergence tolerance and the relative convergence tolerance. See the section on stopping tolerances for an explanation of these values.

In the case of a stochastic run, the user must enter the number of simulations to be run with random values.

If any observation coverages exist, they will be displayed in a list at the top right corner of the dialog. The observation points in the selected coverage will be used in the ART3D simulation. If no coverage is selected, ART3D will not be given any observation data and a parameter estimation run will not be successful. Only one coverage can be selected, so it is important that all observed data be put in the same coverage.

The source dimensions are also entered in this dialog, near the bottom right corner of the dialog. A rectangular source of these dimensions is placed at the top, left side of the grid, centered in the y direction. The source has no dimension in the x direction.

### Forward Run Simulation

A forward run (normal simulation) is a single run of ART3D using the values assigned to the parameters. A single grid dataset is written out for each specie. Any observation points are also solved at each grid timestep and at each time value assigned to any of the observation points.

### Parameter Estimation Simulation

A parameter estimation simulation, or inverse run, consists of multiple runs of ART3D in an effort to optimize the parameters so that the calculated output best matches user-input field data. The user is required to enter starting values for each parameter and bounds on those parameters that are to be optimized. At the end of the optimization process, ART3D runs one last time with the optimized parameter values so that the user can view the optimized solution.

The optimization routine works by running ART3D without computing a grid solution. The values are calculated at the observation points and are compared to the user-input field values. The total error is calculated using the following equation:

${\displaystyle error=\sum _{j-1}^{m}\sum _{i-1}^{n}w_{ij}|(c_{c}-c_{o})_{i}|}$

where

n = number of observation points,
m = number of species,
wi,j = weight value for species j at observation point i,
Cc = the calculated concentration at observation point i, and
Co = the observed concentration at observation point i.

The weight value described above is calculated from the standard deviation entered in the observation coverage dialog as:

${\displaystyle weight={\frac {1}{stdev^{2}}}}$

The total error along with the bounds on the parameters are then passed back to the optimization routine and each parameter is changed a small amount one at a time. Each time a parameter is changed, ART3D is run again and the error is re-calculated. In this way the gradient of the objective function with respect to each parameter can be estimated. Once all of the gradients are known, all the parameters are changed down gradient and the process begins again. This process continues until one of several stopping tolerances are met. Stopping Tolerances

1. Maximum number of iterations: One iteration is defined as the entire process of determining each gradient and then reducing all the parameter values. When this number of iterations is reached, the optimization will stop and an “optimized solution” will be calculated
2. Maximum number of function calls: Each time a single gradient is calculated and each time the parameters are adjusted, the objective function is called to calculate the error at the observation points. When the number of function calls reaches this limit, the optimization will stop.
3. Absolute function convergence tolerance: The optimization will stop if the error value returned from the objective function is below this value. Remember that the error value is necessarily higher where the weight values are high or where there are a large number of points and species, even if the calibration is good.
4. Relative function convergence tolerance: The optimization will stop if the difference between the current objective function value and the optimized value is less than the product of this tolerance and the current objective function value.

Because this type of optimization is very sensitive to the starting parameter values provided by the user, it is important to try the optimization simulation multiple times with different starting values. Other methods of improving the calibration include the changing of the parameter bounds, and stopping tolerances.

After running in inverse mode, the optimized solution can be read into the project where Calibration Targets and plot options can be used to assess the success of the calibration or to compare it with other calibrations.

### Stochastic Simulation

In a stochastic simulation, ART3D will be run multiple times with randomized parameters. The random values are chosen to honor statistical information provided by the user. If the distribution data is accurate, each simulation can be assumed to represent an equally possible solution. If enough simulations are run, they can be used to determine the likelihood of the occurrence of a given scenario. In this way, the uncertainty in the input parameters can be reflected by the uncertainty in the output solutions. See the section on Risk Analysis for an explanation of threshold analyses.