나는 fipy를 처음 사용하므로 어리석은 질문 인 경우 사과합니다. this은 도움이되지 않습니다. 위의 질문에서 제안한 것 외에 사람이 읽을 수있는 형식 (또는 파이썬에서 읽을 수있는 형식)으로 fipy 개체를 저장하는 방법이 있습니까? 이것은 셀 변수에만 적용됩니다. 기본 fipy 뷰어보다 더 멋진/사용자 정의 된 플로팅을하고 싶다면 어떻게해야합니까?fipy 개체 대신 배열로 fypy에 용어 저장
테이크 예를 들어 간단한 1D 확산 :
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)
하지만, 예를 들어, 배열로 메쉬를 저장할 수? 또는 각 단계에서 CellVariable
대신 DiffusionTerm
값을 저장할 수 있습니까?
필자의 경우, 각 시간 간격마다 거리 구배로 온도 구배를 그리려고합니다 (확산 기간에서 추출). 할 수 있습니까? 방법?
또 다른 옵션은'fipy.TSVViewer (T.faceGrad) .plot ('dump.tsv.gz')'입니다. 이것은 또한 미래 보장형이지만, 데이터를 FiPy로 다시 체크 포인트하기위한 가장 쉬운 형식은 아닙니다. pickle, numpy 및 TSV (.gz 압축 포함) 모두 디스크 공간의 순서와 거의 같습니다. – jeguyer