You would do this in a similar way to how time-dependent boundary conditions 
are illustrated in examples/diffusion/mesh1D.py:

>>> phi = CellVariable(mesh=..., value=...)
>>> time = Variable()
>>> source1 = phi * time

or, e.g.,

>>> source2 = mesh.x * time


Then as you iterate in timesteps, you would update time with:

>>> time.value = time.value + dt

source1 and source2 will automatically reflect the new value of time.

On Oct 12, 2015, at 4:15 PM, Yun Tao <[email protected]> wrote:

> Hi FiPy community,
> 
> This is a potentially helpful update to a recent question I submitted, where 
> my goal was to spatially vary the convection strength of a Fokker-Planck 
> equation for random variable var(x,t) as a simple function of local signal 
> distribution varS(x,t). Specifically, I wanted to solve for the transient 
> dynamics of var(x,t), given that, at each location x, its probability surface 
> is pulled towards a fixed, central point-attractor to a degree that is 
> proportional to the estimated value of varS(x,t). 
> 
> I like to thank Jon for his tremendous amount of help, from which I was able 
> to generate a working script on the condition that varS(x,t) is 
> time-invariant. The code is attached here as signals_static.py. var(x,t) is 
> plotted over time in the left panel of the animation, and varS(x) is on the 
> right. The increasing topological distortion shown in the simulation is 
> consistent with how we expect var(x,t) to behave.
> 
> My current goal is to solve for var(x,t) on the condition that varS(x,t) also 
> varies, partially stochastically, over time. Note that this doesn't involve 
> coupling the Fokker-Plank equation with another differential equation. I've 
> attempted to do this in the attached script: signals_dynamic.py. The only 
> addition from the previous script is a "signal updating function', through 
> which we force the spatial distribution of varS(x,t) to shift rightward every 
> time step. However, for some reason, var(x,t) is unresponsive to these 
> changes. 
> 
> Therefore, my question is: how can I base the convection term on a 
> CellVariable that gets temporally updated outside of the equation definition? 
> 
> Thanks,
> Yun 
> 
> On Wed, Aug 26, 2015 at 2:47 PM, Guyer, Jonathan E. Dr. 
> <[email protected]> wrote:
> Yun -
> 
> I've gotten your script to "work" and posted the changes to:
> 
>   https://gist.github.com/guyer/caca956463dfc3835722/revisions
> 
> The main changes I made were:
> 
> * to get rid of the intrep2d, as it wasn't working properly [signal_fct(xf, 
> yf) generates a result of shape
>   (len(xf), len(xf)) instead of (len(xf),).] I was able to get it working a 
> bit better, but not completely, and I
>   realized that it doesn't really do anything for you that simply placing 
> your signals in a CellVariable and then
>   letting it calculate its .faceValue doesn't accomplish.
> 
> * simplify the calculation of faceVelocity (m.faceValues is already a rank-1 
> FaceVariable)
> 
> Although this script functions, I suspect it's not really what you're looking 
> for. The signals are all extremely localized and faceVelocity is really not 
> responsive to the density of signals, but just discretely to whether there's 
> a signal in a given cell. If that's so, I think you'll want to calculate a 
> density field for the signals, rather than placing them in discrete locations.
> 
> - Jon
> 
> On Aug 19, 2015, at 8:00 PM, Yun Tao <[email protected]> wrote:
> 
> > Hi FiPy community,
> >
> > I'm currently trying to combine the powerful tool of FiPy with agent-based 
> > modeling. The problem I'm trying to solve is this:
> >
> > In a 2D landscape scattered with "deterrent point signals", I want to solve 
> > for the transient solution of a convection-diffusion (Fokker-Planck) 
> > equation that increases its advection towards its central attractor in a 
> > way that is proportional to the interpolated density of local signals. I 
> > therefore expect to see gradual deformation, and slowing down of spread, in 
> > the solution boundary as diffusion brings it closer to clustered signals.
> >
> > However, since the point signals are located on mesh cell centers and the 
> > convection coefficient in FiPy requires FaceVariable inputs, there is a 
> > problem with dimensionality I cannot quite understand. How should I 
> > integrate these two processes?
> >
> > I've attached my current script, which has the convection term commented 
> > out for now. Left figure is the PDE solution; right figure is the locations 
> > of the signal points.
> >
> > Any help would be greatly appreciated.
> >
> > Thanks,
> > Yun
> >
> >
> > --
> > Yun Tao
> > PhD
> > University of California, Davis
> > Department of Environmental Science and Policy
> > One Shields Avenue
> > Davis, CA 95616
> > <fipy-ibm2_test_forum.py>_______________________________________________
> > fipy mailing list
> > [email protected]
> > http://www.ctcms.nist.gov/fipy
> >  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
> 
> 
> _______________________________________________
> fipy mailing list
> [email protected]
> http://www.ctcms.nist.gov/fipy
>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
> 
> 
> 
> -- 
> Yun Tao
> PhD
> University of California, Davis
> Department of Environmental Science and Policy
> One Shields Avenue
> Davis, CA 95616
> <signals_static.py><signals_dynamic.py>_______________________________________________
> fipy mailing list
> [email protected]
> http://www.ctcms.nist.gov/fipy
>  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to