细胞变量*fipy中的扩散
Posted
技术标签:
【中文标题】细胞变量*fipy中的扩散【英文标题】:cellvariable*Diffusion in fipy 【发布时间】:2021-10-03 17:37:02 【问题描述】:我正在尝试在 fipy 中解决以下 coupled pde's 问题。我尝试了以下
eq1 = (DiffusionTerm(coeff=1, var=f)-f*DiffusionTerm(coeff=1, var=phi)
+f-f**3 == 0)
eq2 = (2*DiffusionTerm(coeff=f, var=phi)+f*DiffusionTerm(coeff=1, var=phi)
== 0)
eq = eq1 & eq2
eq.solve()
但它不喜欢“f*DiffusionTerm(coeff=1, var=phi)”,我得到了错误。 “TermMultiplyError:必须将项乘以 int 或 float。”有没有一种方法可以实现单元变量乘以扩散项?
【问题讨论】:
好的,我尝试了 ImplicitSourceTerm(coeff=DiffusionTerm(coeff=1, var=phi) 并且收到错误“TypeError: ' 有没有办法可以迭代地解决这个问题?用fipy? 【参考方案1】:以下都不适用于 FiPy,
from fipy import CellVariable, DiffusionTerm, Grid1D
mesh = Grid1D(nx=10)
var = CellVariable(mesh=mesh)
# eqn = var * DiffusionTerm(coeff=1)
eqn = ImplicitSourceTerm(coeff=DiffusionTerm(coeff=1))
eqn.solve(var)
对于有限体积方法中的离散化,它们都没有任何意义。无论如何,您可以使用以下标识来重写感兴趣的术语
基本上,而不是使用
var * DiffusionTerm(coeff=1)
你可以使用
DiffusionTerm(coeff=var) - var.grad.mag**2
给出一个常规扩散项和一个额外明确的源项。
【讨论】:
以上是关于细胞变量*fipy中的扩散的主要内容,如果未能解决你的问题,请参考以下文章
在processing里使用80行代码制作一个元胞自动机之癌细胞扩散模型