From 90a90f101ed3891bfd5d1db3d93a43ffa2644f3c Mon Sep 17 00:00:00 2001 From: 1uc Date: Mon, 10 Jun 2024 14:32:56 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20BlueBrai?= =?UTF-8?q?n/nmodl@c5ecfea39cbd53ffcc248b1dcf732c1e0ae1ffc4=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .doctrees/environment.pickle | Bin 140066 -> 140104 bytes .../notebooks/nmodl-kinetic-schemes.ipynb | 56 +-- .../notebooks/nmodl-python-tutorial.ipynb | 160 +++---- .../notebooks/nmodl-sympy-conductance.ipynb | 72 +-- .../notebooks/nmodl-sympy-solver-cnexp.ipynb | 81 ++-- .../nmodl-sympy-solver-derivimplicit.ipynb | 32 +- .../notebooks/nmodl-sympy-solver-sparse.ipynb | 32 +- _modules/nmodl/ode.html | 6 +- .../namespacenmodl_1_1pybind__wrappers.html | 22 +- doxygen/pyembed_8cpp_source.html | 2 +- doxygen/pyembed_8hpp_source.html | 30 +- ...__wrappers_1_1_analytic_diff_executor.html | 2 +- ...__wrappers_1_1_diffeq_solver_executor.html | 2 +- ...pers_1_1_solve_linear_system_executor.html | 2 +- ..._1_1_solve_non_linear_system_executor.html | 2 +- doxygen/wrapper_8cpp.html | 1 + doxygen/wrapper_8cpp_source.html | 433 +++++++++--------- notebooks/nmodl-kinetic-schemes.ipynb | 56 +-- notebooks/nmodl-python-tutorial.ipynb | 160 +++---- notebooks/nmodl-sympy-conductance.ipynb | 72 +-- notebooks/nmodl-sympy-solver-cnexp.ipynb | 81 ++-- .../nmodl-sympy-solver-derivimplicit.ipynb | 32 +- notebooks/nmodl-sympy-solver-sparse.ipynb | 32 +- 23 files changed, 666 insertions(+), 702 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index ea899e048ffcf3c761d49c8e5bd680207c292833..807ea612e34483e30e1aa9cd351c3b374f5bc226 100644 GIT binary patch delta 9778 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 delta 9790 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 code for nmodl.ode
     known_functions = import_module("sympy.printing.c").known_functions_C99
 else:
     known_functions = import_module("sympy.printing.ccode").known_functions_C99
-known_functions.pop("Abs")
-known_functions["abs"] = "fabs"
+
+if "Abs" in known_functions:
+    known_functions.pop("Abs")
+    known_functions["abs"] = "fabs"
 
 
 if not ((major >= 1) and (minor >= 2)):
diff --git a/doxygen/namespacenmodl_1_1pybind__wrappers.html b/doxygen/namespacenmodl_1_1pybind__wrappers.html
index e2ad31451d..c06177ee49 100644
--- a/doxygen/namespacenmodl_1_1pybind__wrappers.html
+++ b/doxygen/namespacenmodl_1_1pybind__wrappers.html
@@ -157,7 +157,7 @@ 

-

Definition at line 179 of file wrapper.cpp.

+

Definition at line 166 of file wrapper.cpp.

@@ -176,7 +176,7 @@

-

Definition at line 175 of file wrapper.cpp.

+

Definition at line 162 of file wrapper.cpp.

@@ -195,7 +195,7 @@

-

Definition at line 171 of file wrapper.cpp.

+

Definition at line 158 of file wrapper.cpp.

@@ -214,7 +214,7 @@

-

Definition at line 167 of file wrapper.cpp.

+

Definition at line 154 of file wrapper.cpp.

@@ -234,7 +234,7 @@

-

Definition at line 195 of file wrapper.cpp.

+

Definition at line 182 of file wrapper.cpp.

@@ -254,7 +254,7 @@

-

Definition at line 191 of file wrapper.cpp.

+

Definition at line 178 of file wrapper.cpp.

@@ -274,7 +274,7 @@

-

Definition at line 187 of file wrapper.cpp.

+

Definition at line 174 of file wrapper.cpp.

@@ -294,7 +294,7 @@

-

Definition at line 183 of file wrapper.cpp.

+

Definition at line 170 of file wrapper.cpp.

@@ -313,7 +313,7 @@

-

Definition at line 208 of file wrapper.cpp.

+

Definition at line 195 of file wrapper.cpp.

@@ -340,7 +340,7 @@

-

Definition at line 212 of file wrapper.cpp.

+

Definition at line 199 of file wrapper.cpp.

@@ -359,7 +359,7 @@

-

Definition at line 199 of file wrapper.cpp.

+

Definition at line 186 of file wrapper.cpp.

diff --git a/doxygen/pyembed_8cpp_source.html b/doxygen/pyembed_8cpp_source.html index 58b252f6f9..9df386bfed 100644 --- a/doxygen/pyembed_8cpp_source.html +++ b/doxygen/pyembed_8cpp_source.html @@ -217,7 +217,7 @@
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
const pybind_wrap_api * api()
Get a pointer to the pybind_wrap_api struct.
Definition: pyembed.cpp:112
-
pybind_wrap_api init_pybind_wrap_api() noexcept
Definition: wrapper.cpp:212
+
pybind_wrap_api init_pybind_wrap_api() noexcept
Definition: wrapper.cpp:199
logger_type logger
Definition: logger.cpp:34
diff --git a/doxygen/pyembed_8hpp_source.html b/doxygen/pyembed_8hpp_source.html index 0e0c4bf7ac..c90e2d6f35 100644 --- a/doxygen/pyembed_8hpp_source.html +++ b/doxygen/pyembed_8hpp_source.html @@ -284,38 +284,38 @@
static EmbeddedPythonLoader & get_instance()
Construct (if not already done) and get the only instance of this class.
Definition: pyembed.hpp:141
-
DiffeqSolverExecutor * create_des_executor_func()
Definition: wrapper.cpp:175
+
DiffeqSolverExecutor * create_des_executor_func()
Definition: wrapper.cpp:162
-
SolveLinearSystemExecutor * create_sls_executor_func()
Definition: wrapper.cpp:167
+
SolveLinearSystemExecutor * create_sls_executor_func()
Definition: wrapper.cpp:154
decltype(&create_nsls_executor_func) create_nsls_executor
Definition: pyembed.hpp:117
- +
A singleton class handling access to the pybind_wrap_api struct.
Definition: pyembed.hpp:134
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
-
void destroy_nsls_executor_func(SolveNonLinearSystemExecutor *exec)
Definition: wrapper.cpp:187
+
void destroy_nsls_executor_func(SolveNonLinearSystemExecutor *exec)
Definition: wrapper.cpp:174
const pybind_wrap_api * api()
Get a pointer to the pybind_wrap_api struct.
Definition: pyembed.cpp:112
- + -
void initialize_interpreter_func()
Definition: wrapper.cpp:199
-
pybind_wrap_api init_pybind_wrap_api() noexcept
Definition: wrapper.cpp:212
+
void initialize_interpreter_func()
Definition: wrapper.cpp:186
+
pybind_wrap_api init_pybind_wrap_api() noexcept
Definition: wrapper.cpp:199
-
SolveNonLinearSystemExecutor * create_nsls_executor_func()
Definition: wrapper.cpp:171
+
SolveNonLinearSystemExecutor * create_nsls_executor_func()
Definition: wrapper.cpp:158
decltype(&initialize_interpreter_func) initialize_interpreter
Definition: pyembed.hpp:114
decltype(&destroy_des_executor_func) destroy_des_executor
Definition: pyembed.hpp:122
std::vector< std::string > expressions
Definition: pyembed.hpp:88
- +
decltype(&finalize_interpreter_func) finalize_interpreter
Definition: pyembed.hpp:115
decltype(&create_ads_executor_func) create_ads_executor
Definition: pyembed.hpp:119
-
void destroy_ads_executor_func(AnalyticDiffExecutor *exec)
Definition: wrapper.cpp:195
+
void destroy_ads_executor_func(AnalyticDiffExecutor *exec)
Definition: wrapper.cpp:182
void operator=(const EmbeddedPythonLoader &)=delete
@@ -327,7 +327,7 @@
decltype(&destroy_ads_executor_func) destroy_ads_executor
Definition: pyembed.hpp:123
-
void destroy_des_executor_func(DiffeqSolverExecutor *exec)
Definition: wrapper.cpp:191
+
void destroy_des_executor_func(DiffeqSolverExecutor *exec)
Definition: wrapper.cpp:178
@@ -346,16 +346,16 @@
decltype(&destroy_nsls_executor_func) destroy_nsls_executor
Definition: pyembed.hpp:121
-
void finalize_interpreter_func()
Definition: wrapper.cpp:208
+
void finalize_interpreter_func()
Definition: wrapper.cpp:195
- +
decltype(&destroy_sls_executor_func) destroy_sls_executor
Definition: pyembed.hpp:120
-
void destroy_sls_executor_func(SolveLinearSystemExecutor *exec)
Definition: wrapper.cpp:183
+
void destroy_sls_executor_func(SolveLinearSystemExecutor *exec)
Definition: wrapper.cpp:170
-
AnalyticDiffExecutor * create_ads_executor_func()
Definition: wrapper.cpp:179
+
AnalyticDiffExecutor * create_ads_executor_func()
Definition: wrapper.cpp:166
diff --git a/doxygen/structnmodl_1_1pybind__wrappers_1_1_analytic_diff_executor.html b/doxygen/structnmodl_1_1pybind__wrappers_1_1_analytic_diff_executor.html index 7a8977aa9b..08c234d181 100644 --- a/doxygen/structnmodl_1_1pybind__wrappers_1_1_analytic_diff_executor.html +++ b/doxygen/structnmodl_1_1pybind__wrappers_1_1_analytic_diff_executor.html @@ -158,7 +158,7 @@

