Structure

This document describes the general structure of the test-suite and its dependencies.

General structure

Each test can be divided into three parts. The first part contains the theory. The second part contains the object to be compared, in the case of PIConGPU it is the simulation data. Ultimately, these only have to be compared. In order to then clearly present the result obtained to the user, an output is also an advantage.

./lib/python/test/testsuite
├── Math
| ├── deviation.py
| ├── physics.py
| ├── math.py
| └── _searchData.py
├── Output
| ├── Log.py
| └── Viewer.py
├── Reader
| ├── dataReader.py
| ├── jsonReader.py
| └── paramReader.py
├── Template
| ├── Data.py
| └── main.py
└── _checkData.py

In the above overview, all __init__.py and _manager.py files have been left out for the sake of clarity.

The subpackage reader reads out the data. It does not matter whether this data is used for the theory part or data from the simulation. With this, Reader takes care of most of the first and second part of a test. However, not completely. For most tests, the data from the simulation cannot be used without further calculations. The Math subpackage provides some important calculation functions. It also contains the third part of a test. The deviation.py file provides the functions needed for comparison. Finally, Output encapsulates all functionalities for illustrating the test results and Template contains a template for developing a new test case.

Dependencies

There are only dependencies on modules in Python. The following modules are not in the standard library:

  • scipy

  • numpy

  • matplotlib