コード例 #1
0
def create_base_file(settings='./clara400_v12_v3.def'):
    cavity_absolute_phases, cavity_absolute_momenta = rcp.get_Cavity_Phases(dir='../basefiles_4', settings='./clara400_v12_v3.def')
    lattice = Framework('test', clean=False, verbose=False)
    lattice.loadSettings(settings)
    if not os.name == 'nt':
        scaling = 4
        lattice.defineASTRACommand(['mpiexec','-np',str(3*scaling),'/opt/ASTRA/astra_MPICH2.sh'])
        # lattice.defineASTRACommand(['/opt/ASTRA/astra.sh'])
        lattice.defineGeneratorCommand(['/opt/ASTRA/generator.sh'])
        lattice.defineCSRTrackCommand(['/opt/OpenMPI-1.4.3/bin/mpiexec','-n',str(3*scaling),'/opt/CSRTrack/csrtrack_openmpi.sh'])
        lattice.generator.number_of_particles = 2**(3*scaling)
    else:
        lattice.generator.number_of_particles = 2**(3*3)

    lattice.defineElegantCommand(['elegant'])
    for lat in lattice.latticeObjects:
        print 'lattice = ', lat
        if hasattr(lattice[lat], 'headers') and not lat == 'generator':
            lattice.setSubDirectory('basefiles')
            lattice[lat].headers['newrun']['auto_phase'] = True
            lattice[lat].headers['newrun']['Track_All'] = False
            lattice[lat].file_block['input']['prefix'] = '../test/'
            lattice.track(files=[lat], postprocess=False)
            lattice.setSubDirectory('test')

            cavities = lattice[lat].getElementType('cavity')
            if len(cavities) > 0:
                absolute_phases, absolute_momenta = rcp.get_Cavity_Phase('basefiles/'+lat+'.log')
                print zip(cavities, absolute_phases)
                for cav, absphase in zip(cavities, absolute_phases):
                    cav['phase'] = absphase + cav['phase']
            lattice[lat].headers['newrun']['auto_phase'] = False
            lattice[lat].headers['newrun']['Track_All'] = True
        lattice.track(files=[lat], postprocess=True)
def test_ASTRA_Elegant_C2V(quads, phase=4, charge=70):
    global dir, lattice, scaling, bestdelta
    dir = './SETUP/TOMP_SETUP'
    lattice = Framework(dir, clean=True, verbose=False)
    lattice.loadSettings('CLA10-BA1_TOMP_ASTRA.def')
    lattice.change_Lattice_Code('C2V', 'elegant')
    scaling = 6
    if not os.name == 'nt':
        lattice.defineASTRACommand(scaling=(scaling))
        lattice.defineCSRTrackCommand(scaling=(scaling))
        lattice.define_gpt_command(scaling=(scaling))
    lattice['S02'].file_block['input'][
        'prefix'] = '../SETUP/TOMP_SETUP_' + str(phase) + '_' + str(
            charge) + '/'
    lattice['S02'].sample_interval = 1  #2**(3*2)
    dir = './test_EleC2V_' + str(phase) + '_' + str(charge)
    lattice.setSubDirectory(dir)
    lattices = lattice.latticeObjects.values()
    # for l in lattices:
    #     if hasattr(l, 'headers'):
    #         if isinstance(l.headers, (dict)):
    #             if 'charge' in l.headers.keys():
    #                 l.headers['charge'].space_charge_mode = False
    optFuncVELA(quads, track=False)
    lattice.track(startfile='S02', track=True)