예제 #1
0
    def __init__(self, jobid, struct, crystal_opts, structtype='cif'):
        # May have it automatically detect file type? Probably wouldn't be too hard.
        inpcopy = deepcopy(crystal_opts)
        self.jobid = jobid

        #TODO primitive option.
        cwriter = CrystalWriter()
        if structtype == 'cif':
            cwriter.set_struct_fromcif(struct)
        elif structtype == 'xyz':
            cwriter.set_struct_fromxyz(struct)
        else:
            raise ValueError("structtype not recognized.")
        cwriter.set_options(crystal_opts)

        # For this simple case, only one Manager is needed.
        self.managers = [
            mgmt.CrystalManager(cwriter, CrystalReader(), LocalCrystalRunner(),
                                PropertiesReader(), LocalPropertiesRunner())
        ]
        self.picklefn = "%s.pickle" % jobid
예제 #2
0
    def __init__(self,
                 jobid,
                 struct,
                 crystal_opts={},
                 variance_opts={},
                 energy_opts={},
                 dmc_opts={},
                 structtype='cif',
                 crystalrunner=CrystalRunnerPBS(),
                 qwalkrunner=QWalkRunnerPBS(np=6)):
        # May have it automatically detect file type? Probably wouldn't be too hard.
        inpcopy = deepcopy(crystal_opts)
        self.jobid = jobid

        cwriter = CrystalWriter()
        if structtype == 'cif':
            cwriter.set_struct_fromcif(struct)
        elif structtype == 'xyz':
            cwriter.set_struct_fromxyz(struct)
        else:
            raise ValueError("structtype not recognized.")
        cwriter.set_options(crystal_opts)

        self.managers = [
            mgmt.CrystalManager(cwriter, crystalrunner, CrystalReader(),
                                LocalPropertiesRunner(), PropertiesReader()),
            mgmt.QWalkfromCrystalManager(LocalCrystal2QMCRunner(),
                                         Crystal2QMCReader()),
            mgmt.QWalkRunManager(VarianceWriter(variance_opts),
                                 copy.deepcopy(qwalkrunner), VarianceReader()),
            mgmt.QWalkRunManager(LinearWriter(energy_opts),
                                 copy.deepcopy(qwalkrunner), LinearReader()),
            mgmt.QWalkRunManager(DMCWriter(dmc_opts),
                                 copy.deepcopy(qwalkrunner), DMCReader())
        ]
        self.picklefn = "%s.pickle" % jobid