def setup_rw(params):
pore = get_pore(**params)
rw = RandomWalk(pore, **params)
rw.add_wall_binding(t=params.t_bind, p=params.p_bind, eps=params.eps_bind)
# define non-standard stopping criteria
Tmax = params.Tmax
Rmax = params.Rmax
def success(self, r, z):
return self.in_channel(r, z) & (z <= params.zstop)
def fail(self, r, z):
if self.t > Tmax:
return np.full(r.shape, True, dtype=bool)
toolong = (self.times[self.alive] + self.bind_times[self.alive]) > 5e6
toofar = r**2 + z**2 > Rmax**2
return toolong | toofar
rw.set_stopping_criteria(success, fail)
return rw
########### STREAMLINE PLOT ###########
评论列表
文章目录