{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "81a18c1d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T08:13:49.476049Z",
     "iopub.status.busy": "2026-06-19T08:13:49.475850Z",
     "iopub.status.idle": "2026-06-19T08:13:54.941490Z",
     "shell.execute_reply": "2026-06-19T08:13:54.940282Z"
    },
    "tags": [
     "remove-cell"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import brainmass\n",
    "import brainstate\n",
    "import brainunit as u\n",
    "import jax.numpy as jnp\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "brainstate.random.seed(0)\n",
    "brainstate.environ.set(dt=0.1 * u.ms)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "98a0f90f",
   "metadata": {},
   "source": [
    "# Linear Node\n",
    "\n",
    "The **Linear node** is the simplest possible region model — a single damped linear state variable,\n",
    "\n",
    "$$\\dot x = \\gamma\\,x + \\text{coupling},$$\n",
    "\n",
    "with $\\gamma < 0$ for a stable node. On its own it is a leaky integrator that decays to zero (or to a forced steady state $-c/\\gamma$ under a constant drive $c$). It is TVB's `Linear` model and serves as a baseline / sanity-check node for coupling and integration tests — analytically tractable because exponential-Euler is *exact* for linear systems. (Distinct from the two-population `ThresholdLinearStep`.)\n",
    "\n",
    "**Reference:** Sanz-Leon, Knock, Spiegler & Jirsa (2015), *Mathematical framework for large-scale brain network modeling in The Virtual Brain*, NeuroImage 111:385-430."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acfec3ca",
   "metadata": {},
   "source": [
    "## Build the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "de83c837",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T08:13:54.945929Z",
     "iopub.status.busy": "2026-06-19T08:13:54.945249Z",
     "iopub.status.idle": "2026-06-19T08:13:54.967334Z",
     "shell.execute_reply": "2026-06-19T08:13:54.966475Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearStep(\n",
       "  in_size=(1,),\n",
       "  out_size=(1,),\n",
       "  gamma=Const(\n",
       "    fit=False,\n",
       "    t=IdentityT(),\n",
       "    reg=None,\n",
       "    val=Array(-10., dtype=float32)\n",
       "  ),\n",
       "  init_x=Constant(value=0.01),\n",
       "  method=exp_euler\n",
       ")"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "node = brainmass.LinearStep(in_size=1, gamma=-10.0)\n",
    "node"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ac5f69a9",
   "metadata": {},
   "source": [
    "## Run a simulation\n",
    "\n",
    "We kick the node away from rest and watch it decay. The exponential-Euler step is exact for this linear ODE, so the trajectory matches the closed form $x(t) = x_0 e^{\\gamma t}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8fb6fead",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T08:13:54.969490Z",
     "iopub.status.busy": "2026-06-19T08:13:54.969217Z",
     "iopub.status.idle": "2026-06-19T08:13:55.120885Z",
     "shell.execute_reply": "2026-06-19T08:13:55.120156Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(500, 1)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "brainstate.nn.init_all_states(node)\n",
    "node.x.value = node.x.value + 1.0  # kick to x = 1\n",
    "res = brainmass.Simulator(node, dt=0.1 * u.ms).run(\n",
    "    50. * u.ms, monitors=['x'], init_states=False)\n",
    "res['x'].shape"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe39d98f",
   "metadata": {},
   "source": [
    "## Visualize\n",
    "\n",
    "The simulated decay (dots) lies on the analytic exponential (line)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "7eb29386",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T08:13:55.123938Z",
     "iopub.status.busy": "2026-06-19T08:13:55.123531Z",
     "iopub.status.idle": "2026-06-19T08:13:55.278430Z",
     "shell.execute_reply": "2026-06-19T08:13:55.277657Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAGJCAYAAACZ7rtNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUuFJREFUeJzt3XlcVdX+//H3AZlRBpkVxHlWFJXUa1pZlmVfNctvdpNsLsvMyrJyatL0VlpWpvemDd+uVjfrdxssI7UsU9M0TcVZTAHBARAQkLN/f2w4cGRQFDgcfD0fj/Wgs8/aZ382G+rdYu21LYZhGAIAAACckIujCwAAAAAuFGEWAAAAToswCwAAAKdFmAUAAIDTIswCAADAaRFmAQAA4LQIswAAAHBahFkAAAA4LcIsAAAAnBZhFriEHDhwQBaLRYsXL3Z0KXWexWLRtGnTHF1GvVCb30uuG3DpIcwC9cTixYtlsVj022+/OboUOLHo6GhZLJZy27XXXuvo8iBp+/btmjZtmg4cOODoUoA6oYGjCwBQe5o1a6bc3Fy5ubk5uhTUYTExMXrsscfKbI+IiHBANVWTm5urBg3q93/atm/frunTp2vAgAGKjo52dDmAw9Xv33gAdiwWizw9PR1dRqVycnLk7e3t6DIuaU2aNNHf//53R5dRrtOnT8vd3V0uLuX/YbGu/3wDqH5MMwAuIeXNmb3jjjvk6+urw4cPa+jQofL19VVwcLAef/xxFRYW2u1vtVo1Z84cdezYUZ6engoNDdV9992nEydO2PX74osvdP311ysiIkIeHh5q2bKlnn/++TKfN2DAAHXq1EkbN27U5ZdfLm9vbz399NMV1l+VWrOzs/XYY48pMjJSHh4eatu2rf7xj3/IMAy7fnl5eXr00UcVHByshg0b6sYbb9Rff/1V7vEPHz6sO++8U6GhofLw8FDHjh317rvvlumXlJSknTt3VngeZx9/6tSpatWqlTw8PBQZGamJEycqLy/P1ic+Pl6enp7asWOH3b6DBg1SQECAjhw5IqlkqsmPP/6o++67T40bN1ajRo00evToMtfoYg0YMEADBgwos/2OO+44r9HC8/lerlq1ShaLRUuWLNGzzz6rJk2ayNvbW5mZmRV+7tlzZrOysjR+/HhFR0fLw8NDISEhuvrqq7Vp06aLrjE3N1ft2rVTu3btlJuba9t+/PhxhYeHq0+fPrafyz/++EN33HGHWrRoIU9PT4WFhenOO+/UsWPHyj3uXXfdZfv9ad68uR544AHl5+dr8eLFuvnmmyVJV1xxhW0KyKpVq855PkB9xcgsABUWFmrQoEGKi4vTP/7xD33//fd65ZVX1LJlSz3wwAO2fvfdd58WL16sMWPGaNy4cdq/f7/mzZun33//XT///LNt+sLixYvl6+urCRMmyNfXVz/88IOmTJmizMxMzZ492+7Yx44d03XXXaf//d//1d///neFhoZedK2GYejGG2/UypUrdddddykmJkbffvutnnjiCR0+fFivvfaa7fPuvvtuffjhhxo1apT69OmjH374Qddff32Z46ampuqyyy6TxWLRQw89pODgYH3zzTe66667lJmZqfHjx9v6jh49WqtXry4TnM9mtVp14403as2aNbr33nvVvn17bd26Va+99pp27dqlzz//XJI0d+5c/fDDD4qPj9fatWvl6uqqd955R999950++OCDMn/+f+ihh+Tv769p06YpMTFRb7/9tg4ePGgLh+dSUFCg9PT0Mtt9fHzk5eV1zv3PpSrfS0l6/vnn5e7urscff1x5eXlyd3c/72Pdf//9+vTTT/XQQw+pQ4cOOnbsmNasWaMdO3aoe/fuF1Wjl5eX3nvvPfXt21fPPPOMXn31VUnS2LFjlZGRocWLF8vV1VWStGLFCu3bt09jxoxRWFiY/vzzTy1YsEB//vmnfv31V9t1OXLkiHr16qWTJ0/q3nvvVbt27XT48GF9+umnysnJ0eWXX65x48bp9ddf19NPP6327dtLku0rcEkyANQLixYtMiQZGzZsqLDP/v37DUnGokWLbNvi4+MNScZzzz1n17dbt25GbGys7fVPP/1kSDL+7//+z67f8uXLy2zPyckpc+z77rvP8Pb2Nk6fPm3b1r9/f0OSMX/+/PM6x/Ot9fPPPzckGS+88IJdvxEjRhgWi8XYs2ePYRiGsXnzZkOS8eCDD9r1GzVqlCHJmDp1qm3bXXfdZYSHhxvp6el2ff/3f//X8PPzszvn4vM6lw8++MBwcXExfvrpJ7vt8+fPNyQZP//8s23bt99+azunffv2Gb6+vsbQoUPt9iv+GYiNjTXy8/Nt22fNmmVIMr744otz1tSsWTNDUrltxowZdufYv3//MvvHx8cbzZo1s9t2od/LlStXGpKMFi1alPszVZ6zj+Xn52eMHTv2vPYtrSrXe9KkSYaLi4vx448/Gp988okhyZgzZ47dfuXV/+9//9uQZPz444+2baNHjzZcXFzK/T22Wq2GYRi2Y6xcubLK5wXUR0wzACDJHMEqrV+/ftq3b5/t9SeffCI/Pz9dffXVSk9Pt7XY2Fj5+vpq5cqVtr6lR++ysrKUnp6ufv36KScnp8yf3z08PDRmzJhqrfXrr7+Wq6urxo0bZ9fvsccek2EY+uabb2z9JJXpd/bIoGEY+s9//qMhQ4bIMAy78x80aJAyMjLs/my9atWqc47KSub3tH379mrXrp3dZ1555ZWSZPc9veaaa3Tffffpueee0/Dhw+Xp6al33nmn3M+999577W7ye+CBB9SgQQPb+Z5LXFycVqxYUabdeuut57V/Zar6vZTMaRYXOiLs7++vdevW2aZi1ESN06ZNU8eOHRUfH68HH3xQ/fv3L/MzVbr+06dPKz09XZdddpkk2T7LarXq888/15AhQ9SjR48ydZ3PqDpwKWKaAQB5enoqODjYbltAQIDdPMvdu3crIyNDISEh5X7G0aNHbf/8559/6tlnn9UPP/xQZn5jRkaG3esmTZpU6c/G51PrwYMHFRERoYYNG9r1K/5T7MGDB21fXVxc1LJlS7t+bdu2tXudlpamkydPasGCBVqwYEG5dZU+//O1e/du7dixo8z5VPSZ//jHP/TFF19o8+bN+uijjyq8Fq1bt7Z77evrq/DwcNtSThkZGXZzPN3d3RUYGGh7HRQUpIEDB1b5fM7HhXwvmzdvfsHHmzVrluLj4xUZGanY2FgNHjxYo0ePVosWLaqtRnd3d7377rvq2bOnPD09tWjRojLB8/jx45o+fbqWLFlS5vyKfyfS0tKUmZmpTp06XejpApckwiwA27y+ylitVoWEhOj//u//yn2/OJCdPHlS/fv3V6NGjfTcc8+pZcuW8vT01KZNm/Tkk0/KarXa7VfVEbfzqbW6Fdf897//XfHx8eX26dKlywV9bufOnW1zLc8WGRlp9/r333+3BaGtW7de8EjpI488ovfee8/2un///lW+gchisZQ7+nz2jXhnu5Dv5cXM073lllvUr18/LVu2TN99951mz56tl19+WZ999pmuu+66aqvx22+/lWSOuu7evbtMAL/lllv0yy+/6IknnlBMTIx8fX1ltVp17bXXlvmdAFA1hFkA56Vly5b6/vvv1bdv30rDxapVq3Ts2DF99tlnuvzyy23b9+/fXxtlSjLX0/3++++VlZVlNzpbPMWhWbNmtq9Wq1V79+61G41NTEy0+7zilQ4KCwurdcSyZcuW2rJli6666qpz/gk5OztbY8aMUYcOHdSnTx/NmjVLw4YNU8+ePcv03b17t6644grb61OnTik5OVmDBw+WJE2cONFu6a2AgIAq1x4QEGA3taNY8ah3RWrqe1mZ8PBwPfjgg3rwwQd19OhRde/eXS+++GKFYbaqNf7xxx967rnnNGbMGG3evFl33323tm7dKj8/P0nSiRMnlJCQoOnTp2vKlCm2/Xbv3l3muI0aNdK2bdsqPR7TDQB7zJkFcF5uueUWFRYW6vnnny/z3pkzZ3Ty5ElJJSOnpUft8vPz9dZbb9VKnZI0ePBgFRYWat68eXbbX3vtNVksFluIKf76+uuv2/WbM2eO3WtXV1fddNNN+s9//lNu0EhLS7N7fb5Lc91yyy06fPiwFi5cWOa93NxcZWdn214/+eSTSkpK0nvvvadXX31V0dHRio+Pt1vCq9iCBQtUUFBge/3222/rzJkztvPt0KGDBg4caGuxsbHnrPVsLVu21M6dO+3OfcuWLfr5558r3a+q38uLUVhYWGZaS0hIiCIiIsr9vl1IjQUFBbrjjjsUERGhuXPnavHixUpNTdWjjz5q93mSyoxkn/1z5uLioqFDh+q///1vuU/yK97fx8dHkmy/c8CljpFZoJ559913tXz58jLbH3nkkYv63P79++u+++7TjBkztHnzZl1zzTVyc3PT7t279cknn2ju3LkaMWKE+vTpo4CAAMXHx2vcuHGyWCz64IMPzuuGqOoyZMgQXXHFFXrmmWd04MABde3aVd99952++OILjR8/3jZHNiYmRrfeeqveeustZWRkqE+fPkpISNCePXvKfObMmTO1cuVKxcXF6Z577lGHDh10/Phxbdq0Sd9//72OHz9u63u+S3Pdfvvt+vjjj3X//fdr5cqV6tu3rwoLC7Vz5059/PHH+vbbb9WjRw/98MMPeuuttzR16lTbclKLFi3SgAEDNHnyZM2aNcvuc/Pz83XVVVfplltuUWJiot566y397W9/04033nhe37/Dhw/rww8/LLPd19dXQ4cOlSTdeeedevXVVzVo0CDd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PmgEBAQY3t7exrBhw4zk5GTHFY0y7rzzTqNZs2aGu7u7ERwcbFx11VXGd999Z3ufa+h8Si/NZRhcw7pu5MiRRnh4uOHu7m40adLEGDlypLFnzx7b+3X1+lkMwzAclKMBAACAi8KcWQAAADgtwiwAAACcFmEWAAAAToswCwAAAKdFmAUAAIDTIswCAADAaRFmAQAA4LQIswAAAHBahFkAqCGrVq2SxWLRyZMnHXL8hIQEtW/fXoWFhTV2jMsuu0z/+c9/auzzAeBceAIYAFSDAQMGKCYmRnPmzLFty8/P1/HjxxUaGiqLxVLrNcXGxmrChAm67bbbauwYX375pR599FElJibKxYXxEQC1j3/zAEANcXd3V1hYmEOC7Jo1a7R3717ddNNNNXqc6667TllZWfrmm29q9DgAUBHCLABcpDvuuEOrV6/W3LlzZbFYZLFYdODAgTLTDBYvXix/f399+eWXatu2rby9vTVixAjl5OTovffeU3R0tAICAjRu3Di7qQF5eXl6/PHH1aRJE/n4+CguLk6rVq2qtKYlS5bo6quvlqenp23btGnTFBMTo3fffVdRUVHy9fXVgw8+qMLCQs2aNUthYWEKCQnRiy++aNvHMAxNmzZNUVFR8vDwUEREhMaNG2d739XVVYMHD9aSJUuq55sJAFXUwNEFAICzmzt3rnbt2qVOnTrpueeekyQFBwfrwIEDZfrm5OTo9ddf15IlS5SVlaXhw4dr2LBh8vf319dff619+/bppptuUt++fTVy5EhJ0kMPPaTt27dryZIlioiI0LJly3Tttddq69atat26dbk1/fTTTxo1alSZ7Xv37tU333yj5cuXa+/evRoxYoT27dunNm3aaPXq1frll1905513auDAgYqLi9N//vMfvfbaa1qyZIk6duyolJQUbdmyxe4ze/XqpZkzZ17kdxEALgxhFgAukp+fn9zd3eXt7a2wsLBK+xYUFOjtt99Wy5YtJUkjRozQBx98oNTUVPn6+qpDhw664oortHLlSo0cOVJJSUlatGiRkpKSFBERIUl6/PHHtXz5ci1atEgvvfRSucc5ePCgrX9pVqtV7777rho2bGg7VmJior7++mu5uLiobdu2evnll7Vy5UrFxcUpKSlJYWFhGjhwoNzc3BQVFaVevXrZfWZERIQOHTokq9XKvFkAtY5/6wBALfL29rYFWUkKDQ1VdHS0fH197bYdPXpUkrR161YVFhaqTZs28vX1tbXVq1dr7969FR4nNzfXbopBsejoaDVs2NDuWB06dLALoaWPf/PNNys3N1ctWrTQPffco2XLlunMmTN2n+nl5SWr1aq8vLwqfjcA4OIxMgsAtcjNzc3utcViKXeb1WqVJJ06dUqurq7auHGjXF1d7fqVDsBnCwoK0okTJy76+JGRkUpMTNT333+vFStW6MEHH9Ts2bO1evVq237Hjx+Xj4+PvLy8Kjt1AKgRhFkAqAbu7u41sp5rt27dVFhYqKNHj6pfv35V2m/79u3VUoOXl5eGDBmiIUOGaOzYsWrXrp22bt2q7t27S5K2bdumbt26VcuxAKCqCLMAUA2io6O1bt06HThwQL6+vgoMDKyWz23Tpo1uu+02jR49Wq+88oq6deumtLQ0JSQkqEuXLrr++uvL3W/QoEF67733Lvr4ixcvVmFhoeLi4uTt7a0PP/xQXl5eatasma3PTz/9pGuuueaijwUAF4I5swBQDR5//HG5urqqQ4cOCg4OVlJSUrV99qJFizR69Gg99thjatu2rYYOHaoNGzYoKiqqwn1uu+02/fnnn0pMTLyoY/v7+2vhwoXq27evunTpou+//17//e9/1bhxY0nS4cOH9csvv2jMmDEXdRwAuFA8AQwA6qknnnhCmZmZeuedd2rsGE8++aROnDihBQsW1NgxAKAyjMwCQD31zDPPqFmzZrabuWpCSEiInn/++Rr7fAA4F0ZmAQAA4LQYmQUAAIDTIswCAADAaRFmAQAA4LQIswAAAHBahFkAAAA4LcIsAAAAnBZhFgAAAE6LMAsAAACnRZgFAACA0/r/3uTdaPf2fZoAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ts = u.get_magnitude(res['ts'])\n",
    "x = u.get_magnitude(res['x'])[:, 0]\n",
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "ax.plot(ts, x, 'o', ms=3, label='simulated')\n",
    "ax.plot(ts, np.exp(-10.0 * ts / 1000.0), '-', label=r'analytic $e^{\\gamma t}$')\n",
    "ax.set_xlabel('time (ms)'); ax.set_ylabel('x'); ax.legend()\n",
    "ax.set_title('Linear node: exp-Euler is exact')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ba7fe20",
   "metadata": {},
   "source": [
    "## Try it: vary the decay rate `gamma`\n",
    "\n",
    "More negative `gamma` means faster decay (shorter time constant $\\tau = -1/\\gamma$). With a constant drive the node would instead settle at $-c/\\gamma$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3786aad8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-06-19T08:13:55.280503Z",
     "iopub.status.busy": "2026-06-19T08:13:55.280324Z",
     "iopub.status.idle": "2026-06-19T08:13:55.559185Z",
     "shell.execute_reply": "2026-06-19T08:13:55.558081Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAGJCAYAAACZ7rtNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUxdJREFUeJzt3Xl8VNX9//H3zJA9IaxJWAIJi2xCgomEgCjVaGpxAaXQgoKR4gKomIIaWwGlbVB2kYLLF6EIPxYVa5WlGIFSSQWDUVABRSAqJmFNIEC2ub8/klwZScKSWRh8PR+PeTRz7zn3npkL9s3J555rMQzDEAAAAOCFrJ4eAAAAAHCpCLMAAADwWoRZAAAAeC3CLAAAALwWYRYAAABeizALAAAAr0WYBQAAgNcizAIAAMBrEWYBAADgtQizAAAA8FqEWQCXtYULF8pisZgvf39/NW/eXMnJyXrxxRd14sQJTw/xsrF69WpNmjTJ08MAALcizALwCs8995wWL16sefPm6ZFHHpEkjR07Vl27dtXnn3/u4dFdHlavXq1nn33W08MAALeq5+kBAMCFuPXWWxUfH2++T0tL04cffqjbbrtNd9xxh7766isFBAR4cITOV1RUpKCgIE8PAwAua8zMAvBaN954o5555hkdOHBAb7zxhsO+Xbt2aeDAgWrUqJH8/f0VHx+vd99995xjHD9+XI8//riioqLk5+enli1batiwYTp8+LAkqaSkRBMmTFBcXJxCQ0MVFBSkPn36aMOGDeYxDMNQVFSU7rzzznOOf+bMGYWGhurBBx+s9bPcd999Cg4O1t69e/Wb3/xGISEhGjp0qCRp8+bN+u1vf6tWrVrJz89PkZGRevzxx3X69GmH/nPnzpUkh7KMKna7XbNmzVKXLl3k7++v8PBwPfjggzp27Nj5vmbl5uYqJSVFLVu2lJ+fn5o1a6Y777xT+/fvlySlpqaqcePGMgzD7PPII4/IYrHoxRdfNLfl5eXJYrFo3rx55rbi4mJNnDhR7dq1Mz/bE088oeLi4nPG8cYbbyguLk4BAQFq1KiRfve73+m7775zaNO3b19dffXVysrKUq9evRQQEKDo6GjNnz//vJ8TgHcizALwavfee68k6d///re57YsvvlDPnj311Vdf6amnntL06dMVFBSk/v37a9WqVWa7kydPqk+fPpozZ45uueUWzZ49Ww899JB27dql77//XpJUWFio1157TX379tXzzz+vSZMm6dChQ0pOTlZ2drakivB4zz33aM2aNTp69KjD+P71r3+psLBQ99xzz3k/S1lZmZKTkxUWFqZp06bp7rvvliStXLlSp06d0sMPP6w5c+YoOTlZc+bM0bBhw8y+Dz74oG6++WZJ0uLFi83X2fvHjx+v3r17a/bs2UpJSdGSJUuUnJys0tLSWsd19913a9WqVUpJSdHf//53Pfroozpx4oRycnIkSX369NHRo0f1xRdfmH02b94sq9WqzZs3O2yTpOuvv15SRcC+4447NG3aNN1+++2aM2eO+vfvr5kzZ2rw4MEOY/jrX/+qYcOGqX379poxY4bGjh2rjIwMXX/99Tp+/LhD22PHjuk3v/mN4uLi9MILL6hly5Z6+OGHtWDBgvNeAwBeyACAy9jrr79uSDK2bdtWY5vQ0FCje/fu5vubbrrJ6Nq1q3HmzBlzm91uN3r16mW0b9/e3DZhwgRDkvH222+fc0y73W4YhmGUlZUZxcXFDvuOHTtmhIeHG/fff7+5bffu3YYkY968eQ5t77jjDiMqKso8Xk2GDx9uSDKeeuqpc/adOnXqnG3p6emGxWIxDhw4YG4bPXq0Ud1/1jdv3mxIMpYsWeKwfe3atdVuP9uxY8cMScbUqVNrbJOfn29IMv7+978bhmEYx48fN6xWq/Hb3/7WCA8PN9s9+uijRqNGjczvYvHixYbVajU2b97scLz58+cbkoyPPvrIMAzD2L9/v2Gz2Yy//vWvDu127Nhh1KtXz2H7DTfcYEgypk+fbm4rLi42YmNjjbCwMKOkpKTGzwHAOzEzC8DrBQcHm6saHD16VB9++KEGDRqkEydO6PDhwzp8+LCOHDmi5ORkff311/rhhx8kSW+99ZZiYmI0YMCAc45Z9St6m80mX19fSRUziUePHlVZWZni4+O1fft2s/1VV12lhIQELVmyxNx29OhRrVmzRkOHDnX4lX9tHn744XO2nV0LXFRUpMOHD6tXr14yDEOffvrpeY+5cuVKhYaG6uabbza/j8OHDysuLk7BwcEOJRPVndvX11cbN26ssSShadOm6tixo/7zn/9Ikj766CPZbDaNHz9eeXl5+vrrryVVzMxed9115nexcuVKderUSR07dnQY14033ihJ5rjefvtt2e12DRo0yKFd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ly46cOCAJKlPnz5as2aNmjRpotTUVLPNtddeq4MHD2rq1Km1zs5erjwWZg8fPqzy8vJqU/6uXbuq7fPtt9/qww8/1NChQ7V69Wp98803GjVqlEpLSzVx4sRq+6SlpTlcsMLCQkVGRjrvg5yHrXJmliwLAPAWFovlgn/VfzkrKipScnKykpOTtWTJEjVt2lQ5OTlKTk4+p87z7HpRi8VyTv2oxWIxg3B1farrV/WEq6p+y5Yt07hx4zR9+nQlJiYqJCREU6dO1ccff1zr56hLmcHq1atVWloqSQoICKjxGAkJCVq/fn2N+yMiIs4J83l5eeY+T/KqP6l2u11hYWF65ZVXZLPZFBcXpx9++EFTp06tMcz6+fnJz8/PzSP9SeXELGUGAAA4UZs2beTj46Nt27apVatWkqSCggLt2bNH119/vSRp165dOnLkiKZMmWJOZH3yySceG/NHH32kXr16adSoUea2vXv3nrdfXcoMWrdufUFjy87OVrNmzWrcn5iYqL/+9a/Kz88372tav3696tev7zDD7QkeC7NNmjSRzWYzU32VvLy8GhN+s2bN5OPj41BS0KlTJ+Xm5qqkpES+vr4uHfOloMwAAADnCwkJ0fDhwzV+/Hg1atRIYWFhmjhxoqxWqzkj2qpVK/n6+mrOnDl66KGHtHPnTk2ePNljY27fvr3+8Y9/aN26dYqOjtbixYu1bds2RUdH19qvLmUG1Vm0aJF8fX3Nm7befvttLViwQK+99prZZtWqVUpLSzN/W37LLbeoc+fOuvfee/XCCy8oNzdXf/7znzV69GiPThpKHlyay9fXV3FxccrIyDC32e12ZWRkKDExsdo+vXv31jfffOMwzb9nzx41a9bssgyy0tllBoRZAACcacaMGUpMTNRtt92mpKQk9e7dW506dZK/v78kqWnTplq4cKFWrlypzp07a8qUKZo2bZrHxvvggw/qrrvu0uDBg5WQkKAjR444zNK60+TJkxUXF6eEhAT985//1PLly80b8qWKWe7du3eb7202m9577z3ZbDYlJibqnnvu0bBhw/Tcc895YvgOLIYHU9by5cs1fPhwvfzyy+rRo4dmzZqlFStWaNeuXQoPD9ewYcPUokULpaenS5K+++47denSRcOHD9cjjzyir7/+Wvfff78effRR/elPf7qgcxYWFio0NFQFBQUXffffpZi7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AADAmQizrsbSXAAAAC5DmHW1s8oMqJkFAABwLsKsq1krvmKrDGpmAQAAnIww62pnlxkwMwsAAOBUhFlXO7vMgJpZAAAApyLMupq5moGhUsoMAAAAnIow62pnlRlwAxgAAIBzEWZd7awyg9JyQ4ZBoAUAAHAWwqyrnVVmIElMzgIAADgPYdbVqsoMLBX1sizPBQAA4DyEWVezVK0zWxlmWdEAAADAaQizrvazMgPWmgUAAHAewqyrVd4AZqucmWVFAwAAAOe56DC7YcOGGve9/PLLdRrMFemspbkkqaycmlkAAABnuegw++tf/1rjx49XaWmpue3w4cO6/fbb9dRTTzl1cFeEqjIDC2UGAAAAznZJM7OrVq3Stddeqy+//FLvv/++rr76ahUWFio7O/uSBjF37lxFRUXJ399fCQkJ2rp1a41t3377bcXHx6tBgwYKCgpSbGysFi9efEnndYufzcxSZgAAAOA8Fx1me/XqpezsbF199dW65pprNGDAAD3++OPauHGjWrdufdEDWL58uVJTUzVx4kRt375dMTExSk5OVn5+frXtGzVqpD/96U/KzMzU559/rpSUFKWkpGjdunUXfW63qAyz9SqX5iqlzAAAAMBpLukGsD179uiTTz5Ry5YtVa9ePe3evVunTp26pAHMmDFDI0eOVEpKijp37qz58+crMDBQCxYsqLZ93759NWDAAHXq1Elt27bVY489pm7duum///3vJZ3f5azcAAYAAOAqFx1mp0yZosTERN18883auXOntm7dqk8//VTdunVTZmbmRR2rpKREWVlZSkpK+mlAVquSkpIu6FiGYSgjI0O7d+/W9ddfX22b4uJiFRYWOrzcysLSXAAAAK5y0WF29uzZeueddzRnzhz5+/vr6quv1tatW3XXXXepb9++F3Wsw4cPq7y8XOHh4Q7bw8PDlZubW2O/goICBQcHy9fXV/369dOcOXN08803V9s2PT1doaGh5isyMvKixlhn5hPAKsMsD00AAABwmnoX22HHjh1q0qSJwzYfHx9NnTpVt912m9MGVpuQkBBlZ2fr5MmTysjIUGpqqtq0aVNtmE5LS1Nqaqr5vrCw0L2B9mdlBjzOFgAAwHkuOsz+PMie7YYbbrjoY9lsNuXl5Tlsz8vLU0RERI39rFar2rVrJ0mKjY3VV199pfT09GrDrJ+fn/z8/C5q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m5ur2NhYrV271rzJKycnR1brTxPIvXr10tKlS/XnP/9ZTz/9tNq3b6933nlHV199tac+AgAAADzE4+vMupun1pkFAADAhbmYvObxJ4ABAAAAl4owCwAAAK9FmAUAAIDXIswCAADAaxFmAQAA4LUIswAAAPBaHl9n1t2qViIrLCz08EgAAABQnaqcdiEryP7iwuyJEyckSZGRkR4eCQAAAGpz4sQJhYaG1trmF/fQBLvdroMHDyokJEQWi8Wl5yosLFRkZKS+++47HtDgpbiG3o9r6P24ht6Pa+j93H0NDcPQiRMn1Lx5c4cnwVbnFzcza7Va1bJlS7ees379+vzl9XJcQ+/HNfR+XEPvxzX0fu68huebka3CDWAAAADwWoRZAAAAeC3CrAv5+flp4sSJ8vPz8/RQcIm4ht6Pa+j9uIbej2vo/S7na/iLuwEMAAAAVw5mZgEAAOC1CLMAAADwWoRZAAAAeC3CLAAAALwWYdaF5s6dq6ioKPn7+yshIUFbt2719JBQg//85z+6/fbb1bx5c1ksFr3zzjsO+w3D0IQJE9SsWTMFBAQoKSlJX3/9tWcGi3Okp6fr2muvVUhIiMLCwtS/f3/t3r3boc2ZM2c0evRoNW7cWMHBwbr77ruVl5fnoRGjOvPmzVO3bt3MRdkTExO1Zs0acz/X0LtMmTJFFotFY8eONbdxDS9vkyZNksVicXh17NjR3H+5Xj/CrIssX75cqampmjhxorZv366YmBglJycrPz/f00NDNYqKihQTE6O5c+dWu/+FF17Qiy++qPnz5+vjjz9WUFCQkpOTdebMGTePFNXZtGmTRo8erf/9739av369SktLdcstt6ioqMhs8/jjj+tf//qXVq5cqU2bNungwYO66667PDhq/FzLli01ZcoUZWVl6ZNPPtGNN96oO++8U1988YUkrqE32bZtm15++WV169bNYTvX8PLXpUsX/fjjj+brv//9r7nvsr1+BlyiR48exujRo8335eXlRvPmzY309HQPjgoXQpKxatUq873dbjciIiKMqVOnmtuOHz9u+Pn5Gf/v//0/D4wQ55Ofn29IMjZt2mQYRsX18vHxMVauXGm2+eqrrwxJRmZmpqeGiQvQsGFD47XXXuMaepETJ04Y7du3N9avX2/ccMMNxmOPPWYYBn8PvcHEiRONmJiYavddztePmVkXKCkpUVZWlpKSksxtVqtVSUlJyszM9ODIcCn27dun3Nxch+sZGhqqhIQErudlqqCgQJLUqFEjSVJWVpZKS0sdrmHHjh3VqlUrruFlqry8XMuWLVNRUZESExO5hl5k9OjR6tevn8O1kvh76C2+/vprNW/eXG3atNHQoUOVk5Mj6fK+fvU8evYr1OHDh1VeXq7w8HCH7eHh4dq1a5eHRoVLlZubK0nVXs+qfbh82O12jR07Vr1799bVV18tqeIa+vr6qkGDBg5tuYaXnx07digxMVFnzpxRcHCwVq1apc6dOys7O5tr6AWWLVum7du3a9u2befs4+/h5S8hIUELFy5Uhw4d9OOPP+rZZ59Vnz59tHPnzsv6+hFmAVxRRo8erZ07dzrUecF7dOjQQdnZ2SooKNCbb76p4cOHa9OmTZ4eFi7Ad999p8cee0zr16+Xv7+/p4eDS3DrrbeaP3fr1k0JCQlq3bq1VqxYoYCAAA+OrHaUGbhAkyZNZLPZzrnDLy8vTxERER4aFS5V1TXjel7+xowZo/fee08bNmxQy5Ytze0REREqKSnR8ePHHdpzDS8/vr6+ateuneLi4pSenq6YmBjNnj2ba+gFsrKylJ+fr2uuuUb16tVTvXr1tGnTJr344ouqV6+ewsPDuYZepkGDBrrqqqv0zTffXNZ/BwmzLuDr66u4uDhlZGSY2+x2uzIyMpSYmOjBkeFSREdHKyIiwuF6FhYW6uOPP+Z6XiYMw9CYMWO0atUqffjhh4qOjnbYHxcXJx8fH4druHv3buXk5HANL3N2u13FxcVcQy9w0003aceOHcrOzjZf8fHxGjp0qPkz19C7nDx5Unv37lWzZs0u67+DlBm4SGpqqoYPH674+Hj16NFDs2bNUlFRkVJSUjw9NFTj5MmT+uabb8z3+/btU3Z2tho1aqRWrVpp7Nix+stf/qL27dsrOjpazzzzjJo3b67+/ft7btAwjR49WkuXLtU///lPhYSEmPVboaGhCggIUGhoqEaMGKHU1FQ1atRI9evX1yOPPKLExET17NnTw6NHlbS0NN16661q1aqVTpw4oaVLl2rjxo1at24d19ALhISEmHXqVYKCgtS4cWNzO9fw8jZu3Djdfvvtat26tQ4ePKiJEyfKZrPp97///eX9d9Cjaylc4ebMmWO0atXK8PX1NXr06GH873//8/SQUIMNGzYYks55DR8+3DCMiuW5nnnmGSM8PNzw8/MzbrrpJmP37t2eHTRM1V07Scbrr79utjl9+rQxatQoo2HDhkZgYKAxYMAA48cff/TcoHGO+++/32jdurXh6+trNG3a1LjpppuMf//73+Z+rqH3OXtpLsPgGl7uBg8ebDRr1szw9fU1WrRoYQwePNj45ptvzP2X6/WzGIZheChHAwAAAHVCzSwAAAC8FmEWAAAAXoswCwAAAK9FmAUAAIDXIswCAADAaxFmAQAA4LUIswAAAPBahFkAAAB4LcIsALjIxo0bZbFYdPz4cY+cPyMjQ506dVJ5ebnLztGzZ0+99dZbLjs+AJwPTwADACfo27evYmNjNWvWLHNbSUmJjh49qvDwcFksFrePKS4uTqmpqRo6dKjLzvHee+/p8ccf1+7du2W1Mj8CwP34Lw8AuIivr68iIiI8EmT/+9//au/evbr77rtdep5bb71VJ06c0Jo1a1x6HgCoCWEWAOrovvvu06ZNmzR79mxZLBZZLBbt37//nDKDhQsXqkGDBnrvvffUoUMHBQYGauDAgTp16pQWLVqkqKgoNWzYUI8++qhDaUBxcbHGjRunFi1aKCgoSAkJCdq4cWOtY1q2bJluvvlm+fv7m9smTZqk2NhYLViwQK1atVJwcLBGjRql8vJyvfDCC4qIiFBYWJj++te/mn0Mw9CkSZPUqlUr+fn5qXnz5nr00UfN/TabTb/5zW+0bNky53yZAHCR6nl6AADg7WbPnq09e/bo6quv1nPPPSdJatq0qfbv339O21OnTunFF1/UsmXLdOLECd11110aMGCAGjRooNWrV+vbb7/V3Xffrd69e2vw4MGSpDFjxujLL7/UsmXL1Lx5c61atUq//vWvtWPHDrVv377aMW3evFlDhgw5Z/vevXu1Zs0arV27Vnv37tXAgQP17bff6qqrrtKmTZu0ZcsW3X///UpKSlJCQoLeeustzZw5U8uWLVOXLl2Um5urzz77zOGYPXr00JQpU+r4LQLApSHMAkAdhYaGytfXV4GBgYqIiKi1bWlpqebNm6e2bdtKkgYOHKjFixcrLy9PwcHB6ty5s371q19pw4YNGjx4sHJycvT6668rJydHzZs3lySNGzdOa9eu1euvv66//e1v1Z7nwIEDZvuz2e12LViwQCEhIea5du/erdWrV8tqtapDhw56/vnntWHDBiUkJCgnJ0cRERFKSkqSj4+PWrVqpR49ejgcs3nz5vruu+9kt9upmwXgdvxXBwDcKDAw0AyykhQeHq6oqCgFBwc7bMvPz5ck7dixQ+Xl5brqqqsUHBxsvjZt2qS9e/fWeJ7Tp087lBhUiYqKUkhIiMO5Onfu7BBCzz7/b3/7W50+fVpt2rTRyJEjtWrVKpWVlTkcMyAgQHa7XcXFxRf5bQBA3TEzCwBu5OPj4/DeYrFUu81ut0uSTp48KZvNpqysLNlsNod2Zwfgn2vSpImOHTtW5/NHRkZq9+7d+uCDD7R+/XqNGjVKU6dO1aZNm8x+R48eVVBQkAICAmr76ADgEoRZAHACX19fl6zn2r17d5WXlys/P199+vS5qH5ffvmlU8YQEBCg22+/XbfffrtGjx6tjh07aseOHbrmmmskSTt37lT37t2dci4AuFiEWQBwgqioKH388cfav3+/goOD1ahRI6cc96qrrtLQoUM1bNgwTZ8+Xd27d9ehQ4eUkZGhbt26qV+/ftX2S05O1qJFi+p8/oULF6q8vFwJCQkKDAzUG2+8oYCAALVu3dpss3nzZt1yyy11PhcAXApqZgHACcaNGyebzabOnTuradOmysnJcdqxX3/9dQ0bNkx//OMf1aFDB/Xv31/btm1Tq1atauwzdOhQffHFF9q9e3edzt2gQQO9+uqr6t27t7p166YPPvhA//rXv9S4cWNJ0g8//KAtW7YoJSWlTucBgEvFE8AA4Ao1fvx4FRYW6uWXX3bZOZ588kkdO3ZMr7zyisvOAQC1YWYWAK5Qf/rTn9S6dWvzZi5XCAsL0+TJk112fAA4H2ZmAQAA4LWYmQUAAIDXIswCAADAaxFmAQAA4LUIswAAAPBahFkAAAB4LcIsAAAAvBZhFgAAAF6LMAsAAACvRZgFAACA1/r/2SE6GSxLAe4AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8, 4))\n",
    "for gamma in [-5.0, -10.0, -20.0]:\n",
    "    m = brainmass.LinearStep(in_size=1, gamma=gamma)\n",
    "    brainstate.nn.init_all_states(m)\n",
    "    m.x.value = m.x.value + 1.0\n",
    "    r = brainmass.Simulator(m, dt=0.1 * u.ms).run(\n",
    "        50. * u.ms, monitors=['x'], init_states=False)\n",
    "    ax.plot(u.get_magnitude(r['ts']), u.get_magnitude(r['x'])[:, 0], label=f'gamma = {gamma}')\n",
    "ax.set_xlabel('time (ms)'); ax.set_ylabel('x'); ax.legend()\n",
    "ax.set_title('Decay-rate sweep')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
