예제 #1
0
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')
예제 #2
0
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)])])
예제 #3
0
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')
예제 #4
0
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)
예제 #5
0
파일: guiMain.py 프로젝트: obaica/mcsolver
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')
예제 #6
0
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)