New cable representation for CVs. (#994)
* Replace CV cable representation with one which makes it clear to which CV a fork point 'belongs': every fork point belongs to exactly one CV; if a CV representation has cables on two different branches at a fork point, it must have cables on all branches at that fork point, and the fork point is associated with that CV. * Rework (and simplify) `cv_geometry_from_ends` to suit new representation. * Add CV child information to `cv_geometry`. * Add computed pw-constant axial resistivity over cell branches to `fvm_cv_discretization`, so it is available for voltage/current interpolation. * Extend `location_cv` method: add a new parameter of enum `cv_prefer::type` which instructs `location_cv` on how to resolve locations on CV boundaries. * Provide pw-constant over cable integration methods for `embed_pwlin`. * Split out `unique_in_place` to its own header, with unit tests. * Unit tests to suit.
Showing
- arbor/fvm_layout.cpp 70 additions, 84 deletionsarbor/fvm_layout.cpp
- arbor/fvm_layout.hpp 93 additions, 5 deletionsarbor/fvm_layout.hpp
- arbor/fvm_lowered_cell_impl.hpp 5 additions, 3 deletionsarbor/fvm_lowered_cell_impl.hpp
- arbor/include/arbor/morph/embed_pwlin.hpp 6 additions, 0 deletionsarbor/include/arbor/morph/embed_pwlin.hpp
- arbor/morph/embed_pwlin.cpp 61 additions, 15 deletionsarbor/morph/embed_pwlin.cpp
- arbor/morph/locset.cpp 2 additions, 16 deletionsarbor/morph/locset.cpp
- arbor/util/unique.hpp 30 additions, 0 deletionsarbor/util/unique.hpp
- test/unit/CMakeLists.txt 1 addition, 0 deletionstest/unit/CMakeLists.txt
- test/unit/test_cv_geom.cpp 195 additions, 46 deletionstest/unit/test_cv_geom.cpp
- test/unit/test_cv_layout.cpp 3 additions, 2 deletionstest/unit/test_cv_layout.cpp
- test/unit/test_fvm_lowered.cpp 4 additions, 3 deletionstest/unit/test_fvm_lowered.cpp
- test/unit/test_unique.cpp 39 additions, 0 deletionstest/unit/test_unique.cpp
Please register or sign in to comment