Testing short range force functions


In [1]:
%matplotlib inline
%load_ext autoreload
%autoreload 2

In [2]:
import numpy as np
import time
import matplotlib.pyplot as plt
from core import *
from pic3d3v import *
from interp import *
from solvers import *
norm = lambda x: np.max(np.abs(x))

In [3]:
L = 6*np.pi
N = 128
epsilon_vals = np.linspace(.01, 1., 4)
center = L/2.
rmax = .5
beta = 5

if False:
    for epsilon in epsilon_vals:
        x0 = np.array((center-epsilon, center+epsilon))%L
        particles = Species(2, 1., 1., x0=x0)

        picp3m = PIC3DP3M([particles], (L,L,L), (N,N,N))
        picp3m.init_run(.1, beta=beta, rmax=rmax)
        Ezp3m, Eyp3m, Exp3m = picp3m.calc_E_at_points()

        pic = PIC3DPM([particles], (L,L,L), (N,N,N))
        pic.init_run(.1)
        _, _, Ex = pic.calc_E_at_points()

        print "%.2f"%(epsilon,), Exp3m, Ex, 1./(4*np.pi*4*epsilon**2)

In [3]: