示例#1
0
                        'mol%i' % new_mol_number] = inputData[section][mol]
    return newRestartData, newInputData


from MCFlow.file_formatting.writer import sort_keys
from MCFlow.file_formatting import reader, writer

if __name__ == '__main__':
    from MCFlow.parser import ChangeInput
    my_parser = ChangeInput()
    my_parser.molecules()
    my_parser.parser.add_argument('-b',
                                  '--boxes',
                                  help='boxes to keep',
                                  type=str,
                                  nargs='+')
    args = vars(my_parser.parse_args())

    for feed in args['feeds']:
        for sim in args['indep']:
            path = feed + '/' + str(sim) + '/'
            input_data = reader.read_fort4(path + args['input'])
            nmolty, nbox = int(input_data['&mc_shared']['nmolty']), int(
                input_data['&mc_shared']['nbox'])
            restart_data = reader.read_restart(path + args['restart'], nmolty,
                                               nbox)
            newRes, newIn = removeExtraInfo(args['boxes'], restart_data,
                                            input_data)
            writer.write_fort4(newIn, path + 'fort.4.purified')
            writer.write_restart(newRes, path + 'fort.77.purified')

from MCFlow.file_formatting import reader, writer
import copy
import numpy as np

if __name__ == '__main__':
    import argparse, os
    parser = argparse.ArgumentParser(description='add explicit to unit cell')
    parser.add_argument('-f', '--file', type=str)
    parser.add_argument('-lmn',
                        '--vectors',
                        type=int,
                        nargs='+',
                        default=[2, 2, 3])
    parser.add_argument('-i', '--input', default='fort.4')
    parser.add_argument('-r', '--restart', default='fort.77')

    args = vars(parser.parse_args())

    base_dir = os.getcwd() + '/'
    data = reader.PDB(args['file'])
    input_data = reader.read_fort4('%s%s' % (base_dir, args['input']))
    nmolty, nbox = (int(input_data['&mc_shared']['nmolty']),
                    int(input_data['&mc_shared']['nbox']))
    restart_data = reader.read_restart('%s%s' % (base_dir, args['restart']),
                                       nmolty, nbox)
    input_data, restart_data = main(input_data, restart_data, data)
    writer.write_fort4(input_data, 'fort.4.new')
    writer.write_restart(restart_data, 'fort.77.new')
示例#3
0
                                  nargs='+')
    my_parser.parser.add_argument('-ib',
                                  '--impurityBoxes',
                                  help='impurity boxes',
                                  type=str,
                                  nargs='+')

    args = vars(my_parser.parser.parse_args())
    feeds = args.pop('feeds')

    for feed in feeds:
        args['feeds'] = [feed]
        data, gen_data = getFileData(**args)
        nbox = len(data['rho'].averages[feed].keys())
        try:
            input_data = reader.read_fort4(args['path'] + '/' + feed +
                                           '/1/fort.4')
        except FileNotFoundError:
            input_data = reader.read_fort4(args['path'] + '/' + feed +
                                           '/1/old-fort4')
        bias = newBias(data['N'].averages[feed],
                       input_data['UNIFORM_BIASING_POTENTIALS'],
                       gen_data[feed]['temperature'], args['impurityMols'],
                       args['impurityBoxes'])
        # change data
        input_data['UNIFORM_BIASING_POTENTIALS'] = bias
        input_data['&mc_shared']['nstep'] = '%i' % args['nstep']
        #       iprint, iblock = iaverage(args['nstep'])
        #       input_data['&analysis']['iprint'] = '%i'%iprint
        #       input_data['&analysis']['iblock'] = '%i'%iblock

        # write new files
if __name__ == '__main__':
    import argparse, os

    parser = argparse.ArgumentParser(description = 'Analyze and collect data for vapor adsorption')
    parser.add_argument('-f','--in_file',help ='fort.4 file to change',type=str,
                            default=os.getcwd() + '/fort.4')
    parser.add_argument('-r','--in_rest',help ='fort.77 file to change',type=str,
                            default=os.getcwd() + '/fort.77')
    parser.add_argument('-b','--new_beads',help ='''new beads for each molecule type:
    New order is lists for each mol.    Ex: you might pass in `4,6,1,2,3,5' to get -->  [4,6,1,2,3,5]. This changes
    4 --> 1 (old bead 4 to new bead 1), 6 --> 2, 1 --> 3, etc...N.B: mols are read in string as list''',type=str,nargs='+')
    parser.add_argument('-m','--mols',help='mols to change coresponding to those passed into new beads', type=str,nargs='+')
    args = vars(parser.parse_args())
    if len(args['new_beads']) != len(args['mols']):
        print('beads and mols not specified correctly')
        for key in ['new_beads','mols']:
            print('{} {} len: {}'.format(key, args[key], len(args[key])))
        quit()
    new_beads = [list(map(int,i.split(','))) for i in args['new_beads']]
    input_data = read_fort4(args['in_file'])
    nmolty, nbox = int(input_data['&mc_shared']['nmolty']), int(input_data['&mc_shared']['nbox'])
    restart_data = read_restart(args['in_rest'],nmolty, nbox)
    new_in, new_res = changeBeadOrder(args['mols'], new_beads, input_data.copy(), restart_data.copy())
    if args['in_file'].rfind('/') != -1:
        new_path = args['in_file'][:args['in_file'].rfind('/')] + '/'
    else:
        new_path = ''
    write_fort4(new_in, new_path + 'fort.4.new')
    write_restart(new_res, new_path + 'fort.77.new')
         newSwaps, newSwatches, pctAct, nActCycle, normSwaps,
         normSwatches, pmvol, pswatch_norm, pswap_norm
     ) = analyzeTransfers(
         data['SWAP'].averages[feed],
         gen_data[feed]['ncycle'],
         #                                                       nActPerCycle=3656/200, tavol=0.3,
         gen_data[feed]['compositions'])
 except NoSwapsAccepted:
     print('no swaps accepted for {}'.format(feed))
     continue
 print(newSwaps)
 # read and write
 for sim in args['indep']:
     my_path = '%s/%s/%i/' % (args['path'], feed, sim)
     try:
         input_data = reader.read_fort4(my_path + 'fort.4')
     except FileNotFoundError:
         input_data = reader.read_fort4(my_path + 'old-fort4')
     # add in swaps
     if input_data['&mc_swap']['pmswap'][-2:] == 'd0':
         input_data['&mc_swap']['pmswap'] = input_data['&mc_swap'][
             'pmswap'][:-2]
     pswap_old = float(input_data['&mc_swap']['pmswap'])
     input_data['&mc_swap']['pmswap'] = '%e' % pswap_norm
     input_data['&mc_shared']['seed'] = '%i' % sim
     nmolty = int(input_data['&mc_shared']['nmolty'])
     assert len(newSwaps) == nmolty, 'Incorrect swaps: too many'
     total_pswap = 0.
     for molNum in range(1, nmolty + 1):
         for mol in newSwaps.keys():
             if mol.split()[0] == '%i' % molNum: