In [1]:
%matplotlib inline
%load_ext autoreload
%autoreload 2
In [2]:
import numpy as np
import matplotlib.pyplot as plt
from testsolvers import *
In [3]:
N = 100
L = 2*np.pi
k = 20
x_vals = np.linspace(0, 1, N+1)[:-1]
x = np.sin(x_vals*L*k)
x0 = x.copy()
solve1d(x, L)
print np.linalg.norm(x - x0/k**2)
In [4]:
ny = 100
nx = 2*ny
L = 2*np.pi
k = 20
x_vals = np.linspace(0, 1, nx+1)[:-1]
y_vals = np.linspace(0, 1, ny+1)[:-1]
X, Y = np.meshgrid(x_vals, y_vals)
x = np.sin(X*L*k)*np.sin(Y*L*k)
x0 = x.copy()
solve2d(x, L, L)
print np.linalg.norm(x - x0/(2*k**2))
In [5]:
nz = ny = nx = 100
nx = 2*ny
L = 2*np.pi
k = 20
x_vals = np.linspace(0, 1, nx+1)[:-1]
y_vals = np.linspace(0, 1, ny+1)[:-1]
z_vals = np.linspace(0, 1, ny+1)[:-1]
X, Y, Z = np.meshgrid(x_vals, y_vals, z_vals)
x = np.sin(X*L*k)*np.sin(Y*L*k)*np.sin(Z*L*k)
x0 = x.copy()
solve3d(x, L, L, L)
print np.linalg.norm(x - x0/(2*k**2))
In [5]: