TITLE 3D diffusion
NEURON{
POINT_PROCESS AtP_42
RANGE atp,h,c0cleft,initial
RANGE Deff,tx1,k}
UNITS{
(molar)=(1/liter)
(uM)=(micromolar)
(um)=(micron)
(nA)=(nanoamp)
}
CONSTANT {
PI=3.1415927
}
PARAMETER {
nu=1(/um2)
Deff=0.2 (um2/ms):effective diffusion coefficient
c0cleft = 1 (uM):initial quantity atp
h(um) : distance from point of application
tx1(ms) : time of application
k=1 :degradation coefficient
initial = 0 : quantity atp from previous point
txlast : time of application from previous point
}
ASSIGNED{
atp (uM)
initialdiff (uM)
}
INITIAL {
:tx1=10
atp=0
txlast=tx1
initialdiff=0
}
BREAKPOINT
{
at_time(tx1)
if (t<=tx1){
atp=initial
}
if(t>tx1){
UNITSOFF
if (initial>0){initialdiff = (2*c0cleft*exp(k*(txlast-t)+h/(4*Deff*(txlast-t))))/sqrt(4*4*4*PI*PI*PI*Deff*Deff*Deff*(t-txlast)*(t-txlast)*(t-txlast))}
atp = initialdiff + (2*c0cleft*exp(k*(tx1-t)+h/(4*Deff*(tx1-t))))/sqrt(4*4*4*PI*PI*PI*Deff*Deff*Deff*(t-tx1)*(t-tx1)*(t-tx1))
if(atp>c0cleft){atp=c0cleft}
}
}
NET_RECEIVE (weight)
{
tx1=t
}