Skip to content
Snippets Groups Projects
  1. Aug 10, 2021
  2. Aug 02, 2021
    • Brent Huisman's avatar
      Docs mechabi (#1610) · 79450573
      Brent Huisman authored
      * Bit of review on the copy of the mech abi docs.
      * Convert api/abi docs to C Domain directives.
      79450573
  3. Jul 29, 2021
    • thorstenhater's avatar
      Implement mechanism ABI · ff12bb82
      thorstenhater authored
      Implements #1376.
      
      * Provide a common C linkage ABI for externally compiled mechanisms, for both CPU and GPU.
      * Remove mechanism type hierarchy (`concrete_mechanism` etc.), and move corresponding functionality to the back-end shared state objects. Mechanism catalogue is no longer indexed by type id.
      * Distinguish between SIMD optimal alignment and SIMD width with new `min_align` attribute. Mechanisms provide both pieces of information via ABI.
      ff12bb82
  4. Jul 27, 2021
  5. Jul 02, 2021
  6. Jun 29, 2021
    • thorstenhater's avatar
      Add S-Exp for CV Policies (#1511) · a297ff44
      thorstenhater authored
      1. All s-exp parsing has migrated to `arborio`
      2. CV policies can now be read from string as per #1334. This is needed for the GUI project.
      2. No longer can `arb::locset` and `arb::region` be constructed from mere strings
      2. We have `arborio::literals` to construct `region`s, `locset`s, and `cv_policy`s in the form of `_rg`, `_ls`, and `_cvp`.
      3. The `_lab` suffix now constructs an object that converts to `named` morphologies, rather than a simple string.
      4. Constructors of `region` and `locset` are now properly guarded
      5. Consequently, a lot of missing inheritance from `region_tag` and `locset_tag` was retrofitted.
      
      Closes #1334 
      Closes #1419 
      a297ff44
  7. Jun 24, 2021
  8. Jun 23, 2021
    • Benjamin Cumming's avatar
      Add optional target-specific configuration for CMake (#1586) · bcd2ca1e
      Benjamin Cumming authored
      - Add an optional CMake option `ARB_CXX_FLAGS_TARGET` for setting target-specific flags to use when compiling for the target architecture (not applied to compilation of modcc).
      - If `ARB_ARCH=="none"` CMake will not add architecture-specific `mtune/march/mcpu` flags
      - Remove `ARB_CXXOPT_ARCH` from the installed `arbor-config.cmake`, and replace with more general `ARB_CXX_FLAGS_TARGET`.
      - Update spack `package.py` to use this feature to pass custom flags.
      
      Fixes #1519
      Fixes #1522 
      
      Replaces PR #1518 
      bcd2ca1e
  9. Jun 18, 2021
    • Nora Abi Akar's avatar
      Labels instead of indices for placeable item identfication. (#1504) · e0e18976
      Nora Abi Akar authored
      New structs and types:
      * `cell_tag_type` (std::string): for labelling placeable items on a cell. The label refers to a number of items placed on a locset, equal to the number of locations in a locset. The number of locations in not always known to the user, so the previous way of using indices for items was no longer sufficient. 
      * `lid_selection_policy`: for allowing a user to select a single item from a group of items sharing a label. Currently only `round_robin` and `assert_univalent` are supported. 
      * `cell_local_label_type` and `cell_global_label_type`: for identifying the target and source of a connection or gap_junction connection. 
      * `cell_label_ranges`, and `cell_labels_and_gids`: for propagating information about the labelled items on the cell from the cell groups back to the simulation and communicator. 
      * `label_resolution_map` and `resolver`: for selecting an item (and retaining state) from a labelled group of items on a cell according to a user-selected policy.
      
      Changes to the model-initialization: 
      * The `communicator` now needs `label_resolution_maps` constructed from the cell group data in order to build the `connections` vectors. 
      * The `simulation_state` object handles the transfer of the information when it is constructed. 
      * Spike exchange at runtime remains unchanged, because `communicator::connections` remains unchanged. 
      
      Changes to cells, cell_groups and recipe:
      * `decor::place` expects a third label parameter, no longer returns an `lid_range`.
      * `lif`, `source`, and `benchmark` cells need source/target labels in their constructors. 
      * A `cell_group` needs to save data about the gid/labels/lid_ranges of each cell, to propagate back to the `communicator` constructor. 
      * Connections/gap junction connections are formed between {label, policy} pairs on cells instead of indices. 
      * `num_sources`, `num_targets`, `num_gap_junction_sites` deleted from `recipe`.
      
      Additional changes:
      * Add MPI wrapper for exchanging vectors of strings. 
      * Corresponding updates to unit tests, Python wrapper, C++ and Python examples, documentation.
      
      Fixes #1394
      e0e18976
  10. Jun 16, 2021
  11. Jun 08, 2021
  12. Jun 02, 2021
  13. Jun 01, 2021
  14. May 31, 2021
  15. May 26, 2021
  16. May 18, 2021
  17. May 17, 2021
  18. May 04, 2021
  19. Apr 22, 2021
  20. Apr 12, 2021
  21. Apr 08, 2021
    • Sam Yates's avatar
      Add phase parameter to current clamps. (#1474) · 05569a16
      Sam Yates authored
      * `i_clamp` constructors take new optional phase argument.
      * Pulse or box envelope clamps are now provided by the static method `i_clamp::box`, taking onset, duration, and amplitude parameters.
      * Bump pybind11 version so we can have keyword-only arguments in the Python API.
      * Make frequency and phase keyword-only arguments to Python `iclamp`.
      * Change frequency units for clamps from Hz to kHz for consistency with other interfaces.
      
      Fixes #1454.
      05569a16
  22. Apr 06, 2021
    • Benjamin Cumming's avatar
      Update NEURON-style swc reader (#1475) · 00fd01b6
      Benjamin Cumming authored
      * update and simplify the `load_swc_neuron` reader to match the simplified and more correct interpretation in NEURON 8
      * update the documentation on the interpretation, and add details about how it still differs from the neuromorpho descriptions. 
      * update unit tests to reflect new interpretation
      * add a unit test that reproduces a complex case from the NEURON test suite.
      * remove the `load_swc_allen` C++ and Python calls
      * add links to NeuroMorpho site in the documention
      
      Fixes #1445.
      00fd01b6
    • Benjamin Cumming's avatar
      Clarify Python installation from CMake (#1413) · 0c3ce90f
      Benjamin Cumming authored
      Always install Python module inside CMAKE_INSTALL_PREFIX, unless the user explicitly sets the ARB_PYTHON_LIB_PATH CMake variable.
      
      Update documentation on installing and building the Python packing using CMake to have a detailed example of how to install the Python module inside a virtual env.
      
      Fixes #1403
      0c3ce90f
    • Brent Huisman's avatar
      Assorted docs fixes (#1471) · 334830ae
      Brent Huisman authored
      * Correct the installation page.
      * Custom css is not supported by theme, so a css snippet improving table formatting was moved to the theme css.
      * Non cable-cell concept docs were wrong, improved formatting
      * Some typos
      
      Co-authored-by: @clinssen 
      334830ae
  23. Mar 31, 2021
    • Nora Abi Akar's avatar
      Arbor Cable-Cell Format (ACC) (#1423) · 96d961ac
      Nora Abi Akar authored
      * Implements parsers and writers in `arborio` for the s-expression based Arbor Cable-Cell Format defined in #1336.
      * Moves `s_expr.hpp` to the public interface.
      * Adds python wrappers to support the features in pyarb.  
      * Adds unit tests.
      * Adds docs.
      
      Fixes #1336
      Partially addresses #1233
      96d961ac
  24. Mar 30, 2021
  25. Mar 29, 2021
    • Nora Abi Akar's avatar
      Remove `gid` attribute of target of a connection, and local gap-junction site... · db0041a5
      Nora Abi Akar authored
      Remove `gid` attribute of target of a connection, and local gap-junction site of a gap-junction connection (#1467)
      
      * Change the type of the target of a `connection` from `cell_member_type` to `cell_lid_type`. The target cell's gid is always known in both the recipe and simulation.
      * Change the type of the local site of a `gap_junction_connection` from `cell_member_type` to `cell_lid_type`, and make it such that the first argument of the connection is the peer site, and the second the local site. The local cell's gid is always known in both the recipe and simulation.
      * Change the type of the target of an `event_generator` from `cell_member_type` to `cell_lid_type`. The target cell's gid is always known in both the recipe and simulation.
      * New `cell_spike_events` and `cse_vector` for `simulation::inject_events`.
      * Simplify recipe sanity checks and remove associated exception types. 
      * Fix unit tests, examples, docs
      db0041a5
    • Nora Abi Akar's avatar
      Update nmodl guidelines (#1468) · d6e990d0
      Nora Abi Akar authored
      d6e990d0
    • Sam Yates's avatar
      Add optional spherical root for NeuroML. (#1464) · cab5d33d
      Sam Yates authored
      * Adds a `neuroml_options` namespace with enum for use with `neuroml::morphology(...)` and `neuroml::cell_morphology(...)`.
      * Add support for a 'spherical' root segment with option `neuroml_options;:allow_spherical_root`; a zero-length root segment with identical proximal and distal radius will then be converted into an area-equivalent cylinder in the resultant morphology.
      * Amend `place_pwlin::all_at` so that locations on a zero-length segment with different radii at the endpoint will give an mpoint for either end.
      * Add `allow_spherical_root` boolean optional parameter to Python NeuroML morphology methods.
      * Update docs; C++ unit tests.
      cab5d33d
  26. Mar 25, 2021
  27. Mar 19, 2021
    • Sam Yates's avatar
      Rename/hide components to fix ODR violation in arborio. (#1444) · 41952060
      Sam Yates authored
      * Add `nml_` prefix to NeuroML-related classes in arborio.
      * Separate `arborio/xmlwrap` from NeuroML exceptions.
      * Put xmlwrap functionality in its own namespace.
      * Have xmlwrap property access errors returned by util::expected, so that the corresponding NeuroML exceptions are strictly the
      responsibility of the NeuroML parsing code.
      * Rename NeuroML implementation and support sources and headers.
      * Place implementation classes for Neurolucida ASC parsing in an anonymous namespace.
      
      Fixes #1441.
      41952060
  28. Mar 17, 2021