Skip to content
Snippets Groups Projects
  1. Nov 10, 2021
    • Sam Yates's avatar
      Simplify default proc_allocation generation. (#1725) · e0c13e16
      Sam Yates authored
      * Consolidate default_concurrency, default_gpu functionality into arborenv/default_env.hpp, .cpp.
      * Add new arborenv function `default_allocation()` that uses environment variables ARBENV_NUM_THREADS and ARBENV_GPU_ID to create an `arb::proc_allocation`, with a fallback to `thread_concurrency()`.
      * Use arborenv-specific exceptions instead of generic std::runtime_error etc.
      * Update examples, docs to suit.
      
      Fixes #988 (except for reworking all the unit tests!)
      e0c13e16
  2. Nov 09, 2021
    • Sam Yates's avatar
      Update/fix tinyopt README.md (#1747) · 2a8878cd
      Sam Yates authored
      tinyopt README.md had an example which was not updated to the 1.0 API. Fixed upstream, and this is a copy.
      2a8878cd
    • 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 
      9b35ba52
  3. Nov 02, 2021
  4. Oct 29, 2021
  5. Oct 28, 2021
  6. Oct 27, 2021
  7. 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).
      ea25d7aa
    • 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. 
      dc371e5d
    • 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
      5cc7d4dc
  8. Oct 21, 2021
  9. Oct 18, 2021
  10. Oct 14, 2021
  11. Oct 13, 2021
  12. Oct 12, 2021
  13. Oct 08, 2021
  14. Oct 07, 2021
  15. Oct 06, 2021
  16. Oct 05, 2021
  17. Oct 04, 2021
  18. Sep 30, 2021
  19. 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.
      dff0a86f