该图像包括控制方程、初始条件和边界条件。它描述了板与流体之间的传热问题。我不知道如何使用 fipy 对包含 var 的二维问题和边界条件进行编码。这是我的尝试。
from fipy import *
import numpy as np
#constant
Pe=2400
le_L=1/20000
L_l=20000
alphas=1
alphaf=1
a=1/Pe+le_L
b=1/Pe+L_l
Bi=0.4
c=Bi/Pe*L_l
#generate
mesh=Grid2D(dx=1,dy=1)
Ts=CellVariable(mesh=mesh,name='Ts',value=900)
Tf=CellVariable(mesh=mesh,name='Tf',value=300)
#condition
Ts.faceGrad.constrain([0.],mesh.facesLeft)
Ts.faceGrad.constrain([0.],mesh.facesRight)
Ts.faceGrad.constrain([-1.*Bi*(Tf.value-Ts.value)],mesh.facesBottom)
Ts.faceGrad.constrain([0.],mesh.facesTop)
Tf.constrain(300,mesh.facesLeft)
Tf.grad.constrain(0,mesh.facesRight)
a=CellVariable(mesh=mesh,rank=1)
a[:]=1
#eq
eq1=TransientTerm(var=Ts)==DiffusionTerm(coeff=[[a,b]],var=Ts)
eq2=TransientTerm(var=Tf)==DiffusionTerm(coeff=[[a,0]],var=Tf)-
ExponentialConvectionTerm(a,var=Tf)+ImplicitSourceTerm(c,var=Tf)-
ImplicitSourceTerm(c,var=Ts)
eq=eq1&eq2
#solve
dt=0.1
steps=100
viewer=Viewer(vars=(Ts,Tf),datamax=1000,datamin=0)
for i in range(steps):
eq.solve(dt=dt)
viewer.plot()
我发现它失败了。我不知道哪里出了问题。我欢迎任何帮助;非常感谢!顺便说一句,我希望得到的最终图像就像在这里输入图像描述 ......很多谢谢!