LocalInterp2: C++ drop-in replacement for LocalInterp

Declined
#3 · Created  · Last updated

Declined pull request

Applied to ET in 1e55652 .

Closed by: ·2015-05-13

Description

LocalInterp2 is a drop-in replacement for LocalInterp, written in C++. The main features are:

  • Use C++ template instead of macros to handle all of the Cactus datatypes. The interpolation kernels have datatype, order and number of dimensions as template parameters (so that most loops / methods can be unrolled / inlined), but apart from that I did not use much template metaprogramming, so that compiling time is reasonable.

  • Completely generic Lagrange interpolation kernels: all orders and number of dimensions are supported (but need to be instantiated in the .cc file).

  • Symmetric interpolation with respect to coordinate inversion (optional, but enabled by default)

  • The higher level Cactus wrappers are adapted from the old LocalInterp, with some tweaks for the OpenMP parallelization.

  • Unit tests for the low-level kernels (TestLocalInterp2 thorn).

  • Passes the InterpToArray test suite.

This code has not been used for production runs yet, so I am looking for some adventurous user willing to test it.

0 attachments

0 comments

Loading commits...