// routines for reducing cell model
proc SetOrigin() {
stimSec.sec distance(0,stimPosI)
}
func min() {
if ($1<$2) return $1 else return $2
}
proc ReduceModel() { local totalnseg
print "reducing model ......."
totalnseg=0
forall totalnseg+=nseg
print "number of segments = ", totalnseg
//forall nseg=L/10+2
SetOrigin()
forall if (min(distance(0.5), distance(1))>400) { nseg=L/400+1 SetOrigin() }
forall if (min(distance(0.5), distance(1))>300 && min(distance(0.5), distance(1)) <=400) { nseg=L/300+1 SetOrigin() }
forall if (min(distance(0.5), distance(1))>100 && min(distance(0.5), distance(1)) <=300) { nseg=L/100+1 SetOrigin() }
forall if (min(distance(0.5), distance(1))>50 && min(distance(0.5), distance(1)) <=100) { nseg=L/20+1 SetOrigin() }
//forall if (min(distance(0.5), distance(1))>0 && min(distance(0.5), distance(1)) <=50) { nseg=L/10+1 SetOrigin() }
//stimSec.sec nseg=L/10+1
SetOrigin()
totalnseg=0
forall totalnseg+=nseg
print "number of segments in reduced model = ", totalnseg
}
|