- 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 use the electrical values inherited by cell or global defaults. * Supply a bundled mechanism 'nernst' that replaces the previous hard-coded Nernst potential calculation, for use (together with ion rebinding) in the new ion description scheme. * All ions used in a cable_cell model must be present in the top level global parameter table, together with their charge. * Extend semantics of external variables in modcc, to permit direct assignment (as opposed to just += or -=.) * Extend `util::binary_search_index` to allow for a projection functional analagous to other range utilites. * Add documentation on the cable cell API, sketching over many of the details, but describing in particular the interface changes for default parameters and reversal potential behaviour. * Adjust pyarb for new API * Hard code global cable cell properties in the python recipe shim to useneuron default parameters.
-
- Jul 15, 2019
-
-
Nora Abi Akar authored
Addresses issues #814 and #815. * Change the discretization so that a spherical soma comprises its own CV. * Modify the `div_compartment_integrator` to accommodate the single CV soma, adjusting the discretization of the most proximal branches, adding a half-size CV attached to the soma, so as to leave the remainder of the discretization the same. * Rename the confusing `ncomp` to `ncv` inside the discretization code.
-
- Jul 10, 2019
-
-
Sam Yates authored
Implement implicit derivation of mechanisms. * When a mechanism of the form "foo/param=value,..." or "foo/newion" is requested from a mechanism catalogue, attempt to perform a derive the information or override set from the mechanism "foo" using the given global parameter settings and/or ion remappings given in the name. * Split mechanism catalogue implementation into a private catalogue state with non-throwing behaviour and without any implicit mutation, with mechanism_catalogue methods responsible for throwing any generated errors, with the aim of avoiding throw/catch in expected program flow. Implements #807.
-
- Jul 05, 2019
-
-
* correct doc for meter_report and small word fixes * shift make_report to next section
-
Benjamin Cumming authored
Remove the dead `cell_connection_shim` from the python wrapper. Fix the connection printer to take an `arb::cell_connection` argument, to fix a runtime python crash caused by passing an `arb::cell_connection` where a `cell_connection_shim` was expected.
-
- Jul 03, 2019
-
-
Wraps the `meter_manager` with - the constructor - `start(ctx)` - `checkpoint(name, ctx)` - `checkpoint_names` - `times` and the `meter_report` with - `make_meter_report(meter_manager, ctx)` Fixes #765
-
- 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.
-