Skip to content
Snippets Groups Projects
  • Sam Yates's avatar
    Replace cable cell discretization. (#941) · b7361a1f
    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 within cells in a cell group.
    * Provide `cv_geometry_from_ends` that produces `cv_geometry`
      discretization for a cell given a locset comprising CV boundary points.
    * Provide interface and functionality for merging discretization
      structures `cv_geometry`, `fvm_cv_discretization`, `fvm_mechanism_data`
      from multiple cells, in order to support (in the future) parallelized
      discretization across a cell group.
    * Provide complete reimplementation of `fvm_discretize(...)`.
    * Remove now redundant `arbor/fvm_compartment.hpp`.
    * Add new locset expression `on_branches`, representing a point on every
      branch at a given relative position.
    * Fix implementation bug in `pw_elements` `zip` function.
    * Add `util::equal` range-based analogue of `std::equal`.
    * Remove the compartments_from_discretization argument from cable cell
      made in python module. (Does this need to begiven a discretization policy?
      It is not clear.)
    b7361a1f