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 ]

Reply via email to