Skip to content
This repository was archived by the owner on Feb 26, 2025. It is now read-only.

Commit a9650ad

Browse files
author
Weina Ji
authored
SimulationConfig: use names for integration_method (#376)
1 parent e4ebf38 commit a9650ad

File tree

7 files changed

+19
-17
lines changed

7 files changed

+19
-17
lines changed

include/bbp/sonata/config.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ class SONATA_API SimulationConfig
263263
* Parameters defining global simulation settings for spike reports
264264
*/
265265
struct Run {
266-
enum class IntegrationMethod { invalid = -1, euler, nicholson, nicholson_ion };
266+
enum class IntegrationMethod { invalid = -1, euler, crank_nicolson, crank_nicolson_ion };
267267

268268
static constexpr double DEFAULT_spikeThreshold = -30.0;
269269
static constexpr IntegrationMethod DEFAULT_IntegrationMethod = IntegrationMethod::euler;
@@ -281,7 +281,7 @@ class SONATA_API SimulationConfig
281281
/// The spike detection threshold. Default is -30mV
282282
double spikeThreshold = DEFAULT_spikeThreshold;
283283
/// Selects the NEURON/CoreNEURON integration method. This parameter sets the NEURON
284-
/// global variable h.secondorder. Default 0 ('euler')
284+
/// global variable h.secondorder, default is "euler".
285285
IntegrationMethod integrationMethod = DEFAULT_IntegrationMethod;
286286
/// A non-negative integer used for seeding noise stimuli and any other future stochastic
287287
/// stimuli, default is 0.

python/bindings.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -646,8 +646,8 @@ PYBIND11_MODULE(_libsonata, m) {
646646

647647
py::enum_<SimulationConfig::Run::IntegrationMethod>(run, "IntegrationMethod")
648648
.value("euler", SimulationConfig::Run::IntegrationMethod::euler)
649-
.value("nicholson", SimulationConfig::Run::IntegrationMethod::nicholson)
650-
.value("nicholson_ion", SimulationConfig::Run::IntegrationMethod::nicholson_ion);
649+
.value("crank_nicolson", SimulationConfig::Run::IntegrationMethod::crank_nicolson)
650+
.value("crank_nicolson_ion", SimulationConfig::Run::IntegrationMethod::crank_nicolson_ion);
651651

652652
py::class_<SimulationConfig::Output> output(simConf,
653653
"Output",

python/generated/docstrings.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -1157,21 +1157,21 @@ static const char *__doc_bbp_sonata_SimulationConfig_Run = R"doc(Parameters defi
11571157

11581158
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod = R"doc()doc";
11591159

1160-
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_euler = R"doc()doc";
1160+
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_crank_nicolson = R"doc()doc";
11611161

1162-
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_invalid = R"doc()doc";
1162+
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_crank_nicolson_ion = R"doc()doc";
11631163

1164-
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_nicholson = R"doc()doc";
1164+
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_euler = R"doc()doc";
11651165

1166-
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_nicholson_ion = R"doc()doc";
1166+
static const char *__doc_bbp_sonata_SimulationConfig_Run_IntegrationMethod_invalid = R"doc()doc";
11671167

11681168
static const char *__doc_bbp_sonata_SimulationConfig_Run_dt = R"doc(Integration step duration in milliseconds)doc";
11691169

11701170
static const char *__doc_bbp_sonata_SimulationConfig_Run_electrodesFile = R"doc(Filename that contains the weights for the LFP calculation.)doc";
11711171

11721172
static const char *__doc_bbp_sonata_SimulationConfig_Run_integrationMethod =
11731173
R"doc(Selects the NEURON/CoreNEURON integration method. This parameter sets
1174-
the NEURON global variable h.secondorder. Default 0 ('euler'))doc";
1174+
the NEURON global variable h.secondorder, default is "euler".)doc";
11751175

11761176
static const char *__doc_bbp_sonata_SimulationConfig_Run_ionchannelSeed =
11771177
R"doc(A non-negative integer used for seeding stochastic ion channels,

python/tests/test_config.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ def test_basic(self):
413413
self.assertEqual(self.config.run.random_seed, 201506)
414414
self.assertEqual(self.config.run.spike_threshold, -35.5)
415415
self.assertEqual(self.config.run.integration_method,
416-
SimulationConfig.Run.IntegrationMethod.nicholson_ion)
416+
SimulationConfig.Run.IntegrationMethod.crank_nicolson_ion)
417417
self.assertEqual(self.config.run.stimulus_seed, 111)
418418
self.assertEqual(self.config.run.ionchannel_seed, 222)
419419
self.assertEqual(self.config.run.minis_seed, 333)

src/config.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,12 @@ NLOHMANN_JSON_SERIALIZE_ENUM(SimulationConfig::Conditions::SpikeLocation,
5858
{SimulationConfig::Conditions::SpikeLocation::soma, "soma"},
5959
{SimulationConfig::Conditions::SpikeLocation::AIS, "AIS"}})
6060

61-
NLOHMANN_JSON_SERIALIZE_ENUM(SimulationConfig::Run::IntegrationMethod,
62-
{{SimulationConfig::Run::IntegrationMethod::invalid, nullptr},
63-
{SimulationConfig::Run::IntegrationMethod::euler, 0},
64-
{SimulationConfig::Run::IntegrationMethod::nicholson, 1},
65-
{SimulationConfig::Run::IntegrationMethod::nicholson_ion, 2}})
61+
NLOHMANN_JSON_SERIALIZE_ENUM(
62+
SimulationConfig::Run::IntegrationMethod,
63+
{{SimulationConfig::Run::IntegrationMethod::invalid, nullptr},
64+
{SimulationConfig::Run::IntegrationMethod::euler, "euler"},
65+
{SimulationConfig::Run::IntegrationMethod::crank_nicolson, "crank_nicolson"},
66+
{SimulationConfig::Run::IntegrationMethod::crank_nicolson_ion, "crank_nicolson_ion"}})
6667

6768
NLOHMANN_JSON_SERIALIZE_ENUM(SimulationConfig::Output::SpikesSortOrder,
6869
{{SimulationConfig::Output::SpikesSortOrder::invalid, nullptr},

tests/data/config/simulation_config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"ionchannel_seed": 222,
2626
"minis_seed": 333,
2727
"synapse_seed": 444,
28-
"integration_method" : 2,
28+
"integration_method" : "crank_nicolson_ion",
2929
"forward_skip": 500,
3030
"electrodes_file": "$ELECTRODES_DIR/electrode_weights.h5",
3131
"spike_threshold": -35.5

tests/test_config.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,8 @@ TEST_CASE("SimulationConfig") {
310310
CHECK(config.getRun().dt == 0.025);
311311
CHECK(config.getRun().randomSeed == 201506);
312312
CHECK(config.getRun().spikeThreshold == -35.5);
313-
CHECK(config.getRun().integrationMethod == SimulationConfig::Run::IntegrationMethod::nicholson_ion);
313+
CHECK(config.getRun().integrationMethod ==
314+
SimulationConfig::Run::IntegrationMethod::crank_nicolson_ion);
314315
CHECK(config.getRun().stimulusSeed == 111);
315316
CHECK(config.getRun().ionchannelSeed == 222);
316317
CHECK(config.getRun().minisSeed == 333);

0 commit comments

Comments
 (0)