Skip to content
Snippets Groups Projects
  1. Dec 09, 2019
  2. Dec 07, 2019
  3. Dec 05, 2019
  4. Dec 02, 2019
  5. Nov 28, 2019
  6. Nov 27, 2019
  7. Nov 26, 2019
    • Nora Abi Akar's avatar
      Remove managed memory from cuda backend (#902) · 25759e6f
      Nora Abi Akar authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Completely remove managed memory from the gpu backend.
      `managed_vector<level>` is split into:
      - A device vector of structs containing meta data about each level 
      - A device vector containing concatenated lengths of each branch in a level for all levels
      - A device vector containing concatenated parents of each branch in a level for all levels
      
      All other instances of managed memory in `matrix_fine` are easily replaced by device vectors  
      Managed memory is also removed from the unit tests. 
      
      Fixes #841
      25759e6f
  8. Oct 30, 2019
    • Benjamin Cumming's avatar
      cable_cell segment interface read-only (#889) · 49264f60
      Benjamin Cumming authored
      * Make access to `segment`s in a `cable_cell` read only
      * Change cell constructor to require morphology and label dictionary; `make_cable_cell` no longer required.
      * Consolidate paint/place functionality on `cable_cell`.
      * Add simple cell builder wrapping new API for use in unit tests.
      * Remove validation test code: appropriate validation tests will need to be implemented in nsuite.
      
      Fixes #871 
      49264f60
    • Nora Abi Akar's avatar
      Fix double move in cable_cell::paint (#898) · deec65e9
      Nora Abi Akar authored
      * Remove improper std::move of mechanism description with for loop in cell::paint().
      deec65e9
  9. Oct 23, 2019
  10. Oct 22, 2019
  11. Oct 04, 2019
  12. Oct 02, 2019
    • akuesters's avatar
      Python wrapper: thread safe recipe (#882) · f30c4204
      akuesters authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Ensure that errors in Python callbacks that are called from multithreaded C++ code propogate the correct Python error back to the parent Python callback site, and that no callbacks are called from other threads if an error has already ocurred.
      - protects each recipe callback with a mutex, stores python exception, catches and throws python exception if occured
      - methods calling recipe (in simulation and partition_load_balance) are protected as well by try catch, resets and rethrows python exception (if occured) or else throws C++ exception
      
      fixes #792
      f30c4204
    • Nora Abi Akar's avatar
      Expose CV diam to mechanisms (#880) · 37d03975
      Nora Abi Akar authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Sets the diameter of a CV as the diameter at the middle of a CV
      Exposes the diameter in `shared_state` and `mechanism`
      Adds support in modcc to treat `diam` as a special parameter 
      Implements unit tests
      
      Fixes #850 
      37d03975
    • Sam Yates's avatar
      CV policies with unit tests. (#878) · 755f8b6f
      Sam Yates authored and Benjamin Cumming's avatar Benjamin Cumming committed
      * Add new `cv_policy` class that wraps classes derived from `cv_policy_base`, which in turn provide a facility for producing CV boundaries on morphology trees from a `cable_cell`.
      * Implement fixed-CVs-per-branch and maximum-CV-length policies, with flags that allow for single-CV oots and for CVs that terminate at fork points or which are centred on fork points.
      * Expose locset `join` expressions.
      * Add `empty()` test method on `morphology`.
      * Expose branch length on `em_morphology` via member function.
      * Account for the length of a spherical root branch in `em_morphology`.
      * Test for validity but do not canonicalize locations when thingifying.
      * Rename `root_sample_has_same_tag_as_child` to `root_sample_tag_differs_from_children` to better reflect sense of test.
      * Add unit tests for CV policies, branch_length method.
      755f8b6f
  13. Oct 01, 2019
  14. Sep 30, 2019
  15. Sep 25, 2019
    • akuesters's avatar
      Python feature probes and samples (#872) · 8e985d40
      akuesters authored
      Adds
      
      * to `recipe.cpp`: 
      `num_probes` and `get_probe` with helper function `cable_probe(kind, id, location)`
      * `sample.cpp`: 
      `sample` type with attributes `time` and `value`; a `sampler` with `samples()` and `clear()` and helper functions `attach_sampler(sim, dt)` for adding all probes as well as `attach_sampler(sim, dt, probe_id)` for adding one probe
      * `morphology.cpp`: 
      `location` as `arb::mlocation` with `branch` and `position` 
      * corresponding docs and example
      * update to new cable cell semantics in c++ validation test
      
      fixes #762
      8e985d40
  16. Sep 23, 2019
    • Benjamin Cumming's avatar
      Cable cell (#865) · aaa42b77
      Benjamin Cumming authored
      WIP on implementation of new cable cell API.
      
      * Hide implementation and state using PIMPL
      * Add consistent `place` methods for adding synapse, stimuls, gap junction site and spike detectors to `cable_cell`.
      * Add default constructor for `region` and `locset` that create empty `nil` instances.
      aaa42b77
  17. Sep 16, 2019
    • Sam Yates's avatar
      Address Clang 8 warnings. (#867) · 12150544
      Sam Yates authored and Benjamin Cumming's avatar Benjamin Cumming committed
      * Remove or implement move ctor/assign operations for ostream-derived classes.
      * Add explicit test for a zero row in modcc's sparse and linear solver finalize routines.
      * Forward declare `morphology_impl` as a struct.
      * Remove redundant capture in a lambda expression in fvm_layout.cpp.
      * Add extra parens in an assign-and-test condition in mechcat.cpp.
      12150544
  18. Sep 10, 2019
  19. Sep 09, 2019
    • Benjamin Cumming's avatar
      Morphology part 2. (#860) · 80763b22
      Benjamin Cumming authored
      * Add new "embedded morphology" `em_morphology`, constructed from a `morphology`, that: caches derived information such as terminal points, locations of sample points, branch lengths; provides services for canonicalizing locations and interpolation; and is used for the realisation of regions and locsets (see below).
      * Add simple DSL for describing locsets and regions, which are abstract descriptions of sets of locations and regions on morphologies, together with a set of operations.
      * Add a new class `label_dict` that associates names with regions and locsets.
      * Extend `cable_cell` to hold a `label_dict` argument, which is used by a new method `paint` for associating mechanisms with regions.
      
      Fixes #845.
      80763b22
  20. Sep 02, 2019
    • Nora Abi Akar's avatar
      Modcc compartment (#846) · efe17c53
      Nora Abi Akar authored
      * Adds modcc support for COMPARTMENT statements of the form: `COMPARTMENT v {state_0, state_1, ..., state_n}`.
      * Use `COMPARTMENT` values `v` to multiply the derivative of state variables `state_0, state_1, ..., state_n` in associated kinetic scheme blocks.
      
      Fixes #838.
      efe17c53
  21. Aug 29, 2019
  22. Aug 26, 2019
  23. Aug 21, 2019
    • Nora Abi Akar's avatar
      modcc: parse and process `LINEAR` blocks (#840) · 336c0574
      Nora Abi Akar authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Add support for parsing and processing `LINEAR` blocks: 
      
      Changes: 
      * `SOLVE` expressions can be called from inside an `INITIAL` block, but only if they are solving a linear system
      * Tilde expressions can now be either linear expressions or reaction expressions
      * Linear expressions need to be rewritten before being sent to the solver, this is done using `LinearRewriter`
      * The linear system is setup in `LinearSolverVisitor` fills the lhs and rhs of the symbolic matrix   
      * The matrix is recued using `gj_reduce`, which now works on non-diagonal matrices. 
      
      Fixes #839 
      336c0574
  24. Aug 19, 2019