Example #1
0
           queue='standard',
           walltime=24),
        sd(hpcmp_defpbs,
           pbsname=pbsbase + "_armstrong_36",
           cluster='armstrong',
           queue='standard',
           walltime=36),
    ]
    return dd


#crazy
Es = [40, 4, 0.4, 0.04, 0.004, 4e-4]
ratio = 1.5 / 0.78
for E in Es:
    d = sd(fromenergy(E, l=50e-6, cycles=cycles), **defd)
    d.update(
        n_s=1e19,
        solid_len=50,
        expf=ratio * d['l'] / 1e-6,
        lim=(-850, 50, -800, 800, 0, 0),
        tlim=(-800, 0, -700, 700, 0, 0),
        res=(18 * 32, 32 * 32, 0),
        totaltime=d['T'] * 4.0,
        timestep=5e-15,
        description="50um laser in search of 100 MeV",
        dumpinterval=10e-15,
        #movne
        movne={'clim': (1e15, 1e19)},
    )
    mkpbsbase(d)
Example #2
0
def mksim(E,l,fn,cy,
          yresd=24,long_resd=24):
    scale = 1.5;
    d = fromenergy(
        E,
        l     = l*1e-6,
        cycles= cycles*cy,
        l2w   = l2w*fn,
    );
    d = sd(defd, **d);
    mywidth = np.ceil(width * l);
    margin = 15.0;
    mymargin= np.ceil(margin);
    myedges = np.ceil(margin)+mywidth;
    timestep = l*1e-6/c/tstep;
    yresd = int(np.round((2*myedges) / (l / yresd)));
    pbsbase = pbsfmt.format(
        l = '0.8' if l==0.78 else int(l),
        I = d['I'],
        scale = scale,
        fn= np.pi*d['w']/2/d['l'],
        cs=cy,);
    pbses = mk_hpcmp_pbses(
        pbsbase=pbsbase,
        domains=domains, lspexec='lsp-10-xy');
    print("processing {}".format(pbsbase));  
    #original targets
    d.update(
        pbsbase=pbsbase,
        #target
        fp='nc',
        n_s=1e23,
        solid_len=10,
        expf=scale,
        scale_with_min=True,
        long_resd = long_resd,
        long_margin = (mymargin,mymargin),
        n_min = 1e16,
        roundup_pp = True,
        # others
        lim =( 0, 0, -myedges, myedges, 0, 0),
        tlim=( 0, 0, -mywidth, mywidth, 0, 0),
        res = (0,yresd,0),
        timestep = timestep,
        dumpinterval = timestep*2,
        totaltime= d['T']*3.5,
        description=pbsbase,
        pbses=pbses,
        domains=domains,
        region_dom_split='y',
        #movs
        movne =dict(clim=(1e16,1e23)),
        movni =dict(clim=(1e16,1e23)),
        movdq =dict(clim=(-1e19,1e19),linthresh=1e15),
        movrho=dict(clim=(-1e19,1e19),linthresh=1e15),
        dir=True,
    );
    gensim(**d);
    #scaled targets
    if np.isclose(l,0.78): return;
    scale = d['expf'] = l2L*l;
    pbsbase = pbsfmt.format(
        l = int(l),
        I = d['I'],
        scale = scale,
        fn= np.pi*d['w']/2/d['l'],
        cs= cy);
    d['pbsbase'] = pbsbase;
    print("processing {}".format(pbsbase));
    d['pbses'] = mk_hpcmp_pbses(
        pbsbase=pbsbase,
        domains=96, lspexec='lsp-10-xy');
    if np.isclose(l,10.0): d['n_min']=5e16;
    #note I DO NOT remake movnes, because 1e17 is close enough.
    gensim(**d);
Example #3
0
    lspexec='lsp-10-xy',
    fp='nc',
    #target
    n_s=1e23,
    solid_len=10,
    expf=1.5,
    #movne
    movne={'clim': (1e14, 1e21)},
    #pbs options
    autozipper=True,
    dir=True,
)
pbsfmt = '{l}um-{I:0.2e}-l={scale:0.3}um'
defds = []
for E in Es:
    d = sd(fromenergy(E), **defd)
    d.update(
        dict(
            l=10e-6,
            lim=(-50, 10, -120, 120, 0, 0),
            tlim=(-40, 0, -110, 110, 0, 0),
            res=(60 * 5, 240 * 5, 0),
            timestep=2e-16,
            totaltime=d['T'] * 3.0,
            description="10um",
            #movne
            movne={'clim': (1e14, 1e21)},
            angular=True,
        ))
    defds.append(d)
Example #4
0
def mktarget(
        xdim=(-0.05,   0.05),
        sdim=(-0.0015, 0.0015),
        solid=3e22,
        sh = 7e17):
    @np.vectorize
    def out(x):
        if x <= xdim[0] or x >= xdim[1]:
            return 0.0;
        elif sdim[0] <= x <= sdim[1]:
            return solid;
        else:
            return sh;
    return out;

d = fromenergy(3e-3,cycles=cycles,l=780e-9);
d.update(
    nolaser=True,
    pbsbase='oned_test',
    lim =( -550, 550,   0,0,0,0),
    tlim=( -500, 500,   0,0,0,0),
    res =( 1100*100, 0, 0),
    lspexec='lsp-10-x',
    fp=(0,0,0),
    tref=(0.0,0.0,0.0),
    #target
    dens_dat='target.dat',
    externalf_1D=True,
    new_externalf=True,
    f_1D=mktarget(),
    dats=[
Example #5
0
            cluster='armstrong',
            queue='standard',
            walltime=24),
        sd(
            hpcmp_defpbs,
            pbsname=pbsbase+"_armstrong_36",
            cluster='armstrong',
            queue='standard',
            walltime=36),
    ];
    return dd;
