Skip to content
Snippets Groups Projects
  1. Jan 26, 2022
    • Brent Huisman's avatar
      v0.6-rc (#1814) · cf99bdce
      Brent Huisman authored
      * bump version to v0.6-rc
      * Update `MANIFEST.in` and `scripts/run_python_examples.sh`
      * Update Release instructions `docs/contrib/release.rst`
      * Fix missing quotes in `python/example/single_cell_nml.py`
      * Add testing to sdist creation in `ciwheel.yml`
      * Rename `basic.yml` to `test-everything.yml`
         * Remove Python examples step from matrix (mostly because plotting takes much CPU on macos)
         * change to build /w nml
         * add test of pip builds (`pip install` in addition to CMake builds)
            * Python examples are tested here, once is enough.
    • Thorsten Hater's avatar
      Remove footgun: Catalogue Lifetimes (#1807) · b01aa58b
      Thorsten Hater authored
      # Changes
      
      - `cable_cell_global_properties` now holds a catalogue directy
      - fixes for tests, examples, and python bindings accordingly
      
      # Linked Issues
      Fixes #1446 
  2. Jan 24, 2022
    • Thorsten Hater's avatar
      More robust build-catalogue (#1784) · d0dc6bd7
      Thorsten Hater authored
      - build-catalogue
        - now installed by pip
        - enable GPU-backends
        - isolate from being installed in a non-default dir
        - rename to arbor-build-catalogue
        - allow hand-written C++ mechanisms to be linked in the same catalogue.
      - CMake
        - enable PIC on arbor always to allow linking to shared objects
        - use relative paths when configuring a-b-c, to make relocation less of a problem
      - Python
          - ensure a-b-c is installed by pip, along with headers and libarbor.a
          - throw errors if tools (cmake scripts, arbor package, modcc) missing
          - transition setup.py setuptools -> skbuild.
      - Wheels
          - Add NML2 support to wheels
          - scripts/build-wheels.sh builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with .github/workflows/ciwheel.yml
          - scripts/patchwheel.py corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see pypa/auditwheel#363
          - Python Wheels are tested as part of the Github Action 
          - Add nml and bundled status to config().
    • Brent Huisman's avatar
      Have option to set thread count to local maximum (#1716) · 22bd848d
      Brent Huisman authored
      * Pyarb specific.
      * `proc_allocation_shim()` throws error if user sets threads to zero.
      * `arbor.context` constructor accepts `threads` set to `"avail_threads"`, which sets the number of threads to `arbenv::thread_concurrency()`
        * This introduces a dependency on arbenv for Pyarb.
      * Docs and tests added.
      
      Fixes #1692 
    • Benjamin Cumming's avatar
      Add dry run benchmark cell model for testing communication scaling (#1627) · 546e2ad4
      Benjamin Cumming authored
      Add a modified version of the benchmark cell example that uses dry run scaling.
    • Nora Abi Akar's avatar
      Profile externally loaded mechanisms (#1691) · 44b67f38
      Nora Abi Akar authored
      - Add support for profiling externally loaded mechanisms.
      - Move the profiler calls out of the generated C++ code into the `arb::mechanism` methods. 
      - Remove the `--profile` flag from the modcc flags. 
      - Replace `_` delimiter with `:` in profiler. 
      - Replace `const char*` with `const std::string&` for profiler region representation.
      - Profiler may now contain empty regions that were registered but not profiled, so add some code to filer those out when generating final profile.
  3. Jan 21, 2022
  4. Jan 18, 2022
  5. Jan 17, 2022
  6. Jan 12, 2022
  7. Jan 07, 2022
    • Nora Abi Akar's avatar
      Expose information about the CV discretization to the public inteface (#1758) · 1363f092
      Nora Abi Akar authored
      Refactor the CV-cable logic from `fvm_layout.cpp`. Specifically, move `cv_geometry_from_ends` into the new public header `cv_data.hpp` and rename it to `cv_data_from_locset`, and move `pw_over_cable` into another new public header `util/piecewise_over_cable.hpp`. 
      Create a new public class `cell_cv_data`, similar to the private `cv_geometry` but which only carries the cv information for a single cable-cell. Add a new constructor to `cv_geometry` which takes `cell_cv_data` as an argument. 
      Add new public function `intersect_region` that takes as arguments a cable-cell, a region on that cell and a `cell_cv_data` object and returns a vector of CV indices and proportions belonging to the region. 
      Add docs, python wrapper and unit tests. 
      
      Fixes #1720. 
  8. Jan 06, 2022
    • Nora Abi Akar's avatar
      Bug fix: properly partition networks containing one-sided gap-junction connections (#1774) · 0636bbfe
      Nora Abi Akar authored
      Replace the `partition_load_balance` function assumed that gap-junction connections are always double-sided (i.e. if gid `x` has a gap-junction connection from peer gid `y`, then gid `y` must also have a gap-junction connection from peer gid `x`). This used to be a requirement that was checked prior to #1682. Since then, single-sided gap-junctions are in principle allowed, but `partition_load_balance` still operates under the bidirectional gap-junction connection assumption resulting in some gids being present in multiple cell-groups. 
      This PR modifies the `partition_load_balance` function to do the following: 
      1. On each rank, generate a gj_connection list per cell. (gj_connection list is a vector of gids that have an outgoing connection ending at the cell under consideration). 
      2. On each rank, gather all the gj_connection lists for each cell in the network. 
      3. On each rank, modify the global list of gj_connections in the network to make all gj_connections bidirectional. 
      4. On each rank, use the global list of gj_connections in the network to partition the graph. 
      
      Fixes #1767.
  9. Jan 05, 2022
  10. Jan 03, 2022
  11. Dec 20, 2021
  12. Dec 15, 2021
  13. Dec 14, 2021
  14. Dec 13, 2021
  15. Dec 08, 2021
  16. Dec 03, 2021
  17. Nov 26, 2021
  18. Nov 22, 2021
    • boeschf's avatar
      Address compiler warnings (#1769) · 99f9ddca
      boeschf authored
      Fix various non-standards compliant code when compiled with elevated warning levels (-Wall -Wpedantic). Here is a list of the problems addressed:
      
      **preprocessor**
      - expansion of empty `__VA_ARGS__` in `ARB_PP_FOREACH`
      - named variadic macro arguments in `TRACE` macro
      
      **glibc** 
      - deprecated `mallinfo` call for newer glibc versions
      
      **simd**
      - non-const C-array sizes
      
      **modcc**
      - generation of C-arrays of size 0
      
      **switch/case**
      - switch-case ranges
      
      **tuple_foreach**
      - compound literals
  19. Nov 17, 2021
  20. Nov 16, 2021
  21. Nov 15, 2021
  22. Nov 12, 2021
  23. Nov 10, 2021
    • Benjamin Cumming's avatar
      Find morphology location from a coordinate (#1751) · 0e8875a9
      Benjamin Cumming authored
      Extend the `pwlin_place` interface to find the location of a morphology that is closest to a 3d coordinate.
      * extend `arb::pwlin_place` interface
      * python wrapper
      * unit tests
      * documentation
      
      Addresses a feature request by @Helveg that I don't think ever had a ticket assigned to it.
      
      Fixes #1661 and #1108.
    • Sam Yates's avatar
      Simplify default proc_allocation generation. (#1725) · e0c13e16
      Sam Yates authored
      * Consolidate default_concurrency, default_gpu functionality into arborenv/default_env.hpp, .cpp.
      * Add new arborenv function `default_allocation()` that uses environment variables ARBENV_NUM_THREADS and ARBENV_GPU_ID to create an `arb::proc_allocation`, with a fallback to `thread_concurrency()`.
      * Use arborenv-specific exceptions instead of generic std::runtime_error etc.
      * Update examples, docs to suit.
      
      Fixes #988 (except for reworking all the unit tests!)
  24. Nov 09, 2021
    • Sam Yates's avatar
      Update/fix tinyopt README.md (#1747) · 2a8878cd
      Sam Yates authored
      tinyopt README.md had an example which was not updated to the 1.0 API. Fixed upstream, and this is a copy.
    • Sam Yates's avatar
      Deal with zero radius points in a morphology (#1719) · 9b35ba52
      Sam Yates authored
      * Add test that is sensitive to small radius loss of precision in ixa computation.
      * Add test that checks for consistent behaviour when there is an (isolated) zero radius point in the morphology.
      * Special case p==1 q==1 case in ratelem so that it can interpolate ixa in the presence of non-finite interpolants.
      * Change naming in pw_element/pw_elements: 'element' refers to the extent+value pairs comprising a 'pw_elements' object; 'value' refers to the value associated with an element; 'extent' refers to the closed interval which is the support of the element.
      * Allow values (but not extents) in a pw_elements object to be mutable, using proxies for iterator access.
      * Write piecewise zip (pw_zip) in terms of a lazy pw_zip_view. Rename zip functions.
      * Document pw_elements more thoroughly.
      * Simplify and document embed_pwlin.cpp routines, expressing everything in terms of simple interpolate/integrate operations.
      * Represent integrated inverse cross-sectional area in the embedding by multiple piecewise-rational functions over a branch, each of which contribute separately to an ixa-based integration, so that precision loss associated with small (or zero) radii can be avoided.
      * Comment embed_pwlin.cpp more thoroughly.
      
      Fixes #1526 
  25. Nov 02, 2021
  26. Oct 29, 2021