Skip to content
Snippets Groups Projects
  1. Jan 27, 2022
  2. Jan 26, 2022
    • Brent Huisman's avatar
      prep for release (#1816) · 930c23eb
      Brent Huisman authored
      v0.6
      930c23eb
    • 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.
      cf99bdce
    • 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 
      b01aa58b
  3. 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().
      d0dc6bd7
    • 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 
      22bd848d
    • 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.
      546e2ad4
    • 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.
      44b67f38
  4. Jan 21, 2022
    • Thorsten Hater's avatar
      CMake CUDA clean-up. (#1804) · b2cb6ced
      Thorsten Hater authored
      - Bump CMake to 3.18 for better CUDA support.
      - Clean-up our use of said support.
      - Remove old cruft and workarounds.
      - Maintenance in CI: enable MacOS 11; bump CMake versions to 3.18 / 3.22; bump bors CMake to 3.18
      
      Fixes #1790 
      b2cb6ced
    • Nora Abi Akar's avatar
      Construct `domain_decomposition` given a list of `group_descriptions`. (#1788) · 6384e2bc
      Nora Abi Akar authored
      - Implement a new constructor for `domain_decomposition` from a vector of `group_descriptions`. The new constructor performs various checks on the given `group_descriptions` and throws an appropriate exception if any problem is found. It is the only available constructor for `domain_decomposition`.
      - Make the various members of `domain_decomposition` private and implement their getters.  
      - Expose the `domain_decomposition` constructor to the python interface through a `partition_by_group` function.
      - Add unit tests. 
      - Add documentation.
      6384e2bc
    • Robin De Schepper's avatar
  5. Jan 18, 2022
  6. Jan 17, 2022
  7. Jan 12, 2022
  8. 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. 
      1363f092
  9. 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.
      0636bbfe
  10. Jan 05, 2022
  11. Jan 03, 2022
  12. Dec 20, 2021
  13. Dec 15, 2021
  14. Dec 14, 2021
  15. Dec 13, 2021
  16. Dec 08, 2021
    • Brent Huisman's avatar
      Docs/contrib updates (#1736) · e2ecd6ad
      Brent Huisman authored
      * Add documentation for collaboration on a PR using just git
      * Add the stage of Issue creation to PR workflow.
      * Correct header level in test docs
      e2ecd6ad
  17. Dec 03, 2021
  18. Nov 26, 2021
    • Benjamin Cumming's avatar
      Test separately built catalogues (#1748) · aabaa87c
      Benjamin Cumming authored
      * add a test that tests that a catalogue built separately can be loaded via the Python interface
      * further simplification of dynamic library support
        * move all platform-specific code into the cpp implementation and out of header.
      aabaa87c
  19. 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
      99f9ddca
  20. Nov 17, 2021
  21. Nov 16, 2021
  22. Nov 15, 2021
  23. Nov 12, 2021
  24. 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.
      0e8875a9
    • 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!)
      e0c13e16
  25. 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.
      2a8878cd
    • 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 
      9b35ba52