Пример #1
0
def run_it(p):
    print('Running for parameters: {}'.format(p))

    s = None
    if p.model == 'QcaBond':
        s = qca.QcaBond()
    elif p.model == 'QcaFixedCharge':
        s = qca.QcaFixedCharge()
    elif p.model == 'QcaGrandCanonical':
        s = qca.QcaGrandCanonical()
    elif p.model == 'QcaIsing':
        s = qca.QcaIsing()
    s.V0 = p.V0
    s.mu = p.mu
    s.q = p.q
    s.T = 1
    s.l = qca.Wire(p.N, p.V1, p.boa, 1)
    s.init()
    s.run()
    Es = np.array(s.energies())
    Es.sort()
    Es = Es[:10000]  # throw away high energy states
    s.results['energies'] = Es

    return s
Пример #2
0
 def run(self, V1s_start=None):
     if self.model_type == 'QcaIsing':
         self.s = qca.QcaIsing()
     elif self.model_type == 'QcaBond':
         self.s = qca.QcaBond()
     self.s.V0 = 1E6
     self.s.T = self.T
     self.s.q = self.q
     
     self.y0s = []
     self.e_y0s = []
     self.ss = []
     self.e_ss = []
     
     if V1s_start is not None:
         self.V1s_start = V1s_start
     V11 = self.V1s_start[0]
     V12 = self.V1s_start[1]
     try:
         V1_crit = scipy.optimize.bisect(self.slope, V11, V12, xtol=self.epsilon)
         
         self.results['V1_crit'] = V1_crit
         self.results['N_iteration'] = len(self.y0s)
         self.results['y0'] = self.y0s
         self.results['error_y0'] = self.e_y0s
         self.results['slope'] = self.ss
         self.results['error_slope'] = self.e_ss
     except (ValueError):
         pass
Пример #3
0
 def P_out_for_boa(self, boa):
     self.s = qca.QcaIsing()
     self.s.t = 1
     self.s.q = 0.5
     P_D = 1.0
     self.s.T = self.T
     self.s.l = qca.Wire(self.N, self.V1, boa, P_D)
     self.s.init()
     self.s.run()
     return self.s.results['P'][-1]
Пример #4
0
def run_it(p):
    print('Running for parameters: {}'.format(p))
    s = qca.QcaIsing()
    s.q = 0.5
    s.T = 2.0
    N_lead = 2
    V1 = 200
    s.l = qca.MajorityGate(N_lead, V1, p.doa, p.I1, p.I2, p.I3)
    s.init()
    s.run()
    return s
Пример #5
0
def run_it(p):
    print('Running for parameters: {}'.format(p))
    s = None
    if p.model == 'QcaIsing':
        s = qca.QcaIsing()
    elif p.model == 'QcaBond':
        s = qca.QcaBond()
    s.q = 0.5
    s.t = 1
    s.T = p.T
    s.l = qca.Wire(p.N, p.V1, p.boa, p.P)
    s.init()
    s.run()
    return s
Пример #6
0
    def run(self):
        if self.type == 'QcaBond':
            self.s = qca.QcaBond()
        elif self.type == 'QcaIsing':
            self.s = qca.QcaIsing()
        self.s.V0 = 1E6
        self.s.T = self.T
        self.s.q = self.q

        try:
            P_D = scipy.optimize.bisect(self.f, 1E-4, 1, xtol=self.epsilon)
            self.results['P_D'] = P_D
        except (ValueError):
            pass