(уравнение было исходное уравнение. инвертированный домен (от z = l до z = 0). Можно ли решить этот PDE от выхода до входа в роторную печь с помощью Fipy? И как ...? < /P>
На данный момент я написал проблему на основе документации и примеров от NIST (не решать): < /p>
Код: Выделить всё
from fipy import CellVariable, Grid1D, TransientTerm, DiffusionTerm, Viewer, ConvectionTerm, FaceVariable,numerix
from builtins import range
Q = 3.055e-5
R = 0.061
L = 1
ang_theta = 0.645772
ang_beta = 0.0523599
VeloRot = 8.333e-2
np = 100
mesh = Grid1D(dx=L / np, nx=np)
H = CellVariable(name="H",
mesh=mesh,
value=0.001,
hasOld=True)
Ca=3*numerix.tan(ang_theta)*Q/(4*pi*VeloRot)
Cb=numerix.tan(ang_beta)/numerix.cos(ang_theta)
arg=R**2-(R-H)**2
dHdzL = Ca*(arg**(-3/2))-Cb
H.constrain(0.025,mesh.facesLeft)
dHdzL_facesRight = dHdzL.faceValue[mesh.facesRight.value]
H.faceGrad.constrain(dHdzL_facesRight, mesh.facesRight)
Fh = (2*H/R)-((H/R)**2)
Ut = 2*pi*VeloRot*R
coeffC = (Ut*numerix.tan(ang_beta)*(numerix.sqrt(Fh))*(numerix.sqrt(1-Fh))/numerix.sin(ang_theta))
coeffD = (Ut*R*numerix.arctan(ang_theta)*((Fh)**(1.5))/3)
eq1 = (TransientTerm(coeff=Fh,var=H)
== ConvectionTerm(coeff=coeffC,var=H)
+ DiffusionTerm(coeff=coeffD,var=H))
vi = Viewer(vars = H)
for t in range(500):
H.updateOld()
eq1.sweep(var=H,dt=1e-1)
print(coeffD)
vi.plot()
Подробнее здесь: https://stackoverflow.com/questions/795 ... -with-fipy