Skip to content
Snippets Groups Projects
  1. Jan 06, 2021
  2. Jan 05, 2021
    • Brent Huisman's avatar
    • Brent Huisman's avatar
      Improve Recipe concept documentation · 808bb8fc
      Brent Huisman authored
      808bb8fc
    • Sam Yates's avatar
      Add unit test for 0-length segment area. (#1291) · e62db937
      Sam Yates authored
      * Add unit test that checks the expected contribution of an
      annulus to the embed_pwlin integrated area, when a zero-length segment
      with differing radii exists in the segment tree.
      e62db937
    • Benjamin Cumming's avatar
      Remove dependence of docs on the Python module (#1293) · d326f2ea
      Benjamin Cumming authored
      Revert a change introduced in #1282 that required the python module for arbor to build the documentation.
      
      This breaks the readthedocs build, where arbor is not available.
      
      * Remove arbor dependence from `doc/conf.py`, reverting to the original "out of core" approach
      * Fix other recently introduced issues that lead to CMake errors when configuring the documentation
        when the Python target is not configured.
        * The CMake variable `PYTHON_EXECUTABLE` wasn't set, but was required to make calls to the
           Python interpreter.
        * Instead of relying on pybind11 to find Python, explicitly detect it using `find_package(Python3 ...)`
        * Make Python3 a hard requirement when building the Python wrapper
        * And a soft requirement otherwise, that will fail only when the docs are built.
      d326f2ea
  3. Jan 04, 2021
  4. Dec 18, 2020
    • Nora Abi Akar's avatar
      Docs: Python examples (#1279) · 6ebfb3db
      Nora Abi Akar authored
      * Add 2 new examples to `python/examples` and their corresponding tutorials in the docs. 
          1. `single_cell_detailed.py` : a slightly more complex example using `single_cell_model`
          2. `single_cell_detailed_recipe.py`: equivalent to `single_cell_detailed.py` but using a recipe. 
      * Change `load_swc`-> `load_swc_arbor` for consistency.
      * Run Sphinx with specified PYTHON_EXECUTABLE.
      * Set PYTHONPATH env var in doc/CMakeLists.txt, such that it propagates correctly, including locally.
      * Build pyarb BEFORE html such that docs build can import arbor in Github Actions script.
      6ebfb3db
    • Nora Abi Akar's avatar
      Docs: Add missing class descriptions (#1280) · fdd30bda
      Nora Abi Akar authored
      Add API for `single_cell_model` and `label_dict`
      fdd30bda
    • Nora Abi Akar's avatar
      Docs: Miscellaneous (#1281) · d7c7c28e
      Nora Abi Akar authored
      * `concepts/cable_cell`: number subcategories to better illustrate document structure.
      * `concepts/labels`: concretize -> thingify; more on label dictionaries.
      * `concepts/mechanisms`: Some info on modcc, link to nmodl files in repo.
      * `concepts/morphology`: NeuroML section and some notes on branches/segments
      d7c7c28e
    • thorstenhater's avatar
      Expose `(segment id)` region expression. (#1282) · 5fcb14a1
      thorstenhater authored
      * Expose and document the (segment id) region expressions.
      * gen-labels.py was not up to speed with decor #1235.
      * The SWC example is read from disk and inserted into the docs verbatim.
      * The same file is used to generate the image.
      * The missing decor constructor has been added.
      * Generating inputs.py on the fly when building docs. That should prevent this issue from coming up again.
      5fcb14a1
  5. Dec 17, 2020
    • Brent Huisman's avatar
      Improved selection of default Python install path. (#1277) · 54b5c3ac
      Brent Huisman authored
      * Docs: emphasised the option of having pip install a local copy of the Arbor source.
      * CMake: default Python library install path to `${PYTHON_EXECUTABLE} -c "import sysconfig; print(sysconfig.get_path('platlib'))"`. Fixes #1100.
      * CMake: remove ARB_PYTHON_PREFIX option, added ARB_PYTHON_LIB_PATH option. We cannot know in general where in the prefix the packages are expected by Python.
      54b5c3ac
  6. Dec 16, 2020
  7. Dec 15, 2020
    • Nora Abi Akar's avatar
      Remove deleted example (#1286) · 0df4aa65
      Nora Abi Akar authored
      0df4aa65
    • Nora Abi Akar's avatar
      Fix Python build in GH Actions (#1285) · cca8b761
      Nora Abi Akar authored
      Python tests were failing because pyarb was not built
      cca8b761
    • thorstenhater's avatar
      Ci/gh actions (#1249) · 5037e597
      thorstenhater authored
      First step of replacing Travis with GithubActions
      
      Here, only a basic set of tests has been added
      
      - Build arbor with MPI and Python
      - Compile examples
      - Run unit tests, incl distributed.
      - Run python tests, incl distributed.
      - Run python examples.
      - Build documentation.
      5037e597
    • Sam Yates's avatar
      Python API for `place_pwlin`. (#1250) · ff06a4d9
      Sam Yates authored
      Wrap place_pwlin interface to allow querying rich geometry information from cell morphologies.
      
      * Add Python bindings for the `place_pwlin` and `isometry` classes.
      * Add equality test for Python `mpoint`.
      * Add unit tests for new Python interfaces.
      * Split C++ API morphology documentation into its own file.
      * Add C++ API and Python API documentation for `place_pwlin` and `isometry`.
      ff06a4d9
  8. Dec 14, 2020
    • Nora Abi Akar's avatar
      Expose global_properties in Python recipes (#1273) · 5fdfb02e
      Nora Abi Akar authored
      Extend Ptyhon recipe wrapper to support setting of global cell properties.
      
      * Rename `pyrecipe::get_probes` to `py_recipe::probes`
      * Remove `global_properties_shim` : It's easy to make mistakes with the class, as it holds a `mechanism_catalogue` and a `cable_cell_global_properties` which holds a pointer to the catalogue. This would likely have caused issues with the users.
      * Expose `py_recipe::global_properties`
      5fdfb02e
    • Benjamin Cumming's avatar
      Decor (#1235) · ac63809f
      Benjamin Cumming authored
      Make the `cable_cell` interface read only by passing the decorations
      to its constructor in a new `decor` type.
      
      C++ library
      * Remove the paint/place/set_default interface from `cable_cell`
      * Create a `decor` type that:
        * stores lists of paintings and placings
        * stores a set of cable cell parameters
        * uses the `paint`, `place`, `set_default` interface that was deprecated
          from `cable_cell`.
      * Create `paintable`, `placeable` and `defaultable` variants that are sum types
        over the respective types that can be painted, placed and defaulted.
      * Remove the overloaded `cable_cell::paint`, `cable_cell::place`,
        `cable_cell::set_default` methods to single methods that consume the sum types.
      
      Unit Tests
      * Many small changes because many many tests use cable cell API.
      * There were no `cable_cell` unit tests! Not such a big deal, since cable_cell
        is tested implicitly in so many other tests
        * but I added cable_cell tests: not much at the moment but will quickly fill
          up as we work on reading, writing, etc.                                                            
      
      Python
      * Wrap the new decor type.
      * Update cable cell type to reflect read only API.
      * Wrap the cv_policy types and implement the same operator overloading.
      ac63809f
    • Nora Abi Akar's avatar
      modcc : report linear test error. (#1278) · a597ff8d
      Nora Abi Akar authored
      Fix segfault in modcc when min/max used in net_receive.
      
      * The error occurred when a synapse that use `max` or `min` expressions in the `net_receive` block: we test for linearity to check whether they can be coalesced; we cannot differentiate the expression; an error is raised but not reported; seg fault. 
      * Fixes ` as_c_double` printing which does not print integers as doubles as intended. 
      
      Fixes #1275 
      a597ff8d
    • thorstenhater's avatar
      Fix GIL related error in pybind11 interface. (#1272) · 175c3b32
      thorstenhater authored
      Fix a latent bug in the Python wrapper that was triggered in pybind11 v2.6.1
      
      These changes ensure that the GIL is acquired before calling functions in C++ that
      may consume a Python object with reference count 1 as an argument, in which case
      the object's destructor is called at the end of the function, after any GIL acquired inside
      the function would have been released.
      
      Fixes #1271.
      175c3b32
  9. Dec 11, 2020
  10. Dec 10, 2020
  11. Dec 09, 2020
  12. Dec 08, 2020
    • Brent Huisman's avatar
      Fixes #1266 (#1267) · 3e8155eb
      Brent Huisman authored
      Replace CMAKE_SOURCE_DIR with PROJECT_SOURCE_DIR to pick up the correct paths when used as a sub-module.
      
      Fixes #1266.
      3e8155eb
  13. Dec 07, 2020
  14. Nov 30, 2020
    • Brent Huisman's avatar
      Docs frontpage elaboration · 92fdf6c5
      Brent Huisman authored
      * An explanation of documentation structure.
      * Added HBP/Ebrains to acknowledgements.
      92fdf6c5
    • Nora Abi Akar's avatar
      Allow arbitrary argument name for NET_RECEIVE (#1258) · 604e27f4
      Nora Abi Akar authored
      Fixes #1257
      604e27f4
    • Nora Abi Akar's avatar
      Bug fix: shared state time vector swap (#1253) · 64001961
      Nora Abi Akar authored
      Fixes a bug caused by swapping the `time` and `time_to` vectors in the `shared_state` and not swapping the corresponding data pointers in the `threshold_watcher` and `mechanism`.
      - This fix keeps the swapping optimization, and instead, the `threshold_watcher` and `mechanism` hold pointers to the std::vectors (not the underlying arrays) which are dereferenced before use. 
      - The mechanism API functions have been renamed. 
      - A unit test is also added that checks the interpolation behavior of the `threshold_watcher`.
      
      Fixes #1251 
      64001961
  15. Nov 27, 2020
  16. Nov 23, 2020
    • Nora Abi Akar's avatar
      Docs: Cell kind and description (#1227) · 9ab86402
      Nora Abi Akar authored
      * Modify `cell kind` concept docs.
      * Add `cell description` concept docs.
      * Reorder the docs so that the recipe, cell kind and description, interconnectivity, hardware management, domain decomposition, and simulation are consecutive. Then start the more detailed cable cell docs. 
      9ab86402
  17. Nov 19, 2020
  18. Nov 18, 2020
    • thorstenhater's avatar
      Add readme to examples. (#1228) · 9233b784
      thorstenhater authored
      * Add a readme for the C++ examples
      * Improved readme for dryrun
      
      Fixes #868, #1107.
      9233b784
    • 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
  19. Nov 17, 2020