#crazy
Es = [40,4,0.4,0.04,0.004,4e-4];
ratio = 1.5/0.78;
for E in Es:
    d = sd(fromenergy(E,l=50e-6,cycles=cycles), **defd);
    d.update(
        n_s=1e19,
        solid_len=50,
        expf=ratio * d['l']/1e-6,
        lim =( -850, 50, -800, 800, 0,0),
        tlim=( -800,  0, -700, 700, 0,0),
        res =(  18*32, 32*32, 0),
        totaltime=d['T']*4.0,
        timestep = 5e-15,
        description="50um laser in search of 100 MeV",
        dumpinterval=10e-15,
        #movne
        movne={'clim':(1e15,1e19)},
    );
    mkpbsbase(d);
Example #6
0
    lspexec='lsp-10-xy',
    fp='nc',
    #target
    n_s=1e23,
    solid_len=10,
    expf=1.5,
    #movne
    movne={'clim':(1e14,1e21)},
    #pbs options
    autozipper=True,
    dir=True,
)
pbsfmt='{l}um-{I:0.2e}-l={scale:0.3}um'
defds=[]
for E in Es:
    d = sd(fromenergy(E), **defd);
    d.update(dict(
        l   = 10e-6,
        lim =( -50, 10, -120, 120,0,0),
        tlim=( -40,  0, -110, 110,0,0),
        res =( 60*5, 240*5, 0),
        timestep = 2e-16,
        totaltime= d['T']*3.0,
        description="10um",
        #movne
        movne={'clim':(1e14,1e21)},
        angular=True,
    ));
    defds.append(d);

Example #7
0
def mksim(E, l, fn, cy, yres=20):
    scale = 1.5
    d = fromenergy(
        E,
        l=l * 1e-6,
        cycles=cycles * cy,
        l2w=l2w * fn,
    )
    d = sd(defd, **d)
    mywidth = np.ceil(width * l)
    margin = 15.0
    mymargin = np.ceil(margin)
    myedges = np.ceil(margin) + mywidth
    timestep = l * 1e-6 / c / tstep
    yres = int(np.ceil((2 * myedges) / (l / yres)))
    pbsbase = pbsfmt.format(
        l='0.8' if l == 0.78 else int(l),
        I=d['I'],
        scale=scale,
        fn=np.pi * d['w'] / 2 / d['l'],
        cs=cy,
    )
    pbses = mk_hpcmp_pbses(pbsbase=pbsbase,
                           domains=domains,
                           lspexec='lsp-10-xy')
    print("processing {}".format(pbsbase))
    #original targets
    d.update(
        pbsbase=pbsbase,
        #target
        fp='nc',
        n_s=1e23,
        solid_len=10,
        expf=scale,
        scale_with_min=True,
        long_resd=20,
        long_margin=(mymargin, mymargin),
        n_min=1e16,
        roundup_pp=True,
        # others
        lim=(0, 0, -myedges, myedges, 0, 0),
        tlim=(0, 0, -mywidth, mywidth, 0, 0),
        res=(0, yres, 0),
        timestep=timestep,
        dumpinterval=timestep * 2,
        totaltime=d['T'] * 3.5,
        description=pbsbase,
        pbses=pbses,
        domains=domains,
        region_dom_split='y',
        #movs
        movne=dict(clim=(1e16, 1e23)),
        movni=dict(clim=(1e16, 1e23)),
        movdq=dict(clim=(-1e19, 1e19), linthresh=1e15),
        movrho=dict(clim=(-1e19, 1e19), linthresh=1e15),
        dir=True,
    )
    gensim(**d)
    #scaled targets
    if np.isclose(l, 0.78): return
    scale = d['expf'] = l2L * l
    pbsbase = pbsfmt.format(l=int(l),
                            I=d['I'],
                            scale=scale,
                            fn=np.pi * d['w'] / 2 / d['l'],
                            cs=cy)
    d['pbsbase'] = pbsbase
    print("processing {}".format(pbsbase))
    d['pbses'] = mk_hpcmp_pbses(pbsbase=pbsbase,
                                domains=96,
                                lspexec='lsp-10-xy')
    if np.isclose(l, 10.0): d['n_min'] = 5e16
    #note I DO NOT remake movnes, because 1e17 is close enough.
    gensim(**d)
Example #8
0
pbsfmt='{l}um-{I:0.2e}-l={scale:0.3}um'
def mkpbsbase(d):
    l = d['l']/1e-6;
    if l > 1:
        l = int(l);
    else:
        l = '{:0.1f}'.format(l)
    d['pbsbase']=pbsfmt.format(
        l=l,I=d['I'],scale=d['expf']);

####################################
# 10um scans
####################################
defds=[]
for E in Es:
    d = sd(fromenergy(E,cycles=cycles), **defd);
    d.update(
        lim =( -50, 10, -120, 120,0,0),
        tlim=( -40,  0, -110, 110,0,0),
        res =( 60*4, 240*4, 0),
        timestep = 5e-16,
        totaltime= d['T']*3.75,
        description="10um",
        angular=True,
    );
    defds.append(d);

#10um, scale=1.5um
for d in defds:
    d['pbsbase']=pbsfmt.format(
        l=int(d['l']/1e-6),I=d['I'],scale=d['expf']);