braincell.quad.exp_exp_euler_step#
- braincell.quad.exp_exp_euler_step(target, t, dt, *args)[source]#
Advance a cell with exponential cable and exponential Euler channels.
Operator-splitting update inside one
dtfor a multi-compartment cell:Channels and concentrations. With axial currents temporarily disabled, every non-voltage
DiffEqStateis advanced by the coupled exponential Euler update from_exponential_euler().Cable voltage. The linear axial system \(dV/dt = A V\) is then advanced by one step of the implicit Euler solver
_implicit_euler_for_axial_current(). Despite the function name, the cable update used here is the same implicit Euler solve asimplicit_exp_euler_step(); theexp_explabel refers to using exponential Euler on both the channel update and (conceptually) on the linear cable equation, where one step of implicit Euler approximates \(e^{\Delta t A} V_n\).
For non-
Celltargets the routine falls back to a single Newton solve.- Parameters:
target (
DiffEqModule) – The module to advance.t (
Quantity[s]) – Current simulation time.dt (
Quantity[s]) – Time step.*args – Extra positional arguments forwarded to the channel and voltage solvers.
- Returns:
target’s state is updated in place.- Return type:
None
See also
implicit_exp_euler_stepSame composition under a more descriptive name.
cn_exp_euler_stepCrank-Nicolson voltage paired with exponential Euler channels.