Skip to content
Snippets Groups Projects
  • Sam Yates's avatar
    Mechanism Refactor: multicore and simd (#484) · 68135148
    Sam Yates authored
    First commit of two for mechanism refactor work (refer to PR #484 and PR #483).
    
    FVM/mechanism code:
    * Refactor mechanism data structures to decouple backend-specific implementations and mechanism metadata.
    * Add mechanism catalogue for managing mechanism metadata and concrete implementation prototypes.
    * Add fingerprint-checking to mechanism metadata and implementations to confirm they come from the same NMODL source (fingerprint is not yet computed, but tests are in place).
    * Split FVM discretization work out from FVM integrator code.
    * Use abstract base class over backend-templated FVM integrator class `fvm_lowered_cell_impl` to allow separate compilation of `mc_cell_group` and to remove the dummy backend code.
    * Add a new FVM-specific scalar type `fvm_index_type` that is an alias for `int` to replace
    `fvm_size_type` in fvm layouts and mechanisms. This was chosen as an alternative
    to making `unsigned` versions of all our SIMD implementation classes.
    * Exte...
    68135148