Ejemplo n.º 1
0
def newifile(iname='forslund-sbs.txt',
             oname='case1.txt',
             a0=0.1,
             rtemp=10,
             tmax=2500.0):

    uth = 0.1 / np.sqrt(3642.0 * rtemp)

    with open(iname) as osdata:
        data = osdata.readlines()

    for i in range(len(data)):
        if 'uth(1:3) = 0.00007335978' in data[i]:
            data[i] = 'uth(1:3) = ' + str(uth) + ' , ' + str(
                uth) + ' , ' + str(uth) + ',\n'
        if 'uth_bnd(1:3,1,1) = 0.00007335978' in data[i]:
            data[i] = 'uth_bnd(1:3,1,1) = ' + str(uth) + ' , ' + str(
                uth) + ' , ' + str(uth) + ',\n'
        if 'uth_bnd(1:3,2,1) = 0.00007335978' in data[i]:
            data[i] = 'uth_bnd(1:3,2,1) = ' + str(uth) + ' , ' + str(
                uth) + ' , ' + str(uth) + ',\n'
        if 'a0 =' in data[i] and 'omega0' not in data[i]:
            data[i] = 'a0 = ' + str(a0) + ',\n'
        if 'tmax =' in data[i]:
            data[i] = 'tmax =' + str(tmax) + '\n'

    with open(oname, 'w') as f:
        for line in data:
            f.write(line)

    print('New file ' + oname + ' is written.')
    dirname = oname.strip('.txt')
    print('Running OSIRIS in directory ' + dirname + '...')
    osiris.runosiris(rundir=dirname, inputfile=oname, print_out='yes')
    print('Done')
Ejemplo n.º 2
0
def newifile2(iname='case0.txt', oname='case1.txt', uth=1e-6, 
             a0=1.0, omega0=2.0, t_flat=3.14, t_rise=0, t_fall=0,
            xmax=102.4, ndump=1, ppc=10, tmax=200.0 ):

    with open(iname) as osdata:
        data = osdata.readlines()
    delta_x = 0.15/omega0
    nx_p = int(xmax/delta_x)
    for i in range(len(data)):
        if 'uth(1:3)' in data[i]:
            data[i] = 'uth(1:3) = '+str(uth)+' , '+str(uth)+' , '+str(uth)+',\n'
        if 'uth_bnd(1:3,1,1)' in data[i]:
            data[i] = 'uth_bnd(1:3,1,1) = '+str(uth)+' , '+str(uth)+' , '+str(uth)+',\n'
        if 'uth_bnd(1:3,2,1)' in data[i]:
            data[i] = 'uth_bnd(1:3,2,1) = '+str(uth)+' , '+str(uth)+' , '+str(uth)+',\n'
        if 'a0 =' in data[i] and 'omega0' not in data[i]:
            data[i] = 'a0 = '+str(a0)+',\n'
        if 'omega0 =' in data[i]:
            data[i] = 'omega0 = '+str(omega0)+',\n'
        if 't_flat =' in data[i]:
            data[i] = 't_flat = '+str(t_flat)+',\n'
        if 't_rise =' in data[i]:
            data[i] = 't_rise = '+str(t_rise)+',\n'
        if 't_fall =' in data[i]:
            data[i] = 't_fall = '+str(t_fall)+',\n'
        if 'nx_p(1:1) =' in data[i]:
            data[i] = 'nx_p(1:1) = '+str(nx_p)+',\n'
        if 'dt =' in data[i]:
            dt = (0.98 * xmax / nx_p)
            data[i] = 'dt = '+str(dt)+'e0'+',\n'
        if 'xmax(1:1) =' in data[i] and 'ps_xmax(1:1)' not in data[i]:
            data[i] = 'xmax(1:1) = '+str(xmax)+'e0,\n'
        if 'ps_xmax(1:1) =' in data[i]:
            data[i] = 'ps_xmax(1:1) = '+str(xmax)+',\n'
        if 'x(1:2,1) =' in data[i] and 'fx(1:2,1)' not in data[i]:
            data[i] = 'x(1:2,1) = 0.0, '+str(xmax)+',\n'
        if 'ndump =' in data[i]:
            data[i] = 'ndump = '+str(ndump)+',\n'
        if 'num_par_x(1:1) =' in data[i]:
            data[i] = 'num_par_x(1:1) = '+str(ppc)+',\n'
        if 'lon_start =' in data[i]:
            data[i] = 'lon_start = '+str(xmax-0.5)+'\n'
# This line is for moving window only
        if ('x(1:4,1)' in data[i]) and not ('fx(1:4,1)' in data[i]):
            data[i]= 'x(1:4,1) = 0.0, '+str(xmax)+' , '+str(xmax+0.001)+', 1500.0,'+'\n'
        if 'tmax =' in data[i]:
            data[i] = 'tmax ='+str(tmax)+'\n'

    with open(oname,'w') as f:
        for line in data:
            f.write(line)
    
    print('New file '+oname+' is written.')
    dirname = oname.strip('.txt')
    print('Running OSIRIS in directory '+dirname+'...')
    osiris.runosiris(rundir=dirname,inputfile=oname,print_out='yes')
    plot_maxgamma_t(dirname)
    print('Done')
Ejemplo n.º 3
0
def newifile(iname='yan-circ.txt', oname='case1.txt', a0=3.0, tmax=900.0):

    with open(iname) as osdata:
        data = osdata.readlines()

    for i in range(len(data)):
        if 'a0 =' in data[i] and 'omega0' not in data[i]:
            data[i] = 'a0 = ' + str(a0) + ',\n'
        if 'tmax =' in data[i]:
            data[i] = 'tmax =' + str(tmax) + '\n'

    with open(oname, 'w') as f:
        for line in data:
            f.write(line)

    print('New file ' + oname + ' is written.')
    dirname = oname.strip('.txt')
    print('Running OSIRIS in directory ' + dirname + '...')
    osiris.runosiris(rundir=dirname, inputfile=oname, print_out='yes')
    print('Done')