Skip to content
Snippets Groups Projects
  1. Oct 29, 2021
  2. Oct 28, 2021
  3. Oct 27, 2021
  4. 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
  5. Oct 21, 2021
  6. Oct 18, 2021
  7. Oct 14, 2021
  8. Oct 13, 2021
  9. Oct 12, 2021
  10. Oct 08, 2021
  11. Oct 07, 2021
  12. Oct 06, 2021
  13. Oct 05, 2021
  14. Oct 04, 2021
  15. Sep 30, 2021
  16. 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.
  17. 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.
  18. Sep 24, 2021
  19. Sep 20, 2021
    • Robin De Schepper's avatar
      Fixed MRO and code duplication in `setup.py` (#1672) · f13f786a
      Robin De Schepper authored
      The duplication arose from slightly more complicated composition than usual but could be resolved by proper MRO, it took me a few passes from its original form as well before I figured out the situation is not as complicated as it seems.
      
      `super()` is equal to `super(cls, self)` where `cls` is obtained from the current function's class scope. If arg 2  is an object it will start an MRO search of the object, but skipping classes before the 1st arg type is encountered. In our case with the following base classes: `(_command_template, base_command_class)` this means we can define our base logic in `_command_template` and use `super()` calls there to traverse the MRO in `(base_command_class,)`, so by simply defining `class install_command(_command_template, install)` and `bdist_wheel_command(_command_template, bdist_wheel)` our MRO issue is solved and the duplication removed.