Release 0.2
This release:
- allows particle containers of any dimension (greater than 0)
- reworks the internal storage of the container class to model a set of zipped vectors. Currently uses std::vectors, but other vector types will be added in the future (e.g. CUDA Thrust vectors) using a Traits pattern.
- adds meta-functions for determining if expressions are constant, univariate or bivariate
- adds more compile-time checking of expression correctness
- updates the bucket-search neighbourhood searching algorithm to use Thrust algorithms only (via the STL library), in preparation for addition of CUDA vectors
- adds matrix-free linear algebra capabilities. Expressions can be wrapped with a matrix replacement class that implements Eigen's http://eigen.tuxfamily.org sparse matrix concept. This can be used in matrix-vector products and linear algebra solvers.
- adds examples for Radial Basis Function interpolation and solving pde's via Kansa Method
Known issues:
- compile times are slower, due to the use of Boost MPL and Fusion libraries. Boost v1.61 has seen the introduction of Boost Hana, a C++11 metaprogramming library meant to replace Fusion, which promotes significantly reduced compile-time. It is envisioned that this will eventually replace MPL and Fusion in Aboria.
- The neighbourhood searching is no longer optimised for serial use, so might be slower for small number of particles in serial.