Now the API does not rely on `Grid` structure but lay a wrapper around
an existing memory region, which defines for example a diffusion grid.
All simulation steps are done in place.
The user has to make sure the memory existing throughout the lifetime of
a simulation grid.
Refactor testDiffusion.cpp and Diffusion.hpp to improve code readability and maintainability. Remove unnecessary exception throwing and replace with assert statements for invalid arguments.
It is now possible to not define any boundary condition object.
In this case a grid with closed boundary conditions is assumed during
diffusion simulation.
refactor: various adjustments according to clang-tidy
Test case defines a 2D grid with closed boundaries and 1 constant cell
in the middle.
Every other cell is set to 0.
After each iteration the sum of all cells must be greater in comparison
to the previous state of field.