From 871b2a849be83a069ccb5805eda00eb0327558e8 Mon Sep 17 00:00:00 2001 From: 1uc Date: Thu, 3 Oct 2024 09:54:10 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20BlueBrai?= =?UTF-8?q?n/nmodl@3db59a772029f572ce2125d5eb16ebfade7664a6=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .doctrees/environment.pickle | Bin 153953 -> 154773 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 | 64 +++--- .../nmodl-sympy-solver-derivimplicit.ipynb | 32 +-- .../notebooks/nmodl-sympy-solver-sparse.ipynb | 32 +-- .doctrees/nmodl.doctree | Bin 94933 -> 95925 bytes _modules/nmodl/ode.html | 30 ++- doxygen/src_2main_8cpp_source.html | 194 +++++++++--------- nmodl.html | 4 +- notebooks/nmodl-kinetic-schemes.ipynb | 56 ++--- notebooks/nmodl-python-tutorial.ipynb | 160 +++++++-------- notebooks/nmodl-sympy-conductance.ipynb | 72 +++---- notebooks/nmodl-sympy-solver-cnexp.ipynb | 64 +++--- .../nmodl-sympy-solver-derivimplicit.ipynb | 32 +-- notebooks/nmodl-sympy-solver-sparse.ipynb | 32 +-- searchindex.js | 2 +- 18 files changed, 543 insertions(+), 519 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index c4940fc87db8fb5d1d37ad257b1bbb1c5221a992..35bf7c1b155f2a948a1bc2bd79572853266d8a3d 100644 GIT binary patch delta 11242 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 baQEvav_kwTt@zPwD2{Wvt-P=>CG>v*7Mxc= delta 10518 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 E|D=gxkpKVy diff --git a/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb index f77d90137..e314791b0 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-kinetic-schemes.ipynb @@ -152,10 +152,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:28.231435Z", - "iopub.status.busy": "2024-10-01T10:21:28.231238Z", - "iopub.status.idle": "2024-10-01T10:21:29.033845Z", - "shell.execute_reply": "2024-10-01T10:21:29.033024Z" + "iopub.execute_input": "2024-10-03T09:53:27.189915Z", + "iopub.status.busy": "2024-10-03T09:53:27.189431Z", + "iopub.status.idle": "2024-10-03T09:53:27.978488Z", + "shell.execute_reply": "2024-10-03T09:53:27.977663Z" } }, "outputs": [], @@ -169,10 +169,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.036443Z", - "iopub.status.busy": "2024-10-01T10:21:29.036030Z", - "iopub.status.idle": "2024-10-01T10:21:29.066797Z", - "shell.execute_reply": "2024-10-01T10:21:29.066164Z" + "iopub.execute_input": "2024-10-03T09:53:27.981149Z", + "iopub.status.busy": "2024-10-03T09:53:27.980922Z", + "iopub.status.idle": "2024-10-03T09:53:28.011658Z", + "shell.execute_reply": "2024-10-03T09:53:28.011033Z" } }, "outputs": [], @@ -277,10 +277,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.069059Z", - "iopub.status.busy": "2024-10-01T10:21:29.068722Z", - "iopub.status.idle": "2024-10-01T10:21:29.073735Z", - "shell.execute_reply": "2024-10-01T10:21:29.073036Z" + "iopub.execute_input": "2024-10-03T09:53:28.014217Z", + "iopub.status.busy": "2024-10-03T09:53:28.013738Z", + "iopub.status.idle": "2024-10-03T09:53:28.018271Z", + "shell.execute_reply": "2024-10-03T09:53:28.017636Z" } }, "outputs": [ @@ -323,10 +323,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.103779Z", - "iopub.status.busy": "2024-10-01T10:21:29.103327Z", - "iopub.status.idle": "2024-10-01T10:21:29.107488Z", - "shell.execute_reply": "2024-10-01T10:21:29.106918Z" + "iopub.execute_input": "2024-10-03T09:53:28.048586Z", + "iopub.status.busy": "2024-10-03T09:53:28.048123Z", + "iopub.status.idle": "2024-10-03T09:53:28.051868Z", + "shell.execute_reply": "2024-10-03T09:53:28.051320Z" } }, "outputs": [ @@ -367,10 +367,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.109512Z", - "iopub.status.busy": "2024-10-01T10:21:29.109150Z", - "iopub.status.idle": "2024-10-01T10:21:29.112981Z", - "shell.execute_reply": "2024-10-01T10:21:29.112414Z" + "iopub.execute_input": "2024-10-03T09:53:28.054128Z", + "iopub.status.busy": "2024-10-03T09:53:28.053610Z", + "iopub.status.idle": "2024-10-03T09:53:28.057453Z", + "shell.execute_reply": "2024-10-03T09:53:28.056897Z" }, "scrolled": true }, @@ -412,10 +412,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.114916Z", - "iopub.status.busy": "2024-10-01T10:21:29.114547Z", - "iopub.status.idle": "2024-10-01T10:21:29.118506Z", - "shell.execute_reply": "2024-10-01T10:21:29.117935Z" + "iopub.execute_input": "2024-10-03T09:53:28.059453Z", + "iopub.status.busy": "2024-10-03T09:53:28.059082Z", + "iopub.status.idle": "2024-10-03T09:53:28.062912Z", + "shell.execute_reply": "2024-10-03T09:53:28.062353Z" }, "scrolled": true }, @@ -459,10 +459,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.120491Z", - "iopub.status.busy": "2024-10-01T10:21:29.120121Z", - "iopub.status.idle": "2024-10-01T10:21:29.124711Z", - "shell.execute_reply": "2024-10-01T10:21:29.124162Z" + "iopub.execute_input": "2024-10-03T09:53:28.064721Z", + "iopub.status.busy": "2024-10-03T09:53:28.064520Z", + "iopub.status.idle": "2024-10-03T09:53:28.069195Z", + "shell.execute_reply": "2024-10-03T09:53:28.068634Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb index 8bf04d8fc..adf221707 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-python-tutorial.ipynb @@ -30,10 +30,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:34.429599Z", - "iopub.status.busy": "2024-10-01T10:21:34.429205Z", - "iopub.status.idle": "2024-10-01T10:21:35.235253Z", - "shell.execute_reply": "2024-10-01T10:21:35.234452Z" + "iopub.execute_input": "2024-10-03T09:53:33.628062Z", + "iopub.status.busy": "2024-10-03T09:53:33.627869Z", + "iopub.status.idle": "2024-10-03T09:53:34.423988Z", + "shell.execute_reply": "2024-10-03T09:53:34.423097Z" } }, "outputs": [], @@ -63,10 +63,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.237787Z", - "iopub.status.busy": "2024-10-01T10:21:35.237566Z", - "iopub.status.idle": "2024-10-01T10:21:35.267042Z", - "shell.execute_reply": "2024-10-01T10:21:35.266427Z" + "iopub.execute_input": "2024-10-03T09:53:34.426837Z", + "iopub.status.busy": "2024-10-03T09:53:34.426419Z", + "iopub.status.idle": "2024-10-03T09:53:34.455042Z", + "shell.execute_reply": "2024-10-03T09:53:34.454411Z" } }, "outputs": [], @@ -86,10 +86,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.269469Z", - "iopub.status.busy": "2024-10-01T10:21:35.269141Z", - "iopub.status.idle": "2024-10-01T10:21:35.272740Z", - "shell.execute_reply": "2024-10-01T10:21:35.272218Z" + "iopub.execute_input": "2024-10-03T09:53:34.457267Z", + "iopub.status.busy": "2024-10-03T09:53:34.456937Z", + "iopub.status.idle": "2024-10-03T09:53:34.460600Z", + "shell.execute_reply": "2024-10-03T09:53:34.460010Z" } }, "outputs": [], @@ -152,10 +152,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.274685Z", - "iopub.status.busy": "2024-10-01T10:21:35.274378Z", - "iopub.status.idle": "2024-10-01T10:21:35.278190Z", - "shell.execute_reply": "2024-10-01T10:21:35.277650Z" + "iopub.execute_input": "2024-10-03T09:53:34.462592Z", + "iopub.status.busy": "2024-10-03T09:53:34.462231Z", + "iopub.status.idle": "2024-10-03T09:53:34.466026Z", + "shell.execute_reply": "2024-10-03T09:53:34.465469Z" } }, "outputs": [], @@ -183,10 +183,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.280167Z", - "iopub.status.busy": "2024-10-01T10:21:35.279789Z", - "iopub.status.idle": "2024-10-01T10:21:35.283331Z", - "shell.execute_reply": "2024-10-01T10:21:35.282749Z" + "iopub.execute_input": "2024-10-03T09:53:34.467934Z", + "iopub.status.busy": "2024-10-03T09:53:34.467629Z", + "iopub.status.idle": "2024-10-03T09:53:34.471364Z", + "shell.execute_reply": "2024-10-03T09:53:34.470702Z" } }, "outputs": [ @@ -235,10 +235,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.285388Z", - "iopub.status.busy": "2024-10-01T10:21:35.284915Z", - "iopub.status.idle": "2024-10-01T10:21:35.289006Z", - "shell.execute_reply": "2024-10-01T10:21:35.288352Z" + "iopub.execute_input": "2024-10-03T09:53:34.473608Z", + "iopub.status.busy": "2024-10-03T09:53:34.473229Z", + "iopub.status.idle": "2024-10-03T09:53:34.477021Z", + "shell.execute_reply": "2024-10-03T09:53:34.476500Z" } }, "outputs": [], @@ -260,10 +260,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.291373Z", - "iopub.status.busy": "2024-10-01T10:21:35.290905Z", - "iopub.status.idle": "2024-10-01T10:21:35.294548Z", - "shell.execute_reply": "2024-10-01T10:21:35.293935Z" + "iopub.execute_input": "2024-10-03T09:53:34.479123Z", + "iopub.status.busy": "2024-10-03T09:53:34.478614Z", + "iopub.status.idle": "2024-10-03T09:53:34.482176Z", + "shell.execute_reply": "2024-10-03T09:53:34.481631Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.296718Z", - "iopub.status.busy": "2024-10-01T10:21:35.296269Z", - "iopub.status.idle": "2024-10-01T10:21:35.303317Z", - "shell.execute_reply": "2024-10-01T10:21:35.302694Z" + "iopub.execute_input": "2024-10-03T09:53:34.484156Z", + "iopub.status.busy": "2024-10-03T09:53:34.483957Z", + "iopub.status.idle": "2024-10-03T09:53:34.491130Z", + "shell.execute_reply": "2024-10-03T09:53:34.490468Z" } }, "outputs": [ @@ -365,10 +365,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.305286Z", - "iopub.status.busy": "2024-10-01T10:21:35.304918Z", - "iopub.status.idle": "2024-10-01T10:21:35.309073Z", - "shell.execute_reply": "2024-10-01T10:21:35.308429Z" + "iopub.execute_input": "2024-10-03T09:53:34.493358Z", + "iopub.status.busy": "2024-10-03T09:53:34.492916Z", + "iopub.status.idle": "2024-10-03T09:53:34.496885Z", + "shell.execute_reply": "2024-10-03T09:53:34.496257Z" } }, "outputs": [ @@ -416,10 +416,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.311099Z", - "iopub.status.busy": "2024-10-01T10:21:35.310796Z", - "iopub.status.idle": "2024-10-01T10:21:35.314045Z", - "shell.execute_reply": "2024-10-01T10:21:35.313503Z" + "iopub.execute_input": "2024-10-03T09:53:34.499006Z", + "iopub.status.busy": "2024-10-03T09:53:34.498554Z", + "iopub.status.idle": "2024-10-03T09:53:34.501829Z", + "shell.execute_reply": "2024-10-03T09:53:34.501307Z" } }, "outputs": [], @@ -441,10 +441,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.315947Z", - "iopub.status.busy": "2024-10-01T10:21:35.315652Z", - "iopub.status.idle": "2024-10-01T10:21:35.319618Z", - "shell.execute_reply": "2024-10-01T10:21:35.319070Z" + "iopub.execute_input": "2024-10-03T09:53:34.503858Z", + "iopub.status.busy": "2024-10-03T09:53:34.503386Z", + "iopub.status.idle": "2024-10-03T09:53:34.507222Z", + "shell.execute_reply": "2024-10-03T09:53:34.506560Z" } }, "outputs": [ @@ -510,10 +510,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.321543Z", - "iopub.status.busy": "2024-10-01T10:21:35.321243Z", - "iopub.status.idle": "2024-10-01T10:21:35.324708Z", - "shell.execute_reply": "2024-10-01T10:21:35.324168Z" + "iopub.execute_input": "2024-10-03T09:53:34.509289Z", + "iopub.status.busy": "2024-10-03T09:53:34.508939Z", + "iopub.status.idle": "2024-10-03T09:53:34.512324Z", + "shell.execute_reply": "2024-10-03T09:53:34.511663Z" } }, "outputs": [ @@ -548,10 +548,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.326698Z", - "iopub.status.busy": "2024-10-01T10:21:35.326314Z", - "iopub.status.idle": "2024-10-01T10:21:35.329908Z", - "shell.execute_reply": "2024-10-01T10:21:35.329270Z" + "iopub.execute_input": "2024-10-03T09:53:34.514363Z", + "iopub.status.busy": "2024-10-03T09:53:34.513933Z", + "iopub.status.idle": "2024-10-03T09:53:34.517513Z", + "shell.execute_reply": "2024-10-03T09:53:34.516848Z" } }, "outputs": [ @@ -584,10 +584,10 @@ "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.332050Z", - "iopub.status.busy": "2024-10-01T10:21:35.331672Z", - "iopub.status.idle": "2024-10-01T10:21:35.335058Z", - "shell.execute_reply": "2024-10-01T10:21:35.334529Z" + "iopub.execute_input": "2024-10-03T09:53:34.519448Z", + "iopub.status.busy": "2024-10-03T09:53:34.519087Z", + "iopub.status.idle": "2024-10-03T09:53:34.522821Z", + "shell.execute_reply": "2024-10-03T09:53:34.522159Z" } }, "outputs": [ @@ -622,10 +622,10 @@ "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.337013Z", - "iopub.status.busy": "2024-10-01T10:21:35.336653Z", - "iopub.status.idle": "2024-10-01T10:21:35.340723Z", - "shell.execute_reply": "2024-10-01T10:21:35.340090Z" + "iopub.execute_input": "2024-10-03T09:53:34.525117Z", + "iopub.status.busy": "2024-10-03T09:53:34.524550Z", + "iopub.status.idle": "2024-10-03T09:53:34.528556Z", + "shell.execute_reply": "2024-10-03T09:53:34.527980Z" } }, "outputs": [ @@ -669,10 +669,10 @@ "execution_count": 16, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.342956Z", - "iopub.status.busy": "2024-10-01T10:21:35.342525Z", - "iopub.status.idle": "2024-10-01T10:21:35.347821Z", - "shell.execute_reply": "2024-10-01T10:21:35.347186Z" + "iopub.execute_input": "2024-10-03T09:53:34.530529Z", + "iopub.status.busy": "2024-10-03T09:53:34.530173Z", + "iopub.status.idle": "2024-10-03T09:53:34.535552Z", + "shell.execute_reply": "2024-10-03T09:53:34.534879Z" } }, "outputs": [ @@ -733,10 +733,10 @@ "execution_count": 17, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.349882Z", - "iopub.status.busy": "2024-10-01T10:21:35.349526Z", - "iopub.status.idle": "2024-10-01T10:21:35.353111Z", - "shell.execute_reply": "2024-10-01T10:21:35.352535Z" + "iopub.execute_input": "2024-10-03T09:53:34.537557Z", + "iopub.status.busy": "2024-10-03T09:53:34.537357Z", + "iopub.status.idle": "2024-10-03T09:53:34.540842Z", + "shell.execute_reply": "2024-10-03T09:53:34.540275Z" } }, "outputs": [], @@ -761,10 +761,10 @@ "execution_count": 18, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.355237Z", - "iopub.status.busy": "2024-10-01T10:21:35.354773Z", - "iopub.status.idle": "2024-10-01T10:21:35.364975Z", - "shell.execute_reply": "2024-10-01T10:21:35.364385Z" + "iopub.execute_input": "2024-10-03T09:53:34.542785Z", + "iopub.status.busy": "2024-10-03T09:53:34.542582Z", + "iopub.status.idle": "2024-10-03T09:53:34.552887Z", + "shell.execute_reply": "2024-10-03T09:53:34.552339Z" } }, "outputs": [], @@ -857,10 +857,10 @@ "execution_count": 19, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.366951Z", - "iopub.status.busy": "2024-10-01T10:21:35.366563Z", - "iopub.status.idle": "2024-10-01T10:21:35.369997Z", - "shell.execute_reply": "2024-10-01T10:21:35.369425Z" + "iopub.execute_input": "2024-10-03T09:53:34.554719Z", + "iopub.status.busy": "2024-10-03T09:53:34.554520Z", + "iopub.status.idle": "2024-10-03T09:53:34.558319Z", + "shell.execute_reply": "2024-10-03T09:53:34.557763Z" } }, "outputs": [ @@ -897,10 +897,10 @@ "execution_count": 20, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.372058Z", - "iopub.status.busy": "2024-10-01T10:21:35.371676Z", - "iopub.status.idle": "2024-10-01T10:21:35.376989Z", - "shell.execute_reply": "2024-10-01T10:21:35.376400Z" + "iopub.execute_input": "2024-10-03T09:53:34.560117Z", + "iopub.status.busy": "2024-10-03T09:53:34.559940Z", + "iopub.status.idle": "2024-10-03T09:53:34.565394Z", + "shell.execute_reply": "2024-10-03T09:53:34.564851Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb index a09e3e83b..471a11f7f 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-conductance.ipynb @@ -86,10 +86,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:37.821174Z", - "iopub.status.busy": "2024-10-01T10:21:37.820574Z", - "iopub.status.idle": "2024-10-01T10:21:38.618818Z", - "shell.execute_reply": "2024-10-01T10:21:38.617989Z" + "iopub.execute_input": "2024-10-03T09:53:37.029702Z", + "iopub.status.busy": "2024-10-03T09:53:37.029512Z", + "iopub.status.idle": "2024-10-03T09:53:37.826943Z", + "shell.execute_reply": "2024-10-03T09:53:37.826135Z" } }, "outputs": [], @@ -103,10 +103,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:38.621301Z", - "iopub.status.busy": "2024-10-01T10:21:38.621084Z", - "iopub.status.idle": "2024-10-01T10:21:38.651744Z", - "shell.execute_reply": "2024-10-01T10:21:38.651083Z" + "iopub.execute_input": "2024-10-03T09:53:37.829354Z", + "iopub.status.busy": "2024-10-03T09:53:37.829140Z", + "iopub.status.idle": "2024-10-03T09:53:37.859411Z", + "shell.execute_reply": "2024-10-03T09:53:37.858638Z" } }, "outputs": [], @@ -149,10 +149,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:38.654226Z", - "iopub.status.busy": "2024-10-01T10:21:38.653834Z", - "iopub.status.idle": "2024-10-01T10:21:38.931262Z", - "shell.execute_reply": "2024-10-01T10:21:38.930514Z" + "iopub.execute_input": "2024-10-03T09:53:37.861808Z", + "iopub.status.busy": "2024-10-03T09:53:37.861481Z", + "iopub.status.idle": "2024-10-03T09:53:38.135604Z", + "shell.execute_reply": "2024-10-03T09:53:38.134960Z" } }, "outputs": [ @@ -196,10 +196,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:38.933516Z", - "iopub.status.busy": "2024-10-01T10:21:38.933264Z", - "iopub.status.idle": "2024-10-01T10:21:39.065959Z", - "shell.execute_reply": "2024-10-01T10:21:39.065329Z" + "iopub.execute_input": "2024-10-03T09:53:38.137950Z", + "iopub.status.busy": "2024-10-03T09:53:38.137502Z", + "iopub.status.idle": "2024-10-03T09:53:38.269859Z", + "shell.execute_reply": "2024-10-03T09:53:38.269248Z" } }, "outputs": [ @@ -243,10 +243,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.068045Z", - "iopub.status.busy": "2024-10-01T10:21:39.067838Z", - "iopub.status.idle": "2024-10-01T10:21:39.076495Z", - "shell.execute_reply": "2024-10-01T10:21:39.075931Z" + "iopub.execute_input": "2024-10-03T09:53:38.272256Z", + "iopub.status.busy": "2024-10-03T09:53:38.271871Z", + "iopub.status.idle": "2024-10-03T09:53:38.280375Z", + "shell.execute_reply": "2024-10-03T09:53:38.279751Z" } }, "outputs": [ @@ -290,10 +290,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.078383Z", - "iopub.status.busy": "2024-10-01T10:21:39.078181Z", - "iopub.status.idle": "2024-10-01T10:21:39.095112Z", - "shell.execute_reply": "2024-10-01T10:21:39.094537Z" + "iopub.execute_input": "2024-10-03T09:53:38.282442Z", + "iopub.status.busy": "2024-10-03T09:53:38.281980Z", + "iopub.status.idle": "2024-10-03T09:53:38.299215Z", + "shell.execute_reply": "2024-10-03T09:53:38.298551Z" } }, "outputs": [ @@ -337,10 +337,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.097092Z", - "iopub.status.busy": "2024-10-01T10:21:39.096877Z", - "iopub.status.idle": "2024-10-01T10:21:39.215347Z", - "shell.execute_reply": "2024-10-01T10:21:39.214752Z" + "iopub.execute_input": "2024-10-03T09:53:38.301612Z", + "iopub.status.busy": "2024-10-03T09:53:38.301136Z", + "iopub.status.idle": "2024-10-03T09:53:38.419523Z", + "shell.execute_reply": "2024-10-03T09:53:38.418841Z" } }, "outputs": [ @@ -400,10 +400,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.217531Z", - "iopub.status.busy": "2024-10-01T10:21:39.217320Z", - "iopub.status.idle": "2024-10-01T10:21:39.313393Z", - "shell.execute_reply": "2024-10-01T10:21:39.312662Z" + "iopub.execute_input": "2024-10-03T09:53:38.421923Z", + "iopub.status.busy": "2024-10-03T09:53:38.421414Z", + "iopub.status.idle": "2024-10-03T09:53:38.515903Z", + "shell.execute_reply": "2024-10-03T09:53:38.515301Z" } }, "outputs": [ @@ -456,10 +456,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.315719Z", - "iopub.status.busy": "2024-10-01T10:21:39.315219Z", - "iopub.status.idle": "2024-10-01T10:21:39.388710Z", - "shell.execute_reply": "2024-10-01T10:21:39.387983Z" + "iopub.execute_input": "2024-10-03T09:53:38.518071Z", + "iopub.status.busy": "2024-10-03T09:53:38.517679Z", + "iopub.status.idle": "2024-10-03T09:53:38.591539Z", + "shell.execute_reply": "2024-10-03T09:53:38.590857Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb index bec37eafb..9841e393f 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-cnexp.ipynb @@ -62,10 +62,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:41.326725Z", - "iopub.status.busy": "2024-10-01T10:21:41.326155Z", - "iopub.status.idle": "2024-10-01T10:21:42.137111Z", - "shell.execute_reply": "2024-10-01T10:21:42.136334Z" + "iopub.execute_input": "2024-10-03T09:53:40.365376Z", + "iopub.status.busy": "2024-10-03T09:53:40.364829Z", + "iopub.status.idle": "2024-10-03T09:53:41.156781Z", + "shell.execute_reply": "2024-10-03T09:53:41.155887Z" } }, "outputs": [], @@ -79,10 +79,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.139932Z", - "iopub.status.busy": "2024-10-01T10:21:42.139501Z", - "iopub.status.idle": "2024-10-01T10:21:42.170809Z", - "shell.execute_reply": "2024-10-01T10:21:42.170151Z" + "iopub.execute_input": "2024-10-03T09:53:41.159607Z", + "iopub.status.busy": "2024-10-03T09:53:41.159193Z", + "iopub.status.idle": "2024-10-03T09:53:41.190016Z", + "shell.execute_reply": "2024-10-03T09:53:41.189404Z" } }, "outputs": [], @@ -123,10 +123,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.173320Z", - "iopub.status.busy": "2024-10-01T10:21:42.172853Z", - "iopub.status.idle": "2024-10-01T10:21:42.610616Z", - "shell.execute_reply": "2024-10-01T10:21:42.609890Z" + "iopub.execute_input": "2024-10-03T09:53:41.192396Z", + "iopub.status.busy": "2024-10-03T09:53:41.191997Z", + "iopub.status.idle": "2024-10-03T09:53:41.609066Z", + "shell.execute_reply": "2024-10-03T09:53:41.608387Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.612789Z", - "iopub.status.busy": "2024-10-01T10:21:42.612376Z", - "iopub.status.idle": "2024-10-01T10:21:42.726609Z", - "shell.execute_reply": "2024-10-01T10:21:42.725883Z" + "iopub.execute_input": "2024-10-03T09:53:41.611297Z", + "iopub.status.busy": "2024-10-03T09:53:41.610852Z", + "iopub.status.idle": "2024-10-03T09:53:41.722451Z", + "shell.execute_reply": "2024-10-03T09:53:41.721774Z" } }, "outputs": [ @@ -207,10 +207,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.728917Z", - "iopub.status.busy": "2024-10-01T10:21:42.728504Z", - "iopub.status.idle": "2024-10-01T10:21:42.929400Z", - "shell.execute_reply": "2024-10-01T10:21:42.928749Z" + "iopub.execute_input": "2024-10-03T09:53:41.724817Z", + "iopub.status.busy": "2024-10-03T09:53:41.724390Z", + "iopub.status.idle": "2024-10-03T09:53:41.924048Z", + "shell.execute_reply": "2024-10-03T09:53:41.923429Z" } }, "outputs": [ @@ -255,10 +255,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.931679Z", - "iopub.status.busy": "2024-10-01T10:21:42.931276Z", - "iopub.status.idle": "2024-10-01T10:21:43.092553Z", - "shell.execute_reply": "2024-10-01T10:21:43.091899Z" + "iopub.execute_input": "2024-10-03T09:53:41.926283Z", + "iopub.status.busy": "2024-10-03T09:53:41.925871Z", + "iopub.status.idle": "2024-10-03T09:53:42.084576Z", + "shell.execute_reply": "2024-10-03T09:53:42.083899Z" } }, "outputs": [ @@ -303,10 +303,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:43.094821Z", - "iopub.status.busy": "2024-10-01T10:21:43.094408Z", - "iopub.status.idle": "2024-10-01T10:21:44.860368Z", - "shell.execute_reply": "2024-10-01T10:21:44.859636Z" + "iopub.execute_input": "2024-10-03T09:53:42.086953Z", + "iopub.status.busy": "2024-10-03T09:53:42.086545Z", + "iopub.status.idle": "2024-10-03T09:53:43.836453Z", + "shell.execute_reply": "2024-10-03T09:53:43.835742Z" } }, "outputs": [ @@ -351,10 +351,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:44.862696Z", - "iopub.status.busy": "2024-10-01T10:21:44.862182Z", - "iopub.status.idle": "2024-10-01T10:21:47.151307Z", - "shell.execute_reply": "2024-10-01T10:21:47.150583Z" + "iopub.execute_input": "2024-10-03T09:53:43.838762Z", + "iopub.status.busy": "2024-10-03T09:53:43.838541Z", + "iopub.status.idle": "2024-10-03T09:53:46.087265Z", + "shell.execute_reply": "2024-10-03T09:53:46.086510Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb index 84066bb72..b1a09c50c 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-derivimplicit.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:48.814953Z", - "iopub.status.busy": "2024-10-01T10:21:48.814455Z", - "iopub.status.idle": "2024-10-01T10:21:49.625080Z", - "shell.execute_reply": "2024-10-01T10:21:49.624212Z" + "iopub.execute_input": "2024-10-03T09:53:47.686836Z", + "iopub.status.busy": "2024-10-03T09:53:47.686621Z", + "iopub.status.idle": "2024-10-03T09:53:48.485520Z", + "shell.execute_reply": "2024-10-03T09:53:48.484603Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:49.627765Z", - "iopub.status.busy": "2024-10-01T10:21:49.627356Z", - "iopub.status.idle": "2024-10-01T10:21:49.658492Z", - "shell.execute_reply": "2024-10-01T10:21:49.657831Z" + "iopub.execute_input": "2024-10-03T09:53:48.488070Z", + "iopub.status.busy": "2024-10-03T09:53:48.487866Z", + "iopub.status.idle": "2024-10-03T09:53:48.518976Z", + "shell.execute_reply": "2024-10-03T09:53:48.518304Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:49.660789Z", - "iopub.status.busy": "2024-10-01T10:21:49.660517Z", - "iopub.status.idle": "2024-10-01T10:21:50.155126Z", - "shell.execute_reply": "2024-10-01T10:21:50.154469Z" + "iopub.execute_input": "2024-10-03T09:53:48.521438Z", + "iopub.status.busy": "2024-10-03T09:53:48.521097Z", + "iopub.status.idle": "2024-10-03T09:53:49.023871Z", + "shell.execute_reply": "2024-10-03T09:53:49.023158Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:50.157391Z", - "iopub.status.busy": "2024-10-01T10:21:50.156939Z", - "iopub.status.idle": "2024-10-01T10:21:50.455120Z", - "shell.execute_reply": "2024-10-01T10:21:50.454384Z" + "iopub.execute_input": "2024-10-03T09:53:49.026236Z", + "iopub.status.busy": "2024-10-03T09:53:49.025963Z", + "iopub.status.idle": "2024-10-03T09:53:49.320740Z", + "shell.execute_reply": "2024-10-03T09:53:49.320021Z" } }, "outputs": [ diff --git a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb index 2f06803cc..5ab01e354 100644 --- a/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb +++ b/.doctrees/nbsphinx/notebooks/nmodl-sympy-solver-sparse.ipynb @@ -39,10 +39,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:51.946600Z", - "iopub.status.busy": "2024-10-01T10:21:51.946193Z", - "iopub.status.idle": "2024-10-01T10:21:52.775471Z", - "shell.execute_reply": "2024-10-01T10:21:52.774694Z" + "iopub.execute_input": "2024-10-03T09:53:50.821936Z", + "iopub.status.busy": "2024-10-03T09:53:50.821463Z", + "iopub.status.idle": "2024-10-03T09:53:51.626330Z", + "shell.execute_reply": "2024-10-03T09:53:51.625563Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:52.778275Z", - "iopub.status.busy": "2024-10-01T10:21:52.777839Z", - "iopub.status.idle": "2024-10-01T10:21:52.809576Z", - "shell.execute_reply": "2024-10-01T10:21:52.808846Z" + "iopub.execute_input": "2024-10-03T09:53:51.629015Z", + "iopub.status.busy": "2024-10-03T09:53:51.628599Z", + "iopub.status.idle": "2024-10-03T09:53:51.659114Z", + "shell.execute_reply": "2024-10-03T09:53:51.658483Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:52.812049Z", - "iopub.status.busy": "2024-10-01T10:21:52.811709Z", - "iopub.status.idle": "2024-10-01T10:21:53.314250Z", - "shell.execute_reply": "2024-10-01T10:21:53.313504Z" + "iopub.execute_input": "2024-10-03T09:53:51.661347Z", + "iopub.status.busy": "2024-10-03T09:53:51.661019Z", + "iopub.status.idle": "2024-10-03T09:53:52.160649Z", + "shell.execute_reply": "2024-10-03T09:53:52.159884Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:53.316448Z", - "iopub.status.busy": "2024-10-01T10:21:53.316177Z", - "iopub.status.idle": "2024-10-01T10:21:53.614222Z", - "shell.execute_reply": "2024-10-01T10:21:53.613471Z" + "iopub.execute_input": "2024-10-03T09:53:52.163142Z", + "iopub.status.busy": "2024-10-03T09:53:52.162671Z", + "iopub.status.idle": "2024-10-03T09:53:52.461865Z", + "shell.execute_reply": "2024-10-03T09:53:52.461190Z" } }, "outputs": [ diff --git a/.doctrees/nmodl.doctree b/.doctrees/nmodl.doctree index 610b9a47e522213398b31d26fe1385987e50e8b9..d32b9c11579f023a917e90a7d707293b399198aa 100644 GIT binary patch delta 7315 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 EUwRa3H2?qr diff --git a/_modules/nmodl/ode.html b/_modules/nmodl/ode.html index c491d5bba..8da90c605 100644 --- a/_modules/nmodl/ode.html +++ b/_modules/nmodl/ode.html @@ -679,7 +679,13 @@

Source code for nmodl.ode

     return f"{sp.ccode(x)} = {sp.ccode(solution, user_functions=custom_fcts)}"
-
[docs]def differentiate2c(expression, dependent_var, vars, prev_expressions=None): +
[docs]def differentiate2c( + expression, + dependent_var, + vars, + prev_expressions=None, + stepsize=1e-3, +): """Analytically differentiate supplied expression, return solution as C code. Expression should be of the form "f(x)", where "x" is @@ -706,11 +712,15 @@

Source code for nmodl.ode

         vars: set of all other variables used in expression, e.g. {"a", "b", "c"}
         prev_expressions: time-ordered list of preceeding expressions
                           to evaluate & substitute, e.g. ["b = x + c", "a = 12*b"]
+        stepsize: in case an analytic expression is not possible, finite differences are used;
+                  this argument sets the step size
 
     Returns:
         string containing analytic derivative of expression (including any substitutions
         of variables from supplied prev_expressions) w.r.t. dependent_var as C code.
     """
+    if stepsize <= 0:
+        raise ValueError("arg `stepsize` must be > 0")
     prev_expressions = prev_expressions or []
     # every symbol (a.k.a variable) that SymPy
     # is going to manipulate needs to be declared
@@ -754,15 +764,27 @@ 

Source code for nmodl.ode

     # differentiate w.r.t. x
     diff = expr.diff(x).simplify()
 
+    # could be something generic like f'(x), in which case we use finite differences
+    if needs_finite_differences(diff):
+        diff = (
+            transform_expression(diff, discretize_derivative)
+            .subs({finite_difference_step_variable(x): stepsize})
+            .evalf()
+        )
+
+    # the codegen method does not like undefined function calls, so we extract
+    # them here
+    custom_fcts = {str(f.func): str(f.func) for f in diff.atoms(sp.Function)}
+
     # try to simplify expression in terms of existing variables
     # ignore any exceptions here, since we already have a valid solution
     # so if this further simplification step fails the error is not fatal
     try:
         # if expression is equal to one of the supplied vars, replace with this var
         # can do a simple string comparison here since a var cannot be further simplified
-        diff_as_string = sp.ccode(diff)
+        diff_as_string = sp.ccode(diff, user_functions=custom_fcts)
         for v in sympy_vars:
-            if diff_as_string == sp.ccode(sympy_vars[v]):
+            if diff_as_string == sp.ccode(sympy_vars[v], user_functions=custom_fcts):
                 diff = sympy_vars[v]
 
         # or if equal to rhs of one of the supplied equations, replace with lhs
@@ -783,7 +805,7 @@ 

Source code for nmodl.ode

         pass
 
     # return result as C code in NEURON format
-    return sp.ccode(diff.evalf())
+ return sp.ccode(diff.evalf(), user_functions=custom_fcts)
diff --git a/doxygen/src_2main_8cpp_source.html b/doxygen/src_2main_8cpp_source.html index 70876cab3..949fa72a6 100644 --- a/doxygen/src_2main_8cpp_source.html +++ b/doxygen/src_2main_8cpp_source.html @@ -410,104 +410,104 @@
314  /// create file path for nmodl file
315  auto filepath = [scratch_dir, modfile](const std::string& suffix) {
316  static int count = 0;
-
317  return fmt::format(
-
318  "{}/{}.{}.{}.mod", scratch_dir, modfile, std::to_string(count++), suffix);
-
319  };
-
320 
-
321  /// driver object creates lexer and parser, just call parser method
- -
323 
-
324  /// parse mod file and construct ast
-
325  const auto& ast = driver.parse_file(file);
-
326 
-
327  /// whether to update existing symbol table or create new
-
328  /// one whenever we run symtab visitor.
-
329  bool update_symtab = false;
-
330 
-
331  /// just visit the ast
-
332  AstVisitor().visit_program(*ast);
-
333 
-
334  {
-
335  logger->info("Running argument renaming visitor");
-
336  RenameFunctionArgumentsVisitor().visit_program(*ast);
-
337  }
-
338 
-
339  /// construct symbol table
-
340  {
-
341  logger->info("Running symtab visitor");
-
342  SymtabVisitor(update_symtab).visit_program(*ast);
-
343  }
-
344 
-
345  /// Check some rules that ast should follow
-
346  {
-
347  logger->info("Running semantic analysis visitor");
-
348  if (SemanticAnalysisVisitor(oacc_backend).check(*ast)) {
-
349  return 1;
-
350  }
-
351  }
-
352 
-
353  /// use cnexp instead of after_cvode solve method
-
354  {
-
355  logger->info("Running CVode to cnexp visitor");
-
356  AfterCVodeToCnexpVisitor().visit_program(*ast);
-
357  ast_to_nmodl(*ast, filepath("after_cvode_to_cnexp"));
-
358  }
-
359 
-
360  /// GLOBAL to RANGE rename visitor
-
361  if (nmodl_global_to_range) {
-
362  // make sure to run perf visitor because code generator
-
363  // looks for read/write counts const/non-const declaration
-
364  PerfVisitor().visit_program(*ast);
-
365  // make sure to run the GlobalToRange visitor after all the
-
366  // reinitializations of Symtab
-
367  logger->info("Running GlobalToRange visitor");
-
368  GlobalToRangeVisitor(*ast).visit_program(*ast);
-
369  SymtabVisitor(update_symtab).visit_program(*ast);
-
370  ast_to_nmodl(*ast, filepath("global_to_range"));
-
371  }
-
372 
-
373  /// LOCAL to ASSIGNED visitor
-
374  if (nmodl_local_to_range) {
-
375  logger->info("Running LOCAL to ASSIGNED visitor");
-
376  PerfVisitor().visit_program(*ast);
-
377  LocalToAssignedVisitor().visit_program(*ast);
-
378  SymtabVisitor(update_symtab).visit_program(*ast);
-
379  ast_to_nmodl(*ast, filepath("local_to_assigned"));
-
380  }
-
381 
-
382  {
-
383  // Compatibility Checking
-
384  logger->info("Running code compatibility checker");
-
385  // run perfvisitor to update read/write counts
-
386  PerfVisitor().visit_program(*ast);
-
387 
-
388  auto compatibility_visitor = CodegenCompatibilityVisitor(simulator_name);
-
389  // If we want to just check compatibility we return the result
-
390  if (only_check_compatibility) {
-
391  return compatibility_visitor.find_unhandled_ast_nodes(*ast);
-
392  }
-
393 
-
394  // If there is an incompatible construct and code generation is not forced exit NMODL
-
395  if (compatibility_visitor.find_unhandled_ast_nodes(*ast) && !force_codegen) {
-
396  return 1;
-
397  }
-
398  }
-
399 
-
400  if (show_symtab) {
-
401  logger->info("Printing symbol table");
-
402  auto symtab = ast->get_model_symbol_table();
-
403  symtab->print(std::cout);
-
404  }
-
405 
-
406  ast_to_nmodl(*ast, filepath("ast"));
+
317 
+
318  auto filename = fmt::format("{}.{}.{}.mod", modfile, std::to_string(count++), suffix);
+
319 
+
320  return (std::filesystem::path(scratch_dir) / filename).string();
+
321  };
+
322 
+
323  /// driver object creates lexer and parser, just call parser method
+ +
325 
+
326  /// parse mod file and construct ast
+
327  const auto& ast = driver.parse_file(file);
+
328 
+
329  /// whether to update existing symbol table or create new
+
330  /// one whenever we run symtab visitor.
+
331  bool update_symtab = false;
+
332 
+
333  /// just visit the ast
+
334  AstVisitor().visit_program(*ast);
+
335 
+
336  {
+
337  logger->info("Running argument renaming visitor");
+
338  RenameFunctionArgumentsVisitor().visit_program(*ast);
+
339  }
+
340 
+
341  /// construct symbol table
+
342  {
+
343  logger->info("Running symtab visitor");
+
344  SymtabVisitor(update_symtab).visit_program(*ast);
+
345  }
+
346 
+
347  /// Check some rules that ast should follow
+
348  {
+
349  logger->info("Running semantic analysis visitor");
+
350  if (SemanticAnalysisVisitor(oacc_backend).check(*ast)) {
+
351  return 1;
+
352  }
+
353  }
+
354 
+
355  /// use cnexp instead of after_cvode solve method
+
356  {
+
357  logger->info("Running CVode to cnexp visitor");
+
358  AfterCVodeToCnexpVisitor().visit_program(*ast);
+
359  ast_to_nmodl(*ast, filepath("after_cvode_to_cnexp"));
+
360  }
+
361 
+
362  /// GLOBAL to RANGE rename visitor
+
363  if (nmodl_global_to_range) {
+
364  // make sure to run perf visitor because code generator
+
365  // looks for read/write counts const/non-const declaration
+
366  PerfVisitor().visit_program(*ast);
+
367  // make sure to run the GlobalToRange visitor after all the
+
368  // reinitializations of Symtab
+
369  logger->info("Running GlobalToRange visitor");
+
370  GlobalToRangeVisitor(*ast).visit_program(*ast);
+
371  SymtabVisitor(update_symtab).visit_program(*ast);
+
372  ast_to_nmodl(*ast, filepath("global_to_range"));
+
373  }
+
374 
+
375  /// LOCAL to ASSIGNED visitor
+
376  if (nmodl_local_to_range) {
+
377  logger->info("Running LOCAL to ASSIGNED visitor");
+
378  PerfVisitor().visit_program(*ast);
+
379  LocalToAssignedVisitor().visit_program(*ast);
+
380  SymtabVisitor(update_symtab).visit_program(*ast);
+
381  ast_to_nmodl(*ast, filepath("local_to_assigned"));
+
382  }
+
383 
+
384  {
+
385  // Compatibility Checking
+
386  logger->info("Running code compatibility checker");
+
387  // run perfvisitor to update read/write counts
+
388  PerfVisitor().visit_program(*ast);
+
389 
+
390  auto compatibility_visitor = CodegenCompatibilityVisitor(simulator_name);
+
391  // If we want to just check compatibility we return the result
+
392  if (only_check_compatibility) {
+
393  return compatibility_visitor.find_unhandled_ast_nodes(*ast);
+
394  }
+
395 
+
396  // If there is an incompatible construct and code generation is not forced exit NMODL
+
397  if (compatibility_visitor.find_unhandled_ast_nodes(*ast) && !force_codegen) {
+
398  return 1;
+
399  }
+
400  }
+
401 
+
402  if (show_symtab) {
+
403  logger->info("Printing symbol table");
+
404  auto symtab = ast->get_model_symbol_table();
+
405  symtab->print(std::cout);
+
406  }
407 
-
408  if (json_ast) {
-
409  std::string file{scratch_dir};
-
410  file += "/";
-
411  file += modfile;
-
412  file += ".ast.json";
-
413  logger->info("Writing AST into {}", file);
-
414  JSONVisitor(file).write(*ast);
+
408  ast_to_nmodl(*ast, filepath("ast"));
+
409 
+
410  if (json_ast) {
+
411  std::filesystem::path file{scratch_dir};
+
412  file /= modfile + ".ast.json";
+
413  logger->info("Writing AST into {}", file.string());
+
414  JSONVisitor(file.string()).write(*ast);
415  }
416 
417  if (verbatim_rename) {
diff --git a/nmodl.html b/nmodl.html index 8935200ef..63021f19b 100644 --- a/nmodl.html +++ b/nmodl.html @@ -340,7 +340,7 @@

Submodules

nmodl.ode module

-nmodl.ode.differentiate2c(expression, dependent_var, vars, prev_expressions=None)[source]
+nmodl.ode.differentiate2c(expression, dependent_var, vars, prev_expressions=None, stepsize=0.001)[source]

Analytically differentiate supplied expression, return solution as C code.

Expression should be of the form “f(x)”, where “x” is the dependent variable, and the function returns df(x)/dx

@@ -364,6 +364,8 @@

SubmodulesReturns: diff --git a/notebooks/nmodl-kinetic-schemes.ipynb b/notebooks/nmodl-kinetic-schemes.ipynb index f77d90137..e314791b0 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-10-01T10:21:28.231435Z", - "iopub.status.busy": "2024-10-01T10:21:28.231238Z", - "iopub.status.idle": "2024-10-01T10:21:29.033845Z", - "shell.execute_reply": "2024-10-01T10:21:29.033024Z" + "iopub.execute_input": "2024-10-03T09:53:27.189915Z", + "iopub.status.busy": "2024-10-03T09:53:27.189431Z", + "iopub.status.idle": "2024-10-03T09:53:27.978488Z", + "shell.execute_reply": "2024-10-03T09:53:27.977663Z" } }, "outputs": [], @@ -169,10 +169,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.036443Z", - "iopub.status.busy": "2024-10-01T10:21:29.036030Z", - "iopub.status.idle": "2024-10-01T10:21:29.066797Z", - "shell.execute_reply": "2024-10-01T10:21:29.066164Z" + "iopub.execute_input": "2024-10-03T09:53:27.981149Z", + "iopub.status.busy": "2024-10-03T09:53:27.980922Z", + "iopub.status.idle": "2024-10-03T09:53:28.011658Z", + "shell.execute_reply": "2024-10-03T09:53:28.011033Z" } }, "outputs": [], @@ -277,10 +277,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.069059Z", - "iopub.status.busy": "2024-10-01T10:21:29.068722Z", - "iopub.status.idle": "2024-10-01T10:21:29.073735Z", - "shell.execute_reply": "2024-10-01T10:21:29.073036Z" + "iopub.execute_input": "2024-10-03T09:53:28.014217Z", + "iopub.status.busy": "2024-10-03T09:53:28.013738Z", + "iopub.status.idle": "2024-10-03T09:53:28.018271Z", + "shell.execute_reply": "2024-10-03T09:53:28.017636Z" } }, "outputs": [ @@ -323,10 +323,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.103779Z", - "iopub.status.busy": "2024-10-01T10:21:29.103327Z", - "iopub.status.idle": "2024-10-01T10:21:29.107488Z", - "shell.execute_reply": "2024-10-01T10:21:29.106918Z" + "iopub.execute_input": "2024-10-03T09:53:28.048586Z", + "iopub.status.busy": "2024-10-03T09:53:28.048123Z", + "iopub.status.idle": "2024-10-03T09:53:28.051868Z", + "shell.execute_reply": "2024-10-03T09:53:28.051320Z" } }, "outputs": [ @@ -367,10 +367,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.109512Z", - "iopub.status.busy": "2024-10-01T10:21:29.109150Z", - "iopub.status.idle": "2024-10-01T10:21:29.112981Z", - "shell.execute_reply": "2024-10-01T10:21:29.112414Z" + "iopub.execute_input": "2024-10-03T09:53:28.054128Z", + "iopub.status.busy": "2024-10-03T09:53:28.053610Z", + "iopub.status.idle": "2024-10-03T09:53:28.057453Z", + "shell.execute_reply": "2024-10-03T09:53:28.056897Z" }, "scrolled": true }, @@ -412,10 +412,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.114916Z", - "iopub.status.busy": "2024-10-01T10:21:29.114547Z", - "iopub.status.idle": "2024-10-01T10:21:29.118506Z", - "shell.execute_reply": "2024-10-01T10:21:29.117935Z" + "iopub.execute_input": "2024-10-03T09:53:28.059453Z", + "iopub.status.busy": "2024-10-03T09:53:28.059082Z", + "iopub.status.idle": "2024-10-03T09:53:28.062912Z", + "shell.execute_reply": "2024-10-03T09:53:28.062353Z" }, "scrolled": true }, @@ -459,10 +459,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:29.120491Z", - "iopub.status.busy": "2024-10-01T10:21:29.120121Z", - "iopub.status.idle": "2024-10-01T10:21:29.124711Z", - "shell.execute_reply": "2024-10-01T10:21:29.124162Z" + "iopub.execute_input": "2024-10-03T09:53:28.064721Z", + "iopub.status.busy": "2024-10-03T09:53:28.064520Z", + "iopub.status.idle": "2024-10-03T09:53:28.069195Z", + "shell.execute_reply": "2024-10-03T09:53:28.068634Z" } }, "outputs": [ diff --git a/notebooks/nmodl-python-tutorial.ipynb b/notebooks/nmodl-python-tutorial.ipynb index 8bf04d8fc..adf221707 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-10-01T10:21:34.429599Z", - "iopub.status.busy": "2024-10-01T10:21:34.429205Z", - "iopub.status.idle": "2024-10-01T10:21:35.235253Z", - "shell.execute_reply": "2024-10-01T10:21:35.234452Z" + "iopub.execute_input": "2024-10-03T09:53:33.628062Z", + "iopub.status.busy": "2024-10-03T09:53:33.627869Z", + "iopub.status.idle": "2024-10-03T09:53:34.423988Z", + "shell.execute_reply": "2024-10-03T09:53:34.423097Z" } }, "outputs": [], @@ -63,10 +63,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.237787Z", - "iopub.status.busy": "2024-10-01T10:21:35.237566Z", - "iopub.status.idle": "2024-10-01T10:21:35.267042Z", - "shell.execute_reply": "2024-10-01T10:21:35.266427Z" + "iopub.execute_input": "2024-10-03T09:53:34.426837Z", + "iopub.status.busy": "2024-10-03T09:53:34.426419Z", + "iopub.status.idle": "2024-10-03T09:53:34.455042Z", + "shell.execute_reply": "2024-10-03T09:53:34.454411Z" } }, "outputs": [], @@ -86,10 +86,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.269469Z", - "iopub.status.busy": "2024-10-01T10:21:35.269141Z", - "iopub.status.idle": "2024-10-01T10:21:35.272740Z", - "shell.execute_reply": "2024-10-01T10:21:35.272218Z" + "iopub.execute_input": "2024-10-03T09:53:34.457267Z", + "iopub.status.busy": "2024-10-03T09:53:34.456937Z", + "iopub.status.idle": "2024-10-03T09:53:34.460600Z", + "shell.execute_reply": "2024-10-03T09:53:34.460010Z" } }, "outputs": [], @@ -152,10 +152,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.274685Z", - "iopub.status.busy": "2024-10-01T10:21:35.274378Z", - "iopub.status.idle": "2024-10-01T10:21:35.278190Z", - "shell.execute_reply": "2024-10-01T10:21:35.277650Z" + "iopub.execute_input": "2024-10-03T09:53:34.462592Z", + "iopub.status.busy": "2024-10-03T09:53:34.462231Z", + "iopub.status.idle": "2024-10-03T09:53:34.466026Z", + "shell.execute_reply": "2024-10-03T09:53:34.465469Z" } }, "outputs": [], @@ -183,10 +183,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.280167Z", - "iopub.status.busy": "2024-10-01T10:21:35.279789Z", - "iopub.status.idle": "2024-10-01T10:21:35.283331Z", - "shell.execute_reply": "2024-10-01T10:21:35.282749Z" + "iopub.execute_input": "2024-10-03T09:53:34.467934Z", + "iopub.status.busy": "2024-10-03T09:53:34.467629Z", + "iopub.status.idle": "2024-10-03T09:53:34.471364Z", + "shell.execute_reply": "2024-10-03T09:53:34.470702Z" } }, "outputs": [ @@ -235,10 +235,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.285388Z", - "iopub.status.busy": "2024-10-01T10:21:35.284915Z", - "iopub.status.idle": "2024-10-01T10:21:35.289006Z", - "shell.execute_reply": "2024-10-01T10:21:35.288352Z" + "iopub.execute_input": "2024-10-03T09:53:34.473608Z", + "iopub.status.busy": "2024-10-03T09:53:34.473229Z", + "iopub.status.idle": "2024-10-03T09:53:34.477021Z", + "shell.execute_reply": "2024-10-03T09:53:34.476500Z" } }, "outputs": [], @@ -260,10 +260,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.291373Z", - "iopub.status.busy": "2024-10-01T10:21:35.290905Z", - "iopub.status.idle": "2024-10-01T10:21:35.294548Z", - "shell.execute_reply": "2024-10-01T10:21:35.293935Z" + "iopub.execute_input": "2024-10-03T09:53:34.479123Z", + "iopub.status.busy": "2024-10-03T09:53:34.478614Z", + "iopub.status.idle": "2024-10-03T09:53:34.482176Z", + "shell.execute_reply": "2024-10-03T09:53:34.481631Z" } }, "outputs": [ @@ -297,10 +297,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.296718Z", - "iopub.status.busy": "2024-10-01T10:21:35.296269Z", - "iopub.status.idle": "2024-10-01T10:21:35.303317Z", - "shell.execute_reply": "2024-10-01T10:21:35.302694Z" + "iopub.execute_input": "2024-10-03T09:53:34.484156Z", + "iopub.status.busy": "2024-10-03T09:53:34.483957Z", + "iopub.status.idle": "2024-10-03T09:53:34.491130Z", + "shell.execute_reply": "2024-10-03T09:53:34.490468Z" } }, "outputs": [ @@ -365,10 +365,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.305286Z", - "iopub.status.busy": "2024-10-01T10:21:35.304918Z", - "iopub.status.idle": "2024-10-01T10:21:35.309073Z", - "shell.execute_reply": "2024-10-01T10:21:35.308429Z" + "iopub.execute_input": "2024-10-03T09:53:34.493358Z", + "iopub.status.busy": "2024-10-03T09:53:34.492916Z", + "iopub.status.idle": "2024-10-03T09:53:34.496885Z", + "shell.execute_reply": "2024-10-03T09:53:34.496257Z" } }, "outputs": [ @@ -416,10 +416,10 @@ "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.311099Z", - "iopub.status.busy": "2024-10-01T10:21:35.310796Z", - "iopub.status.idle": "2024-10-01T10:21:35.314045Z", - "shell.execute_reply": "2024-10-01T10:21:35.313503Z" + "iopub.execute_input": "2024-10-03T09:53:34.499006Z", + "iopub.status.busy": "2024-10-03T09:53:34.498554Z", + "iopub.status.idle": "2024-10-03T09:53:34.501829Z", + "shell.execute_reply": "2024-10-03T09:53:34.501307Z" } }, "outputs": [], @@ -441,10 +441,10 @@ "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.315947Z", - "iopub.status.busy": "2024-10-01T10:21:35.315652Z", - "iopub.status.idle": "2024-10-01T10:21:35.319618Z", - "shell.execute_reply": "2024-10-01T10:21:35.319070Z" + "iopub.execute_input": "2024-10-03T09:53:34.503858Z", + "iopub.status.busy": "2024-10-03T09:53:34.503386Z", + "iopub.status.idle": "2024-10-03T09:53:34.507222Z", + "shell.execute_reply": "2024-10-03T09:53:34.506560Z" } }, "outputs": [ @@ -510,10 +510,10 @@ "execution_count": 12, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.321543Z", - "iopub.status.busy": "2024-10-01T10:21:35.321243Z", - "iopub.status.idle": "2024-10-01T10:21:35.324708Z", - "shell.execute_reply": "2024-10-01T10:21:35.324168Z" + "iopub.execute_input": "2024-10-03T09:53:34.509289Z", + "iopub.status.busy": "2024-10-03T09:53:34.508939Z", + "iopub.status.idle": "2024-10-03T09:53:34.512324Z", + "shell.execute_reply": "2024-10-03T09:53:34.511663Z" } }, "outputs": [ @@ -548,10 +548,10 @@ "execution_count": 13, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.326698Z", - "iopub.status.busy": "2024-10-01T10:21:35.326314Z", - "iopub.status.idle": "2024-10-01T10:21:35.329908Z", - "shell.execute_reply": "2024-10-01T10:21:35.329270Z" + "iopub.execute_input": "2024-10-03T09:53:34.514363Z", + "iopub.status.busy": "2024-10-03T09:53:34.513933Z", + "iopub.status.idle": "2024-10-03T09:53:34.517513Z", + "shell.execute_reply": "2024-10-03T09:53:34.516848Z" } }, "outputs": [ @@ -584,10 +584,10 @@ "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.332050Z", - "iopub.status.busy": "2024-10-01T10:21:35.331672Z", - "iopub.status.idle": "2024-10-01T10:21:35.335058Z", - "shell.execute_reply": "2024-10-01T10:21:35.334529Z" + "iopub.execute_input": "2024-10-03T09:53:34.519448Z", + "iopub.status.busy": "2024-10-03T09:53:34.519087Z", + "iopub.status.idle": "2024-10-03T09:53:34.522821Z", + "shell.execute_reply": "2024-10-03T09:53:34.522159Z" } }, "outputs": [ @@ -622,10 +622,10 @@ "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.337013Z", - "iopub.status.busy": "2024-10-01T10:21:35.336653Z", - "iopub.status.idle": "2024-10-01T10:21:35.340723Z", - "shell.execute_reply": "2024-10-01T10:21:35.340090Z" + "iopub.execute_input": "2024-10-03T09:53:34.525117Z", + "iopub.status.busy": "2024-10-03T09:53:34.524550Z", + "iopub.status.idle": "2024-10-03T09:53:34.528556Z", + "shell.execute_reply": "2024-10-03T09:53:34.527980Z" } }, "outputs": [ @@ -669,10 +669,10 @@ "execution_count": 16, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.342956Z", - "iopub.status.busy": "2024-10-01T10:21:35.342525Z", - "iopub.status.idle": "2024-10-01T10:21:35.347821Z", - "shell.execute_reply": "2024-10-01T10:21:35.347186Z" + "iopub.execute_input": "2024-10-03T09:53:34.530529Z", + "iopub.status.busy": "2024-10-03T09:53:34.530173Z", + "iopub.status.idle": "2024-10-03T09:53:34.535552Z", + "shell.execute_reply": "2024-10-03T09:53:34.534879Z" } }, "outputs": [ @@ -733,10 +733,10 @@ "execution_count": 17, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.349882Z", - "iopub.status.busy": "2024-10-01T10:21:35.349526Z", - "iopub.status.idle": "2024-10-01T10:21:35.353111Z", - "shell.execute_reply": "2024-10-01T10:21:35.352535Z" + "iopub.execute_input": "2024-10-03T09:53:34.537557Z", + "iopub.status.busy": "2024-10-03T09:53:34.537357Z", + "iopub.status.idle": "2024-10-03T09:53:34.540842Z", + "shell.execute_reply": "2024-10-03T09:53:34.540275Z" } }, "outputs": [], @@ -761,10 +761,10 @@ "execution_count": 18, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.355237Z", - "iopub.status.busy": "2024-10-01T10:21:35.354773Z", - "iopub.status.idle": "2024-10-01T10:21:35.364975Z", - "shell.execute_reply": "2024-10-01T10:21:35.364385Z" + "iopub.execute_input": "2024-10-03T09:53:34.542785Z", + "iopub.status.busy": "2024-10-03T09:53:34.542582Z", + "iopub.status.idle": "2024-10-03T09:53:34.552887Z", + "shell.execute_reply": "2024-10-03T09:53:34.552339Z" } }, "outputs": [], @@ -857,10 +857,10 @@ "execution_count": 19, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.366951Z", - "iopub.status.busy": "2024-10-01T10:21:35.366563Z", - "iopub.status.idle": "2024-10-01T10:21:35.369997Z", - "shell.execute_reply": "2024-10-01T10:21:35.369425Z" + "iopub.execute_input": "2024-10-03T09:53:34.554719Z", + "iopub.status.busy": "2024-10-03T09:53:34.554520Z", + "iopub.status.idle": "2024-10-03T09:53:34.558319Z", + "shell.execute_reply": "2024-10-03T09:53:34.557763Z" } }, "outputs": [ @@ -897,10 +897,10 @@ "execution_count": 20, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:35.372058Z", - "iopub.status.busy": "2024-10-01T10:21:35.371676Z", - "iopub.status.idle": "2024-10-01T10:21:35.376989Z", - "shell.execute_reply": "2024-10-01T10:21:35.376400Z" + "iopub.execute_input": "2024-10-03T09:53:34.560117Z", + "iopub.status.busy": "2024-10-03T09:53:34.559940Z", + "iopub.status.idle": "2024-10-03T09:53:34.565394Z", + "shell.execute_reply": "2024-10-03T09:53:34.564851Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-conductance.ipynb b/notebooks/nmodl-sympy-conductance.ipynb index a09e3e83b..471a11f7f 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-10-01T10:21:37.821174Z", - "iopub.status.busy": "2024-10-01T10:21:37.820574Z", - "iopub.status.idle": "2024-10-01T10:21:38.618818Z", - "shell.execute_reply": "2024-10-01T10:21:38.617989Z" + "iopub.execute_input": "2024-10-03T09:53:37.029702Z", + "iopub.status.busy": "2024-10-03T09:53:37.029512Z", + "iopub.status.idle": "2024-10-03T09:53:37.826943Z", + "shell.execute_reply": "2024-10-03T09:53:37.826135Z" } }, "outputs": [], @@ -103,10 +103,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:38.621301Z", - "iopub.status.busy": "2024-10-01T10:21:38.621084Z", - "iopub.status.idle": "2024-10-01T10:21:38.651744Z", - "shell.execute_reply": "2024-10-01T10:21:38.651083Z" + "iopub.execute_input": "2024-10-03T09:53:37.829354Z", + "iopub.status.busy": "2024-10-03T09:53:37.829140Z", + "iopub.status.idle": "2024-10-03T09:53:37.859411Z", + "shell.execute_reply": "2024-10-03T09:53:37.858638Z" } }, "outputs": [], @@ -149,10 +149,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:38.654226Z", - "iopub.status.busy": "2024-10-01T10:21:38.653834Z", - "iopub.status.idle": "2024-10-01T10:21:38.931262Z", - "shell.execute_reply": "2024-10-01T10:21:38.930514Z" + "iopub.execute_input": "2024-10-03T09:53:37.861808Z", + "iopub.status.busy": "2024-10-03T09:53:37.861481Z", + "iopub.status.idle": "2024-10-03T09:53:38.135604Z", + "shell.execute_reply": "2024-10-03T09:53:38.134960Z" } }, "outputs": [ @@ -196,10 +196,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:38.933516Z", - "iopub.status.busy": "2024-10-01T10:21:38.933264Z", - "iopub.status.idle": "2024-10-01T10:21:39.065959Z", - "shell.execute_reply": "2024-10-01T10:21:39.065329Z" + "iopub.execute_input": "2024-10-03T09:53:38.137950Z", + "iopub.status.busy": "2024-10-03T09:53:38.137502Z", + "iopub.status.idle": "2024-10-03T09:53:38.269859Z", + "shell.execute_reply": "2024-10-03T09:53:38.269248Z" } }, "outputs": [ @@ -243,10 +243,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.068045Z", - "iopub.status.busy": "2024-10-01T10:21:39.067838Z", - "iopub.status.idle": "2024-10-01T10:21:39.076495Z", - "shell.execute_reply": "2024-10-01T10:21:39.075931Z" + "iopub.execute_input": "2024-10-03T09:53:38.272256Z", + "iopub.status.busy": "2024-10-03T09:53:38.271871Z", + "iopub.status.idle": "2024-10-03T09:53:38.280375Z", + "shell.execute_reply": "2024-10-03T09:53:38.279751Z" } }, "outputs": [ @@ -290,10 +290,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.078383Z", - "iopub.status.busy": "2024-10-01T10:21:39.078181Z", - "iopub.status.idle": "2024-10-01T10:21:39.095112Z", - "shell.execute_reply": "2024-10-01T10:21:39.094537Z" + "iopub.execute_input": "2024-10-03T09:53:38.282442Z", + "iopub.status.busy": "2024-10-03T09:53:38.281980Z", + "iopub.status.idle": "2024-10-03T09:53:38.299215Z", + "shell.execute_reply": "2024-10-03T09:53:38.298551Z" } }, "outputs": [ @@ -337,10 +337,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.097092Z", - "iopub.status.busy": "2024-10-01T10:21:39.096877Z", - "iopub.status.idle": "2024-10-01T10:21:39.215347Z", - "shell.execute_reply": "2024-10-01T10:21:39.214752Z" + "iopub.execute_input": "2024-10-03T09:53:38.301612Z", + "iopub.status.busy": "2024-10-03T09:53:38.301136Z", + "iopub.status.idle": "2024-10-03T09:53:38.419523Z", + "shell.execute_reply": "2024-10-03T09:53:38.418841Z" } }, "outputs": [ @@ -400,10 +400,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.217531Z", - "iopub.status.busy": "2024-10-01T10:21:39.217320Z", - "iopub.status.idle": "2024-10-01T10:21:39.313393Z", - "shell.execute_reply": "2024-10-01T10:21:39.312662Z" + "iopub.execute_input": "2024-10-03T09:53:38.421923Z", + "iopub.status.busy": "2024-10-03T09:53:38.421414Z", + "iopub.status.idle": "2024-10-03T09:53:38.515903Z", + "shell.execute_reply": "2024-10-03T09:53:38.515301Z" } }, "outputs": [ @@ -456,10 +456,10 @@ "execution_count": 9, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:39.315719Z", - "iopub.status.busy": "2024-10-01T10:21:39.315219Z", - "iopub.status.idle": "2024-10-01T10:21:39.388710Z", - "shell.execute_reply": "2024-10-01T10:21:39.387983Z" + "iopub.execute_input": "2024-10-03T09:53:38.518071Z", + "iopub.status.busy": "2024-10-03T09:53:38.517679Z", + "iopub.status.idle": "2024-10-03T09:53:38.591539Z", + "shell.execute_reply": "2024-10-03T09:53:38.590857Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-cnexp.ipynb b/notebooks/nmodl-sympy-solver-cnexp.ipynb index bec37eafb..9841e393f 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-10-01T10:21:41.326725Z", - "iopub.status.busy": "2024-10-01T10:21:41.326155Z", - "iopub.status.idle": "2024-10-01T10:21:42.137111Z", - "shell.execute_reply": "2024-10-01T10:21:42.136334Z" + "iopub.execute_input": "2024-10-03T09:53:40.365376Z", + "iopub.status.busy": "2024-10-03T09:53:40.364829Z", + "iopub.status.idle": "2024-10-03T09:53:41.156781Z", + "shell.execute_reply": "2024-10-03T09:53:41.155887Z" } }, "outputs": [], @@ -79,10 +79,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.139932Z", - "iopub.status.busy": "2024-10-01T10:21:42.139501Z", - "iopub.status.idle": "2024-10-01T10:21:42.170809Z", - "shell.execute_reply": "2024-10-01T10:21:42.170151Z" + "iopub.execute_input": "2024-10-03T09:53:41.159607Z", + "iopub.status.busy": "2024-10-03T09:53:41.159193Z", + "iopub.status.idle": "2024-10-03T09:53:41.190016Z", + "shell.execute_reply": "2024-10-03T09:53:41.189404Z" } }, "outputs": [], @@ -123,10 +123,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.173320Z", - "iopub.status.busy": "2024-10-01T10:21:42.172853Z", - "iopub.status.idle": "2024-10-01T10:21:42.610616Z", - "shell.execute_reply": "2024-10-01T10:21:42.609890Z" + "iopub.execute_input": "2024-10-03T09:53:41.192396Z", + "iopub.status.busy": "2024-10-03T09:53:41.191997Z", + "iopub.status.idle": "2024-10-03T09:53:41.609066Z", + "shell.execute_reply": "2024-10-03T09:53:41.608387Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.612789Z", - "iopub.status.busy": "2024-10-01T10:21:42.612376Z", - "iopub.status.idle": "2024-10-01T10:21:42.726609Z", - "shell.execute_reply": "2024-10-01T10:21:42.725883Z" + "iopub.execute_input": "2024-10-03T09:53:41.611297Z", + "iopub.status.busy": "2024-10-03T09:53:41.610852Z", + "iopub.status.idle": "2024-10-03T09:53:41.722451Z", + "shell.execute_reply": "2024-10-03T09:53:41.721774Z" } }, "outputs": [ @@ -207,10 +207,10 @@ "execution_count": 5, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.728917Z", - "iopub.status.busy": "2024-10-01T10:21:42.728504Z", - "iopub.status.idle": "2024-10-01T10:21:42.929400Z", - "shell.execute_reply": "2024-10-01T10:21:42.928749Z" + "iopub.execute_input": "2024-10-03T09:53:41.724817Z", + "iopub.status.busy": "2024-10-03T09:53:41.724390Z", + "iopub.status.idle": "2024-10-03T09:53:41.924048Z", + "shell.execute_reply": "2024-10-03T09:53:41.923429Z" } }, "outputs": [ @@ -255,10 +255,10 @@ "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:42.931679Z", - "iopub.status.busy": "2024-10-01T10:21:42.931276Z", - "iopub.status.idle": "2024-10-01T10:21:43.092553Z", - "shell.execute_reply": "2024-10-01T10:21:43.091899Z" + "iopub.execute_input": "2024-10-03T09:53:41.926283Z", + "iopub.status.busy": "2024-10-03T09:53:41.925871Z", + "iopub.status.idle": "2024-10-03T09:53:42.084576Z", + "shell.execute_reply": "2024-10-03T09:53:42.083899Z" } }, "outputs": [ @@ -303,10 +303,10 @@ "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:43.094821Z", - "iopub.status.busy": "2024-10-01T10:21:43.094408Z", - "iopub.status.idle": "2024-10-01T10:21:44.860368Z", - "shell.execute_reply": "2024-10-01T10:21:44.859636Z" + "iopub.execute_input": "2024-10-03T09:53:42.086953Z", + "iopub.status.busy": "2024-10-03T09:53:42.086545Z", + "iopub.status.idle": "2024-10-03T09:53:43.836453Z", + "shell.execute_reply": "2024-10-03T09:53:43.835742Z" } }, "outputs": [ @@ -351,10 +351,10 @@ "execution_count": 8, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:44.862696Z", - "iopub.status.busy": "2024-10-01T10:21:44.862182Z", - "iopub.status.idle": "2024-10-01T10:21:47.151307Z", - "shell.execute_reply": "2024-10-01T10:21:47.150583Z" + "iopub.execute_input": "2024-10-03T09:53:43.838762Z", + "iopub.status.busy": "2024-10-03T09:53:43.838541Z", + "iopub.status.idle": "2024-10-03T09:53:46.087265Z", + "shell.execute_reply": "2024-10-03T09:53:46.086510Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-derivimplicit.ipynb b/notebooks/nmodl-sympy-solver-derivimplicit.ipynb index 84066bb72..b1a09c50c 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-10-01T10:21:48.814953Z", - "iopub.status.busy": "2024-10-01T10:21:48.814455Z", - "iopub.status.idle": "2024-10-01T10:21:49.625080Z", - "shell.execute_reply": "2024-10-01T10:21:49.624212Z" + "iopub.execute_input": "2024-10-03T09:53:47.686836Z", + "iopub.status.busy": "2024-10-03T09:53:47.686621Z", + "iopub.status.idle": "2024-10-03T09:53:48.485520Z", + "shell.execute_reply": "2024-10-03T09:53:48.484603Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:49.627765Z", - "iopub.status.busy": "2024-10-01T10:21:49.627356Z", - "iopub.status.idle": "2024-10-01T10:21:49.658492Z", - "shell.execute_reply": "2024-10-01T10:21:49.657831Z" + "iopub.execute_input": "2024-10-03T09:53:48.488070Z", + "iopub.status.busy": "2024-10-03T09:53:48.487866Z", + "iopub.status.idle": "2024-10-03T09:53:48.518976Z", + "shell.execute_reply": "2024-10-03T09:53:48.518304Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:49.660789Z", - "iopub.status.busy": "2024-10-01T10:21:49.660517Z", - "iopub.status.idle": "2024-10-01T10:21:50.155126Z", - "shell.execute_reply": "2024-10-01T10:21:50.154469Z" + "iopub.execute_input": "2024-10-03T09:53:48.521438Z", + "iopub.status.busy": "2024-10-03T09:53:48.521097Z", + "iopub.status.idle": "2024-10-03T09:53:49.023871Z", + "shell.execute_reply": "2024-10-03T09:53:49.023158Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:50.157391Z", - "iopub.status.busy": "2024-10-01T10:21:50.156939Z", - "iopub.status.idle": "2024-10-01T10:21:50.455120Z", - "shell.execute_reply": "2024-10-01T10:21:50.454384Z" + "iopub.execute_input": "2024-10-03T09:53:49.026236Z", + "iopub.status.busy": "2024-10-03T09:53:49.025963Z", + "iopub.status.idle": "2024-10-03T09:53:49.320740Z", + "shell.execute_reply": "2024-10-03T09:53:49.320021Z" } }, "outputs": [ diff --git a/notebooks/nmodl-sympy-solver-sparse.ipynb b/notebooks/nmodl-sympy-solver-sparse.ipynb index 2f06803cc..5ab01e354 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-10-01T10:21:51.946600Z", - "iopub.status.busy": "2024-10-01T10:21:51.946193Z", - "iopub.status.idle": "2024-10-01T10:21:52.775471Z", - "shell.execute_reply": "2024-10-01T10:21:52.774694Z" + "iopub.execute_input": "2024-10-03T09:53:50.821936Z", + "iopub.status.busy": "2024-10-03T09:53:50.821463Z", + "iopub.status.idle": "2024-10-03T09:53:51.626330Z", + "shell.execute_reply": "2024-10-03T09:53:51.625563Z" } }, "outputs": [], @@ -56,10 +56,10 @@ "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:52.778275Z", - "iopub.status.busy": "2024-10-01T10:21:52.777839Z", - "iopub.status.idle": "2024-10-01T10:21:52.809576Z", - "shell.execute_reply": "2024-10-01T10:21:52.808846Z" + "iopub.execute_input": "2024-10-03T09:53:51.629015Z", + "iopub.status.busy": "2024-10-03T09:53:51.628599Z", + "iopub.status.idle": "2024-10-03T09:53:51.659114Z", + "shell.execute_reply": "2024-10-03T09:53:51.658483Z" } }, "outputs": [], @@ -100,10 +100,10 @@ "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:52.812049Z", - "iopub.status.busy": "2024-10-01T10:21:52.811709Z", - "iopub.status.idle": "2024-10-01T10:21:53.314250Z", - "shell.execute_reply": "2024-10-01T10:21:53.313504Z" + "iopub.execute_input": "2024-10-03T09:53:51.661347Z", + "iopub.status.busy": "2024-10-03T09:53:51.661019Z", + "iopub.status.idle": "2024-10-03T09:53:52.160649Z", + "shell.execute_reply": "2024-10-03T09:53:52.159884Z" } }, "outputs": [ @@ -165,10 +165,10 @@ "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-01T10:21:53.316448Z", - "iopub.status.busy": "2024-10-01T10:21:53.316177Z", - "iopub.status.idle": "2024-10-01T10:21:53.614222Z", - "shell.execute_reply": "2024-10-01T10:21:53.613471Z" + "iopub.execute_input": "2024-10-03T09:53:52.163142Z", + "iopub.status.busy": "2024-10-03T09:53:52.162671Z", + "iopub.status.idle": "2024-10-03T09:53:52.461865Z", + "shell.execute_reply": "2024-10-03T09:53:52.461190Z" } }, "outputs": [ diff --git a/searchindex.js b/searchindex.js index dd429d04b..25f7b1e08 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["contents/cable_equations", "contents/currents", "contents/globals", "contents/ions", "contents/pointers", "contents/visitors", "contributing", "doxygen", "index", "install", "language", "modules", "nmodl", "notebooks", "notebooks/README", "notebooks/nmodl-kinetic-schemes", "notebooks/nmodl-linear-solver", "notebooks/nmodl-nonlinear-solver", "notebooks/nmodl-odes-overview", "notebooks/nmodl-python-tutorial", "notebooks/nmodl-sympy-conductance", "notebooks/nmodl-sympy-solver-cnexp", "notebooks/nmodl-sympy-solver-derivimplicit", "notebooks/nmodl-sympy-solver-sparse", "readme"], "filenames": ["contents/cable_equations.rst", "contents/currents.rst", "contents/globals.rst", "contents/ions.rst", "contents/pointers.rst", "contents/visitors.rst", "contributing.rst", "doxygen.rst", "index.rst", "install.rst", "language.rst", "modules.rst", "nmodl.rst", "notebooks.rst", "notebooks/README.rst", "notebooks/nmodl-kinetic-schemes.ipynb", "notebooks/nmodl-linear-solver.ipynb", "notebooks/nmodl-nonlinear-solver.ipynb", "notebooks/nmodl-odes-overview.ipynb", "notebooks/nmodl-python-tutorial.ipynb", "notebooks/nmodl-sympy-conductance.ipynb", "notebooks/nmodl-sympy-solver-cnexp.ipynb", "notebooks/nmodl-sympy-solver-derivimplicit.ipynb", "notebooks/nmodl-sympy-solver-sparse.ipynb", "readme.rst"], "titles": ["Cable Equation", "Currents", "Global Variables", "Ions", "NMODL \u201cpointers\u201d", "Visitors", "Contributing to the NMODL Framework", "C++ API", "About NMODL", "Installing the NMODL Framework", "The NEURON MODeling language", "Python package", "Module contents", "The NMODL Jupyter notebooks", "NMODL jupyter notebooks", "NMODL Kinetic Scheme", "NMODL LINEAR solver", "NMODL NONLINEAR solver", "NMODL integration of ODEs", "NMODL Python Interface Tutorial", "NMODL CONDUCTANCE", "NMODL SympySolver - cnexp", "NMODL SympySolver - derivimplicit", "NMODL SympySolver - sparse", "The NMODL Framework"], "terms": {"neuron": [0, 1, 3, 4, 5, 8, 9, 12, 15, 17, 19, 20, 21, 24], "ha": [0, 1, 6, 15], "sophist": 0, "system": [0, 12, 15, 16, 18, 21, 22, 23], "allow": [0, 2, 3, 5, 6, 15, 19, 20, 24], "user": [0, 9, 15, 17, 18, 20, 24], "describ": [0, 2, 9, 15, 18, 20, 21, 22, 23, 24], "geometri": 0, "here": [0, 1, 5, 6, 13, 19, 20, 21, 24], "we": [0, 1, 2, 3, 5, 6, 9, 10, 13, 15, 18, 19, 21, 24], "ll": [0, 1, 3], "try": [0, 8, 9], "deriv": [0, 2, 3, 5, 8, 10, 12, 15, 17, 19, 21, 22, 23, 24], "manner": [0, 4], "hide": 0, "those": [0, 19], "detail": [0, 1, 14, 18, 19, 24], "whenev": [0, 19], "thei": [0, 2, 4, 12, 15, 17, 18], "re": [0, 2, 3, 6], "relev": [0, 3, 6], "nmodl": [0, 2, 3, 5, 10, 11], "pleas": [0, 1, 6, 9, 15, 20, 21, 22, 23], "consult": [0, 9], "its": [0, 3, 12], "relat": [0, 1, 10, 18], "document": [0, 1, 8, 12], "one": [0, 1, 2, 3, 6, 9, 12, 15, 19, 24], "public": 0, "e": [0, 1, 2, 3, 4, 6, 9, 12, 15, 19, 20, 24], "g": [0, 1, 2, 3, 4, 6, 9, 12, 15, 19, 20, 21, 24], "The": [0, 1, 2, 3, 5, 6, 8, 9, 12, 15, 17, 18, 19, 20, 21, 22, 23], "simul": [0, 4, 18, 20, 24], "environ": [0, 6, 9, 24], "In": [0, 1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 19, 24], "order": [0, 5, 6, 9, 12, 15, 19, 20, 21], "model": [0, 3, 8, 13, 24], "an": [0, 1, 2, 3, 5, 9, 12, 14, 15, 17, 18, 19, 20, 21, 24], "electr": [0, 1], "circuit": [0, 1], "first": [0, 3, 5, 6, 19, 20, 21], "pick": [0, 9], "point": [0, 1, 3, 4, 5, 9, 19, 24], "along": [0, 9], "which": [0, 1, 2, 3, 6, 9, 12, 13, 15, 17, 20, 21, 22, 23, 24], "voltag": [0, 3, 4], "call": [0, 1, 2, 3, 4, 9, 12, 17, 19], "them": [0, 2, 9, 16], "node": [0, 1, 4, 5, 8, 12, 19, 24], "connect": 0, "form": [0, 12, 15, 17, 21, 24], "graph": 0, "At": 0, "everi": [0, 2, 3, 5, 6, 19, 24], "branch": [0, 1, 6], "place": [0, 9], "see": [0, 1, 2, 3, 5, 15, 16, 18, 19, 20, 21, 22, 23, 24], "figur": [0, 1, 3], "1": [0, 1, 3, 5, 8, 9, 12, 17, 18, 19, 24], "illustr": [0, 1], "placement": 0, "neurit": 0, "two": [0, 2, 3, 9, 20], "adjac": [0, 3], "ar": [0, 1, 2, 3, 4, 5, 6, 9, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "resistor": 0, "interest": [0, 9], "behaviour": [0, 2, 19], "come": 0, "from": [0, 2, 3, 5, 6, 9, 10, 12, 13, 16, 17, 19, 20, 21, 24], "differ": [0, 1, 2, 4, 5, 17, 18, 19, 20], "ion": [0, 1, 8, 19, 20, 24], "concentr": [0, 8, 15], "across": [0, 2], "membran": [0, 1, 3, 24], "thi": [0, 1, 2, 3, 4, 5, 6, 9, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "i": [0, 1, 2, 3, 4, 5, 9, 10, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "upheld": 0, "three": [0, 2, 3], "process": [0, 1, 3, 10, 24], "larg": [0, 12, 17], "imperm": 0, "effect": [0, 1, 2], "creat": [0, 2, 3, 5, 6, 12, 13, 19, 24], "barrier": 0, "b": [0, 2, 3, 6, 12, 15, 22, 23], "gate": 0, "channel": [0, 1, 5, 19, 24], "condition": [0, 3], "quickli": [0, 24], "cross": [0, 1], "c": [0, 2, 3, 6, 8, 9, 10, 12, 15, 21, 24], "pump": 0, "continu": [0, 1, 13], "restor": 0, "rest": [0, 2], "state": [0, 2, 3, 5, 10, 15, 17, 19, 20, 21, 22, 23, 24], "fact": [0, 3], "mostli": 0, "mean": [0, 1, 2, 3, 4, 15], "behav": [0, 2], "like": [0, 2, 5, 6, 24], "dielectr": 0, "materi": 0, "can": [0, 1, 2, 3, 4, 5, 6, 9, 12, 13, 15, 16, 17, 18, 19, 21, 24], "therefor": [0, 2, 3, 4], "capacitor": [0, 1], "simpli": [0, 2, 5, 9, 17, 19], "current": [0, 2, 4, 6, 8, 12, 15, 17, 20, 21, 24], "give": [0, 3, 20, 21], "rise": 0, "shown": [0, 5, 19], "2": [0, 1, 2, 3, 5, 8, 9, 12, 19], "total": [0, 1, 3], "tran": [0, 1], "i_m": 0, "due": [0, 1, 3, 9, 18], "properti": [0, 3, 5, 19], "i_c": 0, "all": [0, 2, 3, 5, 6, 9, 10, 12, 19, 20, 21, 24], "mechan": [0, 1, 2, 3, 4, 10], "specif": [0, 1, 2, 3, 9, 14, 15, 19, 24], "repres": [0, 1, 3, 10, 19, 24], "start": [0, 5, 6, 8, 12, 13, 14, 19], "write": [0, 2, 5, 6, 10, 13, 19, 20, 24], "down": [0, 24], "let": [0, 5, 19], "": [0, 1, 2, 3, 6, 9, 17, 19, 24], "recal": 0, "formula": 0, "ohm": 0, "law": [0, 8, 18], "frac": [0, 15, 17, 18, 21], "dv": [0, 1, 20], "dt": [0, 12, 15, 17, 18, 21, 22, 23], "qquad": 0, "delta": [0, 15, 18, 20], "v": [0, 2, 3, 6, 20, 22, 23, 24], "r": [0, 3, 9, 12, 15, 20], "us": [0, 2, 3, 5, 6, 8, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23], "kirchoff": 0, "v_1": 0, "i_": 0, "0": [0, 2, 3, 5, 9, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "lead": 0, "rewritten": [0, 17], "term": [0, 12, 15], "follow": [0, 1, 2, 3, 6, 9, 10, 15, 20, 21, 22, 23, 24], "dv_1": 0, "r_": 0, "v_": 0, "discret": [0, 10], "implicit": [0, 12, 22, 23], "euler": [0, 10, 12, 15, 18, 22, 23], "n": [0, 6, 12, 16, 17, 18, 19, 20, 24], "t": [0, 2, 3, 6, 12, 17, 18, 19, 20, 21], "left": [0, 2, 12, 15, 18], "right": [0, 12, 15], "collect": [0, 2], "unpleas": 0, "sinc": [0, 1, 2, 3, 4, 21], "make": [0, 2, 4, 6, 9, 15, 20], "non": [0, 1, 2, 12, 17, 18, 20], "linear": [0, 8, 10, 12, 14, 17, 20, 21, 22, 23], "approx": [0, 12, 21], "i_1": 0, "di_1": 0, "g_i": [0, 20], "where": [0, 6, 9, 12, 15, 17, 19, 20, 21], "depend": [0, 2, 3, 6, 9, 12, 20, 21], "differenti": [0, 9, 12, 15, 17, 19, 20, 21], "conduct": [0, 8, 10, 14, 24], "refer": [1, 3, 4, 9, 15], "part": [1, 3, 21, 22, 23], "rate": [1, 2, 5, 15, 18, 19], "charg": 1, "pass": [1, 3, 6, 9, 15, 20, 21, 22, 23, 24], "through": [1, 6], "show": [1, 3, 19, 20, 24], "coupl": [1, 18, 22, 23], "segment": [1, 3], "when": [1, 2, 3, 6, 19, 21, 22, 23], "present": [1, 9], "handl": [1, 21], "intern": 1, "mod": [1, 2, 3, 5, 6, 9, 15, 17, 18, 19, 20, 24], "file": [1, 2, 3, 5, 6, 9, 10, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "comput": [1, 2, 3, 24], "white": 1, "box": 1, "label": 1, "sum": 1, "per": [1, 2, 3], "turn": 1, "wire": 1, "diagram": 1, "four": 1, "For": [1, 2, 3, 5, 6, 9, 14, 15, 16, 19, 20, 21, 22, 23, 24], "zero": [1, 8, 15], "aread": 1, "consist": [1, 15], "area": [1, 8], "still": [1, 2, 6, 10, 20], "introduc": [1, 2, 20], "A": [1, 3, 4, 15, 17, 18], "view": [1, 11, 12, 24], "color": 1, "each": [1, 2, 3, 4, 12, 18, 20, 21, 24], "nonspecif": 1, "i1": 1, "ina": [1, 3, 4, 19, 20], "ica": [1, 3, 5, 19], "onli": [1, 2, 3, 5, 6, 17, 18, 19, 21, 24], "light": 1, "yellow": 1, "There": [1, 3, 15, 19, 21], "requir": [1, 2, 6, 9, 20, 24], "cabl": [1, 8], "equat": [1, 3, 8, 9, 12, 15, 16, 17, 18, 19, 21, 22, 23], "discuss": [1, 6, 24], "individu": [1, 2], "separ": [1, 3], "check": [1, 3, 6, 19, 20, 24], "how": [1, 5, 17, 18, 19, 20, 24], "addit": [1, 20, 24], "contribut": [1, 3, 24], "express": [1, 3, 4, 12, 15, 19, 20], "accoci": 1, "ani": [1, 2, 5, 6, 10, 12, 18, 19, 21, 24], "It": [1, 2, 3, 6, 12, 19, 20, 24], "syntax": [1, 12, 24], "name": [1, 2, 3, 5, 9, 12, 19, 24], "assum": [1, 5, 15, 19, 21], "need": [1, 2, 3, 6, 9, 20], "assign": [1, 2, 3, 5, 10, 12, 19, 20, 24], "valu": [1, 3, 4, 9, 12, 17, 19, 21], "also": [1, 2, 3, 6, 9, 15, 16, 17, 18, 19, 20, 24], "list": [1, 2, 3, 4, 9, 12, 19, 21, 23, 24], "block": [1, 2, 3, 5, 8, 10, 16, 17, 19, 20, 21, 22, 23, 24], "unit": [1, 2, 5, 6, 9, 10, 15, 16, 17, 19, 20, 21, 22, 23, 24], "densiti": [1, 3], "ma": [1, 3, 5, 19], "cm2": [1, 3, 5, 19], "local": [1, 3, 5, 6, 8, 9, 10, 12, 15, 19, 20, 21, 22, 23, 24], "store": [1, 2, 3, 4, 9, 24], "regular": [1, 2], "rang": [1, 2, 4, 5, 10, 19, 20, 24], "variabl": [1, 3, 5, 6, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24], "gener": [1, 2, 3, 6, 8, 10, 15, 20, 21, 22, 23], "code": [1, 2, 3, 5, 6, 8, 10, 12, 21], "must": [1, 2, 3, 6, 9, 12, 15], "ensur": [1, 6], "updat": [1, 3, 6], "remain": 1, "finit": [1, 17], "di": [1, 20], "exist": [2, 3, 6, 19, 20, 24], "visibl": 2, "scope": [2, 19, 21, 24], "wai": [2, 3, 6, 9, 15, 18], "read": [2, 3, 5, 10, 19, 20], "written": [2, 3, 15, 18], "insid": [2, 3, 15], "consid": [2, 3, 4, 6, 15, 19], "singl": [2, 4, 21], "instanc": [2, 3, 6, 9, 12], "share": [2, 3, 9, 24], "static": 2, "doubl": [2, 4, 6, 19, 24], "safe": [2, 6, 16], "set": [2, 3, 9, 12, 15, 16, 17, 18], "via": [2, 3, 19], "while": [2, 6, 10], "within": [2, 15, 17, 19, 20], "other": [2, 3, 4, 8, 10, 12, 18, 21], "context": 2, "includ": [2, 3, 6, 10, 12, 15, 19, 24], "count": 2, "thread_saf": 2, "mark": 2, "assumpt": 2, "multipl": [2, 3, 6, 19], "Not": 2, "threadsaf": [2, 10], "would": [2, 3, 5, 6, 9, 15, 24], "As": [2, 5, 6, 19], "result": [2, 3, 12, 18, 19, 20, 24], "appear": [2, 3], "explicitli": 2, "made": 2, "undefin": 2, "either": [2, 3, 6, 9], "treat": [2, 4], "were": 2, "never": 2, "alwai": [2, 18], "howev": [2, 3, 10], "mention": 2, "have": [2, 3, 4, 5, 6, 9, 13, 15, 19, 21, 22, 23], "same": [2, 3, 15, 19, 21, 24], "aren": 2, "possibl": [2, 6, 12, 20], "note": [2, 9, 19, 24], "nocmodl": [2, 9, 21], "promot": 2, "even": [2, 6, 19, 24], "isn": [2, 3], "henc": [2, 3], "scratch": [2, 24], "pad": 2, "memori": [2, 3, 9, 12, 24], "histor": 2, "ve": [2, 3], "been": [2, 3, 6], "advertis": 2, "optim": [2, 24], "techniqu": [2, 24], "reduc": [2, 18], "footprint": 2, "canon": 2, "exampl": [2, 5, 6, 8, 9, 12, 17], "hh": [2, 9], "common": [2, 3, 12, 16, 24], "pattern": [2, 3, 19], "return": [2, 5, 9, 12, 15, 19, 20, 21, 22, 23, 24], "procedur": [2, 10], "m": [2, 5, 6, 15, 19, 20, 21, 22, 23, 24], "minf": [2, 21], "mtau": [2, 21], "mv": [2, 3, 5, 19, 24], "tabl": [2, 10, 15, 20, 21, 22, 23, 24], "celsiu": [2, 6], "100": [2, 5], "TO": 2, "WITH": 2, "200": [2, 19], "befor": [2, 3, 4, 6, 9, 10, 12, 15], "technic": 2, "copi": [2, 3, 9, 24], "could": [2, 3, 9, 19], "dm": [2, 15, 21], "author": 2, "doesn": [2, 6, 17], "record": 2, "might": [2, 3, 6], "wast": 2, "under": [2, 9, 24], "circumst": 2, "multi": [2, 24], "solut": [2, 12, 16, 17, 18, 20, 21], "wa": [2, 20, 21, 24], "core": 2, "processor": 2, "arriv": 2, "suddenli": 2, "keyword": [2, 8, 9, 20, 24], "ignor": 2, "entir": [2, 9, 19], "gbl": 2, "guarante": 2, "synchron": 2, "happen": [2, 3], "act": 2, "unchang": 2, "distinguish": 2, "between": 2, "level": [2, 3, 8, 15, 18, 19, 21, 22, 23], "ast": [2, 6, 8, 10, 11, 13, 15, 20, 21, 22, 23, 24], "Then": 2, "concept": 2, "convert": [2, 3, 6, 12, 15, 18, 19, 22, 23, 24], "permit": 2, "simd": [2, 3], "lane": 2, "gpu": [2, 19, 24], "similar": [2, 24], "regist": [2, 3], "doubscal": 2, "hoc_scdoub": 2, "g_w_shared_glob": 2, "doubvec": 2, "hoc_vdoub": 2, "g_arr_shared_glob": 2, "3": [2, 3, 6, 8, 9, 12, 18, 19, 22, 23, 24], "hoc_register_var": 2, "hoc_intfunc": 2, "stabl": [2, 4, 12, 18], "address": [2, 19], "some": [2, 3, 9, 10, 12, 17, 19, 20, 21], "element": [2, 15], "arrai": [2, 3, 4], "contigu": [2, 4], "strategi": 2, "associ": [2, 3, 4, 18, 19], "necessarili": [2, 3], "uniqu": [2, 12], "u": [2, 5, 6, 15, 21, 24], "modulo": 2, "arithmet": 2, "__shared__": 2, "cuda": 2, "slightli": [2, 19], "surpris": 2, "net_rec": [2, 10, 24], "becaus": [2, 4, 9], "produc": [2, 6], "caus": 2, "segfault": 2, "These": [2, 3, 4, 9, 16, 17, 24], "both": [2, 3, 12, 20], "If": [2, 3, 5, 6, 9, 12, 15, 16, 19, 20, 21, 24], "section": [2, 19], "addition": [2, 9], "option": [2, 3, 6, 9, 12, 16, 21, 24], "valid": [2, 5, 9, 19, 21], "appli": [2, 15], "function": [2, 3, 5, 9, 10, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "hoc_register_parm_default": 2, "nrn_alloc": [2, 3], "cpp": [2, 6, 15, 17, 20, 21, 22, 23], "ndatcla": 2, "seem": 2, "semant": [2, 3, 4], "equival": [2, 15, 18, 20], "definit": 2, "compar": [2, 20], "simpl": [2, 12, 20], "const": [2, 24], "certain": 2, "version": [2, 6, 9, 19, 24], "around": 2, "9": [2, 19, 20, 22, 23, 24], "chang": [2, 3, 6], "anyth": [2, 4], "els": [2, 4, 10, 19], "manual": [2, 20], "support": [3, 4, 8, 9, 10, 19], "sodium": [3, 4, 19], "anoth": [3, 9], "calcium": [3, 5, 19], "five": 3, "nai": 3, "outsid": 3, "nao": 3, "revers": [3, 12, 20], "potenti": 3, "ena": [3, 19, 20], "w": [3, 12, 20], "dinadv": 3, "should": [3, 5, 9, 12, 15, 17, 19, 24], "split": 3, "na": [3, 19, 20, 24], "physic": 3, "seek": 3, "useion": [3, 5, 10, 19, 20], "line": [3, 24], "ion_nam": [3, 20], "string": [3, 5, 6, 9, 12, 15, 20, 21, 22, 23, 24], "ca": [3, 5, 19], "defin": [3, 9, 10, 12, 18, 20, 21, 22, 23], "new": [3, 5, 12, 15, 19, 20, 21, 22, 23, 24], "comma": 3, "breakpoint": [3, 5, 10, 19, 20, 21, 22, 23, 24], "gna": [3, 19, 20], "hodgkin": 3, "huxlei": 3, "overal": [3, 21], "everyth": 3, "keep": 3, "repeat": 3, "similarli": 3, "actual": 3, "global": [3, 8, 10, 19, 21, 24], "increment": 3, "usual": [3, 9, 12], "omit": 3, "specifi": [3, 9, 15, 17, 18, 20, 24], "contain": [3, 6, 12, 15, 16, 17, 18, 20], "pointer": [3, 8, 10], "prefix": [3, 12], "ion_": 3, "dure": [3, 20], "initi": [3, 5, 10, 17, 19, 24], "ion_ena": 3, "layout": [3, 24], "access": [3, 5, 19, 24], "particular": [3, 6, 15], "facilit": 3, "replac": [3, 9, 15, 21], "save": 3, "implement": [3, 5, 6, 8, 12, 14, 15, 17, 18, 19, 24], "activ": [3, 6], "cli": [3, 24], "codegen": [3, 6, 10, 24], "opt": [3, 9, 24], "ionvar": [3, 24], "error": [3, 5, 6, 18, 20, 24], "warn": [3, 24], "recomput": 3, "notifi": 3, "thing": 3, "doe": [3, 8, 21, 22, 23], "so": [3, 6, 15, 16, 20, 21], "notif": 3, "control": [3, 4, 10, 19, 24], "posit": [3, 15, 19, 24], "rel": 3, "memb_list": 3, "get": [3, 8, 12, 13, 14, 19, 21], "nrn_writes_conc": 3, "inform": [3, 6, 8, 10, 18], "intend": 3, "second": [3, 12, 19, 21], "alloc": 3, "prop": 3, "nrn_check_conc_writ": 3, "enabl": [3, 6, 9, 21], "conflict": 3, "modifi": [3, 20, 21], "exterior": 3, "interior": 3, "third": 3, "after": [3, 10, 18, 20, 24], "nrn_wrote_conc": 3, "trigger": 3, "nernst": 3, "12": [3, 12, 19, 22, 23], "bit": 3, "wide": [3, 24], "bitfield": 3, "whether": 3, "timestep": [3, 12, 21], "etc": [3, 15], "dparam": 3, "int": 3, "locat": [3, 15, 19, 20, 21, 22, 23], "iontype_index_dparam": 3, "generic_data_handl": 3, "done": [3, 5], "nrn_promot": 3, "conc": 3, "rev": 3, "magic": 3, "do": [3, 5, 6, 9, 12, 15, 16, 19, 20, 21, 22, 23], "neither": 3, "surfac": 3, "assert": 3, "divid": 3, "notion": 4, "datum": 4, "One": [4, 5, 6, 19, 24], "import": [4, 5, 6, 9, 15, 19, 20, 21, 22, 23, 24], "subset": [4, 6], "paramet": [4, 5, 8, 10, 12, 19, 24], "storag": [4, 8], "coreneuron": [4, 6, 8, 10], "stronger": 4, "than": [4, 6], "up": [4, 6, 9, 17, 20, 24], "major": [4, 6], "usecas": 4, "well": [4, 19, 21, 24], "indic": [4, 19], "data_handl": 4, "phase": 4, "resolv": 4, "cach": 4, "appropri": [4, 6], "strength": [5, 19], "python": [5, 8, 13, 14, 15, 17, 20, 21, 22, 23], "interfac": [5, 8, 14, 15, 20, 21, 22, 23, 24], "inbuilt": [5, 19], "perform": [5, 16, 19, 20, 24], "analysi": [5, 8, 9, 19], "onc": [5, 9, 19, 24], "setup": [5, 6, 9, 19], "properli": [5, 19], "abl": [5, 10, 19], "modul": [5, 8, 11, 19], "dsl": [5, 9, 10, 11, 15, 19, 20, 21, 22, 23, 24], "suffix": [5, 9, 10, 19, 24], "cadynam": [5, 19], "cai": [5, 19, 22, 23], "decai": [5, 19], "gamma": [5, 19], "mincai": [5, 19], "depth": [5, 19], "millivolt": [5, 19, 24], "milliamp": [5, 19], "faradai": [5, 19], "coulomb": [5, 19], "molar": [5, 15, 19], "liter": [5, 19], "mm": [5, 19], "millimolar": [5, 19], "um": [5, 19], "micron": [5, 19], "05": [5, 19], "percent": [5, 19], "free": [5, 19, 24], "buffer": [5, 19], "80": [5, 19], "remov": [5, 19], "shell": [5, 6, 19], "1e": [5, 19, 24], "4": [5, 8, 9, 19, 22, 23], "solv": [5, 9, 10, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "method": [5, 10, 17, 18, 19, 21, 22, 23, 24], "cnexp": [5, 8, 10, 14, 18, 19, 24], "10000": [5, 19], "foo": [5, 19], "temp": [5, 19], "now": [5, 9, 19], "parser": [5, 9, 12, 19], "nmodldriv": [5, 9, 11, 12, 15, 19, 20, 21, 22, 23, 24], "parse_str": [5, 9, 11, 12, 15, 19, 20, 21, 22, 23, 24], "driver": [5, 9, 12, 15, 19, 20, 21, 22, 23, 24], "modast": [5, 9, 19, 24], "throw": [5, 12, 19], "except": [5, 10, 12, 19], "input": [5, 12, 19, 20, 24], "invalid": [5, 9, 19], "otherwis": [5, 12, 19], "print": [5, 6, 9, 15, 19, 20, 21, 22, 23, 24], "103": 5, "charact": [5, 19], "tree": [5, 12, 19, 24], "represent": [5, 12, 19, 24], "repr": 5, "program": [5, 9, 12, 19, 24], "neuronblock": [5, 9, 12, 24], "statementblock": [5, 9, 12, 19, 24], "suggest": [5, 6, 19, 21], "search": [5, 6, 8, 19], "provid": [5, 9, 12, 19, 24], "astlookupvisitor": [5, 15, 19, 20, 21, 22, 23], "lookup_visitor": [5, 19], "find": [5, 6, 9, 13, 15, 17, 19, 20, 21, 24], "out": [5, 6, 19], "astnodetyp": [5, 12, 15, 19, 20, 21, 22, 23], "state_block": [5, 19], "to_nmodl": [5, 9, 11, 12, 15, 19, 20, 21, 22, 23, 24], "usag": [5, 19, 24], "To": [5, 9, 13, 14, 18, 19, 24], "just": [5, 15], "symtab": [5, 11, 15, 19, 20, 21, 22, 23, 24], "symv": [5, 19], "symtabvisitor": [5, 15, 19, 20, 21, 22, 23], "run": [5, 6, 9, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24], "popul": [5, 19], "whole": [5, 19, 24], "visit_program": [5, 15, 19, 20, 21, 22, 23], "get_symbol_t": [5, 19], "table_": [5, 19], "str": [5, 12, 19], "base": [5, 6, 12, 19, 24], "prime_nam": [5, 19], "assigned_definit": [5, 19], "write_ion": [5, 19], "state_var": [5, 19], "predefin": [5, 19], "limit": [5, 19], "astvisitor": [5, 19], "sai": [5, 19], "want": [5, 6, 9, 18, 19], "float": [5, 19, 24], "number": [5, 6, 9, 19, 20, 24], "class": [5, 12, 19], "doublevisitor": [5, 19], "def": [5, 15, 19, 20, 21, 22, 23], "visit_doubl": [5, 19], "self": [5, 12, 19], "eval": [5, 19], "d_visitor": [5, 19], "accept": [5, 6, 9, 19], "love": 6, "you": [6, 9, 13, 19, 24], "help": [6, 13, 15, 20, 21, 22, 23, 24], "better": [6, 17], "todai": [6, 19], "contributor": 6, "problem": [6, 20], "hesit": 6, "rais": [6, 12, 24], "github": [6, 9, 24], "project": [6, 8, 24], "page": [6, 8], "sourc": [6, 8, 12, 24], "our": [6, 9], "repositori": [6, 9, 24], "fix": 6, "propos": 6, "work": [6, 9, 24], "sure": [6, 9], "what": [6, 8, 15, 20, 21, 22, 23], "kind": [6, 19], "open": [6, 20, 24], "outlin": 6, "coordin": 6, "effort": [6, 20], "prevent": 6, "duplic": [6, 18], "craft": 6, "successfulli": 6, "small": [6, 12, 16, 18], "directli": [6, 16, 17, 24], "tracker": 6, "mayb": 6, "alreadi": 6, "workaround": 6, "readili": 6, "avail": [6, 9, 10, 12, 17, 19], "soon": [6, 24], "reproduc": 6, "confirm": [6, 24], "much": 6, "prefer": 6, "sampl": [6, 20], "wish": [6, 9], "fork": 6, "git": [6, 9], "checkout": 6, "my": 6, "master": [6, 24], "patch": 6, "test": [6, 8, 12, 13, 15, 16, 17, 19, 24], "case": [6, 8, 9, 15, 19, 20], "nmodl_test_format": 6, "cmake": 6, "util": 6, "hpc": 6, "bin": [6, 9, 24], "lang": 6, "directori": [6, 9, 24], "src": [6, 16, 17, 20], "main": 6, "dry": 6, "full": [6, 24], "suit": 6, "commit": 6, "descript": 6, "messag": [6, 24], "push": 6, "origin": 6, "send": 6, "upstream": 6, "compon": 6, "rebas": 6, "forc": [6, 24], "f": [6, 12, 15, 17, 18, 19, 21], "That": 6, "thank": 6, "delet": 6, "remot": 6, "web": [6, 12, 24], "ui": 6, "d": [6, 19], "latest": [6, 9], "ff": 6, "add_newlin": 6, "add_multi_lin": 6, "know": [6, 9, 17, 24], "formatt": 6, "instal": [6, 8, 15, 19, 20, 21, 22, 23], "virtual": 6, "mai": [6, 12, 15, 16, 20, 21, 22, 23], "impact": 6, "api": [6, 8, 19], "sandbox": 6, "virtualenv": 6, "pyenv": 6, "pipenv": 6, "venv": 6, "build": [6, 8, 24], "wheel": [6, 19], "command": [6, 9, 24], "pip": [6, 9, 15, 19, 20, 21, 22, 23], "dep": [6, 9], "execut": [6, 9], "bash": [6, 9], "test_wheel": [6, 9], "path": [6, 12, 24], "previou": 6, "step": [6, 10, 20, 21], "valgrind": 6, "track": 6, "ye": [6, 10], "nmodl_lex": 6, "Or": [6, 24], "ctest": 6, "memcheck": 6, "15": [6, 9, 19, 22, 23], "denable_clang_tidi": 6, "ON": [6, 9], "face": 6, "compil": [6, 9, 16, 17, 18, 24], "hodhux": 6, "105": 6, "26": 6, "declar": [6, 20], "backtrac": 6, "time": [6, 12, 16, 17, 18, 20, 21], "respons": 6, "immedi": 6, "explain": 6, "why": 6, "end": [6, 12, 15, 19, 20, 24], "don": 6, "tool": [6, 9, 24], "latter": 6, "link": 7, "doxygen": 7, "framework": [8, 10, 12, 19], "docker": 8, "high": [8, 18, 19], "citat": 8, "contribuit": 8, "benchmark": 8, "fund": 8, "acknowledg": 8, "clone": 8, "prerequisit": 8, "languag": [8, 19, 20, 24], "visitor": [8, 11, 13, 15, 17, 20, 21, 22, 23, 24], "pars": [8, 9, 10, 12, 13, 15, 20, 21, 22, 23, 24], "construct": [8, 9, 10, 15, 16, 17, 18, 21, 22, 23], "queri": 8, "object": [8, 9, 12], "ndmol": 8, "special": [8, 15], "integ": [8, 15], "top": 8, "thread": [8, 9], "constant": [8, 10, 12, 15, 20, 21, 22, 23, 24], "tutori": [8, 14, 15, 20, 21, 22, 23, 24], "And": [8, 9, 24], "lookup": [8, 15, 20, 21, 22, 23], "symbol": [8, 9, 12, 15, 16, 20, 21, 22, 23, 24], "custom": [8, 17, 24], "easi": [8, 24], "curi": 8, "integr": [8, 12, 21, 24], "od": [8, 9, 11, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24], "kinet": [8, 10, 14, 17], "nonlinear": [8, 10, 14, 21, 22], "scheme": [8, 14, 18, 21], "reaction": [8, 18], "mass": [8, 18], "action": [8, 18], "format": [8, 12], "type": [8, 9, 12, 19, 24], "statement": [8, 12, 18, 19, 20], "f_flux": 8, "b_flux": 8, "todo": [8, 19], "conserv": [8, 10], "ex": 8, "5": [8, 9, 19, 22, 23], "sympysolv": [8, 17], "pade": [8, 12, 24], "approxim": [8, 12, 17, 20, 24], "6": [8, 9, 12, 15, 19, 22, 23, 24], "spars": [8, 10, 14, 18, 22], "derivimplicit": [8, 10, 14, 18], "solver": [8, 9, 12, 13, 14, 18, 21, 22, 23, 24], "newton": [8, 12, 18], "fall": 8, "back": [8, 19, 24], "7": [8, 9, 15, 19, 21, 22, 23], "got": 8, "question": 8, "found": [8, 12, 19, 20], "bug": [8, 9, 19], "miss": 8, "featur": [8, 10], "submiss": 8, "guidelin": [8, 24], "develop": [8, 9, 24], "convent": 8, "packag": [8, 9], "submodul": [8, 9, 11], "index": 8, "instruct": [9, 24], "your": [9, 13, 24], "machin": 9, "purpos": 9, "maintain": 9, "best": 9, "itself": [9, 20], "recurs": 9, "http": [9, 21, 24], "com": [9, 24], "bluebrain": [9, 24], "cd": 9, "modern": [9, 19, 24], "14": [9, 19, 22, 23], "necessari": [9, 19, 20], "8": [9, 19, 20, 21, 22, 23, 24], "jinja2": 9, "10": [9, 19, 22, 23], "pyyaml": 9, "13": [9, 19, 22, 23], "pytest": 9, "sympi": [9, 14, 16, 17, 18, 20, 21, 24], "textwrap": 9, "typic": [9, 12], "outdat": 9, "compat": [9, 24], "recent": 9, "recommend": [9, 18], "homebrew": 9, "brew": 9, "python3": [9, 24], "pip3": 9, "txt": 9, "export": 9, "usr": 9, "appl": 9, "m1": 9, "correspond": [9, 15, 20], "18": [9, 19, 22, 23, 24], "04": 9, "enough": 9, "toolchain": 9, "apt": 9, "gcc": 9, "mkdir": 9, "p": [9, 19], "dcmake_install_prefix": 9, "home": 9, "parallel": 9, "target": 9, "By": 9, "default": [9, 12, 16, 20, 24], "nmodl_enable_python_bind": 9, "increas": 9, "lot": 9, "complex": 9, "disabl": 9, "bind": 9, "restrict": 9, "job": 9, "number_of_parallel_job": 9, "pythonpath": 9, "lib": [9, 24], "dflex_execut": 9, "dbison_execut": 9, "mainli": [9, 10], "site": 9, "folder": [9, 24], "becom": 9, "option1": 9, "value1": 9, "option2": 9, "value2": 9, "dir": 9, "variou": [9, 10, 19, 24], "notabl": [9, 10], "abov": [9, 15, 19, 24], "embed": 9, "evalu": [9, 12, 21], "automat": [9, 20], "taken": 9, "care": 9, "pybind11": 9, "cannot": 9, "runtim": [9, 12, 17, 24], "instead": [9, 12, 15, 16, 20], "load": [9, 12, 24], "librari": [9, 17, 20, 24], "wrapper": 9, "manag": 9, "dynam": 9, "configur": 9, "dlink_against_python": 9, "fals": [9, 12, 19, 21, 22, 23, 24], "binari": 9, "own": [9, 13, 24], "libpywrapp": 9, "nmodl_pylib": 9, "dylib": 9, "cellar": 9, "correctli": 9, "kumbhar": [9, 24], "workarena": 9, "repo": 9, "bbp": 9, "incub": 9, "debug": [9, 24], "testmodtoken": 9, "lexer": 9, "modtoken": 9, "60": 9, "01": 9, "sec": [9, 21], "testlex": 9, "token": [9, 24], "00": 9, "testpars": 9, "scenario": 9, "macro": 9, "anywher": 9, "empti": 9, "legaci": [9, 21], "minim": 9, "interpet": 9, "given": [9, 12, 15, 17, 18, 19, 21], "python_execut": 9, "pandoc": 9, "sudo": 9, "generate_doc": 9, "sh": [9, 24], "script": 9, "doc": [9, 10], "put": 9, "output": [9, 19, 20, 24], "html": [9, 24], "temporari": 9, "programm": [10, 24], "thu": 10, "data": [10, 24], "structur": 10, "few": [10, 12, 19], "verbatim": [10, 17, 24], "lack": 10, "summar": 10, "backend": [10, 19, 24], "function_t": 10, "constructor": 10, "destructor": 10, "independ": [10, 18, 21], "flow": 10, "IF": 10, "for_netcon": 10, "titl": 10, "sweep": 10, "protect": 10, "watch": 10, "mutexlock": 10, "mutexunlock": 10, "compart": 10, "longitudinal_diffus": 10, "lag": 10, "valenc": 10, "nonspecific_curr": [10, 20, 24], "electrode_curr": 10, "point_process": [10, 24], "bbcorepoint": 10, "extern": 10, "comment": [10, 19], "rung": 10, "after_cvod": 10, "simeq": [10, 20], "cvode_t": 10, "cvode_v": 10, "content": [11, 21, 23], "get_ast": [11, 12], "parse_fil": [11, 12, 24], "parse_stream": [11, 12], "to_json": [11, 12, 24], "list_exampl": [11, 12, 24], "load_exampl": [11, 12, 24], "differentiate2c": [11, 12, 20], "discretize_deriv": [11, 12], "finite_difference_step_vari": [11, 12], "forwards_euler2c": [11, 12], "integrate2c": [11, 12], "needs_finite_differ": [11, 12], "search_and_replace_protected_identifiers_from_sympi": [11, 12], "search_and_replace_protected_identifiers_to_sympi": [11, 12], "solve_lin_system": [11, 12, 16], "solve_non_lin_system": [11, 12, 17], "transform_express": [11, 12], "transform_matrix_el": [11, 12], "_nmodl": 12, "filenam": 12, "root": [12, 24], "success": 12, "istream": 12, "ifstream": 12, "nstep": 12, "compact": 12, "bool": 12, "expand": [12, 21], "add_nmodl": 12, "json": [12, 19, 24], "true": [12, 19, 21, 22, 23, 24], "exclude_typ": 12, "excludetyp": 12, "exclud": 12, "vizual": 12, "abstract": [12, 24], "nmodl_ast": 12, "visual": [12, 13, 24], "browser": [12, 24], "viewer": 12, "d3": 12, "j": [12, 15, 17, 18], "none": [12, 19], "request": 12, "dependent_var": 12, "var": [12, 19], "prev_express": 12, "analyt": [12, 17, 18, 20, 21, 24], "suppli": [12, 15, 20, 21, 22, 23], "x": [12, 15, 17, 18, 19, 24], "df": 12, "dx": 12, "furthermor": 12, "themselv": 12, "substitut": [12, 15, 20], "coincid": [12, 20], "lh": [12, 15, 19, 20], "simplifi": [12, 20, 21], "co": 12, "y": [12, 15, 19], "dy": [12, 15], "sin": 12, "preceed": [12, 15, 20], "expr": [12, 19], "sym": 12, "diff_str": 12, "dt_var": 12, "function_cal": 12, "forward": [12, 15, 18, 20, 24], "referenc": [12, 15], "use_pade_approx": [12, 21], "expect": 12, "power": 12, "correct": [12, 20, 21], "t_var": 12, "exact": [12, 17, 18, 21], "notimplementederror": 12, "too": [12, 17], "hard": 12, "fail": [12, 21], "mat": 12, "eq": 12, "eq_str": 12, "tmp_unique_prefix": 12, "small_system": 12, "do_cs": 12, "gaussian": [12, 16, 18], "elimin": [12, 16, 18, 24], "subexpress": [12, 16, 24], "numer": [12, 16, 17, 18, 20, 21], "matrix": [12, 15, 16, 17], "vector": [12, 15, 17], "lu": [12, 16, 18], "factor": [12, 16, 18], "easili": [12, 24], "append": [12, 19], "tmp": [12, 24], "jacobian": [12, 17, 18], "transform": [12, 15, 18, 24], "sever": [13, 20], "cover": 13, "mani": 13, "aspect": 13, "begin": [13, 15], "basic": 13, "final": [13, 15, 18], "understand": [13, 15, 20, 21, 22, 23, 24], "yourself": 13, "ipynb": 14, "overview": [14, 15, 18, 21, 22, 23], "nodl": 14, "more": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "notebook": [15, 18, 20, 21, 22, 23, 24], "kineticblockvisitor": 15, "higher": [15, 21, 22, 23], "approach": [15, 21, 22, 23], "speci": 15, "a_j": 15, "y_j": 15, "react": 15, "accord": 15, "sum_j": 15, "nu_": 15, "ij": 15, "l": [15, 24], "overset": 15, "k_i": 15, "rightarrow": 15, "coeffici": [15, 21], "stoichiometr": 15, "dy_j": 15, "sum_i": 15, "r_i": 15, "prod_j": 15, "a0": 15, "3a1": 15, "2a2": 15, "2a0": 15, "a1": 15, "kf": 15, "kb": 15, "without": [15, 24], "space": 15, "stochiometr": 15, "implicitli": 15, "k": [15, 20], "_j": 15, "backward": [15, 18], "rh": [15, 19, 20], "exchang": 15, "_i": [15, 17], "align": 15, "h": [15, 20, 24], "parenthes": 15, "add": [15, 20, 24], "dh": 15, "2y": 15, "product": 15, "syntact": 15, "sugar": 15, "standard": 15, "flux": 15, "convers": 15, "z": 15, "last": 15, "algebra": [15, 17, 18], "steadyst": 15, "captur": [15, 19, 20, 21, 22, 23], "run_kinetic_visitor_and_return_deriv": 15, "mod_str": [15, 19, 20, 21, 22, 23], "nmdol": [15, 20, 21, 22, 23], "fold": [15, 20, 21, 22, 23, 24], "inlin": [15, 20, 21, 22, 23, 24], "renam": [15, 20, 21, 22, 23, 24], "constantfoldervisitor": [15, 20, 21, 22, 23], "inlinevisitor": [15, 20, 21, 22, 23], "localvarrenamevisitor": [15, 20, 21, 22, 23], "derivative_block": [15, 19, 21, 22, 23], "1x2": 15, "matric": [15, 16], "nu": 15, "blackward": 15, "ah": 15, "bm": 15, "ex1": [15, 20, 21, 22, 23], "kin": 15, "kf0_": 15, "kb0_": 15, "39": [15, 19], "annihil": 15, "ex2": [15, 20, 21, 22, 23], "ex3": [15, 20, 21], "source0_": 15, "ex4": [15, 20, 21], "kf1_": 15, "ex5": [15, 20, 21], "simultan": [16, 17], "py": [16, 20], "suffici": 16, "leq3": 16, "cse": [16, 22, 23, 24], "larger": [16, 18], "partial": [16, 17, 18], "pivot": [16, 18], "crout": 16, "commonli": 17, "kineticblock": 17, "involv": [17, 21, 22], "iter": [17, 18], "x_j": [17, 18], "routin": [17, 21], "x_0": 17, "chosen": 17, "long": 17, "lie": 17, "far": 17, "awai": 17, "newton_solv": 17, "eigen": 17, "header": 17, "tag": [17, 21, 22, 23], "newton_numerical_diff_solv": 17, "variant": 17, "estim": 17, "nb": 17, "yet": [17, 21], "about": 18, "varieti": [18, 20], "altern": 18, "deal": [18, 21], "hierarchi": 18, "translat": 18, "applic": 18, "mathcal": [18, 20], "o": [18, 19, 20, 24], "derivimplcit": 18, "unstabl": 18, "instabl": 18, "f_i": 18, "desir": 18, "satisfi": 18, "condit": [18, 19], "x_": 18, "x_n": 18, "primarili": 19, "design": [19, 24], "optimis": [19, 24], "architectur": [19, 24], "cpu": [19, 24], "introspect": [19, 24], "underli": 19, "linux": 19, "mac": 19, "window": 19, "futur": 19, "subsystem": 19, "issu": [19, 24], "take": [19, 20], "mo": 19, "helper": 19, "veri": 19, "edg": 19, "being": [19, 24], "modeldb": 19, "databas": [19, 24], "below": 19, "liste": 19, "diff_eq_express": 19, "prime": 19, "range_var": 19, "param_assign": 19, "len": 19, "17": [19, 22, 23, 24], "apart": 19, "synthet": 19, "returnn": 19, "avoid": [19, 20, 21], "function_block": 19, "new_lookup_visitor": 19, "expression_stat": 19, "visit": 19, "get_nod": 19, "functionbock": 19, "retriv": 19, "11": [19, 22, 23], "nmodl_glob": 19, "IN": 19, "unknown": 19, "statu": [19, 24], "ion_ica": 19, "codegen_var": 19, "ion_cai": 19, "ion_cao": 19, "ion_eca": 19, "read_ion": 19, "000000": 19, "050000": 19, "000100": 19, "100000": 19, "unit_def": 19, "factor_def": 19, "to_solv": 19, "36": 19, "40": 19, "statementblock4": 19, "16": [19, 22, 23], "get_variables_with_properti": 19, "argument": 19, "nmodltyp": 19, "ions_var": 19, "read_ion_var": 19, "write_ion_var": 19, "travers": 19, "inherit": 19, "achiev": 19, "But": [19, 20], "encount": 19, "hand": 19, "parametervisitor": 19, "__init__": 19, "in_paramet": 19, "visit_param_block": 19, "visit_children": 19, "visit_nam": 19, "visit_integ": 19, "param_visitor": 19, "With": 19, "littl": 19, "mfunc_src": 19, "myfunc": 19, "mfunc_ast": 19, "pygener": 19, "pycod": 19, "indent": 19, "func_nam": 19, "visit_function_block": 19, "param": 19, "get_node_nam": 19, "params_str": 19, "join": 19, "visit_statement_block": 19, "visit_expression_stat": 19, "binaryexpress": 19, "op": 19, "lhsn": 19, "visit_if_stat": 19, "get_statement_block": 19, "elseif": 19, "visit_else_stat": 19, "visit_wrapped_express": 19, "visit_binary_express": 19, "pow": [19, 20, 21], "visit_var_nam": 19, "19": [19, 22, 23], "pygen": 19, "lt": 19, "ontologi": 19, "20": [19, 22, 23], "hx": 19, "ncit": 19, "c17145": 19, "c17008": 19, "potassium": 19, "chebi": 19, "29101": 19, "eca": 19, "gnabar": [19, 20], "gkbar": [19, 20], "gl": [19, 20], "el": [19, 20, 24], "gk": [19, 20], "ont_stat": 19, "ontology_stat": 19, "ontology_id": 19, "o_id": 19, "situat": 20, "motiv": 20, "calcul": 20, "001": 20, "computation": 20, "ineffici": 20, "ad": 20, "room": 20, "incorrect": 20, "improv": [20, 24], "sympyconductancevisitor": 20, "sympy_conductance_visitor": 20, "hpp": 20, "different": 20, "math": 20, "dot": [20, 21], "asign": 20, "g_i_0": 20, "account": 20, "ran": 20, "occur": 20, "analys": [20, 24], "complic": [20, 21], "explicit": 20, "side": 20, "test_od": 20, "run_conductance_visitor_and_return_breakpoint": 20, "breakpoint_block": 20, "equal": 20, "g_na_0": 20, "10000000000000001": 20, "g__0": 20, "ek": 20, "ik": 20, "il": 20, "x3": 20, "identifi": 20, "ex6": [20, 21], "x1": 20, "x2": 20, "ex7": 20, "sympysolvervisitor": [21, 22, 23], "possibli": 21, "reprens": 21, "dsolv": 21, "ccode": 21, "noth": 21, "revert": 21, "mod2c": 21, "extra": 21, "taylor": 21, "seri": 21, "extract": 21, "a_i": 21, "a_0": 21, "a_1": 21, "a_2": 21, "f_": 21, "exponenti": [21, 24], "aproxim": 21, "www": 21, "eccomas2016": 21, "org": 21, "proceed": 21, "pdf": 21, "7366": 21, "sympy_solv": [21, 22, 23], "run_sympy_solv": [21, 22, 23], "splitlin": 21, "exp": 21, "sqrt": 21, "unsupport": 21, "leav": 21, "later": [21, 24], "log": 21, "sysytem": [22, 23], "mc": [22, 23], "eigen_newton_solv": [22, 23], "old_mc": [22, 23], "old_m": [22, 23], "nmodl_eigen_x": [22, 23], "nmodl_eigen_f": [22, 23], "nmodl_eigen_j": [22, 23], "c1": [22, 23], "o1": [22, 23], "o2": [22, 23], "p0": [22, 23], "p1": [22, 23], "ihkin": [22, 23], "alpha": [22, 23], "beta": [22, 23], "k3p": [22, 23], "k4": [22, 23], "k1ca": [22, 23], "k2": [22, 23], "evaluate_fct": [22, 23], "old_c1": [22, 23], "old_o1": [22, 23], "old_o2": [22, 23], "old_p0": [22, 23], "old_p1": [22, 23], "21": [22, 23], "22": [22, 23], "23": [22, 23], "24": [22, 23], "engin": 24, "euron": 24, "anguag": 24, "modular": 24, "flexibl": 24, "domain": 24, "intracellular": 24, "submodel": 24, "synaps": 24, "expsyn": 24, "tau": 24, "nanoamp": 24, "microsiemen": 24, "1e9": 24, "weight": 24, "rst": 24, "capabl": 24, "imag": 24, "fulli": 24, "jupyt": 24, "compos": 24, "pull": 24, "termin": 24, "entrypoint": 24, "readm": 24, "apr": 24, "2019": 24, "52": 24, "nmodl_str": 24, "download": 24, "wget": 24, "raw": 24, "githubusercont": 24, "yml": 24, "duid": 24, "id": 24, "dgid": 24, "hostnam": 24, "goe": 24, "09": 24, "49": 24, "53": 24, "923": 24, "notebookapp": 24, "4c8edabe52e1": 24, "127": 24, "8888": 24, "a7902983bad430a11935": 24, "stop": 24, "server": 24, "shut": 24, "kernel": 24, "twice": 24, "skip": 24, "nbserver": 24, "past": 24, "url": 24, "navig": 24, "my_notebook": 24, "subfold": 24, "nmod": 24, "look": 24, "kei": 24, "vizualis": 24, "central": 24, "children": 24, "exisit": 24, "hi": 24, "1000000000": 24, "rich": 24, "theoret": 24, "characteris": 24, "rat": 24, "neocort": 24, "column": 24, "microcircuit": 24, "publish": 24, "2015": 24, "intel": 24, "amd": 24, "arm": 24, "nvidia": 24, "platform": 24, "openacc": 24, "openmp": 24, "choos": 24, "subcommand": 24, "text": 24, "exit": 24, "sub": 24, "verbos": 24, "info": 24, "logger": 24, "trace": 24, "critic": 24, "off": 24, "intermedi": 24, "nrnunit": 24, "host": 24, "acc": 24, "acceler": 24, "oacc": 24, "unrol": 24, "loop": 24, "perf": 24, "statist": 24, "stdout": 24, "ao": 24, "soa": 24, "datatyp": 24, "incompat": 24, "draft": 24, "paper": 24, "pramod": 24, "omar": 24, "awil": 24, "liam": 24, "keegan": 24, "jorg": 24, "alonso": 24, "jame": 24, "king": 24, "michael": 24, "hine": 24, "felix": 24, "sch\u00fcrmann": 24, "eprint": 24, "arxiv": 24, "1905": 24, "02241": 24, "feel": 24, "ticket": 24, "migrat": 24, "softwar": 24, "blue": 24, "brain": 24, "research": 24, "center": 24, "\u00e9cole": 24, "polytechniqu": 24, "f\u00e9d\u00e9rale": 24, "de": 24, "lausann": 24, "epfl": 24, "swiss": 24, "govern": 24, "eth": 24, "board": 24, "feder": 24, "institut": 24, "technologi": 24, "nation": 24, "health": 24, "nih": 24, "grant": 24, "r01ns11613": 24, "yale": 24, "univers": 24, "european": 24, "union": 24, "horizon": 24, "2020": 24, "innov": 24, "agreement": 24, "No": 24, "785907": 24, "human": 24, "sga2": 24, "copyright": 24, "2017": 24, "2023": 24}, "objects": {"": [[12, 0, 0, "-", "nmodl"]], "nmodl": [[12, 1, 1, "", "NmodlDriver"], [12, 0, 0, "-", "ast"], [12, 0, 0, "-", "dsl"], [12, 0, 0, "-", "ode"], [12, 0, 0, "-", "symtab"], [12, 3, 1, "", "to_json"], [12, 3, 1, "", "to_nmodl"], [12, 0, 0, "-", "visitor"]], "nmodl.NmodlDriver": [[12, 2, 1, "", "get_ast"], [12, 2, 1, "", "parse_file"], [12, 2, 1, "", "parse_stream"], [12, 2, 1, "", "parse_string"]], "nmodl.ast": [[12, 3, 1, "", "view"]], "nmodl.dsl": [[12, 3, 1, "", "list_examples"], [12, 3, 1, "", "load_example"]], "nmodl.ode": [[12, 3, 1, "", "differentiate2c"], [12, 3, 1, "", "discretize_derivative"], [12, 3, 1, "", "finite_difference_step_variable"], [12, 3, 1, "", "forwards_euler2c"], [12, 3, 1, "", "integrate2c"], [12, 3, 1, "", "needs_finite_differences"], [12, 3, 1, "", "search_and_replace_protected_identifiers_from_sympy"], [12, 3, 1, "", "search_and_replace_protected_identifiers_to_sympy"], [12, 3, 1, "", "solve_lin_system"], [12, 3, 1, "", "solve_non_lin_system"], [12, 3, 1, "", "transform_expression"], [12, 3, 1, "", "transform_matrix_elements"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"cabl": 0, "equat": 0, "current": [1, 3], "nmodl": [1, 4, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "keyword": [1, 3], "nonspecific_curr": 1, "global": 2, "variabl": [2, 4, 15], "top": 2, "local": 2, "thread": 2, "initi": 2, "valu": 2, "hoc": 2, "python": [2, 6, 9, 11, 19, 24], "access": 2, "implement": [2, 20, 21, 22, 23], "detail": 2, "neuron": [2, 10], "quirk": 2, "paramet": 2, "default": 2, "constant": 2, "what": 2, "doe": 2, "coreneuron": 2, "support": [2, 24], "ion": 3, "ndmol": 3, "write": 3, "storag": 3, "optim": 3, "concentr": 3, "style": 3, "special": 3, "case": 3, "zero": 3, "area": 3, "node": 3, "pointer": 4, "integ": 4, "visitor": [5, 12, 19], "pars": [5, 19], "model": [5, 10, 19], "construct": [5, 19], "ast": [5, 12, 19], "queri": [5, 19], "object": [5, 19], "lookup": [5, 19], "symbol": [5, 19], "tabl": [5, 8, 19], "custom": [5, 19], "contribut": [6, 8], "framework": [6, 9, 24], "got": 6, "question": 6, "found": 6, "bug": 6, "miss": 6, "featur": 6, "submiss": 6, "guidelin": 6, "submit": 6, "an": 6, "issu": 6, "pull": 6, "request": 6, "pr": 6, "after": 6, "your": 6, "i": 6, "merg": 6, "develop": 6, "convent": 6, "new": 6, "line": 6, "format": [6, 15], "valid": 6, "packag": [6, 11], "memori": 6, "leak": 6, "clang": 6, "tidi": 6, "blame": 6, "c": 7, "api": [7, 24], "about": [8, 13, 24], "introduct": [8, 19, 20], "content": [8, 12], "jupyt": [8, 13, 14], "notebook": [8, 13, 14], "refer": 8, "indic": 8, "instal": [9, 24], "get": 9, "start": 9, "clone": 9, "sourc": 9, "prerequisit": 9, "On": 9, "maco": 9, "ubuntu": 9, "build": 9, "project": 9, "us": [9, 19, 24], "cmake": 9, "flex": 9, "bison": 9, "path": 9, "system": 9, "wheel": 9, "when": 9, "without": 9, "link": 9, "against": 9, "libpython": 9, "test": [9, 20, 21, 22, 23], "modul": [9, 12], "gener": [9, 19, 24], "document": [9, 24], "The": [10, 13, 24], "languag": 10, "submodul": 12, "dsl": 12, "od": [12, 18], "symtab": 12, "kinet": [15, 18], "scheme": 15, "reaction": 15, "law": 15, "mass": 15, "action": 15, "block": [15, 18], "other": 15, "type": 15, "statement": 15, "f_flux": 15, "b_flux": 15, "todo": 15, "conserv": 15, "exampl": [15, 19, 20, 21, 22, 23, 24], "ex": [15, 20, 21, 22, 23], "1": [15, 20, 21, 22, 23], "2": [15, 20, 21, 22, 23], "3": [15, 20, 21], "4": [15, 20, 21], "5": [15, 20, 21], "linear": [16, 18], "solver": [16, 17], "nonlinear": [17, 18], "newton": 17, "fall": 17, "back": 17, "integr": 18, "deriv": 18, "interfac": 19, "tutori": 19, "And": 19, "easi": 19, "code": [19, 24], "curi": 19, "inform": 19, "conduct": 20, "6": [20, 21], "7": 20, "sympysolv": [21, 22, 23], "cnexp": 21, "pade": 21, "approxim": 21, "derivimplicit": 22, "spars": 23, "try": 24, "docker": 24, "high": 24, "level": 24, "analysi": 24, "citat": 24, "contribuit": 24, "benchmark": 24, "fund": 24, "acknowledg": 24}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Cable Equation": [[0, "cable-equation"]], "Currents": [[1, "currents"]], "NMODL Keywords": [[1, "nmodl-keywords"]], "NONSPECIFIC_CURRENT": [[1, "nonspecific-current"]], "Global Variables": [[2, "global-variables"]], "GLOBAL variables": [[2, "id1"]], "Top-LOCAL variables": [[2, "top-local-variables"]], "Thread Variables": [[2, "thread-variables"]], "Initial Values": [[2, "initial-values"]], "HOC/Python Access": [[2, "hoc-python-access"]], "Implementation Details for NEURON": [[2, "implementation-details-for-neuron"]], "Quirks": [[2, "quirks"], [2, "id2"]], "PARAMETER variables": [[2, "parameter-variables"]], "Default Values": [[2, "default-values"]], "CONSTANT variables": [[2, "constant-variables"]], "What Does CoreNEURON support?": [[2, "what-does-coreneuron-support"]], "Ions": [[3, "ions"]], "NDMOL Keywords": [[3, "ndmol-keywords"]], "Keyword: WRITE": [[3, "keyword-write"]], "Writing Ion Currents": [[3, "writing-ion-currents"]], "Storage": [[3, "storage"]], "Optimizing Storage": [[3, "optimizing-storage"]], "Concentrations": [[3, "concentrations"]], "Writing Concentrations": [[3, "writing-concentrations"]], "Ion Styles": [[3, "ion-styles"]], "Special Case: zero-area nodes": [[3, "special-case-zero-area-nodes"]], "NMODL \u201cpointers\u201d": [[4, "nmodl-pointers"]], "Integer Variables": [[4, "integer-variables"]], "Visitors": [[5, "visitors"]], "Parsing Model and constructing AST": [[5, "parsing-model-and-constructing-ast"]], "Querying AST objects with Visitors": [[5, "querying-ast-objects-with-visitors"]], "Lookup Visitor": [[5, "lookup-visitor"]], "Symbol Table Visitor": [[5, "symbol-table-visitor"], [19, "Symbol-Table-Visitor"]], "Custom AST Visitor": [[5, "custom-ast-visitor"]], "Contributing to the NMODL Framework": [[6, "contributing-to-the-nmodl-framework"]], "Got a Question?": [[6, "got-a-question"]], "Found a Bug?": [[6, "found-a-bug"]], "Missing a Feature?": [[6, "missing-a-feature"]], "Submission Guidelines": [[6, "submission-guidelines"]], "Submitting an Issue": [[6, "submitting-an-issue"]], "Submitting a Pull Request (PR)": [[6, "submitting-a-pull-request-pr"]], "After your pull request is merged": [[6, "after-your-pull-request-is-merged"]], "Development Conventions": [[6, "development-conventions"]], "New Lines": [[6, "new-lines"]], "Formatting": [[6, "formatting"]], "Validate the Python package": [[6, "validate-the-python-package"]], "Memory Leaks and clang-tidy": [[6, "memory-leaks-and-clang-tidy"]], "Blaming NMODL": [[6, "blaming-nmodl"]], "C++ API": [[7, "c-api"]], "About NMODL": [[8, "about-nmodl"], [24, "about-nmodl"]], "Introduction:": [[8, null]], "Contents:": [[8, null]], "Jupyter Notebooks:": [[8, null]], "Contributing:": [[8, null]], "Reference:": [[8, null]], "Indices and tables": [[8, "indices-and-tables"]], "Installing the NMODL Framework": [[9, "installing-the-nmodl-framework"]], "Getting Started": [[9, "getting-started"]], "Cloning Source": [[9, "cloning-source"]], "Prerequisites": [[9, "prerequisites"]], "On MacOS": [[9, "on-macos"]], "On Ubuntu": [[9, "on-ubuntu"]], "Build Project": [[9, "build-project"]], "Using CMake": [[9, "using-cmake"]], "Flex / Bison Paths": [[9, "flex-bison-paths"]], "Using the Python build system": [[9, "using-the-python-build-system"]], "Building a wheel": [[9, "building-a-wheel"]], "When building without linking against libpython": [[9, "when-building-without-linking-against-libpython"]], "Testing the Installed Module": [[9, "testing-the-installed-module"]], "Generating Documentation": [[9, "generating-documentation"]], "The NEURON MODeling language": [[10, "the-neuron-modeling-language"]], "Python package": [[11, "python-package"]], "Module contents": [[12, "module-nmodl"]], "Submodules": [[12, "submodules"]], "nmodl.ast module": [[12, "module-nmodl.ast"]], "nmodl.dsl module": [[12, "module-nmodl.dsl"]], "nmodl.ode module": [[12, "module-nmodl.ode"]], "nmodl.symtab module": [[12, "module-nmodl.symtab"]], "nmodl.visitor module": [[12, "module-nmodl.visitor"]], "The NMODL Jupyter notebooks": [[13, "the-nmodl-jupyter-notebooks"]], "About the notebooks": [[13, "about-the-notebooks"]], "NMODL jupyter notebooks": [[14, "nmodl-jupyter-notebooks"]], "NMODL Kinetic Scheme": [[15, "NMODL-Kinetic-Scheme"]], "Reaction Kinetics": [[15, "Reaction-Kinetics"]], "Law of Mass Action": [[15, "Law-of-Mass-Action"]], "KINETIC block format": [[15, "KINETIC-block-format"]], "Other types of reaction statement": [[15, "Other-types-of-reaction-statement"]], "f_flux / b_flux variables": [[15, "f_flux-/-b_flux-variables"]], "[TODO] CONSERVE": [[15, "[TODO]-CONSERVE"]], "Examples": [[15, "Examples"], [20, "Examples"], [21, "Examples"], [22, "Examples"], [23, "Examples"]], "Ex. 1": [[15, "Ex.-1"], [20, "Ex.-1"], [21, "Ex.-1"], [22, "Ex.-1"], [23, "Ex.-1"]], "Ex. 2": [[15, "Ex.-2"], [20, "Ex.-2"], [21, "Ex.-2"], [22, "Ex.-2"], [23, "Ex.-2"]], "Ex. 3": [[15, "Ex.-3"], [20, "Ex.-3"], [21, "Ex.-3"]], "Ex. 4": [[15, "Ex.-4"], [20, "Ex.-4"], [21, "Ex.-4"]], "Ex. 5": [[15, "Ex.-5"], [20, "Ex.-5"], [21, "Ex.-5"]], "NMODL LINEAR solver": [[16, "NMODL-LINEAR-solver"]], "NMODL NONLINEAR solver": [[17, "NMODL-NONLINEAR-solver"]], "Newton solver": [[17, "Newton-solver"]], "Fall-back solver": [[17, "Fall-back-solver"]], "NMODL integration of ODEs": [[18, "NMODL-integration-of-ODEs"]], "KINETIC block": [[18, "KINETIC-block"]], "DERIVATIVE block": [[18, "DERIVATIVE-block"]], "LINEAR block": [[18, "LINEAR-block"]], "NONLINEAR block": [[18, "NONLINEAR-block"]], "NMODL Python Interface Tutorial": [[19, "NMODL-Python-Interface-Tutorial"]], "Introduction": [[19, "Introduction"], [20, "Introduction"]], "Parsing Model And Constructing AST": [[19, "Parsing-Model-And-Constructing-AST"]], "Querying AST object with Visitors": [[19, "Querying-AST-object-with-Visitors"]], "Lookup visitor": [[19, "Lookup-visitor"]], "Custom AST visitor": [[19, "Custom-AST-visitor"]], "Easy code generation using AST visitors": [[19, "Easy-code-generation-using-AST-visitors"]], "Example of CURIE information parsing": [[19, "Example-of-CURIE-information-parsing"]], "NMODL CONDUCTANCE": [[20, "NMODL-CONDUCTANCE"]], "Implementation": [[20, "Implementation"], [21, "Implementation"], [22, "Implementation"], [23, "Implementation"]], "Implementation Tests": [[20, "Implementation-Tests"], [21, "Implementation-Tests"], [22, "Implementation-Tests"], [23, "Implementation-Tests"]], "Ex. 6": [[20, "Ex.-6"], [21, "Ex.-6"]], "Ex. 7": [[20, "Ex.-7"]], "NMODL SympySolver - cnexp": [[21, "NMODL-SympySolver---cnexp"]], "Pade approximant": [[21, "Pade-approximant"]], "NMODL SympySolver - derivimplicit": [[22, "NMODL-SympySolver---derivimplicit"]], "NMODL SympySolver - sparse": [[23, "NMODL-SympySolver---sparse"]], "The NMODL Framework": [[24, "the-nmodl-framework"]], "Installation": [[24, "installation"]], "Try NMODL with Docker": [[24, "try-nmodl-with-docker"]], "Using the Python API": [[24, "using-the-python-api"]], "High Level Analysis and Code Generation": [[24, "high-level-analysis-and-code-generation"]], "Documentation": [[24, "documentation"]], "Citation": [[24, "citation"]], "Support / Contribuition": [[24, "support-contribuition"]], "Examples / Benchmarks": [[24, "examples-benchmarks"]], "Funding & Acknowledgment": [[24, "funding-acknowledgment"]]}, "indexentries": {"nmodldriver (class in nmodl)": [[12, "nmodl.NmodlDriver"]], "differentiate2c() (in module nmodl.ode)": [[12, "nmodl.ode.differentiate2c"]], "discretize_derivative() (in module nmodl.ode)": [[12, "nmodl.ode.discretize_derivative"]], "finite_difference_step_variable() (in module nmodl.ode)": [[12, "nmodl.ode.finite_difference_step_variable"]], "forwards_euler2c() (in module nmodl.ode)": [[12, "nmodl.ode.forwards_euler2c"]], "get_ast() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.get_ast"]], "integrate2c() (in module nmodl.ode)": [[12, "nmodl.ode.integrate2c"]], "list_examples() (in module nmodl.dsl)": [[12, "nmodl.dsl.list_examples"]], "load_example() (in module nmodl.dsl)": [[12, "nmodl.dsl.load_example"]], "module": [[12, "module-nmodl"], [12, "module-nmodl.ast"], [12, "module-nmodl.dsl"], [12, "module-nmodl.ode"], [12, "module-nmodl.symtab"], [12, "module-nmodl.visitor"]], "needs_finite_differences() (in module nmodl.ode)": [[12, "nmodl.ode.needs_finite_differences"]], "nmodl": [[12, "module-nmodl"]], "nmodl.ast": [[12, "module-nmodl.ast"]], "nmodl.dsl": [[12, "module-nmodl.dsl"]], "nmodl.ode": [[12, "module-nmodl.ode"]], "nmodl.symtab": [[12, "module-nmodl.symtab"]], "nmodl.visitor": [[12, "module-nmodl.visitor"]], "parse_file() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.parse_file"]], "parse_stream() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.parse_stream"]], "parse_string() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.parse_string"]], "search_and_replace_protected_identifiers_from_sympy() (in module nmodl.ode)": [[12, "nmodl.ode.search_and_replace_protected_identifiers_from_sympy"]], "search_and_replace_protected_identifiers_to_sympy() (in module nmodl.ode)": [[12, "nmodl.ode.search_and_replace_protected_identifiers_to_sympy"]], "solve_lin_system() (in module nmodl.ode)": [[12, "nmodl.ode.solve_lin_system"]], "solve_non_lin_system() (in module nmodl.ode)": [[12, "nmodl.ode.solve_non_lin_system"]], "to_json() (in module nmodl)": [[12, "nmodl.to_json"]], "to_nmodl() (in module nmodl)": [[12, "nmodl.to_nmodl"]], "transform_expression() (in module nmodl.ode)": [[12, "nmodl.ode.transform_expression"]], "transform_matrix_elements() (in module nmodl.ode)": [[12, "nmodl.ode.transform_matrix_elements"]], "view() (in module nmodl.ast)": [[12, "nmodl.ast.view"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["contents/cable_equations", "contents/currents", "contents/globals", "contents/ions", "contents/pointers", "contents/visitors", "contributing", "doxygen", "index", "install", "language", "modules", "nmodl", "notebooks", "notebooks/README", "notebooks/nmodl-kinetic-schemes", "notebooks/nmodl-linear-solver", "notebooks/nmodl-nonlinear-solver", "notebooks/nmodl-odes-overview", "notebooks/nmodl-python-tutorial", "notebooks/nmodl-sympy-conductance", "notebooks/nmodl-sympy-solver-cnexp", "notebooks/nmodl-sympy-solver-derivimplicit", "notebooks/nmodl-sympy-solver-sparse", "readme"], "filenames": ["contents/cable_equations.rst", "contents/currents.rst", "contents/globals.rst", "contents/ions.rst", "contents/pointers.rst", "contents/visitors.rst", "contributing.rst", "doxygen.rst", "index.rst", "install.rst", "language.rst", "modules.rst", "nmodl.rst", "notebooks.rst", "notebooks/README.rst", "notebooks/nmodl-kinetic-schemes.ipynb", "notebooks/nmodl-linear-solver.ipynb", "notebooks/nmodl-nonlinear-solver.ipynb", "notebooks/nmodl-odes-overview.ipynb", "notebooks/nmodl-python-tutorial.ipynb", "notebooks/nmodl-sympy-conductance.ipynb", "notebooks/nmodl-sympy-solver-cnexp.ipynb", "notebooks/nmodl-sympy-solver-derivimplicit.ipynb", "notebooks/nmodl-sympy-solver-sparse.ipynb", "readme.rst"], "titles": ["Cable Equation", "Currents", "Global Variables", "Ions", "NMODL \u201cpointers\u201d", "Visitors", "Contributing to the NMODL Framework", "C++ API", "About NMODL", "Installing the NMODL Framework", "The NEURON MODeling language", "Python package", "Module contents", "The NMODL Jupyter notebooks", "NMODL jupyter notebooks", "NMODL Kinetic Scheme", "NMODL LINEAR solver", "NMODL NONLINEAR solver", "NMODL integration of ODEs", "NMODL Python Interface Tutorial", "NMODL CONDUCTANCE", "NMODL SympySolver - cnexp", "NMODL SympySolver - derivimplicit", "NMODL SympySolver - sparse", "The NMODL Framework"], "terms": {"neuron": [0, 1, 3, 4, 5, 8, 9, 12, 15, 17, 19, 20, 21, 24], "ha": [0, 1, 6, 15], "sophist": 0, "system": [0, 12, 15, 16, 18, 21, 22, 23], "allow": [0, 2, 3, 5, 6, 15, 19, 20, 24], "user": [0, 9, 15, 17, 18, 20, 24], "describ": [0, 2, 9, 15, 18, 20, 21, 22, 23, 24], "geometri": 0, "here": [0, 1, 5, 6, 13, 19, 20, 21, 24], "we": [0, 1, 2, 3, 5, 6, 9, 10, 13, 15, 18, 19, 21, 24], "ll": [0, 1, 3], "try": [0, 8, 9], "deriv": [0, 2, 3, 5, 8, 10, 12, 15, 17, 19, 21, 22, 23, 24], "manner": [0, 4], "hide": 0, "those": [0, 19], "detail": [0, 1, 14, 18, 19, 24], "whenev": [0, 19], "thei": [0, 2, 4, 12, 15, 17, 18], "re": [0, 2, 3, 6], "relev": [0, 3, 6], "nmodl": [0, 2, 3, 5, 10, 11], "pleas": [0, 1, 6, 9, 15, 20, 21, 22, 23], "consult": [0, 9], "its": [0, 3, 12], "relat": [0, 1, 10, 18], "document": [0, 1, 8, 12], "one": [0, 1, 2, 3, 6, 9, 12, 15, 19, 24], "public": 0, "e": [0, 1, 2, 3, 4, 6, 9, 12, 15, 19, 20, 24], "g": [0, 1, 2, 3, 4, 6, 9, 12, 15, 19, 20, 21, 24], "The": [0, 1, 2, 3, 5, 6, 8, 9, 12, 15, 17, 18, 19, 20, 21, 22, 23], "simul": [0, 4, 18, 20, 24], "environ": [0, 6, 9, 24], "In": [0, 1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 19, 24], "order": [0, 5, 6, 9, 12, 15, 19, 20, 21], "model": [0, 3, 8, 13, 24], "an": [0, 1, 2, 3, 5, 9, 12, 14, 15, 17, 18, 19, 20, 21, 24], "electr": [0, 1], "circuit": [0, 1], "first": [0, 3, 5, 6, 19, 20, 21], "pick": [0, 9], "point": [0, 1, 3, 4, 5, 9, 19, 24], "along": [0, 9], "which": [0, 1, 2, 3, 6, 9, 12, 13, 15, 17, 20, 21, 22, 23, 24], "voltag": [0, 3, 4], "call": [0, 1, 2, 3, 4, 9, 12, 17, 19], "them": [0, 2, 9, 16], "node": [0, 1, 4, 5, 8, 12, 19, 24], "connect": 0, "form": [0, 12, 15, 17, 21, 24], "graph": 0, "At": 0, "everi": [0, 2, 3, 5, 6, 19, 24], "branch": [0, 1, 6], "place": [0, 9], "see": [0, 1, 2, 3, 5, 15, 16, 18, 19, 20, 21, 22, 23, 24], "figur": [0, 1, 3], "1": [0, 1, 3, 5, 8, 9, 12, 17, 18, 19, 24], "illustr": [0, 1], "placement": 0, "neurit": 0, "two": [0, 2, 3, 9, 20], "adjac": [0, 3], "ar": [0, 1, 2, 3, 4, 5, 6, 9, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "resistor": 0, "interest": [0, 9], "behaviour": [0, 2, 19], "come": 0, "from": [0, 2, 3, 5, 6, 9, 10, 12, 13, 16, 17, 19, 20, 21, 24], "differ": [0, 1, 2, 4, 5, 12, 17, 18, 19, 20], "ion": [0, 1, 8, 19, 20, 24], "concentr": [0, 8, 15], "across": [0, 2], "membran": [0, 1, 3, 24], "thi": [0, 1, 2, 3, 4, 5, 6, 9, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "i": [0, 1, 2, 3, 4, 5, 9, 10, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "upheld": 0, "three": [0, 2, 3], "process": [0, 1, 3, 10, 24], "larg": [0, 12, 17], "imperm": 0, "effect": [0, 1, 2], "creat": [0, 2, 3, 5, 6, 12, 13, 19, 24], "barrier": 0, "b": [0, 2, 3, 6, 12, 15, 22, 23], "gate": 0, "channel": [0, 1, 5, 19, 24], "condition": [0, 3], "quickli": [0, 24], "cross": [0, 1], "c": [0, 2, 3, 6, 8, 9, 10, 12, 15, 21, 24], "pump": 0, "continu": [0, 1, 13], "restor": 0, "rest": [0, 2], "state": [0, 2, 3, 5, 10, 15, 17, 19, 20, 21, 22, 23, 24], "fact": [0, 3], "mostli": 0, "mean": [0, 1, 2, 3, 4, 15], "behav": [0, 2], "like": [0, 2, 5, 6, 24], "dielectr": 0, "materi": 0, "can": [0, 1, 2, 3, 4, 5, 6, 9, 12, 13, 15, 16, 17, 18, 19, 21, 24], "therefor": [0, 2, 3, 4], "capacitor": [0, 1], "simpli": [0, 2, 5, 9, 17, 19], "current": [0, 2, 4, 6, 8, 12, 15, 17, 20, 21, 24], "give": [0, 3, 20, 21], "rise": 0, "shown": [0, 5, 19], "2": [0, 1, 2, 3, 5, 8, 9, 12, 19], "total": [0, 1, 3], "tran": [0, 1], "i_m": 0, "due": [0, 1, 3, 9, 18], "properti": [0, 3, 5, 19], "i_c": 0, "all": [0, 2, 3, 5, 6, 9, 10, 12, 19, 20, 21, 24], "mechan": [0, 1, 2, 3, 4, 10], "specif": [0, 1, 2, 3, 9, 14, 15, 19, 24], "repres": [0, 1, 3, 10, 19, 24], "start": [0, 5, 6, 8, 12, 13, 14, 19], "write": [0, 2, 5, 6, 10, 13, 19, 20, 24], "down": [0, 24], "let": [0, 5, 19], "": [0, 1, 2, 3, 6, 9, 17, 19, 24], "recal": 0, "formula": 0, "ohm": 0, "law": [0, 8, 18], "frac": [0, 15, 17, 18, 21], "dv": [0, 1, 20], "dt": [0, 12, 15, 17, 18, 21, 22, 23], "qquad": 0, "delta": [0, 15, 18, 20], "v": [0, 2, 3, 6, 20, 22, 23, 24], "r": [0, 3, 9, 12, 15, 20], "us": [0, 2, 3, 5, 6, 8, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23], "kirchoff": 0, "v_1": 0, "i_": 0, "0": [0, 2, 3, 5, 9, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "lead": 0, "rewritten": [0, 17], "term": [0, 12, 15], "follow": [0, 1, 2, 3, 6, 9, 10, 15, 20, 21, 22, 23, 24], "dv_1": 0, "r_": 0, "v_": 0, "discret": [0, 10], "implicit": [0, 12, 22, 23], "euler": [0, 10, 12, 15, 18, 22, 23], "n": [0, 6, 12, 16, 17, 18, 19, 20, 24], "t": [0, 2, 3, 6, 12, 17, 18, 19, 20, 21], "left": [0, 2, 12, 15, 18], "right": [0, 12, 15], "collect": [0, 2], "unpleas": 0, "sinc": [0, 1, 2, 3, 4, 21], "make": [0, 2, 4, 6, 9, 15, 20], "non": [0, 1, 2, 12, 17, 18, 20], "linear": [0, 8, 10, 12, 14, 17, 20, 21, 22, 23], "approx": [0, 12, 21], "i_1": 0, "di_1": 0, "g_i": [0, 20], "where": [0, 6, 9, 12, 15, 17, 19, 20, 21], "depend": [0, 2, 3, 6, 9, 12, 20, 21], "differenti": [0, 9, 12, 15, 17, 19, 20, 21], "conduct": [0, 8, 10, 14, 24], "refer": [1, 3, 4, 9, 15], "part": [1, 3, 21, 22, 23], "rate": [1, 2, 5, 15, 18, 19], "charg": 1, "pass": [1, 3, 6, 9, 15, 20, 21, 22, 23, 24], "through": [1, 6], "show": [1, 3, 19, 20, 24], "coupl": [1, 18, 22, 23], "segment": [1, 3], "when": [1, 2, 3, 6, 19, 21, 22, 23], "present": [1, 9], "handl": [1, 21], "intern": 1, "mod": [1, 2, 3, 5, 6, 9, 15, 17, 18, 19, 20, 24], "file": [1, 2, 3, 5, 6, 9, 10, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "comput": [1, 2, 3, 24], "white": 1, "box": 1, "label": 1, "sum": 1, "per": [1, 2, 3], "turn": 1, "wire": 1, "diagram": 1, "four": 1, "For": [1, 2, 3, 5, 6, 9, 14, 15, 16, 19, 20, 21, 22, 23, 24], "zero": [1, 8, 15], "aread": 1, "consist": [1, 15], "area": [1, 8], "still": [1, 2, 6, 10, 20], "introduc": [1, 2, 20], "A": [1, 3, 4, 15, 17, 18], "view": [1, 11, 12, 24], "color": 1, "each": [1, 2, 3, 4, 12, 18, 20, 21, 24], "nonspecif": 1, "i1": 1, "ina": [1, 3, 4, 19, 20], "ica": [1, 3, 5, 19], "onli": [1, 2, 3, 5, 6, 17, 18, 19, 21, 24], "light": 1, "yellow": 1, "There": [1, 3, 15, 19, 21], "requir": [1, 2, 6, 9, 20, 24], "cabl": [1, 8], "equat": [1, 3, 8, 9, 12, 15, 16, 17, 18, 19, 21, 22, 23], "discuss": [1, 6, 24], "individu": [1, 2], "separ": [1, 3], "check": [1, 3, 6, 19, 20, 24], "how": [1, 5, 17, 18, 19, 20, 24], "addit": [1, 20, 24], "contribut": [1, 3, 24], "express": [1, 3, 4, 12, 15, 19, 20], "accoci": 1, "ani": [1, 2, 5, 6, 10, 12, 18, 19, 21, 24], "It": [1, 2, 3, 6, 12, 19, 20, 24], "syntax": [1, 12, 24], "name": [1, 2, 3, 5, 9, 12, 19, 24], "assum": [1, 5, 15, 19, 21], "need": [1, 2, 3, 6, 9, 20], "assign": [1, 2, 3, 5, 10, 12, 19, 20, 24], "valu": [1, 3, 4, 9, 12, 17, 19, 21], "also": [1, 2, 3, 6, 9, 15, 16, 17, 18, 19, 20, 24], "list": [1, 2, 3, 4, 9, 12, 19, 21, 23, 24], "block": [1, 2, 3, 5, 8, 10, 16, 17, 19, 20, 21, 22, 23, 24], "unit": [1, 2, 5, 6, 9, 10, 15, 16, 17, 19, 20, 21, 22, 23, 24], "densiti": [1, 3], "ma": [1, 3, 5, 19], "cm2": [1, 3, 5, 19], "local": [1, 3, 5, 6, 8, 9, 10, 12, 15, 19, 20, 21, 22, 23, 24], "store": [1, 2, 3, 4, 9, 24], "regular": [1, 2], "rang": [1, 2, 4, 5, 10, 19, 20, 24], "variabl": [1, 3, 5, 6, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24], "gener": [1, 2, 3, 6, 8, 10, 15, 20, 21, 22, 23], "code": [1, 2, 3, 5, 6, 8, 10, 12, 21], "must": [1, 2, 3, 6, 9, 12, 15], "ensur": [1, 6], "updat": [1, 3, 6], "remain": 1, "finit": [1, 12, 17], "di": [1, 20], "exist": [2, 3, 6, 19, 20, 24], "visibl": 2, "scope": [2, 19, 21, 24], "wai": [2, 3, 6, 9, 15, 18], "read": [2, 3, 5, 10, 19, 20], "written": [2, 3, 15, 18], "insid": [2, 3, 15], "consid": [2, 3, 4, 6, 15, 19], "singl": [2, 4, 21], "instanc": [2, 3, 6, 9, 12], "share": [2, 3, 9, 24], "static": 2, "doubl": [2, 4, 6, 19, 24], "safe": [2, 6, 16], "set": [2, 3, 9, 12, 15, 16, 17, 18], "via": [2, 3, 19], "while": [2, 6, 10], "within": [2, 15, 17, 19, 20], "other": [2, 3, 4, 8, 10, 12, 18, 21], "context": 2, "includ": [2, 3, 6, 10, 12, 15, 19, 24], "count": 2, "thread_saf": 2, "mark": 2, "assumpt": 2, "multipl": [2, 3, 6, 19], "Not": 2, "threadsaf": [2, 10], "would": [2, 3, 5, 6, 9, 15, 24], "As": [2, 5, 6, 19], "result": [2, 3, 12, 18, 19, 20, 24], "appear": [2, 3], "explicitli": 2, "made": 2, "undefin": 2, "either": [2, 3, 6, 9], "treat": [2, 4], "were": 2, "never": 2, "alwai": [2, 18], "howev": [2, 3, 10], "mention": 2, "have": [2, 3, 4, 5, 6, 9, 13, 15, 19, 21, 22, 23], "same": [2, 3, 15, 19, 21, 24], "aren": 2, "possibl": [2, 6, 12, 20], "note": [2, 9, 19, 24], "nocmodl": [2, 9, 21], "promot": 2, "even": [2, 6, 19, 24], "isn": [2, 3], "henc": [2, 3], "scratch": [2, 24], "pad": 2, "memori": [2, 3, 9, 12, 24], "histor": 2, "ve": [2, 3], "been": [2, 3, 6], "advertis": 2, "optim": [2, 24], "techniqu": [2, 24], "reduc": [2, 18], "footprint": 2, "canon": 2, "exampl": [2, 5, 6, 8, 9, 12, 17], "hh": [2, 9], "common": [2, 3, 12, 16, 24], "pattern": [2, 3, 19], "return": [2, 5, 9, 12, 15, 19, 20, 21, 22, 23, 24], "procedur": [2, 10], "m": [2, 5, 6, 15, 19, 20, 21, 22, 23, 24], "minf": [2, 21], "mtau": [2, 21], "mv": [2, 3, 5, 19, 24], "tabl": [2, 10, 15, 20, 21, 22, 23, 24], "celsiu": [2, 6], "100": [2, 5], "TO": 2, "WITH": 2, "200": [2, 19], "befor": [2, 3, 4, 6, 9, 10, 12, 15], "technic": 2, "copi": [2, 3, 9, 24], "could": [2, 3, 9, 19], "dm": [2, 15, 21], "author": 2, "doesn": [2, 6, 17], "record": 2, "might": [2, 3, 6], "wast": 2, "under": [2, 9, 24], "circumst": 2, "multi": [2, 24], "solut": [2, 12, 16, 17, 18, 20, 21], "wa": [2, 20, 21, 24], "core": 2, "processor": 2, "arriv": 2, "suddenli": 2, "keyword": [2, 8, 9, 20, 24], "ignor": 2, "entir": [2, 9, 19], "gbl": 2, "guarante": 2, "synchron": 2, "happen": [2, 3], "act": 2, "unchang": 2, "distinguish": 2, "between": 2, "level": [2, 3, 8, 15, 18, 19, 21, 22, 23], "ast": [2, 6, 8, 10, 11, 13, 15, 20, 21, 22, 23, 24], "Then": 2, "concept": 2, "convert": [2, 3, 6, 12, 15, 18, 19, 22, 23, 24], "permit": 2, "simd": [2, 3], "lane": 2, "gpu": [2, 19, 24], "similar": [2, 24], "regist": [2, 3], "doubscal": 2, "hoc_scdoub": 2, "g_w_shared_glob": 2, "doubvec": 2, "hoc_vdoub": 2, "g_arr_shared_glob": 2, "3": [2, 3, 6, 8, 9, 12, 18, 19, 22, 23, 24], "hoc_register_var": 2, "hoc_intfunc": 2, "stabl": [2, 4, 12, 18], "address": [2, 19], "some": [2, 3, 9, 10, 12, 17, 19, 20, 21], "element": [2, 15], "arrai": [2, 3, 4], "contigu": [2, 4], "strategi": 2, "associ": [2, 3, 4, 18, 19], "necessarili": [2, 3], "uniqu": [2, 12], "u": [2, 5, 6, 15, 21, 24], "modulo": 2, "arithmet": 2, "__shared__": 2, "cuda": 2, "slightli": [2, 19], "surpris": 2, "net_rec": [2, 10, 24], "becaus": [2, 4, 9], "produc": [2, 6], "caus": 2, "segfault": 2, "These": [2, 3, 4, 9, 16, 17, 24], "both": [2, 3, 12, 20], "If": [2, 3, 5, 6, 9, 12, 15, 16, 19, 20, 21, 24], "section": [2, 19], "addition": [2, 9], "option": [2, 3, 6, 9, 12, 16, 21, 24], "valid": [2, 5, 9, 19, 21], "appli": [2, 15], "function": [2, 3, 5, 9, 10, 12, 15, 17, 18, 19, 20, 21, 22, 23, 24], "hoc_register_parm_default": 2, "nrn_alloc": [2, 3], "cpp": [2, 6, 15, 17, 20, 21, 22, 23], "ndatcla": 2, "seem": 2, "semant": [2, 3, 4], "equival": [2, 15, 18, 20], "definit": 2, "compar": [2, 20], "simpl": [2, 12, 20], "const": [2, 24], "certain": 2, "version": [2, 6, 9, 19, 24], "around": 2, "9": [2, 19, 20, 22, 23, 24], "chang": [2, 3, 6], "anyth": [2, 4], "els": [2, 4, 10, 19], "manual": [2, 20], "support": [3, 4, 8, 9, 10, 19], "sodium": [3, 4, 19], "anoth": [3, 9], "calcium": [3, 5, 19], "five": 3, "nai": 3, "outsid": 3, "nao": 3, "revers": [3, 12, 20], "potenti": 3, "ena": [3, 19, 20], "w": [3, 12, 20], "dinadv": 3, "should": [3, 5, 9, 12, 15, 17, 19, 24], "split": 3, "na": [3, 19, 20, 24], "physic": 3, "seek": 3, "useion": [3, 5, 10, 19, 20], "line": [3, 24], "ion_nam": [3, 20], "string": [3, 5, 6, 9, 12, 15, 20, 21, 22, 23, 24], "ca": [3, 5, 19], "defin": [3, 9, 10, 12, 18, 20, 21, 22, 23], "new": [3, 5, 12, 15, 19, 20, 21, 22, 23, 24], "comma": 3, "breakpoint": [3, 5, 10, 19, 20, 21, 22, 23, 24], "gna": [3, 19, 20], "hodgkin": 3, "huxlei": 3, "overal": [3, 21], "everyth": 3, "keep": 3, "repeat": 3, "similarli": 3, "actual": 3, "global": [3, 8, 10, 19, 21, 24], "increment": 3, "usual": [3, 9, 12], "omit": 3, "specifi": [3, 9, 15, 17, 18, 20, 24], "contain": [3, 6, 12, 15, 16, 17, 18, 20], "pointer": [3, 8, 10], "prefix": [3, 12], "ion_": 3, "dure": [3, 20], "initi": [3, 5, 10, 17, 19, 24], "ion_ena": 3, "layout": [3, 24], "access": [3, 5, 19, 24], "particular": [3, 6, 15], "facilit": 3, "replac": [3, 9, 15, 21], "save": 3, "implement": [3, 5, 6, 8, 12, 14, 15, 17, 18, 19, 24], "activ": [3, 6], "cli": [3, 24], "codegen": [3, 6, 10, 24], "opt": [3, 9, 24], "ionvar": [3, 24], "error": [3, 5, 6, 18, 20, 24], "warn": [3, 24], "recomput": 3, "notifi": 3, "thing": 3, "doe": [3, 8, 21, 22, 23], "so": [3, 6, 15, 16, 20, 21], "notif": 3, "control": [3, 4, 10, 19, 24], "posit": [3, 15, 19, 24], "rel": 3, "memb_list": 3, "get": [3, 8, 12, 13, 14, 19, 21], "nrn_writes_conc": 3, "inform": [3, 6, 8, 10, 18], "intend": 3, "second": [3, 12, 19, 21], "alloc": 3, "prop": 3, "nrn_check_conc_writ": 3, "enabl": [3, 6, 9, 21], "conflict": 3, "modifi": [3, 20, 21], "exterior": 3, "interior": 3, "third": 3, "after": [3, 10, 18, 20, 24], "nrn_wrote_conc": 3, "trigger": 3, "nernst": 3, "12": [3, 12, 19, 22, 23], "bit": 3, "wide": [3, 24], "bitfield": 3, "whether": 3, "timestep": [3, 12, 21], "etc": [3, 15], "dparam": 3, "int": 3, "locat": [3, 15, 19, 20, 21, 22, 23], "iontype_index_dparam": 3, "generic_data_handl": 3, "done": [3, 5], "nrn_promot": 3, "conc": 3, "rev": 3, "magic": 3, "do": [3, 5, 6, 9, 12, 15, 16, 19, 20, 21, 22, 23], "neither": 3, "surfac": 3, "assert": 3, "divid": 3, "notion": 4, "datum": 4, "One": [4, 5, 6, 19, 24], "import": [4, 5, 6, 9, 15, 19, 20, 21, 22, 23, 24], "subset": [4, 6], "paramet": [4, 5, 8, 10, 12, 19, 24], "storag": [4, 8], "coreneuron": [4, 6, 8, 10], "stronger": 4, "than": [4, 6], "up": [4, 6, 9, 17, 20, 24], "major": [4, 6], "usecas": 4, "well": [4, 19, 21, 24], "indic": [4, 19], "data_handl": 4, "phase": 4, "resolv": 4, "cach": 4, "appropri": [4, 6], "strength": [5, 19], "python": [5, 8, 13, 14, 15, 17, 20, 21, 22, 23], "interfac": [5, 8, 14, 15, 20, 21, 22, 23, 24], "inbuilt": [5, 19], "perform": [5, 16, 19, 20, 24], "analysi": [5, 8, 9, 19], "onc": [5, 9, 19, 24], "setup": [5, 6, 9, 19], "properli": [5, 19], "abl": [5, 10, 19], "modul": [5, 8, 11, 19], "dsl": [5, 9, 10, 11, 15, 19, 20, 21, 22, 23, 24], "suffix": [5, 9, 10, 19, 24], "cadynam": [5, 19], "cai": [5, 19, 22, 23], "decai": [5, 19], "gamma": [5, 19], "mincai": [5, 19], "depth": [5, 19], "millivolt": [5, 19, 24], "milliamp": [5, 19], "faradai": [5, 19], "coulomb": [5, 19], "molar": [5, 15, 19], "liter": [5, 19], "mm": [5, 19], "millimolar": [5, 19], "um": [5, 19], "micron": [5, 19], "05": [5, 19], "percent": [5, 19], "free": [5, 19, 24], "buffer": [5, 19], "80": [5, 19], "remov": [5, 19], "shell": [5, 6, 19], "1e": [5, 19, 24], "4": [5, 8, 9, 19, 22, 23], "solv": [5, 9, 10, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "method": [5, 10, 17, 18, 19, 21, 22, 23, 24], "cnexp": [5, 8, 10, 14, 18, 19, 24], "10000": [5, 19], "foo": [5, 19], "temp": [5, 19], "now": [5, 9, 19], "parser": [5, 9, 12, 19], "nmodldriv": [5, 9, 11, 12, 15, 19, 20, 21, 22, 23, 24], "parse_str": [5, 9, 11, 12, 15, 19, 20, 21, 22, 23, 24], "driver": [5, 9, 12, 15, 19, 20, 21, 22, 23, 24], "modast": [5, 9, 19, 24], "throw": [5, 12, 19], "except": [5, 10, 12, 19], "input": [5, 12, 19, 20, 24], "invalid": [5, 9, 19], "otherwis": [5, 12, 19], "print": [5, 6, 9, 15, 19, 20, 21, 22, 23, 24], "103": 5, "charact": [5, 19], "tree": [5, 12, 19, 24], "represent": [5, 12, 19, 24], "repr": 5, "program": [5, 9, 12, 19, 24], "neuronblock": [5, 9, 12, 24], "statementblock": [5, 9, 12, 19, 24], "suggest": [5, 6, 19, 21], "search": [5, 6, 8, 19], "provid": [5, 9, 12, 19, 24], "astlookupvisitor": [5, 15, 19, 20, 21, 22, 23], "lookup_visitor": [5, 19], "find": [5, 6, 9, 13, 15, 17, 19, 20, 21, 24], "out": [5, 6, 19], "astnodetyp": [5, 12, 15, 19, 20, 21, 22, 23], "state_block": [5, 19], "to_nmodl": [5, 9, 11, 12, 15, 19, 20, 21, 22, 23, 24], "usag": [5, 19, 24], "To": [5, 9, 13, 14, 18, 19, 24], "just": [5, 15], "symtab": [5, 11, 15, 19, 20, 21, 22, 23, 24], "symv": [5, 19], "symtabvisitor": [5, 15, 19, 20, 21, 22, 23], "run": [5, 6, 9, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24], "popul": [5, 19], "whole": [5, 19, 24], "visit_program": [5, 15, 19, 20, 21, 22, 23], "get_symbol_t": [5, 19], "table_": [5, 19], "str": [5, 12, 19], "base": [5, 6, 12, 19, 24], "prime_nam": [5, 19], "assigned_definit": [5, 19], "write_ion": [5, 19], "state_var": [5, 19], "predefin": [5, 19], "limit": [5, 19], "astvisitor": [5, 19], "sai": [5, 19], "want": [5, 6, 9, 18, 19], "float": [5, 19, 24], "number": [5, 6, 9, 19, 20, 24], "class": [5, 12, 19], "doublevisitor": [5, 19], "def": [5, 15, 19, 20, 21, 22, 23], "visit_doubl": [5, 19], "self": [5, 12, 19], "eval": [5, 19], "d_visitor": [5, 19], "accept": [5, 6, 9, 19], "love": 6, "you": [6, 9, 13, 19, 24], "help": [6, 13, 15, 20, 21, 22, 23, 24], "better": [6, 17], "todai": [6, 19], "contributor": 6, "problem": [6, 20], "hesit": 6, "rais": [6, 12, 24], "github": [6, 9, 24], "project": [6, 8, 24], "page": [6, 8], "sourc": [6, 8, 12, 24], "our": [6, 9], "repositori": [6, 9, 24], "fix": 6, "propos": 6, "work": [6, 9, 24], "sure": [6, 9], "what": [6, 8, 15, 20, 21, 22, 23], "kind": [6, 19], "open": [6, 20, 24], "outlin": 6, "coordin": 6, "effort": [6, 20], "prevent": 6, "duplic": [6, 18], "craft": 6, "successfulli": 6, "small": [6, 12, 16, 18], "directli": [6, 16, 17, 24], "tracker": 6, "mayb": 6, "alreadi": 6, "workaround": 6, "readili": 6, "avail": [6, 9, 10, 12, 17, 19], "soon": [6, 24], "reproduc": 6, "confirm": [6, 24], "much": 6, "prefer": 6, "sampl": [6, 20], "wish": [6, 9], "fork": 6, "git": [6, 9], "checkout": 6, "my": 6, "master": [6, 24], "patch": 6, "test": [6, 8, 12, 13, 15, 16, 17, 19, 24], "case": [6, 8, 9, 12, 15, 19, 20], "nmodl_test_format": 6, "cmake": 6, "util": 6, "hpc": 6, "bin": [6, 9, 24], "lang": 6, "directori": [6, 9, 24], "src": [6, 16, 17, 20], "main": 6, "dry": 6, "full": [6, 24], "suit": 6, "commit": 6, "descript": 6, "messag": [6, 24], "push": 6, "origin": 6, "send": 6, "upstream": 6, "compon": 6, "rebas": 6, "forc": [6, 24], "f": [6, 12, 15, 17, 18, 19, 21], "That": 6, "thank": 6, "delet": 6, "remot": 6, "web": [6, 12, 24], "ui": 6, "d": [6, 19], "latest": [6, 9], "ff": 6, "add_newlin": 6, "add_multi_lin": 6, "know": [6, 9, 17, 24], "formatt": 6, "instal": [6, 8, 15, 19, 20, 21, 22, 23], "virtual": 6, "mai": [6, 12, 15, 16, 20, 21, 22, 23], "impact": 6, "api": [6, 8, 19], "sandbox": 6, "virtualenv": 6, "pyenv": 6, "pipenv": 6, "venv": 6, "build": [6, 8, 24], "wheel": [6, 19], "command": [6, 9, 24], "pip": [6, 9, 15, 19, 20, 21, 22, 23], "dep": [6, 9], "execut": [6, 9], "bash": [6, 9], "test_wheel": [6, 9], "path": [6, 12, 24], "previou": 6, "step": [6, 10, 12, 20, 21], "valgrind": 6, "track": 6, "ye": [6, 10], "nmodl_lex": 6, "Or": [6, 24], "ctest": 6, "memcheck": 6, "15": [6, 9, 19, 22, 23], "denable_clang_tidi": 6, "ON": [6, 9], "face": 6, "compil": [6, 9, 16, 17, 18, 24], "hodhux": 6, "105": 6, "26": 6, "declar": [6, 20], "backtrac": 6, "time": [6, 12, 16, 17, 18, 20, 21], "respons": 6, "immedi": 6, "explain": 6, "why": 6, "end": [6, 12, 15, 19, 20, 24], "don": 6, "tool": [6, 9, 24], "latter": 6, "link": 7, "doxygen": 7, "framework": [8, 10, 12, 19], "docker": 8, "high": [8, 18, 19], "citat": 8, "contribuit": 8, "benchmark": 8, "fund": 8, "acknowledg": 8, "clone": 8, "prerequisit": 8, "languag": [8, 19, 20, 24], "visitor": [8, 11, 13, 15, 17, 20, 21, 22, 23, 24], "pars": [8, 9, 10, 12, 13, 15, 20, 21, 22, 23, 24], "construct": [8, 9, 10, 15, 16, 17, 18, 21, 22, 23], "queri": 8, "object": [8, 9, 12], "ndmol": 8, "special": [8, 15], "integ": [8, 15], "top": 8, "thread": [8, 9], "constant": [8, 10, 12, 15, 20, 21, 22, 23, 24], "tutori": [8, 14, 15, 20, 21, 22, 23, 24], "And": [8, 9, 24], "lookup": [8, 15, 20, 21, 22, 23], "symbol": [8, 9, 12, 15, 16, 20, 21, 22, 23, 24], "custom": [8, 17, 24], "easi": [8, 24], "curi": 8, "integr": [8, 12, 21, 24], "od": [8, 9, 11, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24], "kinet": [8, 10, 14, 17], "nonlinear": [8, 10, 14, 21, 22], "scheme": [8, 14, 18, 21], "reaction": [8, 18], "mass": [8, 18], "action": [8, 18], "format": [8, 12], "type": [8, 9, 12, 19, 24], "statement": [8, 12, 18, 19, 20], "f_flux": 8, "b_flux": 8, "todo": [8, 19], "conserv": [8, 10], "ex": 8, "5": [8, 9, 19, 22, 23], "sympysolv": [8, 17], "pade": [8, 12, 24], "approxim": [8, 12, 17, 20, 24], "6": [8, 9, 12, 15, 19, 22, 23, 24], "spars": [8, 10, 14, 18, 22], "derivimplicit": [8, 10, 14, 18], "solver": [8, 9, 12, 13, 14, 18, 21, 22, 23, 24], "newton": [8, 12, 18], "fall": 8, "back": [8, 19, 24], "7": [8, 9, 15, 19, 21, 22, 23], "got": 8, "question": 8, "found": [8, 12, 19, 20], "bug": [8, 9, 19], "miss": 8, "featur": [8, 10], "submiss": 8, "guidelin": [8, 24], "develop": [8, 9, 24], "convent": 8, "packag": [8, 9], "submodul": [8, 9, 11], "index": 8, "instruct": [9, 24], "your": [9, 13, 24], "machin": 9, "purpos": 9, "maintain": 9, "best": 9, "itself": [9, 20], "recurs": 9, "http": [9, 21, 24], "com": [9, 24], "bluebrain": [9, 24], "cd": 9, "modern": [9, 19, 24], "14": [9, 19, 22, 23], "necessari": [9, 19, 20], "8": [9, 19, 20, 21, 22, 23, 24], "jinja2": 9, "10": [9, 19, 22, 23], "pyyaml": 9, "13": [9, 19, 22, 23], "pytest": 9, "sympi": [9, 14, 16, 17, 18, 20, 21, 24], "textwrap": 9, "typic": [9, 12], "outdat": 9, "compat": [9, 24], "recent": 9, "recommend": [9, 18], "homebrew": 9, "brew": 9, "python3": [9, 24], "pip3": 9, "txt": 9, "export": 9, "usr": 9, "appl": 9, "m1": 9, "correspond": [9, 15, 20], "18": [9, 19, 22, 23, 24], "04": 9, "enough": 9, "toolchain": 9, "apt": 9, "gcc": 9, "mkdir": 9, "p": [9, 19], "dcmake_install_prefix": 9, "home": 9, "parallel": 9, "target": 9, "By": 9, "default": [9, 12, 16, 20, 24], "nmodl_enable_python_bind": 9, "increas": 9, "lot": 9, "complex": 9, "disabl": 9, "bind": 9, "restrict": 9, "job": 9, "number_of_parallel_job": 9, "pythonpath": 9, "lib": [9, 24], "dflex_execut": 9, "dbison_execut": 9, "mainli": [9, 10], "site": 9, "folder": [9, 24], "becom": 9, "option1": 9, "value1": 9, "option2": 9, "value2": 9, "dir": 9, "variou": [9, 10, 19, 24], "notabl": [9, 10], "abov": [9, 15, 19, 24], "embed": 9, "evalu": [9, 12, 21], "automat": [9, 20], "taken": 9, "care": 9, "pybind11": 9, "cannot": 9, "runtim": [9, 12, 17, 24], "instead": [9, 12, 15, 16, 20], "load": [9, 12, 24], "librari": [9, 17, 20, 24], "wrapper": 9, "manag": 9, "dynam": 9, "configur": 9, "dlink_against_python": 9, "fals": [9, 12, 19, 21, 22, 23, 24], "binari": 9, "own": [9, 13, 24], "libpywrapp": 9, "nmodl_pylib": 9, "dylib": 9, "cellar": 9, "correctli": 9, "kumbhar": [9, 24], "workarena": 9, "repo": 9, "bbp": 9, "incub": 9, "debug": [9, 24], "testmodtoken": 9, "lexer": 9, "modtoken": 9, "60": 9, "01": 9, "sec": [9, 21], "testlex": 9, "token": [9, 24], "00": 9, "testpars": 9, "scenario": 9, "macro": 9, "anywher": 9, "empti": 9, "legaci": [9, 21], "minim": 9, "interpet": 9, "given": [9, 12, 15, 17, 18, 19, 21], "python_execut": 9, "pandoc": 9, "sudo": 9, "generate_doc": 9, "sh": [9, 24], "script": 9, "doc": [9, 10], "put": 9, "output": [9, 19, 20, 24], "html": [9, 24], "temporari": 9, "programm": [10, 24], "thu": 10, "data": [10, 24], "structur": 10, "few": [10, 12, 19], "verbatim": [10, 17, 24], "lack": 10, "summar": 10, "backend": [10, 19, 24], "function_t": 10, "constructor": 10, "destructor": 10, "independ": [10, 18, 21], "flow": 10, "IF": 10, "for_netcon": 10, "titl": 10, "sweep": 10, "protect": 10, "watch": 10, "mutexlock": 10, "mutexunlock": 10, "compart": 10, "longitudinal_diffus": 10, "lag": 10, "valenc": 10, "nonspecific_curr": [10, 20, 24], "electrode_curr": 10, "point_process": [10, 24], "bbcorepoint": 10, "extern": 10, "comment": [10, 19], "rung": 10, "after_cvod": 10, "simeq": [10, 20], "cvode_t": 10, "cvode_v": 10, "content": [11, 21, 23], "get_ast": [11, 12], "parse_fil": [11, 12, 24], "parse_stream": [11, 12], "to_json": [11, 12, 24], "list_exampl": [11, 12, 24], "load_exampl": [11, 12, 24], "differentiate2c": [11, 12, 20], "discretize_deriv": [11, 12], "finite_difference_step_vari": [11, 12], "forwards_euler2c": [11, 12], "integrate2c": [11, 12], "needs_finite_differ": [11, 12], "search_and_replace_protected_identifiers_from_sympi": [11, 12], "search_and_replace_protected_identifiers_to_sympi": [11, 12], "solve_lin_system": [11, 12, 16], "solve_non_lin_system": [11, 12, 17], "transform_express": [11, 12], "transform_matrix_el": [11, 12], "_nmodl": 12, "filenam": 12, "root": [12, 24], "success": 12, "istream": 12, "ifstream": 12, "nstep": 12, "compact": 12, "bool": 12, "expand": [12, 21], "add_nmodl": 12, "json": [12, 19, 24], "true": [12, 19, 21, 22, 23, 24], "exclude_typ": 12, "excludetyp": 12, "exclud": 12, "vizual": 12, "abstract": [12, 24], "nmodl_ast": 12, "visual": [12, 13, 24], "browser": [12, 24], "viewer": 12, "d3": 12, "j": [12, 15, 17, 18], "none": [12, 19], "request": 12, "dependent_var": 12, "var": [12, 19], "prev_express": 12, "stepsiz": 12, "001": [12, 20], "analyt": [12, 17, 18, 20, 21, 24], "suppli": [12, 15, 20, 21, 22, 23], "x": [12, 15, 17, 18, 19, 24], "df": 12, "dx": 12, "furthermor": 12, "themselv": 12, "substitut": [12, 15, 20], "coincid": [12, 20], "lh": [12, 15, 19, 20], "simplifi": [12, 20, 21], "co": 12, "y": [12, 15, 19], "dy": [12, 15], "sin": 12, "preceed": [12, 15, 20], "argument": [12, 19], "size": 12, "expr": [12, 19], "sym": 12, "diff_str": 12, "dt_var": 12, "function_cal": 12, "forward": [12, 15, 18, 20, 24], "referenc": [12, 15], "use_pade_approx": [12, 21], "expect": 12, "power": 12, "correct": [12, 20, 21], "t_var": 12, "exact": [12, 17, 18, 21], "notimplementederror": 12, "too": [12, 17], "hard": 12, "fail": [12, 21], "mat": 12, "eq": 12, "eq_str": 12, "tmp_unique_prefix": 12, "small_system": 12, "do_cs": 12, "gaussian": [12, 16, 18], "elimin": [12, 16, 18, 24], "subexpress": [12, 16, 24], "numer": [12, 16, 17, 18, 20, 21], "matrix": [12, 15, 16, 17], "vector": [12, 15, 17], "lu": [12, 16, 18], "factor": [12, 16, 18], "easili": [12, 24], "append": [12, 19], "tmp": [12, 24], "jacobian": [12, 17, 18], "transform": [12, 15, 18, 24], "sever": [13, 20], "cover": 13, "mani": 13, "aspect": 13, "begin": [13, 15], "basic": 13, "final": [13, 15, 18], "understand": [13, 15, 20, 21, 22, 23, 24], "yourself": 13, "ipynb": 14, "overview": [14, 15, 18, 21, 22, 23], "nodl": 14, "more": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "notebook": [15, 18, 20, 21, 22, 23, 24], "kineticblockvisitor": 15, "higher": [15, 21, 22, 23], "approach": [15, 21, 22, 23], "speci": 15, "a_j": 15, "y_j": 15, "react": 15, "accord": 15, "sum_j": 15, "nu_": 15, "ij": 15, "l": [15, 24], "overset": 15, "k_i": 15, "rightarrow": 15, "coeffici": [15, 21], "stoichiometr": 15, "dy_j": 15, "sum_i": 15, "r_i": 15, "prod_j": 15, "a0": 15, "3a1": 15, "2a2": 15, "2a0": 15, "a1": 15, "kf": 15, "kb": 15, "without": [15, 24], "space": 15, "stochiometr": 15, "implicitli": 15, "k": [15, 20], "_j": 15, "backward": [15, 18], "rh": [15, 19, 20], "exchang": 15, "_i": [15, 17], "align": 15, "h": [15, 20, 24], "parenthes": 15, "add": [15, 20, 24], "dh": 15, "2y": 15, "product": 15, "syntact": 15, "sugar": 15, "standard": 15, "flux": 15, "convers": 15, "z": 15, "last": 15, "algebra": [15, 17, 18], "steadyst": 15, "captur": [15, 19, 20, 21, 22, 23], "run_kinetic_visitor_and_return_deriv": 15, "mod_str": [15, 19, 20, 21, 22, 23], "nmdol": [15, 20, 21, 22, 23], "fold": [15, 20, 21, 22, 23, 24], "inlin": [15, 20, 21, 22, 23, 24], "renam": [15, 20, 21, 22, 23, 24], "constantfoldervisitor": [15, 20, 21, 22, 23], "inlinevisitor": [15, 20, 21, 22, 23], "localvarrenamevisitor": [15, 20, 21, 22, 23], "derivative_block": [15, 19, 21, 22, 23], "1x2": 15, "matric": [15, 16], "nu": 15, "blackward": 15, "ah": 15, "bm": 15, "ex1": [15, 20, 21, 22, 23], "kin": 15, "kf0_": 15, "kb0_": 15, "39": [15, 19], "annihil": 15, "ex2": [15, 20, 21, 22, 23], "ex3": [15, 20, 21], "source0_": 15, "ex4": [15, 20, 21], "kf1_": 15, "ex5": [15, 20, 21], "simultan": [16, 17], "py": [16, 20], "suffici": 16, "leq3": 16, "cse": [16, 22, 23, 24], "larger": [16, 18], "partial": [16, 17, 18], "pivot": [16, 18], "crout": 16, "commonli": 17, "kineticblock": 17, "involv": [17, 21, 22], "iter": [17, 18], "x_j": [17, 18], "routin": [17, 21], "x_0": 17, "chosen": 17, "long": 17, "lie": 17, "far": 17, "awai": 17, "newton_solv": 17, "eigen": 17, "header": 17, "tag": [17, 21, 22, 23], "newton_numerical_diff_solv": 17, "variant": 17, "estim": 17, "nb": 17, "yet": [17, 21], "about": 18, "varieti": [18, 20], "altern": 18, "deal": [18, 21], "hierarchi": 18, "translat": 18, "applic": 18, "mathcal": [18, 20], "o": [18, 19, 20, 24], "derivimplcit": 18, "unstabl": 18, "instabl": 18, "f_i": 18, "desir": 18, "satisfi": 18, "condit": [18, 19], "x_": 18, "x_n": 18, "primarili": 19, "design": [19, 24], "optimis": [19, 24], "architectur": [19, 24], "cpu": [19, 24], "introspect": [19, 24], "underli": 19, "linux": 19, "mac": 19, "window": 19, "futur": 19, "subsystem": 19, "issu": [19, 24], "take": [19, 20], "mo": 19, "helper": 19, "veri": 19, "edg": 19, "being": [19, 24], "modeldb": 19, "databas": [19, 24], "below": 19, "liste": 19, "diff_eq_express": 19, "prime": 19, "range_var": 19, "param_assign": 19, "len": 19, "17": [19, 22, 23, 24], "apart": 19, "synthet": 19, "returnn": 19, "avoid": [19, 20, 21], "function_block": 19, "new_lookup_visitor": 19, "expression_stat": 19, "visit": 19, "get_nod": 19, "functionbock": 19, "retriv": 19, "11": [19, 22, 23], "nmodl_glob": 19, "IN": 19, "unknown": 19, "statu": [19, 24], "ion_ica": 19, "codegen_var": 19, "ion_cai": 19, "ion_cao": 19, "ion_eca": 19, "read_ion": 19, "000000": 19, "050000": 19, "000100": 19, "100000": 19, "unit_def": 19, "factor_def": 19, "to_solv": 19, "36": 19, "40": 19, "statementblock4": 19, "16": [19, 22, 23], "get_variables_with_properti": 19, "nmodltyp": 19, "ions_var": 19, "read_ion_var": 19, "write_ion_var": 19, "travers": 19, "inherit": 19, "achiev": 19, "But": [19, 20], "encount": 19, "hand": 19, "parametervisitor": 19, "__init__": 19, "in_paramet": 19, "visit_param_block": 19, "visit_children": 19, "visit_nam": 19, "visit_integ": 19, "param_visitor": 19, "With": 19, "littl": 19, "mfunc_src": 19, "myfunc": 19, "mfunc_ast": 19, "pygener": 19, "pycod": 19, "indent": 19, "func_nam": 19, "visit_function_block": 19, "param": 19, "get_node_nam": 19, "params_str": 19, "join": 19, "visit_statement_block": 19, "visit_expression_stat": 19, "binaryexpress": 19, "op": 19, "lhsn": 19, "visit_if_stat": 19, "get_statement_block": 19, "elseif": 19, "visit_else_stat": 19, "visit_wrapped_express": 19, "visit_binary_express": 19, "pow": [19, 20, 21], "visit_var_nam": 19, "19": [19, 22, 23], "pygen": 19, "lt": 19, "ontologi": 19, "20": [19, 22, 23], "hx": 19, "ncit": 19, "c17145": 19, "c17008": 19, "potassium": 19, "chebi": 19, "29101": 19, "eca": 19, "gnabar": [19, 20], "gkbar": [19, 20], "gl": [19, 20], "el": [19, 20, 24], "gk": [19, 20], "ont_stat": 19, "ontology_stat": 19, "ontology_id": 19, "o_id": 19, "situat": 20, "motiv": 20, "calcul": 20, "computation": 20, "ineffici": 20, "ad": 20, "room": 20, "incorrect": 20, "improv": [20, 24], "sympyconductancevisitor": 20, "sympy_conductance_visitor": 20, "hpp": 20, "different": 20, "math": 20, "dot": [20, 21], "asign": 20, "g_i_0": 20, "account": 20, "ran": 20, "occur": 20, "analys": [20, 24], "complic": [20, 21], "explicit": 20, "side": 20, "test_od": 20, "run_conductance_visitor_and_return_breakpoint": 20, "breakpoint_block": 20, "equal": 20, "g_na_0": 20, "10000000000000001": 20, "g__0": 20, "ek": 20, "ik": 20, "il": 20, "x3": 20, "identifi": 20, "ex6": [20, 21], "x1": 20, "x2": 20, "ex7": 20, "sympysolvervisitor": [21, 22, 23], "possibli": 21, "reprens": 21, "dsolv": 21, "ccode": 21, "noth": 21, "revert": 21, "mod2c": 21, "extra": 21, "taylor": 21, "seri": 21, "extract": 21, "a_i": 21, "a_0": 21, "a_1": 21, "a_2": 21, "f_": 21, "exponenti": [21, 24], "aproxim": 21, "www": 21, "eccomas2016": 21, "org": 21, "proceed": 21, "pdf": 21, "7366": 21, "sympy_solv": [21, 22, 23], "run_sympy_solv": [21, 22, 23], "splitlin": 21, "exp": 21, "sqrt": 21, "unsupport": 21, "leav": 21, "later": [21, 24], "log": 21, "sysytem": [22, 23], "mc": [22, 23], "eigen_newton_solv": [22, 23], "old_mc": [22, 23], "old_m": [22, 23], "nmodl_eigen_x": [22, 23], "nmodl_eigen_f": [22, 23], "nmodl_eigen_j": [22, 23], "c1": [22, 23], "o1": [22, 23], "o2": [22, 23], "p0": [22, 23], "p1": [22, 23], "ihkin": [22, 23], "alpha": [22, 23], "beta": [22, 23], "k3p": [22, 23], "k4": [22, 23], "k1ca": [22, 23], "k2": [22, 23], "evaluate_fct": [22, 23], "old_c1": [22, 23], "old_o1": [22, 23], "old_o2": [22, 23], "old_p0": [22, 23], "old_p1": [22, 23], "21": [22, 23], "22": [22, 23], "23": [22, 23], "24": [22, 23], "engin": 24, "euron": 24, "anguag": 24, "modular": 24, "flexibl": 24, "domain": 24, "intracellular": 24, "submodel": 24, "synaps": 24, "expsyn": 24, "tau": 24, "nanoamp": 24, "microsiemen": 24, "1e9": 24, "weight": 24, "rst": 24, "capabl": 24, "imag": 24, "fulli": 24, "jupyt": 24, "compos": 24, "pull": 24, "termin": 24, "entrypoint": 24, "readm": 24, "apr": 24, "2019": 24, "52": 24, "nmodl_str": 24, "download": 24, "wget": 24, "raw": 24, "githubusercont": 24, "yml": 24, "duid": 24, "id": 24, "dgid": 24, "hostnam": 24, "goe": 24, "09": 24, "49": 24, "53": 24, "923": 24, "notebookapp": 24, "4c8edabe52e1": 24, "127": 24, "8888": 24, "a7902983bad430a11935": 24, "stop": 24, "server": 24, "shut": 24, "kernel": 24, "twice": 24, "skip": 24, "nbserver": 24, "past": 24, "url": 24, "navig": 24, "my_notebook": 24, "subfold": 24, "nmod": 24, "look": 24, "kei": 24, "vizualis": 24, "central": 24, "children": 24, "exisit": 24, "hi": 24, "1000000000": 24, "rich": 24, "theoret": 24, "characteris": 24, "rat": 24, "neocort": 24, "column": 24, "microcircuit": 24, "publish": 24, "2015": 24, "intel": 24, "amd": 24, "arm": 24, "nvidia": 24, "platform": 24, "openacc": 24, "openmp": 24, "choos": 24, "subcommand": 24, "text": 24, "exit": 24, "sub": 24, "verbos": 24, "info": 24, "logger": 24, "trace": 24, "critic": 24, "off": 24, "intermedi": 24, "nrnunit": 24, "host": 24, "acc": 24, "acceler": 24, "oacc": 24, "unrol": 24, "loop": 24, "perf": 24, "statist": 24, "stdout": 24, "ao": 24, "soa": 24, "datatyp": 24, "incompat": 24, "draft": 24, "paper": 24, "pramod": 24, "omar": 24, "awil": 24, "liam": 24, "keegan": 24, "jorg": 24, "alonso": 24, "jame": 24, "king": 24, "michael": 24, "hine": 24, "felix": 24, "sch\u00fcrmann": 24, "eprint": 24, "arxiv": 24, "1905": 24, "02241": 24, "feel": 24, "ticket": 24, "migrat": 24, "softwar": 24, "blue": 24, "brain": 24, "research": 24, "center": 24, "\u00e9cole": 24, "polytechniqu": 24, "f\u00e9d\u00e9rale": 24, "de": 24, "lausann": 24, "epfl": 24, "swiss": 24, "govern": 24, "eth": 24, "board": 24, "feder": 24, "institut": 24, "technologi": 24, "nation": 24, "health": 24, "nih": 24, "grant": 24, "r01ns11613": 24, "yale": 24, "univers": 24, "european": 24, "union": 24, "horizon": 24, "2020": 24, "innov": 24, "agreement": 24, "No": 24, "785907": 24, "human": 24, "sga2": 24, "copyright": 24, "2017": 24, "2023": 24}, "objects": {"": [[12, 0, 0, "-", "nmodl"]], "nmodl": [[12, 1, 1, "", "NmodlDriver"], [12, 0, 0, "-", "ast"], [12, 0, 0, "-", "dsl"], [12, 0, 0, "-", "ode"], [12, 0, 0, "-", "symtab"], [12, 3, 1, "", "to_json"], [12, 3, 1, "", "to_nmodl"], [12, 0, 0, "-", "visitor"]], "nmodl.NmodlDriver": [[12, 2, 1, "", "get_ast"], [12, 2, 1, "", "parse_file"], [12, 2, 1, "", "parse_stream"], [12, 2, 1, "", "parse_string"]], "nmodl.ast": [[12, 3, 1, "", "view"]], "nmodl.dsl": [[12, 3, 1, "", "list_examples"], [12, 3, 1, "", "load_example"]], "nmodl.ode": [[12, 3, 1, "", "differentiate2c"], [12, 3, 1, "", "discretize_derivative"], [12, 3, 1, "", "finite_difference_step_variable"], [12, 3, 1, "", "forwards_euler2c"], [12, 3, 1, "", "integrate2c"], [12, 3, 1, "", "needs_finite_differences"], [12, 3, 1, "", "search_and_replace_protected_identifiers_from_sympy"], [12, 3, 1, "", "search_and_replace_protected_identifiers_to_sympy"], [12, 3, 1, "", "solve_lin_system"], [12, 3, 1, "", "solve_non_lin_system"], [12, 3, 1, "", "transform_expression"], [12, 3, 1, "", "transform_matrix_elements"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"cabl": 0, "equat": 0, "current": [1, 3], "nmodl": [1, 4, 6, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "keyword": [1, 3], "nonspecific_curr": 1, "global": 2, "variabl": [2, 4, 15], "top": 2, "local": 2, "thread": 2, "initi": 2, "valu": 2, "hoc": 2, "python": [2, 6, 9, 11, 19, 24], "access": 2, "implement": [2, 20, 21, 22, 23], "detail": 2, "neuron": [2, 10], "quirk": 2, "paramet": 2, "default": 2, "constant": 2, "what": 2, "doe": 2, "coreneuron": 2, "support": [2, 24], "ion": 3, "ndmol": 3, "write": 3, "storag": 3, "optim": 3, "concentr": 3, "style": 3, "special": 3, "case": 3, "zero": 3, "area": 3, "node": 3, "pointer": 4, "integ": 4, "visitor": [5, 12, 19], "pars": [5, 19], "model": [5, 10, 19], "construct": [5, 19], "ast": [5, 12, 19], "queri": [5, 19], "object": [5, 19], "lookup": [5, 19], "symbol": [5, 19], "tabl": [5, 8, 19], "custom": [5, 19], "contribut": [6, 8], "framework": [6, 9, 24], "got": 6, "question": 6, "found": 6, "bug": 6, "miss": 6, "featur": 6, "submiss": 6, "guidelin": 6, "submit": 6, "an": 6, "issu": 6, "pull": 6, "request": 6, "pr": 6, "after": 6, "your": 6, "i": 6, "merg": 6, "develop": 6, "convent": 6, "new": 6, "line": 6, "format": [6, 15], "valid": 6, "packag": [6, 11], "memori": 6, "leak": 6, "clang": 6, "tidi": 6, "blame": 6, "c": 7, "api": [7, 24], "about": [8, 13, 24], "introduct": [8, 19, 20], "content": [8, 12], "jupyt": [8, 13, 14], "notebook": [8, 13, 14], "refer": 8, "indic": 8, "instal": [9, 24], "get": 9, "start": 9, "clone": 9, "sourc": 9, "prerequisit": 9, "On": 9, "maco": 9, "ubuntu": 9, "build": 9, "project": 9, "us": [9, 19, 24], "cmake": 9, "flex": 9, "bison": 9, "path": 9, "system": 9, "wheel": 9, "when": 9, "without": 9, "link": 9, "against": 9, "libpython": 9, "test": [9, 20, 21, 22, 23], "modul": [9, 12], "gener": [9, 19, 24], "document": [9, 24], "The": [10, 13, 24], "languag": 10, "submodul": 12, "dsl": 12, "od": [12, 18], "symtab": 12, "kinet": [15, 18], "scheme": 15, "reaction": 15, "law": 15, "mass": 15, "action": 15, "block": [15, 18], "other": 15, "type": 15, "statement": 15, "f_flux": 15, "b_flux": 15, "todo": 15, "conserv": 15, "exampl": [15, 19, 20, 21, 22, 23, 24], "ex": [15, 20, 21, 22, 23], "1": [15, 20, 21, 22, 23], "2": [15, 20, 21, 22, 23], "3": [15, 20, 21], "4": [15, 20, 21], "5": [15, 20, 21], "linear": [16, 18], "solver": [16, 17], "nonlinear": [17, 18], "newton": 17, "fall": 17, "back": 17, "integr": 18, "deriv": 18, "interfac": 19, "tutori": 19, "And": 19, "easi": 19, "code": [19, 24], "curi": 19, "inform": 19, "conduct": 20, "6": [20, 21], "7": 20, "sympysolv": [21, 22, 23], "cnexp": 21, "pade": 21, "approxim": 21, "derivimplicit": 22, "spars": 23, "try": 24, "docker": 24, "high": 24, "level": 24, "analysi": 24, "citat": 24, "contribuit": 24, "benchmark": 24, "fund": 24, "acknowledg": 24}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Cable Equation": [[0, "cable-equation"]], "Currents": [[1, "currents"]], "NMODL Keywords": [[1, "nmodl-keywords"]], "NONSPECIFIC_CURRENT": [[1, "nonspecific-current"]], "Global Variables": [[2, "global-variables"]], "GLOBAL variables": [[2, "id1"]], "Top-LOCAL variables": [[2, "top-local-variables"]], "Thread Variables": [[2, "thread-variables"]], "Initial Values": [[2, "initial-values"]], "HOC/Python Access": [[2, "hoc-python-access"]], "Implementation Details for NEURON": [[2, "implementation-details-for-neuron"]], "Quirks": [[2, "quirks"], [2, "id2"]], "PARAMETER variables": [[2, "parameter-variables"]], "Default Values": [[2, "default-values"]], "CONSTANT variables": [[2, "constant-variables"]], "What Does CoreNEURON support?": [[2, "what-does-coreneuron-support"]], "Ions": [[3, "ions"]], "NDMOL Keywords": [[3, "ndmol-keywords"]], "Keyword: WRITE": [[3, "keyword-write"]], "Writing Ion Currents": [[3, "writing-ion-currents"]], "Storage": [[3, "storage"]], "Optimizing Storage": [[3, "optimizing-storage"]], "Concentrations": [[3, "concentrations"]], "Writing Concentrations": [[3, "writing-concentrations"]], "Ion Styles": [[3, "ion-styles"]], "Special Case: zero-area nodes": [[3, "special-case-zero-area-nodes"]], "NMODL \u201cpointers\u201d": [[4, "nmodl-pointers"]], "Integer Variables": [[4, "integer-variables"]], "Visitors": [[5, "visitors"]], "Parsing Model and constructing AST": [[5, "parsing-model-and-constructing-ast"]], "Querying AST objects with Visitors": [[5, "querying-ast-objects-with-visitors"]], "Lookup Visitor": [[5, "lookup-visitor"]], "Symbol Table Visitor": [[5, "symbol-table-visitor"], [19, "Symbol-Table-Visitor"]], "Custom AST Visitor": [[5, "custom-ast-visitor"]], "Contributing to the NMODL Framework": [[6, "contributing-to-the-nmodl-framework"]], "Got a Question?": [[6, "got-a-question"]], "Found a Bug?": [[6, "found-a-bug"]], "Missing a Feature?": [[6, "missing-a-feature"]], "Submission Guidelines": [[6, "submission-guidelines"]], "Submitting an Issue": [[6, "submitting-an-issue"]], "Submitting a Pull Request (PR)": [[6, "submitting-a-pull-request-pr"]], "After your pull request is merged": [[6, "after-your-pull-request-is-merged"]], "Development Conventions": [[6, "development-conventions"]], "New Lines": [[6, "new-lines"]], "Formatting": [[6, "formatting"]], "Validate the Python package": [[6, "validate-the-python-package"]], "Memory Leaks and clang-tidy": [[6, "memory-leaks-and-clang-tidy"]], "Blaming NMODL": [[6, "blaming-nmodl"]], "C++ API": [[7, "c-api"]], "About NMODL": [[8, "about-nmodl"], [24, "about-nmodl"]], "Introduction:": [[8, null]], "Contents:": [[8, null]], "Jupyter Notebooks:": [[8, null]], "Contributing:": [[8, null]], "Reference:": [[8, null]], "Indices and tables": [[8, "indices-and-tables"]], "Installing the NMODL Framework": [[9, "installing-the-nmodl-framework"]], "Getting Started": [[9, "getting-started"]], "Cloning Source": [[9, "cloning-source"]], "Prerequisites": [[9, "prerequisites"]], "On MacOS": [[9, "on-macos"]], "On Ubuntu": [[9, "on-ubuntu"]], "Build Project": [[9, "build-project"]], "Using CMake": [[9, "using-cmake"]], "Flex / Bison Paths": [[9, "flex-bison-paths"]], "Using the Python build system": [[9, "using-the-python-build-system"]], "Building a wheel": [[9, "building-a-wheel"]], "When building without linking against libpython": [[9, "when-building-without-linking-against-libpython"]], "Testing the Installed Module": [[9, "testing-the-installed-module"]], "Generating Documentation": [[9, "generating-documentation"]], "The NEURON MODeling language": [[10, "the-neuron-modeling-language"]], "Python package": [[11, "python-package"]], "Module contents": [[12, "module-nmodl"]], "Submodules": [[12, "submodules"]], "nmodl.ast module": [[12, "module-nmodl.ast"]], "nmodl.dsl module": [[12, "module-nmodl.dsl"]], "nmodl.ode module": [[12, "module-nmodl.ode"]], "nmodl.symtab module": [[12, "module-nmodl.symtab"]], "nmodl.visitor module": [[12, "module-nmodl.visitor"]], "The NMODL Jupyter notebooks": [[13, "the-nmodl-jupyter-notebooks"]], "About the notebooks": [[13, "about-the-notebooks"]], "NMODL jupyter notebooks": [[14, "nmodl-jupyter-notebooks"]], "NMODL Kinetic Scheme": [[15, "NMODL-Kinetic-Scheme"]], "Reaction Kinetics": [[15, "Reaction-Kinetics"]], "Law of Mass Action": [[15, "Law-of-Mass-Action"]], "KINETIC block format": [[15, "KINETIC-block-format"]], "Other types of reaction statement": [[15, "Other-types-of-reaction-statement"]], "f_flux / b_flux variables": [[15, "f_flux-/-b_flux-variables"]], "[TODO] CONSERVE": [[15, "[TODO]-CONSERVE"]], "Examples": [[15, "Examples"], [20, "Examples"], [21, "Examples"], [22, "Examples"], [23, "Examples"]], "Ex. 1": [[15, "Ex.-1"], [20, "Ex.-1"], [21, "Ex.-1"], [22, "Ex.-1"], [23, "Ex.-1"]], "Ex. 2": [[15, "Ex.-2"], [20, "Ex.-2"], [21, "Ex.-2"], [22, "Ex.-2"], [23, "Ex.-2"]], "Ex. 3": [[15, "Ex.-3"], [20, "Ex.-3"], [21, "Ex.-3"]], "Ex. 4": [[15, "Ex.-4"], [20, "Ex.-4"], [21, "Ex.-4"]], "Ex. 5": [[15, "Ex.-5"], [20, "Ex.-5"], [21, "Ex.-5"]], "NMODL LINEAR solver": [[16, "NMODL-LINEAR-solver"]], "NMODL NONLINEAR solver": [[17, "NMODL-NONLINEAR-solver"]], "Newton solver": [[17, "Newton-solver"]], "Fall-back solver": [[17, "Fall-back-solver"]], "NMODL integration of ODEs": [[18, "NMODL-integration-of-ODEs"]], "KINETIC block": [[18, "KINETIC-block"]], "DERIVATIVE block": [[18, "DERIVATIVE-block"]], "LINEAR block": [[18, "LINEAR-block"]], "NONLINEAR block": [[18, "NONLINEAR-block"]], "NMODL Python Interface Tutorial": [[19, "NMODL-Python-Interface-Tutorial"]], "Introduction": [[19, "Introduction"], [20, "Introduction"]], "Parsing Model And Constructing AST": [[19, "Parsing-Model-And-Constructing-AST"]], "Querying AST object with Visitors": [[19, "Querying-AST-object-with-Visitors"]], "Lookup visitor": [[19, "Lookup-visitor"]], "Custom AST visitor": [[19, "Custom-AST-visitor"]], "Easy code generation using AST visitors": [[19, "Easy-code-generation-using-AST-visitors"]], "Example of CURIE information parsing": [[19, "Example-of-CURIE-information-parsing"]], "NMODL CONDUCTANCE": [[20, "NMODL-CONDUCTANCE"]], "Implementation": [[20, "Implementation"], [21, "Implementation"], [22, "Implementation"], [23, "Implementation"]], "Implementation Tests": [[20, "Implementation-Tests"], [21, "Implementation-Tests"], [22, "Implementation-Tests"], [23, "Implementation-Tests"]], "Ex. 6": [[20, "Ex.-6"], [21, "Ex.-6"]], "Ex. 7": [[20, "Ex.-7"]], "NMODL SympySolver - cnexp": [[21, "NMODL-SympySolver---cnexp"]], "Pade approximant": [[21, "Pade-approximant"]], "NMODL SympySolver - derivimplicit": [[22, "NMODL-SympySolver---derivimplicit"]], "NMODL SympySolver - sparse": [[23, "NMODL-SympySolver---sparse"]], "The NMODL Framework": [[24, "the-nmodl-framework"]], "Installation": [[24, "installation"]], "Try NMODL with Docker": [[24, "try-nmodl-with-docker"]], "Using the Python API": [[24, "using-the-python-api"]], "High Level Analysis and Code Generation": [[24, "high-level-analysis-and-code-generation"]], "Documentation": [[24, "documentation"]], "Citation": [[24, "citation"]], "Support / Contribuition": [[24, "support-contribuition"]], "Examples / Benchmarks": [[24, "examples-benchmarks"]], "Funding & Acknowledgment": [[24, "funding-acknowledgment"]]}, "indexentries": {"nmodldriver (class in nmodl)": [[12, "nmodl.NmodlDriver"]], "differentiate2c() (in module nmodl.ode)": [[12, "nmodl.ode.differentiate2c"]], "discretize_derivative() (in module nmodl.ode)": [[12, "nmodl.ode.discretize_derivative"]], "finite_difference_step_variable() (in module nmodl.ode)": [[12, "nmodl.ode.finite_difference_step_variable"]], "forwards_euler2c() (in module nmodl.ode)": [[12, "nmodl.ode.forwards_euler2c"]], "get_ast() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.get_ast"]], "integrate2c() (in module nmodl.ode)": [[12, "nmodl.ode.integrate2c"]], "list_examples() (in module nmodl.dsl)": [[12, "nmodl.dsl.list_examples"]], "load_example() (in module nmodl.dsl)": [[12, "nmodl.dsl.load_example"]], "module": [[12, "module-nmodl"], [12, "module-nmodl.ast"], [12, "module-nmodl.dsl"], [12, "module-nmodl.ode"], [12, "module-nmodl.symtab"], [12, "module-nmodl.visitor"]], "needs_finite_differences() (in module nmodl.ode)": [[12, "nmodl.ode.needs_finite_differences"]], "nmodl": [[12, "module-nmodl"]], "nmodl.ast": [[12, "module-nmodl.ast"]], "nmodl.dsl": [[12, "module-nmodl.dsl"]], "nmodl.ode": [[12, "module-nmodl.ode"]], "nmodl.symtab": [[12, "module-nmodl.symtab"]], "nmodl.visitor": [[12, "module-nmodl.visitor"]], "parse_file() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.parse_file"]], "parse_stream() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.parse_stream"]], "parse_string() (nmodl.nmodldriver method)": [[12, "nmodl.NmodlDriver.parse_string"]], "search_and_replace_protected_identifiers_from_sympy() (in module nmodl.ode)": [[12, "nmodl.ode.search_and_replace_protected_identifiers_from_sympy"]], "search_and_replace_protected_identifiers_to_sympy() (in module nmodl.ode)": [[12, "nmodl.ode.search_and_replace_protected_identifiers_to_sympy"]], "solve_lin_system() (in module nmodl.ode)": [[12, "nmodl.ode.solve_lin_system"]], "solve_non_lin_system() (in module nmodl.ode)": [[12, "nmodl.ode.solve_non_lin_system"]], "to_json() (in module nmodl)": [[12, "nmodl.to_json"]], "to_nmodl() (in module nmodl)": [[12, "nmodl.to_nmodl"]], "transform_expression() (in module nmodl.ode)": [[12, "nmodl.ode.transform_expression"]], "transform_matrix_elements() (in module nmodl.ode)": [[12, "nmodl.ode.transform_matrix_elements"]], "view() (in module nmodl.ast)": [[12, "nmodl.ast.view"]]}}) \ No newline at end of file