nmodl::pybind_wrappers::PythonExecutor.

-

Definition at line 142 of file wrapper.cpp.

+

Definition at line 132 of file wrapper.cpp.

diff --git a/doxygen/structnmodl_1_1pybind__wrappers_1_1_diffeq_solver_executor.html b/doxygen/structnmodl_1_1pybind__wrappers_1_1_diffeq_solver_executor.html index c57c0244db..27708a74a1 100644 --- a/doxygen/structnmodl_1_1pybind__wrappers_1_1_diffeq_solver_executor.html +++ b/doxygen/structnmodl_1_1pybind__wrappers_1_1_diffeq_solver_executor.html @@ -166,7 +166,7 @@

nmodl::pybind_wrappers::PythonExecutor.

-

Definition at line 90 of file wrapper.cpp.

+

Definition at line 86 of file wrapper.cpp.

diff --git a/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_linear_system_executor.html b/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_linear_system_executor.html index f6340b0299..10bdfeb9fe 100644 --- a/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_linear_system_executor.html +++ b/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_linear_system_executor.html @@ -170,7 +170,7 @@

nmodl::pybind_wrappers::PythonExecutor.

-

Definition at line 23 of file wrapper.cpp.

+

Definition at line 25 of file wrapper.cpp.

diff --git a/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_non_linear_system_executor.html b/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_non_linear_system_executor.html index b03b0ec213..a6713489ba 100644 --- a/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_non_linear_system_executor.html +++ b/doxygen/structnmodl_1_1pybind__wrappers_1_1_solve_non_linear_system_executor.html @@ -162,7 +162,7 @@

nmodl::pybind_wrappers::PythonExecutor.

-

Definition at line 61 of file wrapper.cpp.

+

Definition at line 60 of file wrapper.cpp.

diff --git a/doxygen/wrapper_8cpp.html b/doxygen/wrapper_8cpp.html index bd91857b19..6b0aa13a0a 100644 --- a/doxygen/wrapper_8cpp.html +++ b/doxygen/wrapper_8cpp.html @@ -103,6 +103,7 @@ #include <pybind11/stl.h>
#include <set>
#include <vector>
+#include "ode_py.hpp"

Go to the source code of this file.

