Hi Serbulent, I was curious about the same thing, so I gave it a shot. I'm not sure if what I've done is a good way to do things, but I think I managed to get a source term that's a function of x, y. I modified your script in a number of ways, and wrote it so that myFunc takes positions as arguments:
1) dx should be a float (dx = 1., not dx =1) 2) As far as I know, it's better to use fipy's numerix package than numpy. 3) I think for a source term that's dependent on position, you can use a CellVariable. So I declared a CellVariable, which I then modify values of at each time step. 4) Rather than loop through x and y and then trying to find the indexes that correspond to the a value close to that, you can just loop through all the indexes of the grid points in the problem. You can get the X and Y arrays which are indexed by this total number of points from mesh.CellCenters, then loop through all your points (nx*ny in the rectangular 2D case). 5) For your time dependence, when you're calling myFunc, you need to have calculated what the current time is before you call it (t = step*timeStepDuration) 6) I made an arbitrary function of x, y, t for myFunc. The way I cast it, it takes _values_ of position and time as arguments. The way you wrote it, x and y need to be indexes of your "tmp" array. File at http://pastebin.com/sZLHBTRV Cheers, Ray On Tue, Mar 19, 2013 at 9:43 AM, Serbulent UNSAL <[email protected]>wrote: > Hi, > > First thanks to FiPy community for such a practical tool. I'm a newbie > in FiPy and try to solve a problem based on source term. > > My equation is a 2D diffusion equation which has a source term as a > function depends on x,y cordinates and time t > > \frac{ \partial c( \vec{x},t)}{\partial t} = > D_{c}\bigtriangledown ^{2} c( \vec{x},t)} - f_{c}( \vec{x},t) > > I am googleing about 3 days found some clues [1] but they could'nt > solve my problem. My code is working with a constant source term but I > still couldn't find how can I represent it as a function depends on > x,y and t. > > I'm trying to get my source term values from a mock up matrix for sake > of simplicity. I'll be appriciate for any ideas/solutions. My code can > be seen at http://pastie.org/6605575 > > Thanks, > > Serbulent > > > [1] > > http://bb10.com/python-fipy/2012-12/msg00016.html > http://osdir.com/ml/python.fipy/2007-10/msg00009.html > http://bb10.com/python-fipy/2011-05/msg00030.html > _______________________________________________ > 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 ]
