diff --git a/src/fvm_cell.hpp b/src/fvm_cell.hpp index 05bce5bd02b57c8d8fe9a9c3e90962eeee8188b3..2fa86fd9d6326b3ffc1692f7c08c0fde00edf163 100644 --- a/src/fvm_cell.hpp +++ b/src/fvm_cell.hpp @@ -183,11 +183,6 @@ private: /// the potential in mV in each CV vector_type voltage_; -#if 0 - /// synapses - using synapse_type = - mechanisms::ExpSyn::mechanism_ExpSyn<value_type, size_type>; -#endif std::size_t synapse_index_; // synapses at the end of mechanisms_, from here /// the set of mechanisms present in the cell @@ -344,49 +339,22 @@ fvm_cell<T, I>::fvm_cell(nest::mc::cell const& cell) synapse_index_ = mechanisms_.size(); - std::multimap<std::string, int> syn_map; - for (const auto& syn: cell.synapses()) { - syn_map.insert({syn.mechanism.name(), find_compartment_index(syn.location, graph)}); + std::map<std::string, std::vector<int>> syn_map; + for (const auto& syn : cell.synapses()) { + syn_map[syn.mechanism.name()].push_back(find_compartment_index(syn.location, graph)); } - auto syn_i = syn_map.begin(); - while (syn_i!=syn_map.end()) { - const auto& mech_name = syn_i->first; + for (const auto &syni : syn_map) { + const auto& mech_name = syni.first; auto& helper = nest::mc::mechanisms::get_mechanism_helper(mech_name); - auto span = syn_map.equal_range(mech_name); - auto num_comp = std::distance(span.first, span.second); - - index_type compartment_index(num_comp); - for (auto p = compartment_index.data(); syn_i!=span.second; ++p, ++syn_i) { - *p = syn_i->second; - } + index_type compartment_index(syni.second); auto mech = helper->new_mechanism(voltage_, current_, compartment_index); mech->set_areas(cv_areas_); mechanisms_.push_back(std::move(mech)); } -#if 0 - // add the synapses - std::vector<size_type> synapse_indexes; - synapse_indexes.reserve(cell.synapses().size()); - for(auto loc : cell.synapses()) { - synapse_indexes.push_back( - find_compartment_index(loc, graph) - ); - } - - mechanisms_.push_back( - mechanisms::make_mechanism<synapse_type>( - voltage_, current_, index_view(synapse_indexes) - ) - ); - synapse_index_ = mechanisms_.size()-1; - // don't forget to give point processes access to cv_areas_ - mechanisms_[synapse_index_]->set_areas(cv_areas_); -#endif - ///////////////////////////////////////////// // build the ion species diff --git a/tests/validation/validate.cpp b/tests/validation/validate.cpp index 1e71cde23cd107b7a784b19a5f90feb61042b437..b89a7b54223d7c2342c9882749c28a886782b316 100644 --- a/tests/validation/validate.cpp +++ b/tests/validation/validate.cpp @@ -1,3 +1,4 @@ +#include <cstring> #include <iostream> #include <fstream> #include <numeric> @@ -14,7 +15,7 @@ int usage(const char* argv0) { int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); - if (argv[1] && (!strcmp(argv[1], "-p") || !strcmp(argv[1], "--path"))) { + if (argv[1] && (!std::strcmp(argv[1], "-p") || !std::strcmp(argv[1], "--path"))) { if (argv[2]) { testing::g_validation_data.set_path(argv[2]); } diff --git a/tests/validation/validation_data.hpp b/tests/validation/validation_data.hpp index 66ea5bc8cd178c2487d43f614b05ba81b8c2e7f5..2aeb2f393d4fa28cac21e4d50174ad82d0c76289 100644 --- a/tests/validation/validation_data.hpp +++ b/tests/validation/validation_data.hpp @@ -1,5 +1,7 @@ #pragma once +#include <string> + #include <json/src/json.hpp> #ifndef DATADIR