#!/usr/bin/env python2.7
from fipy import *
import math
from numpy import *
from pylab import *
import matplotlib
from matplotlib import pyplot

mesh = Grid2D(nx=5, ny=5)
var = CellVariable(mesh=mesh, hasOld=True)
x, y = mesh.getCellCenters()
X, Y = mesh.getFaceCenters()

vi = Viewer(vars=(var))#,datamin=-0.25,datamax=1.25)

#diff = DiffusionTerm([[[X**2, X * Y], [-X * Y, -Y**2]]])
#diff.solve(var=var)

var.setValue(exp((-x**2-y**2)/5.))

eqn = (TransientTerm(coeff=1, var=var) ==
	DiffusionTerm([[[X**2, X * Y], [-X * Y, -Y**2]]]))

for i in range(30):
     # move forward in time by one time step
     var.updateOld()

     # sweep multiple times each time step
     for j in range(2):
         res = eqn.sweep(dt=0.1)
	 print res
         vi.plot()