diff --git a/doxygen/wrapper_8cpp_source.html b/doxygen/wrapper_8cpp_source.html index 0033230423..418199ac69 100644 --- a/doxygen/wrapper_8cpp_source.html +++ b/doxygen/wrapper_8cpp_source.html @@ -110,245 +110,232 @@
14 #include <set>
15 #include <vector>
16 
-
17 namespace py = pybind11;
-
18 using namespace py::literals;
-
19 
-
20 namespace nmodl {
-
21 namespace pybind_wrappers {
-
22 
-
23 void SolveLinearSystemExecutor::operator()() {
-
24  const auto locals = py::dict("eq_strings"_a = eq_system,
-
25  "state_vars"_a = state_vars,
-
26  "vars"_a = vars,
-
27  "small_system"_a = small_system,
-
28  "do_cse"_a = elimination,
-
29  "function_calls"_a = function_calls,
-
30  "tmp_unique_prefix"_a = tmp_unique_prefix);
-
31  py::exec(R"(
-
32  import builtins
-
33  builtins.nmodl_python_binding_check = False
-
34  from nmodl.ode import solve_lin_system
-
35  exception_message = ""
-
36  try:
-
37  solutions, new_local_vars = solve_lin_system(eq_strings,
-
38  state_vars,
-
39  vars,
-
40  function_calls,
-
41  tmp_unique_prefix,
-
42  small_system,
-
43  do_cse)
-
44  except Exception as e:
-
45  # if we fail, fail silently and return empty string
-
46  solutions = [""]
-
47  new_local_vars = [""]
-
48  exception_message = str(e)
-
49  )",
-
50  py::globals(),
-
51  locals);
-
52  // returns a vector of solutions, i.e. new statements to add to block:
-
53  solutions = locals["solutions"].cast<std::vector<std::string>>();
-
54  // and a vector of new local variables that need to be declared in the block:
-
55  new_local_vars = locals["new_local_vars"].cast<std::vector<std::string>>();
-
56  // may also return a python exception message:
-
57  exception_message = locals["exception_message"].cast<std::string>();
-
58 }
+
17 #include "ode_py.hpp"
+
18 
+
19 namespace py = pybind11;
+
20 using namespace py::literals;
+
21 
+
22 namespace nmodl {
+
23 namespace pybind_wrappers {
+
24 
+
25 void SolveLinearSystemExecutor::operator()() {
+
26  const auto locals = py::dict("eq_strings"_a = eq_system,
+
27  "state_vars"_a = state_vars,
+
28  "vars"_a = vars,
+
29  "small_system"_a = small_system,
+
30  "do_cse"_a = elimination,
+
31  "function_calls"_a = function_calls,
+
32  "tmp_unique_prefix"_a = tmp_unique_prefix);
+
33  std::string script = R"(
+
34 exception_message = ""
+
35 try:
+
36  solutions, new_local_vars = solve_lin_system(eq_strings,
+
37  state_vars,
+
38  vars,
+
39  function_calls,
+
40  tmp_unique_prefix,
+
41  small_system,
+
42  do_cse)
+
43 except Exception as e:
+
44  # if we fail, fail silently and return empty string
+
45  solutions = [""]
+
46  new_local_vars = [""]
+
47  exception_message = str(e)
+
48 )";
+
49 
+
50  py::exec(nmodl::pybind_wrappers::ode_py + script, locals);
+
51  // returns a vector of solutions, i.e. new statements to add to block:
+
52  solutions = locals["solutions"].cast<std::vector<std::string>>();
+
53  // and a vector of new local variables that need to be declared in the block:
+
54  new_local_vars = locals["new_local_vars"].cast<std::vector<std::string>>();
+
55  // may also return a python exception message:
+
56  exception_message = locals["exception_message"].cast<std::string>();
+
57 }
+
58 
59 
-
60 
-
61 void SolveNonLinearSystemExecutor::operator()() {
-
62  const auto locals = py::dict("equation_strings"_a = eq_system,
-
63  "state_vars"_a = state_vars,
-
64  "vars"_a = vars,
-
65  "function_calls"_a = function_calls);
-
66  py::exec(R"(
-
67  import builtins
-
68  builtins.nmodl_python_binding_check = False
-
69  from nmodl.ode import solve_non_lin_system
-
70  exception_message = ""
-
71  try:
-
72  solutions = solve_non_lin_system(equation_strings,
-
73  state_vars,
-
74  vars,
-
75  function_calls)
-
76  except Exception as e:
-
77  # if we fail, fail silently and return empty string
-
78  solutions = [""]
-
79  new_local_vars = [""]
-
80  exception_message = str(e)
-
81  )",
-
82  py::globals(),
-
83  locals);
-
84  // returns a vector of solutions, i.e. new statements to add to block:
-
85  solutions = locals["solutions"].cast<std::vector<std::string>>();
-
86  // may also return a python exception message:
-
87  exception_message = locals["exception_message"].cast<std::string>();
-
88 }
-
89 
-
90 void DiffeqSolverExecutor::operator()() {
-
91  const auto locals = py::dict("equation_string"_a = node_as_nmodl,
-
92  "dt_var"_a = dt_var,
-
93  "vars"_a = vars,
-
94  "use_pade_approx"_a = use_pade_approx,
-
95  "function_calls"_a = function_calls);
-
96 
-
97  if (method == codegen::naming::EULER_METHOD) {
-
98  // replace x' = f(x) differential equation
-
99  // with forwards Euler timestep:
-
100  // x = x + f(x) * dt
-
101  py::exec(R"(
-
102  import builtins
-
103  builtins.nmodl_python_binding_check = False
-
104  from nmodl.ode import forwards_euler2c
-
105  exception_message = ""
-
106  try:
-
107  solution = forwards_euler2c(equation_string, dt_var, vars, function_calls)
-
108  except Exception as e:
-
109  # if we fail, fail silently and return empty string
-
110  solution = ""
-
111  exception_message = str(e)
-
112  )",
-
113  py::globals(),
-
114  locals);
-
115  } else if (method == codegen::naming::CNEXP_METHOD) {
-
116  // replace x' = f(x) differential equation
-
117  // with analytic solution for x(t+dt) in terms of x(t)
-
118  // x = ...
-
119  py::exec(R"(
-
120  import builtins
-
121  builtins.nmodl_python_binding_check = False
-
122  from nmodl.ode import integrate2c
-
123  exception_message = ""
-
124  try:
-
125  solution = integrate2c(equation_string, dt_var, vars,
-
126  use_pade_approx)
-
127  except Exception as e:
-
128  # if we fail, fail silently and return empty string
-
129  solution = ""
-
130  exception_message = str(e)
-
131  )",
-
132  py::globals(),
-
133  locals);
-
134  } else {
-
135  // nothing to do, but the caller should know.
-
136  return;
-
137  }
-
138  solution = locals["solution"].cast<std::string>();
-
139  exception_message = locals["exception_message"].cast<std::string>();
-
140 }
-
141 
-
142 void AnalyticDiffExecutor::operator()() {
-
143  auto locals = py::dict("expressions"_a = expressions, "vars"_a = used_names_in_block);
-
144  py::exec(R"(
-
145  import builtins
-
146  builtins.nmodl_python_binding_check = False
-
147  from nmodl.ode import differentiate2c
-
148  exception_message = ""
-
149  try:
-
150  rhs = expressions[-1].split("=", 1)[1]
-
151  solution = differentiate2c(rhs,
-
152  "v",
-
153  vars,
-
154  expressions[:-1]
-
155  )
-
156  except Exception as e:
-
157  # if we fail, fail silently and return empty string
-
158  solution = ""
-
159  exception_message = str(e)
-
160  )",
-
161  py::globals(),
-
162  locals);
-
163  solution = locals["solution"].cast<std::string>();
-
164  exception_message = locals["exception_message"].cast<std::string>();
-
165 }
-
166 
- -
168  return new SolveLinearSystemExecutor();
-
169 }
-
170 
- -
172  return new SolveNonLinearSystemExecutor();
-
173 }
-
174 
- -
176  return new DiffeqSolverExecutor();
-
177 }
-
178 
- -
180  return new AnalyticDiffExecutor();
-
181 }
-
182 
- -
184  delete exec;
-
185 }
-
186 
- -
188  delete exec;
-
189 }
-
190 
- -
192  delete exec;
+
60 void SolveNonLinearSystemExecutor::operator()() {
+
61  const auto locals = py::dict("equation_strings"_a = eq_system,
+
62  "state_vars"_a = state_vars,
+
63  "vars"_a = vars,
+
64  "function_calls"_a = function_calls);
+
65  std::string script = R"(
+
66 exception_message = ""
+
67 try:
+
68  solutions = solve_non_lin_system(equation_strings,
+
69  state_vars,
+
70  vars,
+
71  function_calls)
+
72 except Exception as e:
+
73  # if we fail, fail silently and return empty string
+
74  solutions = [""]
+
75  new_local_vars = [""]
+
76  exception_message = str(e)
+
77 )";
+
78 
+
79  py::exec(nmodl::pybind_wrappers::ode_py + script, locals);
+
80  // returns a vector of solutions, i.e. new statements to add to block:
+
81  solutions = locals["solutions"].cast<std::vector<std::string>>();
+
82  // may also return a python exception message:
+
83  exception_message = locals["exception_message"].cast<std::string>();
+
84 }
+
85 
+
86 void DiffeqSolverExecutor::operator()() {
+
87  const auto locals = py::dict("equation_string"_a = node_as_nmodl,
+
88  "dt_var"_a = dt_var,
+
89  "vars"_a = vars,
+
90  "use_pade_approx"_a = use_pade_approx,
+
91  "function_calls"_a = function_calls);
+
92 
+
93  if (method == codegen::naming::EULER_METHOD) {
+
94  // replace x' = f(x) differential equation
+
95  // with forwards Euler timestep:
+
96  // x = x + f(x) * dt
+
97  std::string script = R"(
+
98 exception_message = ""
+
99 try:
+
100  solution = forwards_euler2c(equation_string, dt_var, vars, function_calls)
+
101 except Exception as e:
+
102  # if we fail, fail silently and return empty string
+
103  solution = ""
+
104  exception_message = str(e)
+
105 )";
+
106 
+
107  py::exec(nmodl::pybind_wrappers::ode_py + script, locals);
+
108  } else if (method == codegen::naming::CNEXP_METHOD) {
+
109  // replace x' = f(x) differential equation
+
110  // with analytic solution for x(t+dt) in terms of x(t)
+
111  // x = ...
+
112  std::string script = R"(
+
113 exception_message = ""
+
114 try:
+
115  solution = integrate2c(equation_string, dt_var, vars,
+
116  use_pade_approx)
+
117 except Exception as e:
+
118  # if we fail, fail silently and return empty string
+
119  solution = ""
+
120  exception_message = str(e)
+
121 )";
+
122 
+
123  py::exec(nmodl::pybind_wrappers::ode_py + script, locals);
+
124  } else {
+
125  // nothing to do, but the caller should know.
+
126  return;
+
127  }
+
128  solution = locals["solution"].cast<std::string>();
+
129  exception_message = locals["exception_message"].cast<std::string>();
+
130 }
+
131 
+
132 void AnalyticDiffExecutor::operator()() {
+
133  auto locals = py::dict("expressions"_a = expressions, "vars"_a = used_names_in_block);
+
134  std::string script = R"(
+
135 exception_message = ""
+
136 try:
+
137  rhs = expressions[-1].split("=", 1)[1]
+
138  solution = differentiate2c(rhs,
+
139  "v",
+
140  vars,
+
141  expressions[:-1]
+
142  )
+
143 except Exception as e:
+
144  # if we fail, fail silently and return empty string
+
145  solution = ""
+
146  exception_message = str(e)
+
147 )";
+
148 
+
149  py::exec(nmodl::pybind_wrappers::ode_py + script, locals);
+
150  solution = locals["solution"].cast<std::string>();
+
151  exception_message = locals["exception_message"].cast<std::string>();
+
152 }
+
153 
+ +
155  return new SolveLinearSystemExecutor();
+
156 }
+
157 
+ +
159  return new SolveNonLinearSystemExecutor();
+
160 }
+
161 
+ +
163  return new DiffeqSolverExecutor();
+
164 }
+
165 
+ +
167  return new AnalyticDiffExecutor();
+
168 }
+
169 
+ +
171  delete exec;
+
172 }
+
173 
+ +
175  delete exec;
+
176 }
+
177 
+ +
179  delete exec;
+
180 }
+
181 
+ +
183  delete exec;
+
184 }
+
185 
+ +
187  pybind11::initialize_interpreter(true);
+
188  const auto python_path_cstr = std::getenv("PYTHONPATH");
+
189  if (python_path_cstr) {
+
190  pybind11::module::import("sys").attr("path").cast<pybind11::list>().insert(
+
191  0, python_path_cstr);
+
192  }
193 }
194 
- -
196  delete exec;
+ +
196  pybind11::finalize_interpreter();
197 }
198 
- -
200  pybind11::initialize_interpreter(true);
-
201  const auto python_path_cstr = std::getenv("PYTHONPATH");
-
202  if (python_path_cstr) {
-
203  pybind11::module::import("sys").attr("path").cast<pybind11::list>().insert(
-
204  0, python_path_cstr);
-
205  }
-
206 }
-
207 
- -
209  pybind11::finalize_interpreter();
-
210 }
-
211 
- -
213  return {
- - - - - - - - - - -
224  };
-
225 }
-
226 
-
227 } // namespace pybind_wrappers
-
228 } // namespace nmodl
-
229 
-
230 
-
231 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
-
232 __attribute__((visibility("default"))) nmodl::pybind_wrappers::pybind_wrap_api nmodl_wrapper_api =
-
233  nmodl::pybind_wrappers::init_pybind_wrap_api();
+ +
200  return {
+ + + + + + + + + + +
211  };
+
212 }
+
213 
+
214 } // namespace pybind_wrappers
+
215 } // namespace nmodl
+
216 
+
217 
+
218 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
+
219 __attribute__((visibility("default"))) nmodl::pybind_wrappers::pybind_wrap_api nmodl_wrapper_api =
+
220  nmodl::pybind_wrappers::init_pybind_wrap_api();
-
DiffeqSolverExecutor * create_des_executor_func()
Definition: wrapper.cpp:175
+
DiffeqSolverExecutor * create_des_executor_func()
Definition: wrapper.cpp:162
-
SolveLinearSystemExecutor * create_sls_executor_func()
Definition: wrapper.cpp:167
+
SolveLinearSystemExecutor * create_sls_executor_func()
Definition: wrapper.cpp:154
static constexpr char CNEXP_METHOD[]
cnexp method in nmodl
encapsulates code generation backend implementations
Definition: ast_common.hpp:26
-
void destroy_nsls_executor_func(SolveNonLinearSystemExecutor *exec)
Definition: wrapper.cpp:187
-
void initialize_interpreter_func()
Definition: wrapper.cpp:199
-
pybind_wrap_api init_pybind_wrap_api() noexcept
Definition: wrapper.cpp:212
-
SolveNonLinearSystemExecutor * create_nsls_executor_func()
Definition: wrapper.cpp:171
+
void destroy_nsls_executor_func(SolveNonLinearSystemExecutor *exec)
Definition: wrapper.cpp:174
+
void initialize_interpreter_func()
Definition: wrapper.cpp:186
+
pybind_wrap_api init_pybind_wrap_api() noexcept
Definition: wrapper.cpp:199
+
SolveNonLinearSystemExecutor * create_nsls_executor_func()
Definition: wrapper.cpp:158
-
void destroy_ads_executor_func(AnalyticDiffExecutor *exec)
Definition: wrapper.cpp:195
-
void destroy_des_executor_func(DiffeqSolverExecutor *exec)
Definition: wrapper.cpp:191
+
void destroy_ads_executor_func(AnalyticDiffExecutor *exec)
Definition: wrapper.cpp:182
+
void destroy_des_executor_func(DiffeqSolverExecutor *exec)
Definition: wrapper.cpp:178
static constexpr char EULER_METHOD[]
euler method in nmodl
-
void finalize_interpreter_func()
Definition: wrapper.cpp:208
+
void finalize_interpreter_func()
Definition: wrapper.cpp:195
-
void destroy_sls_executor_func(SolveLinearSystemExecutor *exec)
Definition: wrapper.cpp:183
+
void destroy_sls_executor_func(SolveLinearSystemExecutor *exec)
Definition: wrapper.cpp:170
-
AnalyticDiffExecutor * create_ads_executor_func()
Definition: wrapper.cpp:179
+
AnalyticDiffExecutor * create_ads_executor_func()
Definition: wrapper.cpp:166
diff --git a/notebooks/nmodl-kinetic-schemes.ipynb b/notebooks/nmodl-kinetic-schemes.ipynb index 2a690ecbe4..ff23845626 100644 --- a/notebooks/nmodl-kinetic-schemes.ipynb +++ b/notebooks/nmodl-kinetic-schemes.ipynb @@ -152,10 +152,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:56:54.827871Z", - "iopub.status.busy": "2024-06-10T12:56:54.827632Z", - "iopub.status.idle": "2024-06-10T12:56:56.108703Z", - "shell.execute_reply": "2024-06-10T12:56:56.107999Z" + "iopub.execute_input": "2024-06-10T14:32:11.701486Z", + "iopub.status.busy": "2024-06-10T14:32:11.701003Z", + "iopub.status.idle": "2024-06-10T14:32:13.025301Z", + "shell.execute_reply": "2024-06-10T14:32:13.024502Z" } }, "outputs": [], @@ -169,10 +169,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:56:56.111880Z", - "iopub.status.busy": "2024-06-10T12:56:56.111474Z", - "iopub.status.idle": "2024-06-10T12:56:56.137667Z", - "shell.execute_reply": "2024-06-10T12:56:56.137115Z" + "iopub.execute_input": "2024-06-10T14:32:13.028897Z", + "iopub.status.busy": "2024-06-10T14:32:13.028320Z", + "iopub.status.idle": "2024-06-10T14:32:13.056451Z", + "shell.execute_reply": "2024-06-10T14:32:13.055741Z" } }, "outputs": [], @@ -277,10 +277,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:56:56.140527Z", - "iopub.status.busy": "2024-06-10T12:56:56.140038Z", - "iopub.status.idle": "2024-06-10T12:56:56.144185Z", - "shell.execute_reply": "2024-06-10T12:56:56.143536Z" + "iopub.execute_input": "2024-06-10T14:32:13.059431Z", + "iopub.status.busy": "2024-06-10T14:32:13.059077Z", + "iopub.status.idle": "2024-06-10T14:32:13.063536Z", + "shell.execute_reply": "2024-06-10T14:32:13.062897Z" } }, "outputs": [ @@ -323,10 +323,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:56:56.172721Z", - "iopub.status.busy": "2024-06-10T12:56:56.172504Z", - "iopub.status.idle": "2024-06-10T12:56:56.176062Z", - "shell.execute_reply": "2024-06-10T12:56:56.175397Z" + "iopub.execute_input": "2024-06-10T14:32:13.092662Z", + "iopub.status.busy": "2024-06-10T14:32:13.092217Z", + "iopub.status.idle": "2024-06-10T14:32:13.095953Z", + "shell.execute_reply": "2024-06-10T14:32:13.095280Z" } }, "outputs": [ @@ -367,10 +367,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:56:56.178694Z", - "iopub.status.busy": "2024-06-10T12:56:56.178327Z", - "iopub.status.idle": "2024-06-10T12:56:56.181764Z", - "shell.execute_reply": "2024-06-10T12:56:56.181118Z" + "iopub.execute_input": "2024-06-10T14:32:13.098248Z", + "iopub.status.busy": "2024-06-10T14:32:13.098051Z", + "iopub.status.idle": "2024-06-10T14:32:13.101491Z", + "shell.execute_reply": "2024-06-10T14:32:13.100808Z" }, "scrolled": true }, @@ -412,10 +412,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:56:56.184306Z", - "iopub.status.busy": "2024-06-10T12:56:56.183948Z", - "iopub.status.idle": "2024-06-10T12:56:56.187572Z", - "shell.execute_reply": "2024-06-10T12:56:56.186934Z" + "iopub.execute_input": "2024-06-10T14:32:13.104039Z", + "iopub.status.busy": "2024-06-10T14:32:13.103575Z", + "iopub.status.idle": "2024-06-10T14:32:13.107245Z", + "shell.execute_reply": "2024-06-10T14:32:13.106598Z" }, "scrolled": true }, @@ -459,10 +459,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:56:56.189959Z", - "iopub.status.busy": "2024-06-10T12:56:56.189668Z", - "iopub.status.idle": "2024-06-10T12:56:56.193383Z", - "shell.execute_reply": "2024-06-10T12:56:56.192731Z" + "iopub.execute_input": "2024-06-10T14:32:13.109764Z", + "iopub.status.busy": "2024-06-10T14:32:13.109309Z", + "iopub.status.idle": "2024-06-10T14:32:13.113149Z", + "shell.execute_reply": "2024-06-10T14:32:13.112521Z" } }, "outputs": [ diff --git a/notebooks/nmodl-python-tutorial.ipynb b/notebooks/nmodl-python-tutorial.ipynb index 2284c3233d..939863f23a 100644 --- a/notebooks/nmodl-python-tutorial.ipynb +++ b/notebooks/nmodl-python-tutorial.ipynb @@ -30,10 +30,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:01.104936Z", - "iopub.status.busy": "2024-06-10T12:57:01.104680Z", - "iopub.status.idle": "2024-06-10T12:57:02.403771Z", - "shell.execute_reply": "2024-06-10T12:57:02.403068Z" + "iopub.execute_input": "2024-06-10T14:32:18.031408Z", + "iopub.status.busy": "2024-06-10T14:32:18.031214Z", + "iopub.status.idle": "2024-06-10T14:32:19.338827Z", + "shell.execute_reply": "2024-06-10T14:32:19.337989Z" } }, "outputs": [], @@ -63,10 +63,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.407040Z", - "iopub.status.busy": "2024-06-10T12:57:02.406595Z", - "iopub.status.idle": "2024-06-10T12:57:02.431649Z", - "shell.execute_reply": "2024-06-10T12:57:02.430920Z" + "iopub.execute_input": "2024-06-10T14:32:19.342341Z", + "iopub.status.busy": "2024-06-10T14:32:19.341906Z", + "iopub.status.idle": "2024-06-10T14:32:19.367315Z", + "shell.execute_reply": "2024-06-10T14:32:19.366711Z" } }, "outputs": [], @@ -86,10 +86,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.434252Z", - "iopub.status.busy": "2024-06-10T12:57:02.434004Z", - "iopub.status.idle": "2024-06-10T12:57:02.437490Z", - "shell.execute_reply": "2024-06-10T12:57:02.436890Z" + "iopub.execute_input": "2024-06-10T14:32:19.370145Z", + "iopub.status.busy": "2024-06-10T14:32:19.369758Z", + "iopub.status.idle": "2024-06-10T14:32:19.373211Z", + "shell.execute_reply": "2024-06-10T14:32:19.372627Z" } }, "outputs": [], @@ -152,10 +152,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.440056Z", - "iopub.status.busy": "2024-06-10T12:57:02.439570Z", - "iopub.status.idle": "2024-06-10T12:57:02.442836Z", - "shell.execute_reply": "2024-06-10T12:57:02.442219Z" + "iopub.execute_input": "2024-06-10T14:32:19.375633Z", + "iopub.status.busy": "2024-06-10T14:32:19.375351Z", + "iopub.status.idle": "2024-06-10T14:32:19.378688Z", + "shell.execute_reply": "2024-06-10T14:32:19.378147Z" } }, "outputs": [], @@ -183,10 +183,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.445320Z", - "iopub.status.busy": "2024-06-10T12:57:02.444875Z", - "iopub.status.idle": "2024-06-10T12:57:02.448424Z", - "shell.execute_reply": "2024-06-10T12:57:02.447812Z" + "iopub.execute_input": "2024-06-10T14:32:19.381027Z", + "iopub.status.busy": "2024-06-10T14:32:19.380798Z", + "iopub.status.idle": "2024-06-10T14:32:19.384389Z", + "shell.execute_reply": "2024-06-10T14:32:19.383752Z" } }, "outputs": [ @@ -235,10 +235,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.450972Z", - "iopub.status.busy": "2024-06-10T12:57:02.450607Z", - "iopub.status.idle": "2024-06-10T12:57:02.454588Z", - "shell.execute_reply": "2024-06-10T12:57:02.454090Z" + "iopub.execute_input": "2024-06-10T14:32:19.386792Z", + "iopub.status.busy": "2024-06-10T14:32:19.386503Z", + "iopub.status.idle": "2024-06-10T14:32:19.390563Z", + "shell.execute_reply": "2024-06-10T14:32:19.390052Z" } }, "outputs": [], @@ -260,10 +260,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.457038Z", - "iopub.status.busy": "2024-06-10T12:57:02.456754Z", - "iopub.status.idle": "2024-06-10T12:57:02.460230Z", - "shell.execute_reply": "2024-06-10T12:57:02.459568Z" + "iopub.execute_input": "2024-06-10T14:32:19.393003Z", + "iopub.status.busy": "2024-06-10T14:32:19.392700Z", + "iopub.status.idle": "2024-06-10T14:32:19.396255Z", + "shell.execute_reply": "2024-06-10T14:32:19.395604Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.462688Z", - "iopub.status.busy": "2024-06-10T12:57:02.462377Z", - "iopub.status.idle": "2024-06-10T12:57:02.469430Z", - "shell.execute_reply": "2024-06-10T12:57:02.468786Z" + "iopub.execute_input": "2024-06-10T14:32:19.398758Z", + "iopub.status.busy": "2024-06-10T14:32:19.398399Z", + "iopub.status.idle": "2024-06-10T14:32:19.405428Z", + "shell.execute_reply": "2024-06-10T14:32:19.404769Z" } }, "outputs": [ @@ -365,10 +365,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.471958Z", - "iopub.status.busy": "2024-06-10T12:57:02.471501Z", - "iopub.status.idle": "2024-06-10T12:57:02.475705Z", - "shell.execute_reply": "2024-06-10T12:57:02.475064Z" + "iopub.execute_input": "2024-06-10T14:32:19.407906Z", + "iopub.status.busy": "2024-06-10T14:32:19.407558Z", + "iopub.status.idle": "2024-06-10T14:32:19.411729Z", + "shell.execute_reply": "2024-06-10T14:32:19.411087Z" } }, "outputs": [ @@ -416,10 +416,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.478137Z", - "iopub.status.busy": "2024-06-10T12:57:02.477772Z", - "iopub.status.idle": "2024-06-10T12:57:02.480944Z", - "shell.execute_reply": "2024-06-10T12:57:02.480418Z" + "iopub.execute_input": "2024-06-10T14:32:19.414250Z", + "iopub.status.busy": "2024-06-10T14:32:19.413883Z", + "iopub.status.idle": "2024-06-10T14:32:19.416848Z", + "shell.execute_reply": "2024-06-10T14:32:19.416285Z" } }, "outputs": [], @@ -441,10 +441,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.483489Z", - "iopub.status.busy": "2024-06-10T12:57:02.483011Z", - "iopub.status.idle": "2024-06-10T12:57:02.486830Z", - "shell.execute_reply": "2024-06-10T12:57:02.486191Z" + "iopub.execute_input": "2024-06-10T14:32:19.419232Z", + "iopub.status.busy": "2024-06-10T14:32:19.418799Z", + "iopub.status.idle": "2024-06-10T14:32:19.422546Z", + "shell.execute_reply": "2024-06-10T14:32:19.421902Z" } }, "outputs": [ @@ -510,10 +510,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.489278Z", - "iopub.status.busy": "2024-06-10T12:57:02.488800Z", - "iopub.status.idle": "2024-06-10T12:57:02.492226Z", - "shell.execute_reply": "2024-06-10T12:57:02.491590Z" + "iopub.execute_input": "2024-06-10T14:32:19.425104Z", + "iopub.status.busy": "2024-06-10T14:32:19.424745Z", + "iopub.status.idle": "2024-06-10T14:32:19.427965Z", + "shell.execute_reply": "2024-06-10T14:32:19.427322Z" } }, "outputs": [ @@ -548,10 +548,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.494764Z", - "iopub.status.busy": "2024-06-10T12:57:02.494401Z", - "iopub.status.idle": "2024-06-10T12:57:02.497746Z", - "shell.execute_reply": "2024-06-10T12:57:02.497104Z" + "iopub.execute_input": "2024-06-10T14:32:19.430434Z", + "iopub.status.busy": "2024-06-10T14:32:19.430076Z", + "iopub.status.idle": "2024-06-10T14:32:19.433444Z", + "shell.execute_reply": "2024-06-10T14:32:19.432783Z" } }, "outputs": [ @@ -584,10 +584,10 @@ "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.500147Z", - "iopub.status.busy": "2024-06-10T12:57:02.499756Z", - "iopub.status.idle": "2024-06-10T12:57:02.503578Z", - "shell.execute_reply": "2024-06-10T12:57:02.502929Z" + "iopub.execute_input": "2024-06-10T14:32:19.435904Z", + "iopub.status.busy": "2024-06-10T14:32:19.435531Z", + "iopub.status.idle": "2024-06-10T14:32:19.439226Z", + "shell.execute_reply": "2024-06-10T14:32:19.438597Z" } }, "outputs": [ @@ -622,10 +622,10 @@ "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.505901Z", - "iopub.status.busy": "2024-06-10T12:57:02.505537Z", - "iopub.status.idle": "2024-06-10T12:57:02.509523Z", - "shell.execute_reply": "2024-06-10T12:57:02.508894Z" + "iopub.execute_input": "2024-06-10T14:32:19.441850Z", + "iopub.status.busy": "2024-06-10T14:32:19.441218Z", + "iopub.status.idle": "2024-06-10T14:32:19.445549Z", + "shell.execute_reply": "2024-06-10T14:32:19.444975Z" } }, "outputs": [ @@ -669,10 +669,10 @@ "execution_count": 16, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.511870Z", - "iopub.status.busy": "2024-06-10T12:57:02.511534Z", - "iopub.status.idle": "2024-06-10T12:57:02.516464Z", - "shell.execute_reply": "2024-06-10T12:57:02.515828Z" + "iopub.execute_input": "2024-06-10T14:32:19.447969Z", + "iopub.status.busy": "2024-06-10T14:32:19.447611Z", + "iopub.status.idle": "2024-06-10T14:32:19.452854Z", + "shell.execute_reply": "2024-06-10T14:32:19.452189Z" } }, "outputs": [ @@ -733,10 +733,10 @@ "execution_count": 17, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.518801Z", - "iopub.status.busy": "2024-06-10T12:57:02.518586Z", - "iopub.status.idle": "2024-06-10T12:57:02.521958Z", - "shell.execute_reply": "2024-06-10T12:57:02.521413Z" + "iopub.execute_input": "2024-06-10T14:32:19.455425Z", + "iopub.status.busy": "2024-06-10T14:32:19.455056Z", + "iopub.status.idle": "2024-06-10T14:32:19.458323Z", + "shell.execute_reply": "2024-06-10T14:32:19.457751Z" } }, "outputs": [], @@ -761,10 +761,10 @@ "execution_count": 18, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.524162Z", - "iopub.status.busy": "2024-06-10T12:57:02.523969Z", - "iopub.status.idle": "2024-06-10T12:57:02.533876Z", - "shell.execute_reply": "2024-06-10T12:57:02.533353Z" + "iopub.execute_input": "2024-06-10T14:32:19.461126Z", + "iopub.status.busy": "2024-06-10T14:32:19.460760Z", + "iopub.status.idle": "2024-06-10T14:32:19.470725Z", + "shell.execute_reply": "2024-06-10T14:32:19.470185Z" } }, "outputs": [], @@ -857,10 +857,10 @@ "execution_count": 19, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.536176Z", - "iopub.status.busy": "2024-06-10T12:57:02.535980Z", - "iopub.status.idle": "2024-06-10T12:57:02.539579Z", - "shell.execute_reply": "2024-06-10T12:57:02.538936Z" + "iopub.execute_input": "2024-06-10T14:32:19.473173Z", + "iopub.status.busy": "2024-06-10T14:32:19.472811Z", + "iopub.status.idle": "2024-06-10T14:32:19.476241Z", + "shell.execute_reply": "2024-06-10T14:32:19.475594Z" } }, "outputs": [ @@ -897,10 +897,10 @@ "execution_count": 20, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:02.541878Z", - "iopub.status.busy": "2024-06-10T12:57:02.541680Z", - "iopub.status.idle": "2024-06-10T12:57:02.546971Z", - "shell.execute_reply": "2024-06-10T12:57:02.546309Z" + "iopub.execute_input": "2024-06-10T14:32:19.478748Z", + "iopub.status.busy": "2024-06-10T14:32:19.478386Z", + "iopub.status.idle": "2024-06-10T14:32:19.483620Z", + "shell.execute_reply": "2024-06-10T14:32:19.482977Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-conductance.ipynb b/notebooks/nmodl-sympy-conductance.ipynb index 5cc17b4312..bbd215d4fc 100644 --- a/notebooks/nmodl-sympy-conductance.ipynb +++ b/notebooks/nmodl-sympy-conductance.ipynb @@ -86,10 +86,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:04.720738Z", - "iopub.status.busy": "2024-06-10T12:57:04.720358Z", - "iopub.status.idle": "2024-06-10T12:57:06.012323Z", - "shell.execute_reply": "2024-06-10T12:57:06.011483Z" + "iopub.execute_input": "2024-06-10T14:32:21.724371Z", + "iopub.status.busy": "2024-06-10T14:32:21.723837Z", + "iopub.status.idle": "2024-06-10T14:32:23.055174Z", + "shell.execute_reply": "2024-06-10T14:32:23.054376Z" } }, "outputs": [], @@ -103,10 +103,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.015591Z", - "iopub.status.busy": "2024-06-10T12:57:06.015369Z", - "iopub.status.idle": "2024-06-10T12:57:06.041742Z", - "shell.execute_reply": "2024-06-10T12:57:06.041128Z" + "iopub.execute_input": "2024-06-10T14:32:23.058755Z", + "iopub.status.busy": "2024-06-10T14:32:23.058288Z", + "iopub.status.idle": "2024-06-10T14:32:23.086097Z", + "shell.execute_reply": "2024-06-10T14:32:23.085478Z" } }, "outputs": [], @@ -149,10 +149,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.044615Z", - "iopub.status.busy": "2024-06-10T12:57:06.044407Z", - "iopub.status.idle": "2024-06-10T12:57:06.295395Z", - "shell.execute_reply": "2024-06-10T12:57:06.294636Z" + "iopub.execute_input": "2024-06-10T14:32:23.088925Z", + "iopub.status.busy": "2024-06-10T14:32:23.088531Z", + "iopub.status.idle": "2024-06-10T14:32:23.346324Z", + "shell.execute_reply": "2024-06-10T14:32:23.345589Z" } }, "outputs": [ @@ -196,10 +196,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.298429Z", - "iopub.status.busy": "2024-06-10T12:57:06.297876Z", - "iopub.status.idle": "2024-06-10T12:57:06.440901Z", - "shell.execute_reply": "2024-06-10T12:57:06.440238Z" + "iopub.execute_input": "2024-06-10T14:32:23.348942Z", + "iopub.status.busy": "2024-06-10T14:32:23.348715Z", + "iopub.status.idle": "2024-06-10T14:32:23.491811Z", + "shell.execute_reply": "2024-06-10T14:32:23.491240Z" } }, "outputs": [ @@ -243,10 +243,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.443373Z", - "iopub.status.busy": "2024-06-10T12:57:06.443151Z", - "iopub.status.idle": "2024-06-10T12:57:06.448582Z", - "shell.execute_reply": "2024-06-10T12:57:06.447934Z" + "iopub.execute_input": "2024-06-10T14:32:23.494265Z", + "iopub.status.busy": "2024-06-10T14:32:23.494063Z", + "iopub.status.idle": "2024-06-10T14:32:23.501915Z", + "shell.execute_reply": "2024-06-10T14:32:23.501340Z" } }, "outputs": [ @@ -290,10 +290,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.450871Z", - "iopub.status.busy": "2024-06-10T12:57:06.450673Z", - "iopub.status.idle": "2024-06-10T12:57:06.465794Z", - "shell.execute_reply": "2024-06-10T12:57:06.465232Z" + "iopub.execute_input": "2024-06-10T14:32:23.504164Z", + "iopub.status.busy": "2024-06-10T14:32:23.503969Z", + "iopub.status.idle": "2024-06-10T14:32:23.521056Z", + "shell.execute_reply": "2024-06-10T14:32:23.520504Z" } }, "outputs": [ @@ -337,10 +337,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.468335Z", - "iopub.status.busy": "2024-06-10T12:57:06.467866Z", - "iopub.status.idle": "2024-06-10T12:57:06.584248Z", - "shell.execute_reply": "2024-06-10T12:57:06.583669Z" + "iopub.execute_input": "2024-06-10T14:32:23.523772Z", + "iopub.status.busy": "2024-06-10T14:32:23.523290Z", + "iopub.status.idle": "2024-06-10T14:32:23.645666Z", + "shell.execute_reply": "2024-06-10T14:32:23.644980Z" } }, "outputs": [ @@ -400,10 +400,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.586496Z", - "iopub.status.busy": "2024-06-10T12:57:06.586298Z", - "iopub.status.idle": "2024-06-10T12:57:06.681565Z", - "shell.execute_reply": "2024-06-10T12:57:06.680987Z" + "iopub.execute_input": "2024-06-10T14:32:23.648153Z", + "iopub.status.busy": "2024-06-10T14:32:23.647948Z", + "iopub.status.idle": "2024-06-10T14:32:23.746599Z", + "shell.execute_reply": "2024-06-10T14:32:23.746064Z" } }, "outputs": [ @@ -456,10 +456,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:06.683899Z", - "iopub.status.busy": "2024-06-10T12:57:06.683696Z", - "iopub.status.idle": "2024-06-10T12:57:06.751724Z", - "shell.execute_reply": "2024-06-10T12:57:06.751168Z" + "iopub.execute_input": "2024-06-10T14:32:23.749319Z", + "iopub.status.busy": "2024-06-10T14:32:23.748795Z", + "iopub.status.idle": "2024-06-10T14:32:23.818862Z", + "shell.execute_reply": "2024-06-10T14:32:23.818226Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-cnexp.ipynb b/notebooks/nmodl-sympy-solver-cnexp.ipynb index 45c839ff9f..05cf830a94 100644 --- a/notebooks/nmodl-sympy-solver-cnexp.ipynb +++ b/notebooks/nmodl-sympy-solver-cnexp.ipynb @@ -62,10 +62,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:08.548765Z", - "iopub.status.busy": "2024-06-10T12:57:08.548382Z", - "iopub.status.idle": "2024-06-10T12:57:09.831574Z", - "shell.execute_reply": "2024-06-10T12:57:09.830842Z" + "iopub.execute_input": "2024-06-10T14:32:25.456570Z", + "iopub.status.busy": "2024-06-10T14:32:25.456377Z", + "iopub.status.idle": "2024-06-10T14:32:26.773986Z", + "shell.execute_reply": "2024-06-10T14:32:26.773106Z" } }, "outputs": [], @@ -79,10 +79,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:09.834590Z", - "iopub.status.busy": "2024-06-10T12:57:09.834343Z", - "iopub.status.idle": "2024-06-10T12:57:09.862047Z", - "shell.execute_reply": "2024-06-10T12:57:09.861470Z" + "iopub.execute_input": "2024-06-10T14:32:26.777599Z", + "iopub.status.busy": "2024-06-10T14:32:26.777151Z", + "iopub.status.idle": "2024-06-10T14:32:26.804874Z", + "shell.execute_reply": "2024-06-10T14:32:26.804299Z" } }, "outputs": [], @@ -123,10 +123,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:09.864822Z", - "iopub.status.busy": "2024-06-10T12:57:09.864507Z", - "iopub.status.idle": "2024-06-10T12:57:10.274665Z", - "shell.execute_reply": "2024-06-10T12:57:10.273940Z" + "iopub.execute_input": "2024-06-10T14:32:26.807630Z", + "iopub.status.busy": "2024-06-10T14:32:26.807124Z", + "iopub.status.idle": "2024-06-10T14:32:27.231186Z", + "shell.execute_reply": "2024-06-10T14:32:27.230502Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:10.277330Z", - "iopub.status.busy": "2024-06-10T12:57:10.276919Z", - "iopub.status.idle": "2024-06-10T12:57:10.407835Z", - "shell.execute_reply": "2024-06-10T12:57:10.407113Z" + "iopub.execute_input": "2024-06-10T14:32:27.234287Z", + "iopub.status.busy": "2024-06-10T14:32:27.233753Z", + "iopub.status.idle": "2024-06-10T14:32:27.367903Z", + "shell.execute_reply": "2024-06-10T14:32:27.367257Z" } }, "outputs": [ @@ -207,10 +207,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:10.410247Z", - "iopub.status.busy": "2024-06-10T12:57:10.410051Z", - "iopub.status.idle": "2024-06-10T12:57:10.633757Z", - "shell.execute_reply": "2024-06-10T12:57:10.633165Z" + "iopub.execute_input": "2024-06-10T14:32:27.370489Z", + "iopub.status.busy": "2024-06-10T14:32:27.370286Z", + "iopub.status.idle": "2024-06-10T14:32:27.597562Z", + "shell.execute_reply": "2024-06-10T14:32:27.596815Z" } }, "outputs": [ @@ -218,14 +218,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "exact solution:\t" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " m = minf-(-m+minf)*exp(-dt/mtau)\n" + "exact solution:\t m = minf-(-m+minf)*exp(-dt/mtau)\n" ] }, { @@ -262,10 +255,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:10.636247Z", - "iopub.status.busy": "2024-06-10T12:57:10.636044Z", - "iopub.status.idle": "2024-06-10T12:57:10.821131Z", - "shell.execute_reply": "2024-06-10T12:57:10.820565Z" + "iopub.execute_input": "2024-06-10T14:32:27.600383Z", + "iopub.status.busy": "2024-06-10T14:32:27.599894Z", + "iopub.status.idle": "2024-06-10T14:32:27.789421Z", + "shell.execute_reply": "2024-06-10T14:32:27.788714Z" } }, "outputs": [ @@ -273,13 +266,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "exact solution:\t m = minf+(m-minf)*exp(dt/mtau)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "exact solution:\t m = minf+(m-minf)*exp(dt/mtau)\n", "pade approx:\t m = (-dt*m+2.0*dt*minf-2.0*m*mtau)/(dt-2.0*mtau)\n" ] } @@ -310,10 +297,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:10.823531Z", - "iopub.status.busy": "2024-06-10T12:57:10.823335Z", - "iopub.status.idle": "2024-06-10T12:57:12.200175Z", - "shell.execute_reply": "2024-06-10T12:57:12.199534Z" + "iopub.execute_input": "2024-06-10T14:32:27.792234Z", + "iopub.status.busy": "2024-06-10T14:32:27.791767Z", + "iopub.status.idle": "2024-06-10T14:32:29.175760Z", + "shell.execute_reply": "2024-06-10T14:32:29.175047Z" } }, "outputs": [ @@ -358,10 +345,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:12.202926Z", - "iopub.status.busy": "2024-06-10T12:57:12.202546Z", - "iopub.status.idle": "2024-06-10T12:57:13.982725Z", - "shell.execute_reply": "2024-06-10T12:57:13.982015Z" + "iopub.execute_input": "2024-06-10T14:32:29.178346Z", + "iopub.status.busy": "2024-06-10T14:32:29.178106Z", + "iopub.status.idle": "2024-06-10T14:32:30.958919Z", + "shell.execute_reply": "2024-06-10T14:32:30.958222Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-derivimplicit.ipynb b/notebooks/nmodl-sympy-solver-derivimplicit.ipynb index 07b20bfdae..2aac0483f0 100644 --- a/notebooks/nmodl-sympy-solver-derivimplicit.ipynb +++ b/notebooks/nmodl-sympy-solver-derivimplicit.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:15.394948Z", - "iopub.status.busy": "2024-06-10T12:57:15.394397Z", - "iopub.status.idle": "2024-06-10T12:57:16.698960Z", - "shell.execute_reply": "2024-06-10T12:57:16.698208Z" + "iopub.execute_input": "2024-06-10T14:32:32.687765Z", + "iopub.status.busy": "2024-06-10T14:32:32.687367Z", + "iopub.status.idle": "2024-06-10T14:32:33.998979Z", + "shell.execute_reply": "2024-06-10T14:32:33.998197Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:16.702177Z", - "iopub.status.busy": "2024-06-10T12:57:16.701781Z", - "iopub.status.idle": "2024-06-10T12:57:16.728883Z", - "shell.execute_reply": "2024-06-10T12:57:16.728316Z" + "iopub.execute_input": "2024-06-10T14:32:34.002055Z", + "iopub.status.busy": "2024-06-10T14:32:34.001838Z", + "iopub.status.idle": "2024-06-10T14:32:34.029142Z", + "shell.execute_reply": "2024-06-10T14:32:34.028447Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:16.731632Z", - "iopub.status.busy": "2024-06-10T12:57:16.731308Z", - "iopub.status.idle": "2024-06-10T12:57:17.178194Z", - "shell.execute_reply": "2024-06-10T12:57:17.177504Z" + "iopub.execute_input": "2024-06-10T14:32:34.032403Z", + "iopub.status.busy": "2024-06-10T14:32:34.031889Z", + "iopub.status.idle": "2024-06-10T14:32:34.492832Z", + "shell.execute_reply": "2024-06-10T14:32:34.492113Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:17.180927Z", - "iopub.status.busy": "2024-06-10T12:57:17.180488Z", - "iopub.status.idle": "2024-06-10T12:57:17.395051Z", - "shell.execute_reply": "2024-06-10T12:57:17.394408Z" + "iopub.execute_input": "2024-06-10T14:32:34.495616Z", + "iopub.status.busy": "2024-06-10T14:32:34.495345Z", + "iopub.status.idle": "2024-06-10T14:32:34.706721Z", + "shell.execute_reply": "2024-06-10T14:32:34.706053Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-sparse.ipynb b/notebooks/nmodl-sympy-solver-sparse.ipynb index 9d99c11879..f277d42c7a 100644 --- a/notebooks/nmodl-sympy-solver-sparse.ipynb +++ b/notebooks/nmodl-sympy-solver-sparse.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:18.698640Z", - "iopub.status.busy": "2024-06-10T12:57:18.698430Z", - "iopub.status.idle": "2024-06-10T12:57:19.990477Z", - "shell.execute_reply": "2024-06-10T12:57:19.989746Z" + "iopub.execute_input": "2024-06-10T14:32:36.012956Z", + "iopub.status.busy": "2024-06-10T14:32:36.012763Z", + "iopub.status.idle": "2024-06-10T14:32:37.346696Z", + "shell.execute_reply": "2024-06-10T14:32:37.345902Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:19.993616Z", - "iopub.status.busy": "2024-06-10T12:57:19.993152Z", - "iopub.status.idle": "2024-06-10T12:57:20.019190Z", - "shell.execute_reply": "2024-06-10T12:57:20.018610Z" + "iopub.execute_input": "2024-06-10T14:32:37.350022Z", + "iopub.status.busy": "2024-06-10T14:32:37.349771Z", + "iopub.status.idle": "2024-06-10T14:32:37.377044Z", + "shell.execute_reply": "2024-06-10T14:32:37.376443Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:20.021970Z", - "iopub.status.busy": "2024-06-10T12:57:20.021587Z", - "iopub.status.idle": "2024-06-10T12:57:20.476612Z", - "shell.execute_reply": "2024-06-10T12:57:20.475903Z" + "iopub.execute_input": "2024-06-10T14:32:37.379851Z", + "iopub.status.busy": "2024-06-10T14:32:37.379471Z", + "iopub.status.idle": "2024-06-10T14:32:37.828954Z", + "shell.execute_reply": "2024-06-10T14:32:37.828252Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-06-10T12:57:20.479400Z", - "iopub.status.busy": "2024-06-10T12:57:20.478956Z", - "iopub.status.idle": "2024-06-10T12:57:20.693378Z", - "shell.execute_reply": "2024-06-10T12:57:20.692798Z" + "iopub.execute_input": "2024-06-10T14:32:37.831504Z", + "iopub.status.busy": "2024-06-10T14:32:37.831266Z", + "iopub.status.idle": "2024-06-10T14:32:38.041907Z", + "shell.execute_reply": "2024-06-10T14:32:38.041312Z" } }, "outputs": [