Gap Junction mechanisms (#1682)
Adds support for user-defined gap junction mechanisms. Fixes #1600. - API Change: Wrap `mechanism_desc` in one of `density`, `synapse`, `junction` to be able to differentiate the kind of placed mechanism between point and junction mechanisms. - API Change: The `ggap` parameter of a `gap_junction_connection` renamed to `weight` and is not a unit-less parameter. - Mechanism ABI change: New `peer_index` vector which stores the indices of the peer sites of a gap-junction-connection. New mechanism kind. - Internal API change: `shared_state` no longer controls the gap junction current contribution, that is now handled in the mechanism callbacks. - Modcc change: Add `JUNCTION_PROCESS` and `v_peer` keywords to nmodl, the first to identify a gap-junction mechanism, the second to access the peer voltage of a gap-junction connection. Modify modcc to be able to compile nmodl and generate correct code. - Behavior change: gap-junctions now contribute to both the current and conductance of a CV as opposed to just the current. - Add new "gj" mechanism, to replace the built-in constant-conductance based linear gap-junction implementation. - Fix unit tests. - Fix python wrapper. - Fix docs.
Showing
- arbor/backends/gpu/gpu_store_types.hpp 0 additions, 1 deletionarbor/backends/gpu/gpu_store_types.hpp
- arbor/backends/gpu/shared_state.cpp 6 additions, 11 deletionsarbor/backends/gpu/shared_state.cpp
- arbor/backends/gpu/shared_state.cu 0 additions, 24 deletionsarbor/backends/gpu/shared_state.cu
- arbor/backends/gpu/shared_state.hpp 0 additions, 6 deletionsarbor/backends/gpu/shared_state.hpp
- arbor/backends/multicore/multicore_common.hpp 0 additions, 1 deletionarbor/backends/multicore/multicore_common.hpp
- arbor/backends/multicore/shared_state.cpp 6 additions, 18 deletionsarbor/backends/multicore/shared_state.cpp
- arbor/backends/multicore/shared_state.hpp 0 additions, 6 deletionsarbor/backends/multicore/shared_state.hpp
- arbor/cable_cell.cpp 11 additions, 7 deletionsarbor/cable_cell.cpp
- arbor/fvm_layout.cpp 160 additions, 18 deletionsarbor/fvm_layout.cpp
- arbor/fvm_layout.hpp 26 additions, 1 deletionarbor/fvm_layout.hpp
- arbor/fvm_lowered_cell_impl.hpp 18 additions, 58 deletionsarbor/fvm_lowered_cell_impl.hpp
- arbor/include/arbor/cable_cell.hpp 9 additions, 11 deletionsarbor/include/arbor/cable_cell.hpp
- arbor/include/arbor/cable_cell_param.hpp 35 additions, 7 deletionsarbor/include/arbor/cable_cell_param.hpp
- arbor/include/arbor/fvm_types.hpp 5 additions, 8 deletionsarbor/include/arbor/fvm_types.hpp
- arbor/include/arbor/mechanism.hpp 3 additions, 0 deletionsarbor/include/arbor/mechanism.hpp
- arbor/include/arbor/mechanism_abi.h 2 additions, 0 deletionsarbor/include/arbor/mechanism_abi.h
- arbor/include/arbor/mechinfo.hpp 0 additions, 1 deletionarbor/include/arbor/mechinfo.hpp
- arbor/include/arbor/recipe.hpp 2 additions, 3 deletionsarbor/include/arbor/recipe.hpp
- arbor/mechinfo.cpp 1 addition, 1 deletionarbor/mechinfo.cpp
- arborio/cableio.cpp 20 additions, 15 deletionsarborio/cableio.cpp
Please register or sign in to comment