我试图在深度( h(t) )随时间变化的域上求解一个简单的扩散方程(dT/dt = K d2T/dx2 )。因此,得到的等式是:
dT/dt = K/h^2 d2T/dx2 + z/h dh/dt dT/dz
其中 z 现在是一个固定的 0->1 域。
新术语是框架平流,我试图将其包含在内,但我正在努力解决空间相关系数。
当我将它包括在对流项之外时:
mesh.cellCenters[0]*PowerLawConvectionTerm(...)
我收到此错误:
TermMultiplyError: Must multiply terms by int or float
但如果我重新组织方程,使空间相关性在对流项内:
PowerLawConvectionTerm(coeff=(mesh.cellCenters[0]**2,),...)
求解方程时出现不同的错误:
AssertionError: assert( len(id1) == len(id2) == len(vector) )
包含这些术语的正确方法是什么?我在某个地方犯了一个愚蠢的错误吗?