def loadLatticePannel(): global gui, latticeGui, supercellGui LatticeFrame=LabelFrame(gui,text='Lattice') LatticeFrame.grid(row=0,column=0) f=Figure(figsize=(2.2,0.4)) ax=f.add_subplot(1,1,1) ax.axis('off') ax.text(-0.15,0.4,r"$H=\sum_{mn\alpha}J_{mn}^\alpha S_m^\alpha S_n^\alpha + \sum_{m\alpha} D_m^\alpha(S_m^\alpha S_m^\alpha)$") Hamiltonian=FigureCanvasTkAgg(f,LatticeFrame) Hamiltonian.draw() Hamiltonian.get_tk_widget().grid(row=0,column=0,columnspan=2) #HamiltonianLable=Label(LatticeFrame,text=r"$H=\sum_{ij}J_{i,j}S_i\dotS_j + \sum_i D_i(S_i\dot S_i)$") #HamiltonianLable.grid(row=0,column=0,columnspan=2) a0_base=Frame(LatticeFrame) noteFrame0=toolbox.NoteFrm(a0_base, init_notes=['a1:','',''],init_data=[1,0,0],row=True) a0_base.grid(row=1,column=0) a1_base=Frame(LatticeFrame) noteFrame1=toolbox.NoteFrm(a1_base, init_notes=['a2:','',''],init_data=[0,1,0],row=True) a1_base.grid(row=2,column=0) a2_base=Frame(LatticeFrame) noteFrame2=toolbox.NoteFrm(a2_base, init_notes=['a3:','',''],init_data=[0,0,1],row=True) a2_base.grid(row=3,column=0) latticeGui=[noteFrame0,noteFrame1,noteFrame2] supercell_base=Frame(LatticeFrame) supercellGui=toolbox.NoteFrm(supercell_base,init_notes=['SC:','x','x'],init_data=[16,16,1],row=True,entryWidth=3) supercell_base.grid(row=1,column=1,sticky='SE')
def loadMCSettings(): global gui, TListGui, MCparamGui, modelGui, modelStr, algorithmGui, algoStr, corrGui, coreGui SettingFrame=LabelFrame(gui,text='Other settings') SettingFrame.grid(row=3,column=0,sticky=(W,E)) temp_base=Frame(SettingFrame) temp_base.grid(row=0,column=0) TListGui=toolbox.NoteFrm(temp_base, init_notes=['T start:','T end','total points:'], init_data=[2.0,2.4,20],row=True,entryWidth=6) MCparam_base=Frame(SettingFrame) MCparam_base.grid(row=1,column=0,sticky='W') MCparamGui=toolbox.NoteFrm(MCparam_base, init_notes=['nthermal:','nsweep:','tau:'], init_data=[20000,40000,1],row=True) model_base=Frame(SettingFrame) model_base.grid(row=2,column=0,sticky='W') label1=Label(model_base,text='Model:') label1.grid(row=0,column=0) modelStr=StringVar() modelGui=Spinbox(model_base,from_=1, to=3, values=['Ising','XY','Heisenberg'],textvariable=modelStr,width=12) modelGui.grid(row=0,column=1) label2=Label(model_base,text='Algorithm:') label2.grid(row=0,column=2) algoStr=StringVar() algorithmGui=Spinbox(model_base,from_=1, to=3, values=['Wolff','Metroplis','Sweden-Wang'],textvariable=algoStr,width=12) algorithmGui.grid(row=0,column=3) corr_base=Frame(SettingFrame) corr_base.grid(row=3,column=0,sticky='W') corrGui=toolbox.NoteFrm(corr_base, init_notes=['Mesure corr. si','sj','overLat:','',''], init_data=[0,0,0,0,0],entryWidth=3,row=True) core_base=Frame(SettingFrame) core_base.grid(row=4,column=0,sticky='W') coreGui=toolbox.NoteFrm(core_base, init_notes=['core:'], init_data=[np.max([1,int(cpu_count()/2)])])
def loadBonds(): global gui, BondBox, IDandTypeOfBondNote, BondDetailNote BondFrame=LabelFrame(gui,text='Bond list') BondFrame.grid(row=2,column=0,columnspan=1) list_base=Frame(BondFrame) list_base.grid(row=0,column=0,columnspan=2) BondBox=toolbox.InfoList(list_base, correspondToBondList, bondDataFormat, initialInfo=[[0,[-1,-1,-1],[0,0,(1,0,0)]],[1,[-1,-1,-1],[0,0,(0,1,0)]]], width=45,height=5) addBondFrameBase=Frame(BondFrame) addBondFrameBase.grid(row=1,column=0) id_base=Frame(addBondFrameBase) id_base.grid(row=0,column=0,sticky=(W,E)) IDandTypeOfBondNote=toolbox.NoteFrm(id_base, init_notes=['ID:','Jx','Jy','Jz'],init_data=[1,-1,-1,-1],row=True,entryWidth=5) IDandTypeOfBondNote.entry_list[0].config(state='disabled') detail_base=Frame(addBondFrameBase) detail_base.grid(row=1,column=0,sticky=(W,E)) BondDetailNote=toolbox.NoteFrm(detail_base, init_notes=['s','t','over lat.','',''],init_data=[0,0,1,0,0],row=True,entryWidth=3) unitLabel=Label(BondFrame,text='Note all energy units are in Kelvin (1meV=11.58875K)') unitLabel.grid(row=2,column=0,sticky=(W,E)) addBtn=Button(addBondFrameBase,text='add',command=addBond) addBtn.grid(row=0,column=1,rowspan=2,sticky='E') resetBtn=Button(addBondFrameBase,text='reset',command=resetBond) resetBtn.grid(row=0,column=2,rowspan=2,sticky='E') delBtn=Button(addBondFrameBase,text='delet',command=deletBond) delBtn.grid(row=0,column=3,rowspan=2,sticky='E')
def loadOrbitals(): global gui, OrbListBox, IDandTypeNote, PosNote, AnisotropyNote OrbFrame=LabelFrame(gui,text='Orbital list') OrbFrame.grid(row=1,column=0,columnspan=1) list_base=Frame(OrbFrame) list_base.grid(row=0,column=0,columnspan=2) OrbListBox=toolbox.InfoList(list_base, correspondToOrbList, orbitalDataFormat, initialInfo=[[0,0,1,(0.,0.,0.),(0.,0.,0.)]],width=45,height=5) addOrbFrameBase=Frame(OrbFrame) addOrbFrameBase.grid(row=1,column=0) id_base=Frame(addOrbFrameBase) id_base.grid(row=0,column=0) IDandTypeNote=toolbox.NoteFrm(id_base, init_notes=['ID:','Type:','Init spin:'],init_data=[0,0,1],row=True,entryWidth=5) IDandTypeNote.entry_list[0].config(state='disabled') pos_base=Frame(addOrbFrameBase) pos_base.grid(row=1,column=0,sticky='W') PosNote=toolbox.NoteFrm(pos_base, init_notes=['pos','',''],init_data=[0.,0.,0.],row=True,entryWidth=6) anis_base=Frame(addOrbFrameBase) anis_base.grid(row=2,column=0,sticky=(W,E)) AnisotropyNote=toolbox.NoteFrm(anis_base, init_notes=['Ani: Dx','Dy','Dz'],init_data=[0,0,0],row=True,entryWidth=6) addBtn=Button(addOrbFrameBase,text='add',command=addOrb) addBtn.grid(row=0,column=1,rowspan=3) resetBtn=Button(addOrbFrameBase,text='reset',command=resetOrb) resetBtn.grid(row=0,column=2,rowspan=3) delBtn=Button(addOrbFrameBase,text='delet',command=deletOrb) delBtn.grid(row=0,column=3,rowspan=3)
def loadLatticePannel(): global gui, latticeGui, supercellGui LatticeFrame = LabelFrame(gui, text='Lattice') LatticeFrame.grid(row=0, column=0) a0_base = Frame(LatticeFrame) noteFrame0 = toolbox.NoteFrm(a0_base, init_notes=['a1:', '', ''], init_data=[1, 0, 0], row=True) a0_base.grid(row=0, column=0) a1_base = Frame(LatticeFrame) noteFrame1 = toolbox.NoteFrm(a1_base, init_notes=['a2:', '', ''], init_data=[0, 1, 0], row=True) a1_base.grid(row=1, column=0) a2_base = Frame(LatticeFrame) noteFrame2 = toolbox.NoteFrm(a2_base, init_notes=['a3:', '', ''], init_data=[0, 0, 1], row=True) a2_base.grid(row=2, column=0) latticeGui = [noteFrame0, noteFrame1, noteFrame2] supercell_base = Frame(LatticeFrame) supercellGui = toolbox.NoteFrm(supercell_base, init_notes=['SC:', 'x', 'x'], init_data=[16, 16, 1], row=True, entryWidth=3) supercell_base.grid(row=0, column=1, sticky='SE')
def loadMCSettings(): global gui, TListGui, HListGui, MCparamGui, xaxisStr, xAxisGui, modelGui, modelStr, algorithmGui, algoStr, corrGui, spinFrameGui, coreGui SettingFrame = LabelFrame(gui, text='Other settings') SettingFrame.grid(row=3, column=0, sticky=(W, E)) temp_base = Frame(SettingFrame) temp_base.grid(row=0, column=0) TListGui = toolbox.NoteFrm( temp_base, init_notes=['T start:', 'T end', 'total points:'], init_data=[0.9, 1.2, 8], row=True, entryWidth=6) field_base = Frame(SettingFrame) field_base.grid(row=1, column=0) HListGui = toolbox.NoteFrm( field_base, init_notes=['H start:', 'H end', 'total points:'], init_data=[0, 0.1, 1], row=True, entryWidth=6) MCparam_base = Frame(SettingFrame) MCparam_base.grid(row=2, column=0, sticky='W') MCparamGui = toolbox.NoteFrm(MCparam_base, init_notes=['nthermal:', 'nsweep:', 'tau:'], init_data=[40000, 80000, 1], row=True) model_base = Frame(SettingFrame) model_base.grid(row=3, column=0, sticky='W') label0 = Label(model_base, text='xAxis:') label0.grid(row=0, column=0) xaxisStr = StringVar() xAxisGui = Spinbox(model_base, from_=1, to=2, values=['T', 'H'], textvariable=xaxisStr, width=2) xAxisGui.grid(row=0, column=1) label1 = Label(model_base, text='Model:') label1.grid(row=0, column=2) modelStr = StringVar() modelGui = Spinbox(model_base, from_=1, to=3, values=['Ising', 'XY', 'Heisenberg'], textvariable=modelStr, width=6) modelGui.grid(row=0, column=3) modelStr.set('XY') label2 = Label(model_base, text='Algorithm:') label2.grid(row=0, column=4) algoStr = StringVar() algorithmGui = Spinbox(model_base, from_=1, to=3, values=['Wolff', 'Metropolis', 'Swedsen-Wang'], textvariable=algoStr, width=6) algorithmGui.grid(row=0, column=5) corr_base = Frame(SettingFrame) corr_base.grid(row=4, column=0, sticky='W') corrGui = toolbox.NoteFrm( corr_base, init_notes=['Mesure corr. si', 'sj', 'overLat:', '', ''], init_data=[0, 0, 0, 0, 0], entryWidth=3, row=True) lastline = Frame(SettingFrame) lastline.grid(row=5, column=0, sticky='W') spinFrame_base = Frame(lastline) spinFrame_base.grid(row=0, column=0, sticky='W') spinFrameGui = toolbox.NoteFrm(spinFrame_base, init_notes=['nFrame:'], init_data=[0], entryWidth=3) core_base = Frame(lastline) core_base.grid(row=0, column=1, sticky='W') coreGui = toolbox.NoteFrm(core_base, init_notes=['core:'], init_data=[np.max([1, int(cpu_count() / 2)])], entryWidth=3)