2015-04-08 3 views
1
from fipy import * 


nx = 50 
dx = 1. 
mesh = Grid1D(nx=nx, dx=dx) 

phi = CellVariable(name="solution variable", 
        mesh=mesh, 
        value=0.) 

D = 1. 

valueLeft = 1 
valueRight = 0 

phi.constrain(valueRight, mesh.facesRight) 
phi.constrain(valueLeft, mesh.facesLeft) 

eqX = TransientTerm() == ExplicitDiffusionTerm(coeff=D) 

timeStepDuration = 0.9 * dx**2/(2 * D) 
steps = 100 

phiAnalytical = CellVariable(name="analytical value", 
          mesh=mesh) 


viewer = Viewer(vars=(phi, phiAnalytical), 
        datamin=0., datamax=1.) 
viewer.plot() 

x = mesh.cellCenters[0] 
t = timeStepDuration * steps 

try: 
    from scipy.special import erf 
    phiAnalytical.setValue(1 - erf(x/(2 * numerix.sqrt(D * t)))) 
except ImportError: 
    print "The SciPy library is not available to test the solution to \ 
the transient diffusion equation" 

for step in range(steps): 
    eqX.solve(var=phi, 
       dt=timeStepDuration) 

    viewer.plot() 

Я пытаюсь реализовать пример из списка примеров fipy, который является проблемой диффузии 1D. но я не могу рассматривать результат как сюжет. Я правильно определил зрителя, как это предлагается в коде для примера. Все еще не помогает. Вектор решения работает отлично. Но я не могу использовать функцию просмотра. может ли кто-нибудь помочь? Спасибо!fipy viewer not plotting

+1

Возможно, вы захотите добавить сообщение об ошибке из консоли в свой вопрос. Кроме того, импортируйте определенный просмотрщик с чем-то вроде 'from fipy.viewers.matplotlibViewer.matplotlib1DViewer импортируйте Matplotlib1DViewer в качестве средства просмотра под импортом' fipy', чтобы помочь диагностировать проблему. Существуют блоки 'try' и' except' вокруг некоторых импортируемых зрителей, которые могут маскировать ошибку. – wd15

+0

спасибо за ответ. импортщик matplotlib viewer решил проблему. – sankethrg

ответ

0

Ваш код отлично работает на моем компьютере. Вероятно, это проблема с библиотекой закладок, используемой FiPy.

Проверьте оригинальный пример работы (просто запустите это из fipy папки)

python examples/diffusion/mesh1D.py 

Если нет, загрузите FiPy со страницы GitHub проекта https://github.com/usnistgov/fipy и попробовать пример снова. Если нет, проверьте правильность установки библиотек построения.

В любом случае, вы должны указать используемую вами платформу и ошибки, которые вы получаете. В первый раз у меня возникли проблемы с библиотеками закладок.