- Jul 02, 2019
-
-
Add docs for Python wrapper to ReadTheDocs: - Overview, Common Types, Hardware Management, Recipes, Domain Decomposition, Simulations, Metering - Installing Arbor: Optional Requirements (Python), Buidling and Installing (Python Frontend), and Installation (Python Module) Missing (, since not implemented yet): - probes - arbor-sup - hint maps in domain_decomposition - reset, events, empty schedule in event_generator Also does not cover unit testing (since doc is user-centric). Makes also defaults and units in wrapper consistent. Fixes #766
-
Add missing check of whether to use direct or indirect indexing for simd procedure calls. fixes #804
-
Address inconsistencies in unit conversions between current updates, initialization, ionic currents etc. Fixes issues #793 and #798. * Correct units in comments for ion state iX_ to a current density. * Remove conversion factor for NMODL current densities [mA/cm²] to Arbor current densities [A/m²] from layout weight: from the point of view of Arbor, mechanisms now write in units that Arbor uses natively. * Remove weight_ as a magic modcc variable; applying weight_ is now performed directly by code generated by printers. * Change IndexedVariable interface: remove redundant index_name; remove 'op'. Whether external data is accumulated or assigned is now a property of the corresponding sourceKind. * Conversion factors for NMODL <-> Arbor are collated in printerutils.cpp, determined by the external data sourceKind. * Permit direct assignment of external data, as opposed to a weighted sum. This behaviour will be required for reversal potential handling...
-
- Jun 27, 2019
-
-
Sam Yates authored
* Add `::arb::` decoration to `fvm_value_type` and `fvm_index_type` in modcc simd cprinter output. * Return stream from unwind stack trace printer. Fixes #801 and also a long standing (but low impact) bug in unwind code.
-
Sam Yates authored
* Correctly decorate required names from arb:: namespace. * Put the unit test mechanisms in the 'testing::' namespace, to exercise this functionality.
-
- Jun 25, 2019
-
-
Sam Yates authored
Building validation data with python2 can raise an import error for `builtins`. * Catch import error, and import from `__builtin__` instead.
-
- Jun 24, 2019
-
-
Benjamin Cumming authored
Support for recording spikes generated by a simulation in the Python wrapper * Implement a `spike_recorder` that holds a shared pointer to a `std::vector` of spikes, and a callback for the `arb::simulation` spike recording API. * Add `python/example/ring.py` that creates a ring network, then records and prints spikes. * Some fixes to get the full `recipe` -> `domain_decomposition` -> `simulation` -> `spikes` workflow to work * always use default `global_parameters`: user customization of global parameters for cable cells can wait until the ion species interface is finished. * change the Python recipe interface for `recipe::connections_on` to use `pybind11::objects` because of shim. * Some small improvements to error and help messages. Fixes #764
-
- Jun 20, 2019
-
-
Benjamin Cumming authored
-
- Jun 17, 2019
-
-
* Make global parameters and ion rebindings part of the instantiate interface, rather than insist that all concrete mechanisms implement these as methods. * Mechanism catalogue instance() returns a pair, comprising the concrete mechanism for the requested backend, together with the override data. * Extend catalgoue derive() method to take a list of old ion name -> new ion name remappings for a mechanism. * Add exceptions for ion remapping errors, and check for these errors. * Add convenience function for reparameterizing a mechanism with a single ion dependency over other ions. (This will be used for the future nernst pre-supplied mechanism.) * Add unit tests for: chained renamings of ion names across multiple derivations; correct shared state ion assignment after renamings; ion remapping exceptions; parameterize_over_ion.
-
- Jun 14, 2019
-
-
* cmake/FindUnwind.cmake used the wrong variable (caused by commit ad1c78ab) * CMakeLists.txt seems to use wrong syntax for providing a compiler define of `WITH_UNWIND` (used in `arbor/util/unwind.cpp`)
-
- Jun 12, 2019
-
-
Benjamin Cumming authored
Fixes #782 * consistent formatting of strings returned by `__repr__` and `__str__` for wrapped types * rename enum wrappers to be less verbose, where it makes sense.
-
Benjamin Cumming authored
Add full wrappers for - `lif_cell` - `spike_source_cell` - `benchmark_cell And an opaque wrapper for cable_cell with a helper function that generates a random morphology identical to the ones in the nsuite benchmarks. Fixes #767.
-
Wrap `arb::simulation` type and interface for running `run()`, resetting `reset()`, and `set_binning_policy(policy, bin_interval)`. Wrap `enum binning_kind`, used to set event binning on `simulation` API. Fixes #763
-
Extended USEION VALENCE support. * Augment modcc parser to accept identifier or signed integer after VALENCE. * Treat identifer after VALENCE as global scalar, tied to ionic charge. * Add ionic charge field to mechanism ion parameter pointers, replacing scalar in shared state with a length-1 array. * Verify presence of ion name and check ion charge against numeric valence in mechanism info when discretizing in `fvm_build_mechanism_data`. * Pass ion info, coalesce_synapse global state to `fvm_build_mechanism_data` just via cable cell global properties. * Add more unit-test only mechanisms (test_ca_read_valence, test_cl_valence). * Add unit tests for valence verification and reading into mechanism state (multicore only). * Update existing unit tests for new interfaces. Implements #780.
-
- Jun 07, 2019
-
-
* Change occurances of 'ionKind' to corresponding string values in test_parser.cpp. * Add unit-modcc to travis script. Fixes #775.
-
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
-
- Jun 05, 2019
-
-
akuesters authored
clean up stringification in python wrappers
-
Benjamin Cumming authored
-
akuesters authored
move python wrapper for schedules to their own files
-
Benjamin Cumming authored
-
- Jun 04, 2019
-
-
Fixes #760 Wraps arbor recipe (without probes, i.e. num_probes, probe_info, get_probe) including - cell_connection, - gap_junction_connection, - recipe with - num_cells - cell_description - cell_kind - num_sources - num_targets - num_gap_junctions_sites - event_generators - connections_on - gap_junctions_on - global_properties - enum cell_kind in `identifiers.cpp`
-
- May 29, 2019
-
-
Nora Abi Akar authored
Addresses #757. * Check if the multiplicity vector is empty before trying to use its contents. * Add unit test to catch the problem
-
Fix a memory error triggered on the GPU when assertions were enabled. An assertion was testing a value in shared memory, that should have been stored in host memory.
-
akuesters authored
Python: mpi4py communicators as first class citizens
-
- May 23, 2019
-
-
Benjamin Cumming authored
-
Benjamin Cumming authored
-
* Replace ionKind enumerations with corresponding string values. * Rename `ion.hpp` as `ion_info.hpp`. * Re-jig 'nonspecific' current handling in modcc: make explicit the external source of the corresponding current variable, and treat as non-indexed those locals with an external variable that has no data source, as opposed to special-casing the `ionKind::nonspecific` value. * Add another field in ion dependency information that captures a write to an ionic reversal potential. Fixes #748.
-
Benjamin Cumming authored
-
+ Included conversion from `pybind11::object()` to `arb::util::optional` for `arbor.proc_allocation().gpu_id` and exception handling for `arbor.context(mpi=comm)`. + cleaned-up `test_event_generator.py` + for discussion: How do we want to handle the strings? Include them in appropriate `.cpp` or collect them in `strings.c/hpp`?
-
- May 20, 2019
-
-
Sam Yates authored
Fixes #746. * Make `one_probe` an `inline` function rather than `static inline` in order to work around a linker issue (see issue #746).
-
- May 17, 2019
-
-
Nora Abi Akar authored
* Fixes segmentation faults; output compiler errors instead. * Consume units if provided in function/procedure prototypes or after function prototype. * Consume UNITSON/UNITSOFF. * Consume and store VALENCE as an ion property.
-
- May 09, 2019
-
-
Wrapped the following C++ features in Python: - Identifiers (`cell_member`) + according tests - `event_generator` and schedules (`regular_schedule`, `explicit_schedule`, `poisson_schedule`) + according tests
-
- May 07, 2019
-
-
Changes implicit solve step from: > solve (c/δt + L) v' = c/δt v - J to > solve (c/δt + g + L)v' = (c/δt +g) v - J where _c_ is capacitance, _g_ is membrane conductance, _J_ is membrane current. * Compute conductivity contribution for mechanisms from symbolic d/dv of current contribution (extracted from linearity test.) * Add new modcc 'source kind' for conductivity; tie to `vec_g_`. * Add conductivity field to fvm shared state. * Include conductivity in matrix assemblies for solution. Fixes #633.
-
- Apr 26, 2019
-
-
Benjamin Cumming authored
Add citation information to the readme.
-
Benjamin Cumming authored
Fix bug in CUDA reduce_by_key implementation on V100 or later GPUs. The bug was not triggered for current use cases of the algorithm in Arbor, though it will be a problem when more than one reduction is to be performed in a single kernel invocation, which is required for ac cumulating both current and conductance values. * Use warp-synchronous aware operations to avoid problems on V100. * Simplify reduction kernel. * Rename `run_length` ancillary data structure to `key_set_pos`. * Add unit tests that trigger the incorrect behaviour observed in #736. Fixes #736.
-
- Apr 25, 2019
-
-
akuesters authored
* Add value_type and emplace method to the optional class to support automatic conversion of arb::util::optional in python. * Add unit test for arb::util::optional::emplace.
-
- Apr 03, 2019
-
-
- Mar 15, 2019
-
-
Python 3.6 is tested (serial and mpi), in particular: - 3.6.3 on linux with a virtualenv, - 3.6.5 as downgrade from 3.7 on osx as in https://stackoverflow.com/questions/52584907/how-to-downgrade-python-from-3-7-to-3-6?rq=1 (other solutions did not work) Fixes #715
-
- Mar 14, 2019
-
-
* Rename `arb:simd::simd_detail` namespace to `arb::simd::detail`. * Update SIMD documentation to suit. Fixes #468.
-
- Mar 06, 2019
-
-
Sam Yates authored
Fixes #717. * Move time interval update step after threshold check.
-