我正在使用FiPy解决一个包含积分项的PDE系统。但是,在FiPy中不允许使用集成术语。有人能帮我弄一下这个系统吗?System of PDE
发布于 2021-04-24 07:19:58
我不确定这一点,但我认为您必须自己跟踪集成。
您应该能够实现类似以下内容的梯形集成:
import fipy as fp
sigma = fp.CellVariable(..., hasOld=True)
phi = fp.CellVariable(..., hasOld=True)
integral = fp.CellVariable(..., value=0., hasOld=True)
sigma_eq = (fp.DiffusionTerm(var=sigma) - fp.ImplicitSourceTerm(coeff=phi, var=sigma)
== 0)
phi_eq = (fp.TransientTerm(var=phi)
== fp.ImplicitSourceTerm(coeff=-integral + alpha, var=phi)
for step in steps:
sigma.updateOld()
phi.updateOld()
integral.updateOld()
for sweep in sweeps:
sigma_res = sigma_eq.sweep(dt=dt)
phi_res = phi_eq.sweep(dt=dt)
integral.value = (integral.old
+ (sigma * phi + sigma.old * phi.old) * dt / 2).value实际上,您需要对sigma_res和phi_res的融合进行某种测试,而不是for sweep in sweeps。你需要进行实验。这可能是非常不稳定的。
https://stackoverflow.com/questions/67186310
复制相似问题