This repository contains scripts and settings for using EasyVVUQ for uncertainty quantification of the atmospheric model DALES. The case setup is from the RICO study by van Zanten et al (see below).
- matplotlib
- numpy
- EasyVVUQ from the dev branch or the M24 release (August 2020)
- FabSim3 (optional)
- DALES, we used branch "to4.3", the pre-release of version 4.3
A DALES UQ experiment is done in three stages:
python easyvvuq_dales.py <other options> --prepare
# creates run directories for the model, one for each sample point in parameter space.
python easyvvuq_dales.py <other options> --run
# runs the DALES model for each directory created above
python easyvvuq_dales.py <other options> --analyze
# collects the results and preforms a UQ analysis,
# output is given with tables and plots.
The are used to define the experiment:
--workdir
base directory for EasyVVUQ to use for the model run directories. It creates a subdirectory here for each experiment.--template
a template for the model parameter file, use one of the included filesnamoptions*.template
.--campaign
a json file name where EasyVVUQ stores the state of the campaign between the different steps.--experiment
one of [physics_z0, poisson, test, choices, subgrid], used to select a set of parameters to vary (defined in the easyvvuq_dales.py script). Should match the template.--model
path of the DALES executable
Adding the option --parallel
to the --run
step, will use GNU parallel to
run N model evaluations in parallel on the local machine.
See this tutorial for setting up FabSim3.
Use the same options as for a local run, with the addition of --fab
,
and an additional --fetch
step before --analyze
.
python easyvvuq_dales.py <other options> --fab --prepare
python easyvvuq_dales.py <other options> --fab --run
# submits the jobs with FabSim on some remote machine
python easyvvuq_dales.py <other options> --fab --fetch
# fetches results with FabSim from the remote machine,
# run this after the jobs have completed.
python easyvvuq_dales.py <other options> --fab --analyze
Access details of the remote computer system, settings for the DALES installation there,
and run-time settings for the maximal wallclock time and number of MPI tasks for a job
need to be added to the FabSim configuration files, e.g. deploy/machines_user.yml
.
The following is three runs with matching templates and experiment definitions, for use with the FabSim3 job system.
For a full analysis, each requires a sequence of four invocations, with the last command line option being --prepare
, --run
, --fetch
, and --analyze
.
# Physcal parameters, 256 samples
python easyvvuq_dales.py --workdir=~/work --fab --template=namoptions-z0.template --campaign=physics_z0.json --experiment=physics_z0 --prepare
# Model choices, 72 samples
python easyvvuq_dales.py --workdir=~/work --fab --template=namoptions-choices.template --campaign=choices.json --experiment=choices --prepare
# Iterative Poisson-solver tolerance, 35 samples
python easyvvuq_dales.py --workdir=~/work --fab --template=namoptions-poisson.template --campaign=poissondigits.json --experiment=poisson --prepare
The scripts in this repository are made available under the terms of the GNU GPL version 3, see the file COPYING for details. EasyVVUQ, Fabsim3 and DALES have their own (open source) licenses.
Formulation of the Dutch Atmospheric Large-Eddy Simulation (DALES) and overview of its applications, T. Heus et al, Geosci. Model Dev., 3, 415-444, 2010
Controls on precipitation and cloudiness in simulations of trade-wind cumulus as observed during RICO, van Zanten et al, Journal of Advances in Modeling Earth Systems 3. (2011)