コード例 #1
0
 def make_movers(self, scheme):
     ensemble_list = self.get_ensembles(scheme, self.ensembles)
     movers = []
     for pair in ensemble_list:
         movers.append(paths.ReplicaExchangeMover(ensemble1=pair[0],
                                                  ensemble2=pair[1]))
     return movers
コード例 #2
0
 def make_movers(self, scheme):
     ensemble_list = self.get_ensembles(scheme, self.ensembles)
     movers = []
     for ens in ensemble_list:
         movers.extend([paths.ReplicaExchangeMover(ensemble1=ens[i],
                                                   ensemble2=ens[i+1])
                        for i in range(len(ens)-1)])
     return movers
コード例 #3
0
 def make_movers(self, scheme):
     ensemble_list = self.get_ensembles(scheme, self.ensembles)
     movers = []
     for ens in ensemble_list:
         pairs = list(itertools.combinations(ens, 2))
         movers.extend([paths.ReplicaExchangeMover(ensemble1=pair[0],
                                                   ensemble2=pair[1])
                        for pair in pairs])
     return movers
コード例 #4
0
    def make_movers(self, scheme):
        signatures = [m.ensemble_signature 
                      for m in scheme.movers[self.from_group]]
        # a KeyError here indicates that there is no existing group of that
        # name: build scheme.movers[self.from_group] before trying to use it!

        self.check_for_hop_repex_validity(signatures)

        swap_list = []
        for sig in signatures:
            n_ens = len(sig[0])
            if n_ens == 2:
                swap_list.append(sig[0])
            elif n_ens == 1:
                swap = (sig[0][0], sig[1][0])
                if not (swap[1], swap[0]) in swap_list:
                    swap_list.append(swap)

        swaps = [paths.ReplicaExchangeMover(swap[0], swap[1])
                 for swap in swap_list]
        return swaps