Skip to content
Snippets Groups Projects
  1. Jul 02, 2019
    • Nora Abi Akar's avatar
      pass correct index to simd procedure calls (#805) · 74df9f5a
      Nora Abi Akar authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Add missing check of whether to use direct or indirect indexing for simd procedure calls.
      
      fixes #804
      74df9f5a
    • Sam Yates's avatar
      Rejig weight and conversions for modcc (#800) · f9f34ccf
      Sam Yates authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Address inconsistencies in unit conversions between current updates, initialization, ionic currents etc.
      
      Fixes issues #793 and #798.
      
      * Correct units in comments for ion state iX_ to a current density.
      * Remove conversion factor for NMODL current densities [mA/cm²] to Arbor current densities [A/m²] from layout weight: from the point of view of Arbor, mechanisms now write in units that Arbor uses natively.
      * Remove weight_ as a magic modcc variable; applying weight_ is now performed directly by code generated by printers.
      * Change IndexedVariable interface: remove redundant index_name; remove 'op'. Whether external data is accumulated or assigned is now a property of the corresponding sourceKind.
      * Conversion factors for NMODL <-> Arbor are collated in printerutils.cpp, determined by the external data sourceKind.
      * Permit direct assignment of external data, as opposed to a weighted sum. This behaviour will be required for reversal potential handling.
      * `current_` and `conducitivity_` get a different sourceKind in point mechanisms, allowing us to distinguish current contributions from current density contributions (and applying correct unit scaling accordingly.)
      * Add unit test for correct initialization and scaling of ionic currents, together with two corresponding unit test mechanisms.
      f9f34ccf
  2. Jun 27, 2019
  3. Jun 25, 2019
  4. Jun 24, 2019
    • Benjamin Cumming's avatar
      Python spikes (#788) · 726328c4
      Benjamin Cumming authored
      Support for recording spikes generated by a simulation in the Python wrapper
      * Implement a `spike_recorder` that holds a shared pointer to a `std::vector` of spikes, and a callback for the `arb::simulation` spike recording API.
      * Add `python/example/ring.py` that creates a ring network, then records and prints spikes.
      * Some fixes to get the full `recipe` -> `domain_decomposition` -> `simulation` -> `spikes` workflow to work
        * always use default `global_parameters`: user customization of global parameters for cable cells can wait until the ion species interface is finished.
        * change the Python recipe interface for `recipe::connections_on` to use `pybind11::objects` because of shim.
      * Some small improvements to error and help messages.
      
      Fixes #764 
      726328c4
  5. Jun 20, 2019
  6. Jun 17, 2019
    • Sam Yates's avatar
      Implement mechanism ion rebinding. (#786) · b1b584fa
      Sam Yates authored and Benjamin Cumming's avatar Benjamin Cumming committed
      * Make global parameters and ion rebindings part of the instantiate interface, rather than insist that all concrete mechanisms implement these as methods.
      * Mechanism catalogue instance() returns a pair, comprising the concrete mechanism for the requested backend, together with the override data.
      * Extend catalgoue derive() method to take a list of old ion name -> new ion name remappings for a mechanism.
      * Add exceptions for ion remapping errors, and check for these errors.
      * Add convenience function for reparameterizing a mechanism with a single ion dependency over other ions. (This will be used for the future nernst pre-supplied mechanism.)
      * Add unit tests for: chained renamings of ion names across multiple derivations; correct shared state ion assignment after renamings; ion remapping exceptions; parameterize_over_ion.
      b1b584fa
  7. Jun 14, 2019
  8. Jun 12, 2019
    • Benjamin Cumming's avatar
      Uniform str() and repr() in python type wrappers (#785) · 78359ad7
      Benjamin Cumming authored
      Fixes #782 
      * consistent formatting of strings returned by `__repr__` and `__str__` for wrapped types
      * rename enum wrappers to be less verbose, where it makes sense.
      78359ad7
    • Benjamin Cumming's avatar
      Python wrappers for cell types (#784) · 9bd29a9b
      Benjamin Cumming authored
      Add full wrappers for
      
      - `lif_cell`
      - `spike_source_cell`
      - `benchmark_cell
      
      And an opaque wrapper for cable_cell with a helper function that generates a random morphology identical to the ones in the nsuite benchmarks.
      
      Fixes #767.
      9bd29a9b
    • akuesters's avatar
      Py feature simulation (#778) · 9769c679
      akuesters authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Wrap `arb::simulation` type and interface for running `run()`, resetting `reset()`, and `set_binning_policy(policy, bin_interval)`. 
      
      Wrap `enum binning_kind`, used to set event binning on `simulation` API.
      
      Fixes #763 
      9769c679
    • Sam Yates's avatar
      Extend and implement extended VALENCE semantics (#781) · 76d10ff1
      Sam Yates authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Extended USEION VALENCE support.
      
      * Augment modcc parser to accept identifier or signed integer after VALENCE.
      * Treat identifer after VALENCE as global scalar, tied to ionic charge.
      * Add ionic charge field to mechanism ion parameter pointers, replacing scalar in shared state with a length-1 array.
      * Verify presence of ion name and check ion charge against numeric valence in mechanism info when discretizing in `fvm_build_mechanism_data`.
      * Pass ion info, coalesce_synapse global state to `fvm_build_mechanism_data` just via cable cell global properties.
      * Add more unit-test only mechanisms (test_ca_read_valence, test_cl_valence).
      * Add unit tests for valence verification and reading into mechanism state (multicore only).
      * Update existing unit tests for new interfaces.
      
      Implements #780.
      76d10ff1
  9. Jun 07, 2019
  10. Jun 05, 2019
  11. Jun 04, 2019
    • akuesters's avatar
      Py feature recipe wo probes (#768) · a6ddd515
      akuesters authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Fixes #760
      
      Wraps arbor recipe (without probes, i.e. num_probes, probe_info, get_probe) including 
      
      - cell_connection, 
      - gap_junction_connection, 
      - recipe with
        - num_cells
        - cell_description
        - cell_kind
        - num_sources
        - num_targets
        - num_gap_junctions_sites
        - event_generators
        - connections_on
        - gap_junctions_on
        - global_properties
      - enum cell_kind in `identifiers.cpp`
      a6ddd515
  12. May 29, 2019
  13. May 23, 2019
  14. May 20, 2019
  15. May 17, 2019
    • Nora Abi Akar's avatar
      modcc fixes (#745) · e84a0e36
      Nora Abi Akar authored
      * Fixes segmentation faults; output compiler errors instead.
      * Consume units if provided in function/procedure prototypes or after function prototype.
      * Consume UNITSON/UNITSOFF.
      * Consume and store VALENCE as an ion property.
      e84a0e36
  16. May 09, 2019
  17. May 07, 2019
    • Sam Yates's avatar
      Add conductivity to implicit voltage solve step for stability. (#735) · e07f64fa
      Sam Yates authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Changes implicit solve step from:
      > solve (c/δt + L) v' = c/δt v - J
      
      to
      > solve (c/δt + g + L)v' = (c/δt +g) v - J
      
      where _c_ is capacitance, _g_ is membrane conductance, _J_ is membrane current.
      
      * Compute conductivity contribution for mechanisms from symbolic d/dv of current contribution (extracted from linearity test.)
      * Add new modcc 'source kind' for conductivity; tie to `vec_g_`.
      * Add conductivity field to fvm shared state.
      * Include conductivity in matrix assemblies for solution.
      
      Fixes #633.
      e07f64fa
  18. Apr 26, 2019
    • Benjamin Cumming's avatar
      Add citation information to the readme (#739) · 555b7d53
      Benjamin Cumming authored
      Add citation information to the readme.
      555b7d53
    • Benjamin Cumming's avatar
      Fix reduce-by-key CUDA (#737) · 6ad689fa
      Benjamin Cumming authored
      Fix bug in CUDA reduce_by_key implementation on V100 or later GPUs.
      The bug was not triggered for current use cases of the algorithm in Arbor, though it will be a problem when more than one reduction is to be performed in a single kernel invocation, which is required for ac
      cumulating both current and conductance values.
      * Use warp-synchronous aware operations to avoid problems on V100.
      * Simplify reduction kernel.
      * Rename `run_length` ancillary data structure to `key_set_pos`.
      * Add unit tests that trigger the incorrect behaviour observed in #736.
      
      Fixes #736.
      6ad689fa
  19. Apr 25, 2019
  20. Apr 03, 2019
  21. Mar 15, 2019
  22. Mar 14, 2019
  23. Mar 06, 2019
  24. Mar 05, 2019