- Feb 04, 2020
-
-
Benjamin Cumming authored
A big update that wraps over 90% of the public C++ API, with enough functionality to let Python users to perform useful modelling. Key features - wrapping of cable cell functionality - user-defined explicit compartmentalisation not supported - `single_cell_model` abstraction unique to the Python wrapper that simplifies developing and testing single cell models - one-dimensional cell builder for Python wrapper that simplfies building cells that - in and of itself limited in scope, but a very useful example of mapping a richer morphology builder onto `sample_tree`s. - parsing of region and location expressions from strings - implements a generic s-expression parser that we can use for other purposes later
-
- Jan 24, 2020
-
-
Sam Yates authored
Replace branch/cable-based cell representation and discretization with free specification of control volumes over the cell morphology. Implements functionality required for issues #859 and #732, and the reworking of inter-CV conductance computation addresses issue #635, although there is possible room for improvement by treating CV voltages as averages rather than point estimates. * Remove arbor/segment.hpp and segment-based representation in `cable_cell`. * Add a new discretization policy `cv_policy_every_sample` that replaces the `compartments_from_discretization` flag in the `cable_cell` constructor. * Remove use of `cable_cell::num_compartments()` in example code (see issue #940). * Add command line argument to `single_cell` example to specify number of CVs per branch. * Replace fvm layout `fvm_discretization` with new representation `fvm_cv_discretization`, which in turn wraps a `cv_geometry` object representing CVs as cables w...
-
- Oct 30, 2019
-
-
Benjamin Cumming authored
* Make access to `segment`s in a `cable_cell` read only * Change cell constructor to require morphology and label dictionary; `make_cable_cell` no longer required. * Consolidate paint/place functionality on `cable_cell`. * Add simple cell builder wrapping new API for use in unit tests. * Remove validation test code: appropriate validation tests will need to be implemented in nsuite. Fixes #871
-
- Sep 23, 2019
-
-
Benjamin Cumming authored
WIP on implementation of new cable cell API. * Hide implementation and state using PIMPL * Add consistent `place` methods for adding synapse, stimuls, gap junction site and spike detectors to `cable_cell`. * Add default constructor for `region` and `locset` that create empty `nil` instances.
-
- Jul 29, 2019
-
-
Sam Yates authored
* Collect cable cell parameter setting structures into `include/cable_cell_param.hpp`. * Restructure electrical specifications (axial resistance, membrane capacitance) and ionic concentrations and reversal potentials on cable cells, so that these can be specified with a global default, per-cell defaults, and per-segment values. * Allow reversal potentials to be set by a mechanism of a new kind 'revpot', which are prohibited from maintaining state or writing to any shared state other than ionic reversal potentials. * Specify reversal potential mechanisms as global defaults or per-cell. Reversal potential mechanisms may not be specified at the level of a segment in order to avoid non-linearities arising from the discretization. * Supply default cable cell parameter data that matches NEURON values (this is _not_ used by default). * Replace the d_lambda calculation with one that approximates more faithfully the effect of tapered segments, and which will ...
-
- 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
-
- 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 12, 2019
-
-
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.
-