From 34edc7dfde42b3b08a36d275b42f3f9bfbdcbfd0 Mon Sep 17 00:00:00 2001 From: Brent Huisman Date: Wed, 10 May 2023 14:13:43 +0200 Subject: [PATCH 1/5] Correct interconn formatting --- doc/concepts/interconnectivity.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/concepts/interconnectivity.rst b/doc/concepts/interconnectivity.rst index edb3895153..b267f98da9 100644 --- a/doc/concepts/interconnectivity.rst +++ b/doc/concepts/interconnectivity.rst @@ -184,11 +184,11 @@ call to ``simulation::run(T, dt)`` is given a value for ``T`` that is not an integer multiple of the epoch length. Before the start of each ``epoch``, a control message must be exchanged between - Arbor and the coupled simulation. The control message is transferred by use - ``MPI_Allreduce(6)`` with operation ``MPI_SUMM`` on a byte buffer of length - ``ARB_REMOTE_MESSAGE_LENGTH``. All processes begin with a buffer of zeroes, the - process with ``rank`` equal to ``ARB_REMOTE_ROOT`` on both sides of the - intercommunicator writes a payload comprising +Arbor and the coupled simulation. The control message is transferred by use +``MPI_Allreduce(6)`` with operation ``MPI_SUMM`` on a byte buffer of length +``ARB_REMOTE_MESSAGE_LENGTH``. All processes begin with a buffer of zeroes, the +process with ``rank`` equal to ``ARB_REMOTE_ROOT`` on both sides of the +intercommunicator writes a payload comprising 1. A single byte magic number 2. A three byte version number @@ -227,10 +227,10 @@ the result as a ``ctrl_messge``. Handling the message is left to the participating package. **Important** This is a synchronous protocol which means an unannounced - termination of either side of the coupled simulators can lead to the other - getting stuck on a blocking call to MPI. This unlikely to cause issues in - scenarios where both sides are launched as a single job (eg via ``SLURM``), but - might do so where unrelated jobs are used. +termination of either side of the coupled simulators can lead to the other +getting stuck on a blocking call to MPI. This unlikely to cause issues in +scenarios where both sides are launched as a single job (eg via ``SLURM``), but +might do so where unrelated jobs are used. Tying It All Together ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 1f0a63ee3a88e2601ad1c2bdc9182bf11a851e96 Mon Sep 17 00:00:00 2001 From: Brent Huisman Date: Wed, 10 May 2023 14:14:13 +0200 Subject: [PATCH 2/5] Add missing probe documentation (ion diff). --- doc/cpp/probe_sample.rst | 20 ++++++++++++++++++++ doc/python/probe_sample.rst | 16 ++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/doc/cpp/probe_sample.rst b/doc/cpp/probe_sample.rst index cc0278ac71..c1d19067ac 100644 --- a/doc/cpp/probe_sample.rst +++ b/doc/cpp/probe_sample.rst @@ -258,6 +258,26 @@ Ionic external concentration of ion across components of the cell. the unbranched component for the corresponding sample value. +Ionic diffusion concrentration. + +.. code:: + + struct cable_probe_ion_diff_concentration { + locset locations; + std::string ion; + }; + +Diffusive ionic concentration of the given ``ion`` at the +sites specified by ``locations``. + +.. code:: + + struct cable_probe_ion_diff_concentration_cell { + std::string ion; + }; + +Ionic diffusion concrentration attributed to a particular ``ion`` across CVs of the cell. + Mechanism state ^^^^^^^^^^^^^^^ diff --git a/doc/python/probe_sample.rst b/doc/python/probe_sample.rst index 634237fbb9..0c9fa1ec85 100644 --- a/doc/python/probe_sample.rst +++ b/doc/python/probe_sample.rst @@ -298,6 +298,22 @@ Ionic external concentration Kind: :term:`vector probe`. +Ionic diffusion concrentration + .. py:function:: cable_probe_ion_diff_concentration_cell(ion) + + Diffusive ionic concentration of the given ``ion`` for each cable in each CV. + + Metadata: the explicit :class:`location` of the sample site. + + .. py:function:: cable_probe_ion_diff_concentration(where, ion) + + Diffusive ionic concentration of the given ``ion`` at the + sites specified by the location expression string ``where``. + + Metadata: the list of corresponding :class:`cable` objects. + + Kind: :term:`vector probe`. + LIF Cell probing ================ From 9d9e395b1f4db43bfe0471a79c4d15297e2a4fba Mon Sep 17 00:00:00 2001 From: Brent Huisman Date: Wed, 10 May 2023 15:16:04 +0200 Subject: [PATCH 3/5] Add missing mech docs --- doc/concepts/mechanisms.rst | 27 +++++++++++++++++++++++---- doc/fileformat/nmodl.rst | 2 ++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/doc/concepts/mechanisms.rst b/doc/concepts/mechanisms.rst index 02d05ab4b4..6fd2387b6a 100644 --- a/doc/concepts/mechanisms.rst +++ b/doc/concepts/mechanisms.rst @@ -61,16 +61,35 @@ Arbor provides the ``default_catalogue`` with the following mechanisms: * *pas*: Leaky current (:ref:`density mechanism `). * *hh*: Classic Hodgkin-Huxley dynamics (:ref:`density mechanism `). -* *nernst*: Calculate reversal potential for an ionic species using the Nernst - equation (:ref:`reversal potential mechanism `). **NB** - This is not meant to be used directly * *expsyn*: Synapse with discontinuous change in conductance at an event followed by an exponential decay (:ref:`point mechanism `). * *exp2syn*: Bi-exponential conductance synapse described by two time constants: rise and decay (:ref:`point mechanism `). * *gj*: Linear gap-junction mechanism with constant conductance (:ref:`junction mechanism `). -With the exception of *nernst*, these mechanisms are the same as those available in NEURON. +These mechanisms are the same as those available in NEURON. Arbor-specific default mechanisms are: + +* *nernst*: Calculate reversal potential for an ionic species using the Nernst + equation (:ref:`reversal potential mechanism `). **NB** + This is not meant to be used directly +* *inject*: Inject (signalling) ions, e.g. Ca++ (:ref:`point mechanism + `). +* *decay*: Exponential decay of ions (:ref:`density mechanism + `). +* *expsyn_cur*: Exponential current-based synapse (:ref:`point mechanism + `). +* *expsyn_stdp*: Exponential synapse with online STDP (:ref:`point mechanism + `). +* *kamt*: K-A current for Mitral Cells (Wang et al 1996) (:ref:`density mechanism + `). +* *kdrmt*: K-DR current for Mitral Cells (Wang et al 1996) (:ref:`density mechanism + `). +* *nax*: Na current for axon. No slow inact. (M.Migliore Jul. 1997) (:ref:`density mechanism + `). +* *v_clamp*: Writing directly to the membrane voltage. Breaks the cable model, so use with caution + (:ref:`See NMODL documentation `). +* *v_limit*: Limit directly the membrane voltage. Breaks the cable model, so use with caution + (:ref:`See NMODL documentation `). Two catalogues are provided that collect mechanisms associated with specific projects and model databases: diff --git a/doc/fileformat/nmodl.rst b/doc/fileformat/nmodl.rst index a6d3de37b0..a6e2a05ac3 100644 --- a/doc/fileformat/nmodl.rst +++ b/doc/fileformat/nmodl.rst @@ -178,6 +178,8 @@ Arbor-specific features tanh(x) hyperbolic tangent :math:`tanh(x)` ================== ======================================== ========= +.. _formatnmodl_voltageproc: + Voltage Processes ----------------- From e9f1bc99502e56509af4b4d7a68655e1315085c9 Mon Sep 17 00:00:00 2001 From: Brent Huisman Date: Wed, 10 May 2023 15:41:48 +0200 Subject: [PATCH 4/5] Fix error; *_cell are vector probes. --- doc/python/probe_sample.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/python/probe_sample.rst b/doc/python/probe_sample.rst index 0c9fa1ec85..bc2bd59522 100644 --- a/doc/python/probe_sample.rst +++ b/doc/python/probe_sample.rst @@ -305,6 +305,8 @@ Ionic diffusion concrentration Metadata: the explicit :class:`location` of the sample site. + Kind: :term:`vector probe`. + .. py:function:: cable_probe_ion_diff_concentration(where, ion) Diffusive ionic concentration of the given ``ion`` at the @@ -312,8 +314,6 @@ Ionic diffusion concrentration Metadata: the list of corresponding :class:`cable` objects. - Kind: :term:`vector probe`. - LIF Cell probing ================ From e5ed13e134c1552ccc30552dde7c756d299504c3 Mon Sep 17 00:00:00 2001 From: Brent Huisman Date: Thu, 1 Jun 2023 09:46:36 +0200 Subject: [PATCH 5/5] some review --- doc/concepts/mechanisms.rst | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/concepts/mechanisms.rst b/doc/concepts/mechanisms.rst index 6fd2387b6a..96863caf39 100644 --- a/doc/concepts/mechanisms.rst +++ b/doc/concepts/mechanisms.rst @@ -56,7 +56,11 @@ the `BBP mechanisms `_. +You may need to consult these source files to learn about the parameters and features of the mechanism. + +The ``default_catalogue`` comes with the following mechanisms: * *pas*: Leaky current (:ref:`density mechanism `). * *hh*: Classic Hodgkin-Huxley dynamics (:ref:`density mechanism @@ -67,7 +71,7 @@ Arbor provides the ``default_catalogue`` with the following mechanisms: rise and decay (:ref:`point mechanism `). * *gj*: Linear gap-junction mechanism with constant conductance (:ref:`junction mechanism `). -These mechanisms are the same as those available in NEURON. Arbor-specific default mechanisms are: +These mechanisms are the same as those available in NEURON. Arbor-specific mechanisms in the default catalogue are: * *nernst*: Calculate reversal potential for an ionic species using the Nernst equation (:ref:`reversal potential mechanism `). **NB**