39 return std::strcmp(a, b) < 0;
50 const std::string_view mech_name,
51 const std::string_view variable_name,
56 std::cerr <<
"No variable name mapping exists for mechanism id: " << mech_id << std::endl;
60 const auto& mech = mech_it->second;
61 auto offset_it = mech.find(variable_name.data());
62 if (offset_it == mech.end()) {
64 std::string fallback_name = std::string(variable_name) +
"_" + std::string(mech_name);
65 offset_it = mech.find(fallback_name.data());
67 if (offset_it == mech.end()) {
68 std::cerr <<
"No value associated to variable name: '" << variable_name
69 <<
"' or fallback '" << fallback_name <<
"'";
75 return &(ml->
data[ix]);
80 int nb_parsed_variables = 0;
82 int current_category = 1;
84 if (variable_names[idx]) {
86 nb_parsed_variables++;
int node_index(Section *sec, double x)
returns nearest index to x
auto & get_mech_data_layout()
#define NB_MECH_VAR_CATEGORIES
THIS FILE IS AUTO GENERATED DONT MODIFY IT.
static MechNamesMapping mechNamesMapping
void nrn_abort(int errcode)
int get_data_index(int node_index, int variable_index, int mtype, Memb_list *ml)
std::map< MechId, std::map< VariableName, Offset, cmp_str > > MechNamesMapping
double * get_var_location_from_var_name(int mech_id, const std::string_view mech_name, const std::string_view variable_name, Memb_list *ml, int node_index)
const char ** SerializedNames
const char * VariableName
void register_all_variables_offsets(int mech_id, SerializedNames variable_names)
#define nrn_assert(x)
assert()-like macro, independent of NDEBUG status
bool operator()(char const *a, char const *b) const