Skip to content

Release 0.2

Compare
Choose a tag to compare
@martinjrobins martinjrobins released this 12 Sep 08:57
· 783 commits to master since this release

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.