Implement mechanism ion rebinding. (#786)
* Make global parameters and ion rebindings part of the instantiate interface, rather than insist that all concrete mechanisms implement these as methods. * Mechanism catalogue instance() returns a pair, comprising the concrete mechanism for the requested backend, together with the override data. * Extend catalgoue derive() method to take a list of old ion name -> new ion name remappings for a mechanism. * Add exceptions for ion remapping errors, and check for these errors. * Add convenience function for reparameterizing a mechanism with a single ion dependency over other ions. (This will be used for the future nernst pre-supplied mechanism.) * Add unit tests for: chained renamings of ion names across multiple derivations; correct shared state ion assignment after renamings; ion remapping exceptions; parameterize_over_ion.
Showing
- arbor/arbexcept.cpp 10 additions, 0 deletionsarbor/arbexcept.cpp
- arbor/backends/gpu/mechanism.cpp 21 additions, 14 deletionsarbor/backends/gpu/mechanism.cpp
- arbor/backends/gpu/mechanism.hpp 1 addition, 3 deletionsarbor/backends/gpu/mechanism.hpp
- arbor/backends/multicore/mechanism.cpp 21 additions, 15 deletionsarbor/backends/multicore/mechanism.cpp
- arbor/backends/multicore/mechanism.hpp 1 addition, 3 deletionsarbor/backends/multicore/mechanism.hpp
- arbor/fvm_lowered_cell_impl.hpp 6 additions, 6 deletionsarbor/fvm_lowered_cell_impl.hpp
- arbor/include/arbor/arbexcept.hpp 7 additions, 0 deletionsarbor/include/arbor/arbexcept.hpp
- arbor/include/arbor/mechanism.hpp 26 additions, 13 deletionsarbor/include/arbor/mechanism.hpp
- arbor/include/arbor/mechcat.hpp 27 additions, 9 deletionsarbor/include/arbor/mechcat.hpp
- arbor/include/arbor/mechinfo.hpp 7 additions, 7 deletionsarbor/include/arbor/mechinfo.hpp
- arbor/include/arbor/util/optional.hpp 8 additions, 5 deletionsarbor/include/arbor/util/optional.hpp
- arbor/mechcat.cpp 120 additions, 9 deletionsarbor/mechcat.cpp
- test/simple_recipes.hpp 4 additions, 0 deletionstest/simple_recipes.hpp
- test/unit/mod/test_ca_read_valence.mod 2 additions, 2 deletionstest/unit/mod/test_ca_read_valence.mod
- test/unit/test_fvm_lowered.cpp 52 additions, 17 deletionstest/unit/test_fvm_lowered.cpp
- test/unit/test_mech_temperature.cpp 7 additions, 3 deletionstest/unit/test_mech_temperature.cpp
- test/unit/test_mechcat.cpp 137 additions, 35 deletionstest/unit/test_mechcat.cpp
- test/unit/test_synapses.cpp 4 additions, 4 deletionstest/unit/test_synapses.cpp
Please register or sign in to comment