- Aug 27, 2020
-
-
Benjamin Cumming authored
This PR adds a bunch of high-level docs for concepts related to single cell models. * morphologies * labels (region and locset expressions) * mechanisms * cable cells It adds some python scripts to the `doc` path, which are called during documentation building to generate images of cell morphologies, regions and locsets that are generated in a separate script that uses the Arbor Python API. The docs are not complete: the cable cell and mechanism docs are unfinished, and the tutorial section needs to build on these concepts to give more detailed step by step examples.
-
- Aug 26, 2020
-
-
Brent Huisman authored
Update the docs landing page and add pip install from git. Fixes #1118
-
- Aug 13, 2020
-
-
Brent Huisman authored
Guide Python users to the Python installation steps early in the installation guide.
-
- 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
-
- 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 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
-
- Apr 26, 2019
-
-
Benjamin Cumming authored
Add citation information to the readme.
-
- Mar 04, 2019
-
-
Add gap junctions and improve general model overview in docs. * Replace Arbor Model::Common Types with Arbor Model::Concepts, that introduces the concept of cells, connections and gap junctions. * Add gap junction documentation to cpp:recipe * Document the implicit rule forcing cells connected by gap junctions to be in the same cell group. * Add documentation that discusses core concepts in Arbor models.
-
- Mar 01, 2019
-
-
Benjamin Cumming authored
Update Hardware API documentation * split the domain decomposition and hardware API docs into separate pages * update hardware API to reflect new *libarbor* and *libarborenv* * add basic documentation for `optional`, `any` and `unique_any` types.
-
- Feb 27, 2019
-
-
Benjamin Cumming authored
Update the installation guide to reflect the latest supported tool, compiler and library versions. Remove the Python docs, because they documented features that have not been implemented yet. The Python docs can be added incrementally as features are implemented. Start work on oupdating the documenetation for hardware interfaces and domain decomposition.
-
- Feb 26, 2019
-
-
Update documentation for Python. splits the conceptual model ideas from the C++ docs into their own section has C++ and Python docs for recipes, domain decomposition, etc. fixes #667 Added the following documentation (structure): GETTING STARTED: Installing Arbor/Requirements/Optional Requirements/Python Installing Arbor/Building and Installing Arbor/Python Front End MODEL BASICS: Overview Common Types Recipes Domain Decomposition Simulations PYTHON: Overview Common Types Recipes Domain Decomposition Simulations DEVELOPERS: Python Profiler Python Unit Testing GETTING STARTED has two added sections of optional requirements using python and how to build the python front end. MODEL BASICS describes Arbor's concepts in general (independent of programming language), thus general information on concepts in C++ API was moved here/ added. PYTHON describes Arbor's python frontend in the same structure as MODEL BASICS and C++ API ( needs updates as soon as features are added/changed in new python PR). DEVELOPERS section has two added sections for meter management and unit testing with python front end. Further, some corrections in existing documentation (for obvious errors, e.g. duplicate text, not ending sentences) and referencing sections were done.
-
First step towards the Python front end. This commit sets up the structure of the python implementation * directory structure * git submodule for pybind11 * best practices for making bindings with pybind11 * unit testing for the python front end It implements the following features in the Python front end * execution contexts * gpu detection * thread count detection * MPI initialization helpers. Fixes #667.
-
- Sep 17, 2018
-
-
Dry-run mode: * An implementation of distributed_context that is used to mimic the performance of running an MPI distributed simulation with n ranks. * Verifiable against an MPI run with the same parameters. Implementation: * Describe the model on a single domain (tile) and translate it to however many domains we want to mimic using arb::tile and arb::symmetric_recipe. This allows us to know the exact behavior of the entire system by only running the simulation on a single node. * Mimic communication between domains using arb::dry_run_context Example: * dryrun in example/ is a verifiable example of using dry-run mode with mc_cells Other: * Documentation of dry-run mode * unit test for dry_run_context
-
- Aug 30, 2018
-
-
Benjamin Cumming authored
Make the execution context presented to users an opaque handle, moving all implementation of the gpu, thread and distributed contexts into the back end. * move `execution_context` and `distributed_context` definitions to the back end * create `execution_context` handle called `context` in the public API * provide `make_context` helper functions that build different context configurations (default, user-specified local resources, with MPI) * update documentation for all parts of the public API that touch contexts * move `distributed_context` docs to the developer documentation (from the public API docs)
-
- Jun 01, 2018
-
-
Move from choosing the distributed communication model from a compile time choice (the old `arb::communication::communication_policy` type) to a run time decision. * Add `arb::distributed_context` class that provides the required interface for distributed communication implementations, using type-erasure to provide value semantics. * Add two implementations for the distributed context: `arb::mpi_context` and `arb::local_context`. * Allow distribution over a user-supplied MPI communicator by providing it as an argument to `arb::mpi_context`. * Add `mpi_error` exception type to wrap MPI errors. * Move contents of the `arb::communication` namespace to the `arb` namespace. * Add preprocessor for-each utility `ARB_PP_FOREACH`. * Rewrite all examples and tests to use the new distributed context interface. * Add documentation for distributed context class and semantics, and update documentation for load balancer and simulation classes accordingly. Fixes #472
-
- Apr 11, 2018
-
-
Add two new documentation pages for the C++ API * Add domain decomposition page that covers `domain_decomposition`, `node_info` and `partition_load_balance`. * Add simulation page that describes `arb::simulation` API interface. * Fix some small typos elsewhere in the docs. * Use `std::move` when adding spike callbacks to `arb::simulation` (useful if callbacks are stateful).
-
- Apr 05, 2018
-
-
Add some C++ API documentation. * Create C++ API section in docs. * Document `arb::recipe`: both a class reference along with more explanatory text and best practices guide. * Add some class documentation of basic types required to understand recipe definition. * Some in-code comment clean up. * Change `arb::cell_kind` from a vanilla enum to a scoped enum.
-
- Mar 29, 2018
-
-
Put all the SIMD docs in a single topic, to simplify the documentation tree.
-
- Mar 27, 2018
-
-
Ben Cumming authored
Added an installation guide to the Read The Docs Removed the outdated build/install information from README.md Link from README to Read The Docs Updated the splash page for Read The Docs
-
- Mar 16, 2018
-
-
Sam Yates authored
This provides a bunch of SIMD intrinsic wrappers as a precursor to the SIMD printers. The aim is that the SIMD printer can be agnostic regarding the particular vector architecture. The design is based rather loosely on the proposal P0214R6 for C++ Parallelism TS 2. The transcendental function implementations are adapted from the existing SIMD architecture-specific code, which in turn are based on the Cephes library algorithms. The custom CSS for the html documentation have been tweaked.
-
- Mar 15, 2018
-
-
Replace the profiler with a simpler design that works for nested multi-threaded regions. * Replace hierarchical profiler accounting with strictly exclusive regions. * Make tree grouping of profile data a presentation concern. * Uncouple profiler semantics from Arbor classes such as `model`. * Add thorough documentation for the new profiler to the library documentation.
-
- Sep 01, 2017
-
-
Sam Yates authored
Towards resolution of issue #283. * Replace probe/sample infrastructure with new API as outlined in the `sampling_api.rst` documentation. * Separate `cell` probe information from `cell` description object. * Add `--list` option to `tsplot`, to summarize available time series for plotting together with their metadata. * Add `--sample-dt` option to validation tests. * Change validation time series comparison behaviour: linf distance metric now estimated by comparing reference data points against linearly interpreted simulation samples, rather than the other way around. * Add utility class `any_ptr` which allows lightweight and type-checked access to a type-erased pointer. * Replace `singleton_recipe` with two simple recipe base classes used for unit and validation tests, in `tests/simple_recipes.hpp`. * Simplify RSS cell implementation. * Add statistical functions for testing of probabilistic methods in `tests/unit/stats.hpp` (and .cpp): * simple summary stats class; * Kolmogorov–Smirnov one-sided statistic and CDF; * approximate Poisson CDF. * Simplify and refactor miniapp `sample_trace` code. * Add new utility class `handle_set` for managing a collection of integer handles. (Near-simplest implementation.) * Relax const-ness constraints on `transform_iterator`.
-
- Aug 24, 2017
-
-
Adds support for building documentation with Sphinx from reStructuredText-formatted files in the `doc` subdirectory. Automatic building has been verified with ReadTheDocs. * Add basic documentation to the `doc` path. * Use a git submodule and associated CMake to pull in ReadTheDocs theme at configuration time.
-