forked from bendudson/pyTokamak
-
Notifications
You must be signed in to change notification settings - Fork 0
/
example_02.py
43 lines (29 loc) · 1.03 KB
/
example_02.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#
# Example of reading an input file, extracting flux surface data
#
#########################################
# Read an equilibrium from a DSKGATO 't' formatted file
from tokamak.formats import dskgato
print "Reading DSKGATO input file"
data = dskgato.read("test.dskgato")
#########################################
# Create an equilibrium object from the data
from tokamak.equilibrium import Equilibrium
equil = Equilibrium(data)
equil.setDensity(1e18) # Set a constant density
#########################################
# Get a single flux-surface (interpolating)
# and calculate the bootstrap current
from tokamak import neoclass
from numpy import linspace, zeros
npoints = 20
psi = linspace(0.5, 0.8, npoints, endpoint=True)
bs_s = zeros(npoints)
bs_w = zeros(npoints)
bs_hs = zeros(npoints)
for i, p in enumerate(psi):
f = equil.getFluxSurface(p)
bs_s[i] = neoclass.bootstrapSimple(f) * f.average(f.B)
bs_w[i] = neoclass.bootstrapWesson(f)
bs_hs[i] = neoclass.bootstrapHS(f)
print p, bs_s[i], bs_w[i], bs_hs[i]