download
raw
2.14 kB
from numpy import *
#from matplotlib.pyplot import *
from scitools.easyviz.matplotlib_ import *
def A_exact(F, p):
return exp(-4*F*p**2)
def A_FE(F, p):
return 1 - 4*F*sin(p)**2
def A_BE(F, p):
return 1/(1 + 4*F*sin(p)**2)
def A_CN(F, p):
return (1 - 2*F*sin(p)**2)/(1 + 2*F*sin(p)**2)
def compare_plot(F, p):
figure()
plot(p, A_BE(F, p),
p, A_exact(F, p),
p, A_CN(F, p),
p, A_FE(F, p),)
legend(['BE', 'exact', 'CN', 'FE'])
title('F=%g' % F)
print 'F:', F
if 0.2 >= F > 0.02:
axis([p[0], p[-1], 0.3, 1])
elif F <= 0.02:
axis([p[0], p[-1], 0.75, 1])
else:
axis([p[0], p[-1], -1.2, 1])
xlabel('$p=k\Delta x$')
savefig('A_F%s.pdf' % (str(F).replace('.', '')))
savefig('A_F%s.png' % (str(F).replace('.', '')))
p = linspace(0, pi/2, 101)
#for F in 20, 5, 2, 0.5, 0.25, 0.1, 0.01:
# compare_plot(F, p)
#import sys; sys.exit(0)
from sympy import *
F, p, dx, dt, k = symbols('F p dx dt k')
A_err_FE = A_exact(F, p) - A_FE(F, p)
A_err_FE = A_FE(F, p)/A_exact(F, p)
#print 'Error in A, FE:', A_err_FE.series(F, 0, 6)
A_err_FE = A_err_FE.subs(F, dt/dx**2).subs(sin(p), 1).subs(p, k*dx/2)
print 'Error in A, FE:', A_err_FE.series(dt, 0, 3)
print latex(A_err_FE.series(F, 0, 6))
A_err_BE = A_exact(F, p) - A_BE(F, p)
A_err_BE = A_BE(F, p)/A_exact(F, p)
print 'Error in A, BE:', A_err_BE.series(F, 0, 6)
print latex(A_err_BE.series(F, 0, 6))
A_err_CN = A_exact(F, p) - A_CN(F, p)
A_err_CN = A_CN(F, p)/A_exact(F, p)
print 'Error in A, CN:', A_err_CN.series(F, 0, 6)
print latex(A_err_CN.series(F, 0, 6))
raw_input()
show()
f = open('tmp.sh', 'w')
f.write("""#!/bin/sh
doconce combine_images A_F20.pdf A_F2.pdf diffusion_A_F20_F2.pdf
doconce combine_images A_F20.png A_F2.png diffusion_A_F20_F2.png
doconce combine_images A_F05.png A_F025.png diffusion_A_F05_F025.png
doconce combine_images A_F05.pdf A_F025.pdf diffusion_A_F05_F025.pdf
doconce combine_images A_F01.pdf A_F001.pdf diffusion_A_F01_F001.pdf
doconce combine_images A_F01.png A_F001.png diffusion_A_F01_F001.png
""")
f.close()
import os
os.system('sh -x tmp.sh')

Xet Storage Details

Size:
2.14 kB
·
Xet hash:
98af31c884e1b1174cc9f265712a0addb67d55a7848eb27704b72aa58731209a

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.