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
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
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]
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
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
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