Statistiques
| Révision :

root / ase / gui / dft.py @ 11

Historique | Voir | Annoter | Télécharger (1,45 ko)

1
#!/usr/bin/env python
2
from math import sqrt
3

    
4
import gtk
5

    
6
from ase.gui.languages import translate as _
7
from ase.gui.widgets import pack, Help
8

    
9

    
10
class DFT(gtk.Window):
11
    def __init__(self, gui):
12
        gtk.Window.__init__(self)
13
        self.set_title(_('DFT'))
14
        vbox = gtk.VBox()
15
        combo = gtk.combo_box_new_text()
16
        self.xcfuncs = 'None LDA PBE revPBE RPBE PW91 EXX PBE0'.split()
17
        for xc in self.xcfuncs:
18
            combo.append_text(xc)
19
        pack(vbox, [gtk.Label(_('XC-functional: ')), combo])
20

    
21
        button=radio(None,monkhorstpack)
22
        button=radio(button, special)
23
        pack(vbox, gtk.Label(_('Repeat atoms:')))
24
        self.kpts = [gtk.Adjustment(r, 1, 99, 1) for r in gui.atoms.repeat]
25
        pack(vbox, [gtk.SpinButton(r, 0, 0) for r in self.repeat])
26
        for r in self.repeat:
27
            r.connect('value-changed', self.change)
28

    
29
        close = pack(vbox, gtk.Button(_('Close')))
30
        close.connect('clicked', lambda widget: self.destroy())
31
        self.add(vbox)
32
        vbox.show()
33
        self.show()
34
        self.gui = gui
35

    
36
        xc = gui.atoms.dft.get('xc', 'None')
37
        combo.set_active(self.xcfuncs.index(xc))
38

    
39
    def selected(self, button):
40
        self.gui.atoms.dynamic = ~self.gui.atoms.selected
41
        self.gui.draw()
42

    
43
    def immobile(self, button):
44
        self.gui.atoms.set_dynamic()
45
        self.gui.draw()
46

    
47
    def clear(self, button):
48
        self.gui.atoms.dynamic[:] = True
49
        self.gui.draw()
50