Statistiques
| Révision :

root / ase / gui / dft.py @ 15

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

1 1 tkerber
#!/usr/bin/env python
2 1 tkerber
from math import sqrt
3 1 tkerber
4 1 tkerber
import gtk
5 1 tkerber
6 1 tkerber
from ase.gui.languages import translate as _
7 1 tkerber
from ase.gui.widgets import pack, Help
8 1 tkerber
9 1 tkerber
10 1 tkerber
class DFT(gtk.Window):
11 1 tkerber
    def __init__(self, gui):
12 1 tkerber
        gtk.Window.__init__(self)
13 1 tkerber
        self.set_title(_('DFT'))
14 1 tkerber
        vbox = gtk.VBox()
15 1 tkerber
        combo = gtk.combo_box_new_text()
16 1 tkerber
        self.xcfuncs = 'None LDA PBE revPBE RPBE PW91 EXX PBE0'.split()
17 1 tkerber
        for xc in self.xcfuncs:
18 1 tkerber
            combo.append_text(xc)
19 1 tkerber
        pack(vbox, [gtk.Label(_('XC-functional: ')), combo])
20 1 tkerber
21 1 tkerber
        button=radio(None,monkhorstpack)
22 1 tkerber
        button=radio(button, special)
23 1 tkerber
        pack(vbox, gtk.Label(_('Repeat atoms:')))
24 1 tkerber
        self.kpts = [gtk.Adjustment(r, 1, 99, 1) for r in gui.atoms.repeat]
25 1 tkerber
        pack(vbox, [gtk.SpinButton(r, 0, 0) for r in self.repeat])
26 1 tkerber
        for r in self.repeat:
27 1 tkerber
            r.connect('value-changed', self.change)
28 1 tkerber
29 1 tkerber
        close = pack(vbox, gtk.Button(_('Close')))
30 1 tkerber
        close.connect('clicked', lambda widget: self.destroy())
31 1 tkerber
        self.add(vbox)
32 1 tkerber
        vbox.show()
33 1 tkerber
        self.show()
34 1 tkerber
        self.gui = gui
35 1 tkerber
36 1 tkerber
        xc = gui.atoms.dft.get('xc', 'None')
37 1 tkerber
        combo.set_active(self.xcfuncs.index(xc))
38 1 tkerber
39 1 tkerber
    def selected(self, button):
40 1 tkerber
        self.gui.atoms.dynamic = ~self.gui.atoms.selected
41 1 tkerber
        self.gui.draw()
42 1 tkerber
43 1 tkerber
    def immobile(self, button):
44 1 tkerber
        self.gui.atoms.set_dynamic()
45 1 tkerber
        self.gui.draw()
46 1 tkerber
47 1 tkerber
    def clear(self, button):
48 1 tkerber
        self.gui.atoms.dynamic[:] = True
49 1 tkerber
        self.gui.draw()