Testing

In AvaFrame we provide a continuously growing test suite. This includes tests that target model verification and model validation. The former are used to test the numerical implementation of the mathematical model, whereas the latter are aiming at testing if the mathematical model employed is appropriate to describe the physical processes of the desired application, in our case the simulation of dense snow avalanches.

In the following, a brief description of the available tests is given.

Note

This section is currently under development and will be updated regularly.

Note

See this example pdf (25mb) how we apply these tests during development.

Tests for model verification

This section includes testing of bits and pieces of the model code up to tests that check whether the full workflow is numerically robust. However, at the ‘smallest scale’, where individual functions are tested, we also refer to the Section about pytests: How to test code.

Rotational Symmetry

In this test, a pyramid-shaped topography is used to test whether different grid alignments in respect to the topography and hence flow direction cause problems for the model implementation. For this test, we simply provide two pyramid shaped topographies, where one is rotated around the z-axis to change the orientation of the pyramid’s facets with respect to the mesh.

Dambreak problem

This test is based on a Riemann problem, where the initial condition is described by two different states that are separated by a discontinuity. In [FM13] exact solutions are derived for this problem, based on the Savage-Hutter model to describe the granular flow. Here, we provide an implementation of one of the seven cases presented in [FM13]. In Test 2, the initial velocity is zero and a granular mass is suddenly released and flows downslope. For further details have a look at the module ana1Tests.damBreak and the Section Dambreak test.

Similarity Solution

This test makes use of semi-analytic solution of a sliding granular mass on an inclined plane. In [HSSN93] the semi-analytic solution is derived for this problem, based on the Savage-Hutter shallow flow model to describe the granular flow. Here, we provide an implementation of the similarity solution and compare it to the output of a numerical simulation. For further details have a look at the module ana1Tests.simiSol and the Section Similarity solution.

Tests for model validation

In this section, tests that check whether the chosen mathematical model is suitable to represent the problem at hand can be found. Currently, we provide idealized and real-world topographies that can be used for avalanche simulations. Additionally, there are several functions that can be used to analyse the simulation results and compare them to other data such as results from other models or observations. For this, we refer to Sections ana3AIMEC: Aimec and outQuickPlot.

Idealized test cases

We provide a range of idealized topographies to perform avalanche simulations including different release area scenarios. Some of the topographies also include entrainment and/or resistance areas. These can be found in data/NameOfAvalanche. The functions to produce these can be found in module in3Utils/generateTopo.py.

Bowl - BL

Bowl shaped topopraphy. Used to test e.g. rotational symmetry.

_images/DEM_BL_Topo_plot.png

Flat Plane - FP

_images/myDEM_FP_Topo_plot.png

Inclined Plane - IP

IP (Inclined plane)

_images/DEM_IP_Topo_plot.png

Parabolic slope - PF

Parabolic slope with flat foreland

_images/DEM_PF_Topo_plot.png

Hockeystick - HS

Hockeystick with linear slope and flat foreland and smooth transition

_images/DEM_HS_Topo_plot.png

Helix - HX

Helix-shaped topography

_images/DEM_HX_Topo_plot.png

Pyramid - PY

pyramid-shaped topography, optional with flat foreland

_images/DEM_PY_Topo_plot.png

Real-world test cases

We provide a range of real-word topographies to perform avalanche simulations including different release area scenarios including entrainment areas. These can be found in data/NameOfAvalanche.

Note

All images give you a bigger version on click.

Alr

_images/avaAlr_plot.png _images/alrRelEnt.png

Gar

_images/avaGar_plot.png _images/garRelEnt.png

Hit

_images/avaHit_plot.png _images/hitRelEnt.png

Kot

_images/avaKot_plot.png _images/kotRelEnt.png

Mal

_images/avaMal_plot.png _images/malRelEnt.png

Wog

_images/avaWog_plot.png _images/wogRelEnt.png