我是fipy的新手,所以如果这是一个愚蠢的问题,我深表歉意(这似乎对我没有帮助)。但是,除了上述问题中的建议之外,有没有办法以人类可读(或 python 可读)的形式存储 fipy 对象?这仅适用于单元格变量。如果我想做一些比默认 fipy 查看器中的更花哨/自定义的绘图,我该怎么做?
以一个简单的一维扩散为例:
from fipy import *
# USER-DEFINED PARAMETERS
nx = 100
dx = 0.1
D = 1.0
bound1 = 30
bound2 = 70
# PREPARED FOR SOLUTION
mesh = Grid1D(nx=nx, dx=dx)
print "mesh", mesh
# define some parameters specific to this solution
T0 = bound2
Tinf = bound1
hour = 3600
day = hour*24
ndays = 1
duration = ndays*day
T = CellVariable(name="Temperature", mesh=mesh, value=bound1)
# Constant temperature boundary condition
T.constrain(T0, mesh.facesLeft)
T.constrain(Tinf, mesh.facesRight)
# SOLUTION
eq = (TransientTerm() == DiffusionTerm(coeff=D))
timeStepDuration = 0.5*hour
steps = int(duration/timeStepDuration)
for step in range(steps):
eqCirc.solve(var=T,dt=timeStepDuration)
但是,例如,我可以将网格存储为数组吗?或者我可以在每个步骤中存储DiffusionTerm
而不是的值吗?CellVariable
就我而言,我想绘制每个时间步长的热梯度(因此从扩散项中提取)与距离。我可以做吗?如何?