Skip to content
Snippets Groups Projects
  1. Nov 09, 2021
    • Sam Yates's avatar
      Deal with zero radius points in a morphology (#1719) · 9b35ba52
      Sam Yates authored
      * Add test that is sensitive to small radius loss of precision in ixa computation.
      * Add test that checks for consistent behaviour when there is an (isolated) zero radius point in the morphology.
      * Special case p==1 q==1 case in ratelem so that it can interpolate ixa in the presence of non-finite interpolants.
      * Change naming in pw_element/pw_elements: 'element' refers to the extent+value pairs comprising a 'pw_elements' object; 'value' refers to the value associated with an element; 'extent' refers to the closed interval which is the support of the element.
      * Allow values (but not extents) in a pw_elements object to be mutable, using proxies for iterator access.
      * Write piecewise zip (pw_zip) in terms of a lazy pw_zip_view. Rename zip functions.
      * Document pw_elements more thoroughly.
      * Simplify and document embed_pwlin.cpp routines, expressing everything in terms of simple interpolate/integrate operations.
      * Represent integrated inverse cross-sectional area in the embedding by multiple piecewise-rational functions over a branch, each of which contribute separately to an ixa-based integration, so that precision loss associated with small (or zero) radii can be avoided.
      * Comment embed_pwlin.cpp more thoroughly.
      
      Fixes #1526 
  2. Nov 02, 2021
  3. Oct 29, 2021
  4. Oct 28, 2021
  5. Oct 27, 2021
  6. Oct 22, 2021
    • Nora Abi Akar's avatar
      Solve non-linear systems that are not kinetic schemes. (#1724) · ea25d7aa
      Nora Abi Akar authored
      Some refactoring of the SOLVE statement handling in `module.cpp`. 
      Allow the usage of `SparseNonlinearSolverVisitor` for non-linear systems not only when in the form of a kinetic scheme. 
      Check linearity of kinetic schemes and linear systems (was previously skipped).
    • Nora Abi Akar's avatar
      Gap Junction mechanisms (#1682) · dc371e5d
      Nora Abi Akar authored
      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. 
    • Benjamin Cumming's avatar
      Add locset expressions for proximal and distal translation of locations (#1671) · 5cc7d4dc
      Benjamin Cumming authored
      Add `proximal-translate` and `distal-translate` locset expressions.
      
      Fixes #1662
  7. Oct 21, 2021
  8. Oct 18, 2021
  9. Oct 14, 2021
  10. Oct 13, 2021
  11. Oct 12, 2021
  12. Oct 08, 2021
  13. Oct 07, 2021
  14. Oct 06, 2021
  15. Oct 05, 2021
  16. Oct 04, 2021
  17. Sep 30, 2021
  18. Sep 29, 2021
    • Thorsten Hater's avatar
      Segfault on instantiating mechanisms on empty regions (#1657) · dff0a86f
      Thorsten Hater authored
      More, subtler fallout of the ABI patchset: When mechanisms are added to empty regions, various, layered segfaults
      appear.
      1. `set_parameter` will receive a `nullptr` upon linear search, throwing `no such parameter`
      2. Guarding this for finite `width` uncovers further need in the ABI interface methods
      3. This is caused by early exit in `instantiate` on `width == 0`
      4. Getting rid of this is better, as we can treat vacuous mechanism painting like all others...
      5. ...but causes another segfault, since we default index arrays to `cv_pos.back()` but `cv_pos` is empty.
      
      This patch fixes all of the above and in addition removes mechanisms without support before reifying them
      on the FVM cells. Relevant tests are added.
  19. Sep 28, 2021
    • Robin De Schepper's avatar
      Added an empty catalogue (#1677) · bae9e9a3
      Robin De Schepper authored
      Expose default (empty) catalogue constructor to Python
    • Nora Abi Akar's avatar
      Fix modcc simd generation (#1681) · b7ba25a1
      Nora Abi Akar authored
      Fixes 2 bugs where modcc expects a range variable but gets a non-range variable instead.
      
          PowBinaryExpressions were being handled separately from other BinaryExpressions and as a result, some crucial analysis was being skipped on the analysis of the lhs and rhs arguments. This PR incorporates the analysis and printing of PowBinaryExpression into BinaryExpression.
          Printing code for a masked AssignmentExpression was not handling the case of a non-range variable on the rhs of the assignment correctly. In that case, an explicit cast to a vector is needed, which is added in this PR.