almacenar valores antiguos FiPy

Estoy tratando de resolver algunas ecuaciones diferenciales usando FiPy en Python y como novato, todavía tengo algunos problemas. Lo que hago es lo siguiente: defino una variable de celda, resuelvo una ecuación para esta variable y la actualizo. Quiero almacenar sus valores después de cada iteración. Aquí hay un ejemplo:

a = CellVariable(mesh,name='a', value=0., hasOld=True) # eq is an equation involving 'a' # define an array to store the values of 'a' after solving 'eq' a_tt = [] for t in range(10): eq.sweep(dt=0.01) a.updateOld() a_tt.append(a) 

Me doy cuenta de mi error: los valores en ‘a_tt’ se actualizan cada vez que actualizo ‘a’, por lo que al final tengo una matriz con todos los mismos elementos. ¿Qué deberías hacer alternativamente para evitar esto?

Creo que a_tt.append(a.copy()) podría funcionar.

De lo contrario, el método utilizado en la parte de barridos de http://www.ctcms.nist.gov/fipy/examples/diffusion/generated/examples.diffusion.mesh1D.html debería funcionar. Algo como:

 a_tt.append(CellVariable(mesh=m, value=a.value))