diff --git a/docs/passive_cable/cable_computation.tex b/docs/passive_cable/cable_computation.tex index 39a372196c006c7c67837f039df88c903cb439b4..888aa8a11890879818e2964ba4644744e434ab79 100644 --- a/docs/passive_cable/cable_computation.tex +++ b/docs/passive_cable/cable_computation.tex @@ -54,16 +54,16 @@ is the reversal potential. \begin{table}[ht] \centering \begin{tabular}{lSl} - \toprule - Term & {Value} & Property\\ - \midrule - $d$ & \SI{1.0}{\um} & cable diameter \\ - $L$ & \SI{1.0}{\mm} & cable length \\ - $R_A$ & \SI{1.0}{\ohm\m} & bulk axial resistivity \\ - $R_M$ & \SI{4.0}{\ohm\m\squared} & areal membrane resistivity \\ - $C_M$ & \SI{0.01}{\F\per\m\squared} & areal membrane capacitance \\ - $E_M$ & \SI{-65.0}{\mV} & membrane reversal potential \\ - \bottomrule + \toprule + Term & {Value} & Property\\ + \midrule + $d$ & \SI{1.0}{\um} & cable diameter \\ + $L$ & \SI{1.0}{\mm} & cable length \\ + $R_A$ & \SI{1.0}{\ohm\m} & bulk axial resistivity \\ + $R_M$ & \SI{4.0}{\ohm\m\squared} & areal membrane resistivity \\ + $C_M$ & \SI{0.01}{\F\per\m\squared} & areal membrane capacitance \\ + $E_M$ & \SI{-65.0}{\mV} & membrane reversal potential \\ + \bottomrule \end{tabular} \caption{Cable properties for the Rallpack 1 model.} \label{tbl:rallpack1} @@ -87,9 +87,9 @@ and the linear membrane capacitance $c$. These determine $\lambda$ and $\tau$ by With the model boundary conditions, \begin{subequations} \begin{align} - v(x, 0) &= E, \\ - \left.\frac{\partial v}{\partial x}\right\vert_{x=0} & = -Ir, \\ - \left.\frac{\partial v}{\partial x}\right\vert_{x=L} & = 0, + v(x, 0) &= E, \\ + \left.\frac{\partial v}{\partial x}\right\vert_{x=0} & = -Ir, \\ + \left.\frac{\partial v}{\partial x}\right\vert_{x=L} & = 0, \end{align} \end{subequations} where $I$ is the injected current and $L$ is the cable length. @@ -98,18 +98,18 @@ The solution $v(x, t)$ can be expressed in terms of the solution $g(x, t; L)$ to a normalized version of the cable equation, \begin{subequations} \begin{align} - \label{eq:normcable} - \frac{\partial^2 g}{\partial x^2} & = - \frac{\partial g}{\partial t} + g, + \label{eq:normcable} + \frac{\partial^2 g}{\partial x^2} & = + \frac{\partial g}{\partial t} + g, \\ - \label{eq:normcableinitial} - g(x, 0) &= 0, - \\ - \label{eq:normcableleft} - \left.\frac{\partial g}{\partial x}\right\vert_{x=0} & = 1, - \\ - \label{eq:normcableright} - \left.\frac{\partial g}{\partial x}\right\vert_{x=L} & = 0 + \label{eq:normcableinitial} + g(x, 0) &= 0, + \\ + \label{eq:normcableleft} + \left.\frac{\partial g}{\partial x}\right\vert_{x=0} & = 1, + \\ + \label{eq:normcableright} + \left.\frac{\partial g}{\partial x}\right\vert_{x=L} & = 0 \end{align} \end{subequations} by @@ -158,7 +158,7 @@ and thus Consequently, \begin{equation} \begin{aligned} - G(x, s) &= \frac{1}{ms}\cdot\frac{e^{mx}+e^{2mL-mx}}{1-e^{2mL}}\\ + G(x, s) &= \frac{1}{ms}\cdot\frac{e^{mx}+e^{2mL-mx}}{1-e^{2mL}}\\ &= - \frac{1}{ms}\cdot\frac{\cosh m(L-x)}{\sinh mL}. \end{aligned} \end{equation} @@ -199,10 +199,10 @@ arising from $m=\sqrt{1+s}$, as letting $m=-\sqrt{1+s}$ leaves $G$ unchanged. For $|s+1|>\epsilon$, \begin{equation} \begin{aligned} - |s^{3/2}G(x,s)|^2 - & \leq (1+\epsilon)^{-1} \left| \frac{\cosh m(L-x)}{\sinh mL} \right|^2 - \\ - & \leq (1+\epsilon)^{-1} (1+|\coth mL|)^2 + |s^{3/2}G(x,s)|^2 + & \leq (1+\epsilon)^{-1} \left| \frac{\cosh m(L-x)}{\sinh mL} \right|^2 + \\ + & \leq (1+\epsilon)^{-1} (1+|\coth mL|)^2 \label{eq:gbounds} \end{aligned} \end{equation} @@ -218,8 +218,8 @@ Recalling $m=\sqrt{1+s}$, $m$ and $\sinh mL$ are non-zero in a neighbourhood of $s=0$, and so the pole is simple and \begin{equation} \begin{aligned} - \Res(G; 0) & = - \frac{1}{m}\cdot\left.\frac{\cosh m(L-x)}{\sinh mL}\right|_{s=0}\\ - & = - \frac{\cosh (L-x)}{\sinh L}. + \Res(G; 0) & = - \frac{1}{m}\cdot\left.\frac{\cosh m(L-x)}{\sinh mL}\right|_{s=0}\\ + & = - \frac{\cosh (L-x)}{\sinh L}. \end{aligned} \end{equation} @@ -235,9 +235,9 @@ Let $G(x,s)=f(x,s)/h(s)$, where Noting that $dm/ds = \frac{1}{2}m^{-1}$, \begin{equation} \begin{aligned} - h'(s) &= \frac{1}{2}m^{-1}\sinh mL + \frac{1}{2}L\cosh mL \\ - &= \frac{1}{2}L + \frac{1}{2}L + O(m^2) \quad(m\to 0) \\ - &= L + O(s+1) \quad(s\to -1). + h'(s) &= \frac{1}{2}m^{-1}\sinh mL + \frac{1}{2}L\cosh mL \\ + &= \frac{1}{2}L + \frac{1}{2}L + O(m^2) \quad(m\to 0) \\ + &= L + O(s+1) \quad(s\to -1). \label{eq:hprime} \end{aligned} \end{equation} @@ -255,11 +255,11 @@ $m_k$ is non-zero for $k\geq 1$ and Consequently the pole is simple and \begin{equation} \begin{aligned} - \Res(G; s_k) - & = f(x, s_k)/h'(s_k)\\ - & = -\frac{2}{s_k L}\frac{\cosh m_k(L-x)}{\cosh m_kL} \\ - & = -\frac{2}{s_k L}\frac{\cosh m_kL\cosh m_kx-\sinh m_kL\sinh m_kL}{\cosh m_kL} \\ - & = -\frac{2}{s_k L}\cosh m_k x, + \Res(G; s_k) + & = f(x, s_k)/h'(s_k)\\ + & = -\frac{2}{s_k L}\frac{\cosh m_k(L-x)}{\cosh m_kL} \\ + & = -\frac{2}{s_k L}\frac{\cosh m_kL\cosh m_kx-\sinh m_kL\sinh m_kL}{\cosh m_kL} \\ + & = -\frac{2}{s_k L}\cosh m_k x, \end{aligned} \end{equation} as $\sinh m_k=0$. @@ -272,7 +272,7 @@ In terms of $a_k$, The series exapnsion for $g(x, t)$ therefore is \begin{equation} g(x, t) = -\frac{\cosh(L-x)}{\sinh L} + \frac{1}{L}e^{-t}\left\{ - 1+2\sum_{k=1}^\infty \frac{e^{-ta_k^2}}{1+a_k^2}\cos a_k x\right\}. + 1+2\sum_{k=1}^\infty \frac{e^{-ta_k^2}}{1+a_k^2}\cos a_k x\right\}. \label{eq:theg} \end{equation} @@ -285,16 +285,16 @@ of stopping criteria for a given tolerance. Let $g_n$ be the partial sum \begin{equation} g_n(x, t) = -\frac{\cosh(L-x)}{\sinh L} + \frac{1}{L}e^{-t}\left\{ - 1+2\sum_{k=1}^n \frac{e^{-ta_k^2}}{1+a_k^2}\cos a_k x\right\}. + 1+2\sum_{k=1}^n \frac{e^{-ta_k^2}}{1+a_k^2}\cos a_k x\right\}. \end{equation} so that $g(x, t) =\lim_{n\to\infty} g_n(x,t)$. Let $\bar{g}_n = |g-g_n|$ be the residual. The $a_k$ form an increasing sequence, so \begin{equation} \begin{aligned} - \bar{g}_n(x,t) - & \leq \frac{2}{L}e^{-t}\sum_{n+1}^\infty\frac{e^{-ta_k^2}}{1+a_k^2}\\ - & \leq \frac{2}{L}e^{-t}\int_{a_n}^\infty \frac{e^{-tu^2}}{1+u^2}\,du\\ - & < \frac{2}{L}e^{-t}\int_{a_n}^\infty \frac{e^{-tu^2}}{u^2}\,du. + \bar{g}_n(x,t) + & \leq \frac{2}{L}e^{-t}\sum_{n+1}^\infty\frac{e^{-ta_k^2}}{1+a_k^2}\\ + & \leq \frac{2}{L}e^{-t}\int_{a_n}^\infty \frac{e^{-tu^2}}{1+u^2}\,du\\ + & < \frac{2}{L}e^{-t}\int_{a_n}^\infty \frac{e^{-tu^2}}{u^2}\,du. \end{aligned} \label{eq:gbar} \end{equation} @@ -313,9 +313,9 @@ For real $\alpha<1$ and $z>0$, \textcite[][Theorem 2.3]{borwein2009} give the up Substituting into \eqref{eq:gbar} gives \begin{equation} \begin{aligned} - \bar{g}_n(x,t) - & < \frac{1}{L}e^{-t}\sqrt{t}\,\Gamma(-\frac{1}{2},a_n^2 t) \\ - & \leq \frac{1}{L}e^{-t}\sqrt{t}\,(a_n^2 t)^{-\frac{3}{2}}e^{-a_n^2t} \\ + \bar{g}_n(x,t) + & < \frac{1}{L}e^{-t}\sqrt{t}\,\Gamma(-\frac{1}{2},a_n^2 t) \\ + & \leq \frac{1}{L}e^{-t}\sqrt{t}\,(a_n^2 t)^{-\frac{3}{2}}e^{-a_n^2t} \\ & = \frac{e^{-t(1+a_n^2)}}{L t a_n^3}. \end{aligned} \end{equation} diff --git a/tests/validation/CMakeLists.txt b/tests/validation/CMakeLists.txt index a38ae3e23291aff01b8955d3717c63144f1bf940..783ef00321a34313ea36d90d17d9ec3862afa148 100644 --- a/tests/validation/CMakeLists.txt +++ b/tests/validation/CMakeLists.txt @@ -38,7 +38,7 @@ foreach(target ${TARGETS}) ) if(BUILD_VALIDATION_DATA) - add_dependencies(${target} validation_data) + add_dependencies(${target} validation_data) endif() endforeach() diff --git a/validation/CMakeLists.txt b/validation/CMakeLists.txt index 009a27aa43ce8974b154ce265e6dd6c75b990f52..99b4bec969a87219693dfe0bbd05591e1acfd6c2 100644 --- a/validation/CMakeLists.txt +++ b/validation/CMakeLists.txt @@ -31,10 +31,10 @@ function(add_validation_data) set(out "${VALIDATION_DATA_DIR}/${ADD_VALIDATION_DATA_OUTPUT}") string(REGEX REPLACE "([^;]+)" "${CMAKE_CURRENT_SOURCE_DIR}/\\1" deps "${ADD_VALIDATION_DATA_DEPENDS}") add_custom_command( - OUTPUT "${out}" + OUTPUT "${out}" DEPENDS ${deps} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMAND ${ADD_VALIDATION_DATA_COMMAND} > "${out}") + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + COMMAND ${ADD_VALIDATION_DATA_COMMAND} > "${out}") # Cmake, why can't we just write add_dependencies(validation_data "${out}")?! make_unique_target_name(ffs_cmake "${out}") diff --git a/validation/ref/neuron/CMakeLists.txt b/validation/ref/neuron/CMakeLists.txt index 570d3f7234b2fab135b97dde9462884caa23523e..4df17dc38d23b59c935dad9e02ca0eb19d2b793f 100644 --- a/validation/ref/neuron/CMakeLists.txt +++ b/validation/ref/neuron/CMakeLists.txt @@ -11,7 +11,7 @@ set(models foreach(model ${models}) set(script "${model}.py") add_validation_data( - OUTPUT "neuron_${model}.json" + OUTPUT "neuron_${model}.json" DEPENDS "${script}" "nrn_validation.py" COMMAND ${NRNIV_BIN} -nobanner -python "${script}") endforeach()