Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complex compartments #54

Merged
merged 2 commits into from
Oct 31, 2016

Conversation

halfflat
Copy link
Contributor

  • Use divided compartments to determine FVM coefficients.
  • Pick correct control volume in FVM from sgement position (avoids off-by-half error.)
  • Add colour override functionality to tsplot: --colour option.
  • Add const accessor for cell soma.
  • Source formatting, comments in math.hpp
  • Fix range_view: was using incorrectly named type trait.
  • Add unit test for range_view.
  • Allow points of discontinuity to be omitted from L-infinity norm calculations.
  • Add -d, --min-dt option to validate.exe to control time step in validation convergence tests.
  • Add validation test: confirm divided compartment policy does not effect results on simple frustrum dendrites.
  • Change default max compartments on validation tests to 100 (ad hoc observed convergence limit at dt circa 0.001 ms; finer spatial division would required much finer dt.)
  • Make NEURON validation data generation scripts use CVODE by default, and with secondorder=2 when non-zero dt is given.

* Use divided compartments to determine FVM coefficients.
* Pick correct control volume in FVM from sgement position (avoids
  off-by-half error.)
* Add colour override functionality to tsplot: `--colour` option.
* Add const accessor for cell soma.
* Source formatting, comments in `math.hpp`
* Fix `range_view`: was using incorrectly named type trait.
* Add unit test for `range_view`.
* Allow points of discontinuity to be omitted from L-infinity norm
  calculations.
* Add `-d, --min-dt` option to `validate.exe` to control time
  step in validation convergence tests.
* Add validation test: confirm divided compartment policy does
  not effect results on simple frustrum dendrites.
* Change default max compartments on validation tests to 100
  (ad hoc observed convergence limit at dt circa 0.001 ms;
  finder spatial division would required much finer dt.)
* Make NEURON validation data generation scripts use CVODE by
  default, and with `secondorder=2` when non-zero `dt` is given.
@@ -233,8 +247,8 @@ class fvm_multicell {
//////////////////////////////// Implementation ////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The DivPolicy is used in one location. I wonder if it needs to be its own template parameter? Maybe when we construct a cell we can pass the policy as a parameter to the constructor?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, let's bake in the default for now and add it back as part of a backend policy class.

template <typename T, typename I>
void fvm_multicell<T, I>::compute_cv_area_unnormalized_capacitance(
template <typename T, typename I, typename DivPolicy>
void fvm_multicell<T, I, DivPolicy>::compute_cv_area_unnormalized_capacitance(
std::pair<size_type, size_type> comp_ival,
const segment* seg,
index_type &parent)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think you need the using util::left/right statements below (I can't seem to leave a comment on the lines themselves)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing.

@@ -21,6 +21,11 @@ namespace mc {

double linf_distance(const trace_data& u, const trace_data& ref);

// Compute linf distance as above, excluding samples near
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comments above function definitions is inconsistent. in trace_analysis.cpp

/*
 * Description of function
 */

Then here we are using single // comments.
Elsewhere we have used /// to indicate a descriptive comment above functions (and their prototypes).
I certainly prefer that to the 'noisy' style in trace_analysis.cpp.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure. I don't have a strong preference one way or the other.

* Use only `div_compartment_integrator` for compartmentalization in
  `fvm_multicell`. The policy will later be moved to a backend
  policy class.
* For now, disable validation tests that test different division
  policies (see above).
* Tweak comments and remove redundant `using`, following comments
  on PR#54.
@bcumming bcumming merged commit e8d3285 into arbor-sim:master Oct 31, 2016
@halfflat halfflat deleted the feature/complex-compartments branch October 31, 2016 10:08
noraabiakar pushed a commit to noraabiakar/arbor that referenced this pull request Nov 26, 2019
Implements issue arbor-sim#54.

* Support augmenting simulator names with ':tag' suffixes for configuring simulator behaviour in validation tests.
* Split out common support code in Arbor validation model implementations (command line argument handling; netcdf exception wrapper).
* Add new exit code representing failure for a model implementation to understand a requested tag.
* Make command line arguments in model implementations clearer (output given by '-o', tags by '--tag' etc.)
* Extend model_common.sh to help with simulator tag handling.
* Add tag 'binevents' for existing Arbor models, 'firstorder' for NEURON models.
* Update documentation to suit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants