Skip to content
Snippets Groups Projects
  1. Dec 02, 2019
  2. Nov 28, 2019
  3. Nov 27, 2019
  4. 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
  5. 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
  6. Oct 23, 2019
  7. Oct 22, 2019
  8. Oct 04, 2019
  9. 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
  10. Oct 01, 2019
  11. Sep 30, 2019
  12. 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
  13. 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
  14. 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
  15. Sep 10, 2019
  16. 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
  17. 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
  18. Aug 29, 2019
  19. Aug 26, 2019
  20. 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
  21. Aug 19, 2019
  22. Aug 16, 2019
    • akuesters's avatar
      Python wrapper: add hint_map to domain decomposition (#827) · 953d5007
      akuesters authored and Benjamin Cumming's avatar Benjamin Cumming committed
      - wraps `partition_hint` struct for python
      - `partition_hint`struct in `load_balance.hpp` is adjusted in a way that in case of zero unsigned int `cpu_group_size`/`gpu_group_size` it is set to the default value (via setter/getter)
      - adds documentation for `partition_hint`  
      - adds testing for `domain_decomposition` including `partition_hint` (in unit and unit_distributed)
      - adds `partition_hint` in example `ring.py`
      - corrects `config.cpp` (and doc) to test for `ARB_GPU_ENABLED` instead of `ARB_WITH_GPU`
      
      Fixes #776 
      Addresses #799, #769
      953d5007
  23. Aug 15, 2019
    • Nora Abi Akar's avatar
      modcc: process `CONSERVE` statements in `KINETIC` block (#829) · fdd9e7ee
      Nora Abi Akar authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Add modcc support for processing `CONSERVE` statements in `KINETIC` blocks.
      
      The `KineticRewriter` remains unchanged. The `SparseSolverVisitor` is modified. 
      If one or more `CONSERVE` statements are present, corresponding rows in the symbolic matrix, which would otherwise represent differential equations, are replaced by the content of the conserve statements. 
      
      Addresses #828 and #830 
      fdd9e7ee
  24. Aug 12, 2019