-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Axial Diffusion #1729
Merged
thorstenhater
merged 118 commits into
arbor-sim:master
from
thorstenhater:feature/axial-diffusion
Jun 21, 2022
Merged
Axial Diffusion #1729
thorstenhater
merged 118 commits into
arbor-sim:master
from
thorstenhater:feature/axial-diffusion
Jun 21, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Simplify fvm_lowered_impl by pushing matrix into state. - Remove matrix.hpp - Add optional per-ion solver to ion_state. - Add solver step to integrate.
…ture/axial-diffusion
bors try |
tryBuild failed: |
Again an Ault fail state, Mr Bors |
AdhocMan
requested changes
Jun 14, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've only found a few small issues
AdhocMan
approved these changes
Jun 21, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good from my side.
This was referenced Aug 3, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduction
Plasticity processes are mediated by signalling ions, eg Ca++, which are generated by
synapses upon reception of a spike. These ions then propagate along the dendrite
by diffusion and are received by other synapses, modifying their weight upon reception.
We introduce a simplified -- as opposed to solving the Nernst-Planck equation -- approach
to model these processes. Concretely, we will introduce a new field, dubbed
Xd
, to theNMODL dynamics, with the following properties
Xd
can be read from and written to by NMODL density and point mechanisms.This allows us to model decay, consumption, and sources, as well as interaction with the actual processes.
Xd
propagates according to a diffusion law∂_t Xd = ∂_z 1/rX ∂_z Xd + iX/qi
along the neuron, wherethe per-species resistivity
rX
may vary in space (accessible via thepaint
-interface) but not in time.Xd
is atomically updated during theadvance_state
phase and not like other ionic quantities in two steps (once as aSTATE
and later effectsare applied in
write_ions
/compute_currents
.)Update Nov 2021
After the initial exploration and design a number of issues became apparent.
iX
across the membrane do not contribute toXi
/Xo
.Xi
.Xi
andXo
are reset everydt
and we cannot useXi
for our model.Xi
Changes
Add
paint
anddefault
interfaces.paint
able on regions likeinit_ext_conc
set_ion
(Python) orset_default
(C++)python/example/diffusion.py
Add per-ion conductivity
gX
, needed for matrix solvergX
oncompute_currents
iffiX
is writtenshared_state
sets up the backing storeAdd per-ion diffusion solvers
Clean-up
Open Questions/Issues
References
Linked Issues
Closes #1651