我是新來fipy,所以我道歉,如果這是一個愚蠢的問題(和this似乎並沒有幫助我)。 但有存儲在人類可讀(或Python可讀)形式fipy對象的方式,除了在上面的問題提出?這隻適用於單元格變量。 如果我想做一些更看中/自定義繪製比什麼是默認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
的價值?
在我的情況,我想爲每個時間步長的距離繪製的熱梯度(因此從擴散項提取它)。 我可以做到嗎?怎麼樣?
另一種選擇是'fipy.TSVViewer(T.faceGrad).plot('dump.tsv.gz')',這也是非常有前途的證據,但不是檢查點數據返回到FiPy最簡單的格式。 pickle,numpy和TSV(使用.gz壓縮)都採用大致相同的磁盤空間順序。 – jeguyer