You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Next »

New XBeach repository and portal website

The new XBeach portal website is released on http://oss.deltares.nl! It replaces the general parts of this WIKI space and the Google Groups website.
The Subversion (SVN) repository is migrated as well. The new address is: https://svn.oss.deltares.nl/repos/xbeach. Read the instruction on how to register and create a new working copy or how to relocate to start using the new SVN server.

Introduction

The XBeach Testbed is an automated testing environment for the XBeach model. The testbed monitors the quality of the model developments. In order to do so, a collection of model setups is collected in the Subversion repository of Deltares together with the latest model source code, possibly arranged in different branches. When the testbed is run, both the source code revisions as well as the model setups are downloaded from the repository, binaries are built and tests are run.

Tests can be run in different configurations, with different paramerter files and different versions of the XBeach executable. After all tests are finished, a collection of Matlab scripts performs the post-processing of the model results. The use of Matlab scripts makes management of the post-processing easy accessible for everyone. The scripts generate figures, tables and statistical performance scores. The result of the post-processing is then captured in several PDF reports. The reports are automatically e-mailed to the developers of XBeach.

The XBeach Testbed runs on a daily basis and contains over 50 model setups and 4 different executables. The testbed is written in Python and can be run over different computers using XML-RPC. The testbed is therfore splitted into a server and client part, which are both automatically updated from the subversion repository as well.

Installation

Requirements

The XBeach Testbed requires the following software to be installed:

Unknown macro: {table-plus}

Name

URL

Remarks

Python 2.6

http://www.python.org/

 

PySVN 1.7

http://pysvn.tigris.org/

 

Pylons 1.0

http://pylonshq.com/

Client only

Mako 0.4.0

http://www.makotemplates.org/

Client only

Miktex 2.8

http://miktex.org/

Windows client only

pdflatex

 

Linux client only

Matlab

http://www.mathworks.nl/products/matlab/

Client only

MPICH2

http://www.mcs.anl.gov/research/projects/mpich2/

Server only

Microsoft Visual Studio 2008

http://www.microsoft.com/visualstudio/en-us/products/professional/default.mspx

Windows server only

Intel Fortran Compiler

http://software.intel.com/en-us/intel-compilers/

Windows server only

GNU Fortran Compiler

http://gcc.gnu.org/fortran/

Linux server only

The XBeach Testbed requires the following environment variables to be set:

Unknown macro: {table-plus}

Name

Value

Remarks

PYTHON_PATH

Path to python executable

 

PDFLATEX_PATH

Path to pdflatex executable

Client only

MATLAB_PATH

Path to Matlab executable

Client only

MPIEXEC_PATH

Path to mpiexec executable

Server only

VS90COMNTOOLS

Microsoft Visual Studio 2008 installation directory

Windows server only

IFORT_COMPILER11

Intel Fortran Compiler installation directory

Windows server only

INTEL_LICENSE_FILE

Path to Intel Fortran Compiler license file

Windows server only

GFORTRAN_PATH

Path to gfortran executable

Linux server only

Download

The XBeach Testbed can be installed by running the following python script: https://repos.deltares.nl/repos/XBeach/testbed2011/tools/python/install.py. The script downloads the testbed from the subversion repository.

Run

The server can be started by running the tools/python/testbed/server.py script.

The client can be started by running the tools/python/testbed/client.py script.

The tools/testbed.cfg file on the client machine should be adapted to hold the hostnames and ports of the servers to be used. Adding -h to the script call will display help information.

A public client is available via the webpage http://d00753:5000/interface/index. Keep in mind that this client is also a server, preforming too many requests will slow down it's performance. Consider installing a dedicated client by that time.

Overview

Adding a test

  • Create a checkout of the testbed repository: https://repos.deltares.nl/repos/XBeach/testbed2011/
  • Create a test directory with the name of the test in the input directory
  • Create a working model in the test directory
  • Create a Matlab script that analyses the model output in the test directory

The Matlab script takes two arguments: info and dirs. Both arguments are structs that have the following contents:

info = struct( ...
    'revision', 1234, ...                                                       // revision number of current binary
    'binary',   'trunk', ...                                                    // name of current binary
    'type',     'custom',                                                       // mode of current run (custom or default)
    'test',     'CarrierGreenspan',                                             // name of current test
    'run',      'default' ...                                                   // name of current run
);

dirs = struct( ...
    'output',  'C:\TESTBED\analysis\trunk\custom\CarrierGreenspan\default', ... // Path where output should be stored
    'data',    '', ...                                                          // Path where static data can be found
    'network', 'P:\STORAGE\DATA\CarrierGreenspan' ...                           // Network storage that can be used
);
  • Create a configuration file called test.cfg in the test directory

The configuration file has the following or similar contents:

[general]                                                                       // SECTION: General information
enable          = 1                                                             // Enable test in testbed
runs            = default, stationary                                           // Definition of test runs
responsible     = Bas Hoonhout <bas.hoonhout@deltares.nl>                       // Name and e-mail of maintainer

[run_default]                                                                   // SECTION: Configuration of test run "default"
enable          = 1                                                             // Enable run in testbed
params          = params_original.txt                                           // Parameter file to use in run
binaries        = all                                                           // Binaries that should use this run
types           = all                                                           // Modes in which this run should be used (custom/default/all)
platforms       = all                                                           // Platforms on which this run should be used (win32/unix/all)
nodes           = 1                                                             // Number of nodes that should be used during this run (> 1 for MPI)
analysis        = analyze_this                                                  // Matlab function to be used for the postprocessing of the results

[run_stationary]                                                                // SECTION: Configuration of test run "stationary", see above
enable          = 1
params          = params_stationary.txt
binaries        = trunk, speedup
types           = custom
platforms       = win32
nodes           = 1
analysis        = analyze_this

[categories]                                                                    // SECTION: Category definitions used for classification of test
configuration   = 1D                                                            // Grid configuration (1D/2D)
waves           = stationary                                                    // Wave configuration (stationary/non-stationary)
waterlevels     = constant                                                      // Water level configuration (constant/varying)
morphology      = no                                                            // Morphology configuration (yes/no)
fractions       = 1                                                             // Number of sediment fractions
hardlayers      = no                                                            // Hard layer configuration (yes/no)
groundwaterflow = no                                                            // Ground water flow configuration (yes/no)
  • Create a TEX file in the latex/_tests directory with a descriptive text for the added test and references to the postprocessing output

Images are referenced to as shown below. The first argument is the path containing the test and run name of the output. The second argument is the file name to be referenced. The third argument is an optional caption of the image.

${tools.image('CarrierGreenspan/default/', 'fig1.eps', 'Model output')}

Tables are referenced in a similar manner:

${tools.table('Assateague_Island/profA/', 'conditions.tex', 'Hydrodynamic boundary conditions XBeach simulations')}
  • Create one or more references to the test description TEX file in one or more documents

References to descriptive texts are made as follows:

<%include file="carriergreenspan.tex"/>
  • Commit the additions to the Subversion repository
  • No labels