Skip to content
Snippets Groups Projects
  1. Sep 16, 2022
  2. Sep 30, 2021
  3. Mar 17, 2021
    • Brent Huisman's avatar
      Port of Brunel example (#1404) · c326ab3b
      Brent Huisman authored
      * Add Python version of brunel.cpp example.
      * Enforce consistency in units: both C++ and Python APIs use unit `kHz` for all frequencies.
      * Align Python version `poisson_schedule` signature with C++ equivalent.
      * Update unit tests to suit API changes.
      * Update documentation to suit, along with minor additions related to networks and interconnectivity.
      * Add `brunel.py` to `basic.yml` tests
      c326ab3b
  4. Dec 09, 2020
  5. Nov 18, 2020
    • Sam Yates's avatar
      Expose diverse probes in Python API. (#1225) · 1bfe96bc
      Sam Yates authored
      Major changes in Python library and documentation:
      
      * Add global state (immutable after initialization) for the Python module that
        manages the mapping between probe metadata types and the method by which the
        corresponding [sample data can be collected and presented as Python objects.
        This is necessary for decoupling the implementation of the simulation wrapper
        from that of the various cable cell probe types.
      
      * Wrap each of the C++ cable cell probe types with a Python function that
        returns a `probe_info` object.
      
      * Add code for converting and accumulating C++ probe metadata and sample
        data, registered in the module global state against the metadata type info.
      
      * Make the `arbor.simulator` object responsible for recording all spike and
        sample data, with corresponding new methods.
      
      * Use NumPy arrays and structured datatypes for returning spike and
        sample data.
      
      * Place Python schedule proxies under an abstract interface so that consumers
        of the proxies can be made generic over schedule types.
      
      * Add unit tests for the `arbor.simulator` class and its new functionality,
        including distributed spike collection.
      
      * Rework all Python API documentation concerning probes, sampling, and spike
        recording; add information on newly exposed cable cell probe addresses.
      
      * Add new python example `single_cell_recipe.py` which is a generic recipe
        version of `single_cell_model.py`.
      
      * Adjust other code in the wrapper and examples to accommodate these changes.
      
      Minor changes in Python library:
      
      * Add equality tests for `arbor.location` and `arbor.cable` Python classes.
      
      * Use the `py::` namespace shorthand more often in the Python wrapping sources.
      
      * Add an implicit conversion for a pair of numbers to `arbor.cell_member`, so
        that e.g. probe ids can be specified simply as `(gid, index)`.
      
      * Add an implicit conversion from a tuple to `arbor.mpoint` so that a
        morphological point can be specified simply as `(x, y, z, radius)`.
      
      * Modify the interface to `arbor.regular_schedule` so that the overloads
        correspond more closely to the C++ API. In particular,
        `arbor.regular_schedule(dt)` now describes a schedule with times 0, dt, 2*dt,
        etc.
      
      Minor changes in C++ library:
      
      * Change test in FVM lowered cell implementation and exception message for
        `bad_source_description`: assert number of detectors is exactly the number
        of sources promised by the recipe.
      
      * Add comment describing `probe_metadata` object in `sampling.hpp` which
        asserts that the type and value of probe-specific metadata completely
        determines the correct interpretation of sampled data provided to a callback.
      1bfe96bc
  6. Sep 25, 2020
    • Sam Yates's avatar
      Replace arb::util::optional with std::optional. (#1158) · d5ace349
      Sam Yates authored
      * Substitute `std::optional<T>` for `arb::util::optional<T>` for non-reference types T.
      * Remove reference-deducing `util::value_by_key`; replace usages with new function `util::ptr_by_key`.
      * Add some missing header includes that were required but included only transitively.
      * Remove `operator<<` overload for optional in python/strprintf.hpp; replace with utility wrapper class that catches `std::optional<T>`.
      * Wrap some `std::optional` values with `to_string` in ostream output in python lib.
      
      Fixes #1154.
      d5ace349
  7. Aug 12, 2019
  8. Jun 07, 2019
    • akuesters's avatar
      Py feature domain decomp (#771) · ce6ccec8
      akuesters authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Domain decomposition in python wrapper
      * functions: `partition_load_balance`
      *  types: `group_description` and `domain_decomposition`
      
      Also includes
      * remove comment that `gid` in a `group_description` must be sorted.
      * a host of small clean ups of python wrapper
      
      Fixes #761
      ce6ccec8
  9. Jun 05, 2019