示例#1
0
'''
Generate the watercolumn.dat files from this simulation.

Usage:
  ./genwatercolumn.py [options]

Options:
   --solid=SOLID -d SOLID       Set the solid density. [default: 1e23]
   --radius=RADIUS -r RADIUS    Set the radius of the column. [default: 30e-4]
   --scale=SCALE -s SCALE       Set the scale-length of the plasma. [default: 1.5e-4]
'''
from mkdat import mkdat;
import numpy as np;
from docopt import docopt;

def mkcolumn(scale, r, solid):
    def F(x,y,z):
        if (x**2+y**2) < r**2:
            return solid;
        else:
            return solid*np.exp(-(x**2+y**2)/scale);
    return np.vectorize(F);
opts=docopt(__doc__,help=True);

solid = float(opts['--solid'])
radius = float(opts['--radius'])
scale = float(opts['--scale'])


print(mkdat(mkcolumn(scale,radius,solid)));
示例#2
0
  --y-dims=DIM -y DIM        Set the Y dimensions. [default: (0e-4, 40e-4)]
  --z-dims=DIM -z DIM        Set the Z dimensions. [default: (0e-4, 40e-4)]
  --scale=SCALE -l SCALE     Set the scale length. [default: 1.5e-4]
  --solid-dims=SDIM -s SDIM  Set the solid dimensions. [default: (0,10e-4)]
  --solid=SDIM -S SDIM       Set the solid number density. [default: 1.0e23]
'''
from docopt import docopt
import numpy as np
from cStringIO import StringIO
from mkdat import mkdat, unitstep, mkdecay

opts = docopt(__doc__, help=True)
xmin, xmax = eval(opts['--x-dims'])
ymin, ymax = eval(opts['--y-dims'])
zmin, zmax = eval(opts['--z-dims'])
l = float(opts['--scale'])
n_s = float(opts['--solid'])
sdims = eval(opts['--solid-dims'])
Xexp = mkdecay(n_s, sdims, (xmin, xmax), l)
y0 = (ymax - ymin) / 2.0  #+ 0.0
z0 = (zmax - zmin) / 2.0  #+ 0.0
r = (y0 + z0) / 2.0  #average
Cyl = np.vectorize(lambda y, z: unitstep((y0 - y)**2 + (z0 - z)**2 - r**2))
xlen, ylen, zlen = 50, 50, 50
n_e = lambda X, Y, Z: Xexp(X) * Cyl(Y, Z)
out = mkdat(n_e,
            xr=(xmin, xmax, 20j),
            yr=(ymin, ymax, 20j),
            zr=(zmin, zmax, 20j))
print(out)
示例#3
0
文件: mkcyl.py 项目: noobermin/sharks
  --y-dims=DIM -y DIM        Set the Y dimensions. [default: (0e-4, 40e-4)]
  --z-dims=DIM -z DIM        Set the Z dimensions. [default: (0e-4, 40e-4)]
  --scale=SCALE -l SCALE     Set the scale length. [default: 1.5e-4]
  --solid-dims=SDIM -s SDIM  Set the solid dimensions. [default: (0,10e-4)]
  --solid=SDIM -S SDIM       Set the solid number density. [default: 1.0e23]
'''
from docopt import docopt
import numpy as np;
from cStringIO import StringIO;
from mkdat import mkdat, unitstep, mkdecay

opts = docopt(__doc__,help=True);
xmin,xmax = eval(opts['--x-dims']);
ymin,ymax = eval(opts['--y-dims']);
zmin,zmax = eval(opts['--z-dims']);
l = float(opts['--scale']);
n_s = float(opts['--solid']);
sdims = eval(opts['--solid-dims']);
Xexp = mkdecay(n_s, sdims, (xmin,xmax), l);
y0 = (ymax-ymin)/2.0 #+ 0.0
z0 = (zmax-zmin)/2.0 #+ 0.0
r = (y0+z0)/2.0 #average
Cyl = np.vectorize(lambda y,z: unitstep((y0-y)**2+(z0-z)**2 - r**2))
xlen,ylen,zlen = 50,50,50
n_e = lambda X,Y,Z: Xexp(X)*Cyl(Y,Z);
out=mkdat(n_e,
          xr=(xmin,xmax,20j),
          yr=(ymin,ymax,20j),
          zr=(zmin,zmax,20j));
print(out);