python - 存储旧值 FiPy

标签 python fipy

我正在尝试在 Python 中使用 FiPy 求解一些微分方程,作为新手,我仍然遇到一些问题。我所做的如下:定义一个单元变量,求解该变量的方程并更新它。我想在每次迭代后存储它的值。这是一个例子:

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)

我意识到我的错误 - 每次更新“a”时,“a_tt”中的值都会更新,所以我最后有一个包含所有相同元素的数组。 我应该怎样做才能避免这种情况?

最佳答案

我认为a_tt.append(a.copy())可能有用。

否则,使用 http://www.ctcms.nist.gov/fipy/examples/diffusion/generated/examples.diffusion.mesh1D.html 的扫描部分中的方法应该管用。像这样的东西:

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

关于python - 存储旧值 FiPy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30827942/

相关文章:

python使用键加入列表列表的列表

python - scrapy选择器字符串不接受国际字符

Python lambda 作为常量仿函数

python - Fipy 中的 Dirac delta 源术语

python-3.x - 如何在 Python 3.3 上安装 Fipy

python - 将值设置到 CellVariable 中

python - 使用 cv2.putText() 将文本放置在循环之外

python - Pandas 过滤 - 非索引列上的 between_time