- Jan 06, 2021
-
-
Sebastian Schmitt authored
* Add the ability to use json and pybind11 libraries installed on the system instead of the vesrsions of those libraries bundled as submodules in the Arbor repository * Turned on by default * Toggled using the new `ARB_USE_BUNDLED_LIBS` CMake flag * Update documentation for installation * Update CI and pip workflows to opt in to the bundled libraries
-
- Jan 05, 2021
-
-
Brent Huisman authored
-
Brent Huisman authored
-
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.
-
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.
-
- Jan 04, 2021
-
-
Brent Huisman authored
Update the PR licensing rules in the PR contribution guide.
-
Brent Huisman authored
Fix CMAKE to use PYTHON_EXECUTABLE that corresponds to the version of Python used to build the python module.
-
- Dec 18, 2020
-
-
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.
-
Nora Abi Akar authored
Add API for `single_cell_model` and `label_dict`
-
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
-
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.
-
- Dec 17, 2020
-
-
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.
-
- Dec 16, 2020
-
-
Nora Abi Akar authored
-
- Dec 15, 2020
-
-
Nora Abi Akar authored
-
Nora Abi Akar authored
Python tests were failing because pyarb was not built
-
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.
-
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`.
-
- Dec 14, 2020
-
-
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`
-
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.
-
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
-
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.
-
- Dec 11, 2020
-
-
thorstenhater authored
-
- Dec 10, 2020
-
-
Brent Huisman authored
* Move PR message instructions to 'Making a PR' section. * Move coding instructions to 'Write code' section.
-
Brent Huisman authored
* Remove mention of the Copyright Transfer Agreement
-
- Dec 09, 2020
-
-
thorstenhater authored
* Fix pybind11 issues. * Retract suspicious fix. * Address comments.
-
- Dec 08, 2020
-
-
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.
-
- Dec 07, 2020
-
-
Brent Huisman authored
Update CMake configure to look for svgwrite when building docs. Fixes #1128.
-
Brent Huisman authored
Set up contribution guides. Add a contribution guide, as well as * Added contribution section. * Moved content here from the wiki regarding (contribution) processes. Also added some incomplete / placeholder sections that can be improved later. * How to write an example * How to add a test * Coding style guidelines
-
- Nov 30, 2020
-
-
Brent Huisman authored
* An explanation of documentation structure. * Added HBP/Ebrains to acknowledgements.
-
Nora Abi Akar authored
Fixes #1257
-
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
-
- Nov 27, 2020
-
-
Brent Huisman authored
-
- Nov 23, 2020
-
-
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.
-
- Nov 19, 2020
-
-
Nora Abi Akar authored
`pow(double x, int y)` is implemented as of ROCm-3.9 (May have been fixed earlier, don't have access to earlier versions)
-
Brent Huisman authored
Change from long double to double for storing floating point values in modcc. WSL, and Windows generally, treats long double differently than Linux, which leads to inconsistencies in literal numeric values in code generated by modcc on the two platforms. Fixes #1245
-
- Nov 18, 2020
-
-
thorstenhater authored
* Add a readme for the C++ examples * Improved readme for dryrun Fixes #868, #1107.
-
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.
-
- Nov 17, 2020
-
-
Nora Abi Akar authored
* Return `arb::morphology` from `load_swc_xxx` methods for consistency with the NeuroML interface. * Fix unit tests. * Fix documentation
-
Brent Huisman authored
Added a CONTRIBUTION.md page for the project. Contains a link to the wiki with more detailed description of the contribution workflow.
-
Brent Huisman authored
Fixes #1230
-