Statistiques
| Révision :

root / ase / calculators / general.py @ 8

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

1
class Calculator(object):
2
    def __init__(self):
3
        return
4

    
5
    def set_atoms(self, atoms):
6
        self.atoms = atoms.copy()
7

    
8
    def get_atoms(self):
9
        atoms = self.atoms.copy()
10
        atoms.set_calculator(self)
11
        return atoms
12

    
13
    def get_potential_energy(self, atoms, force_consistent=False):
14
        self.update(atoms)
15
        if force_consistent:
16
            return self.energy_free
17
        else:
18
            return self.energy_zero
19

    
20
    def get_forces(self, atoms):
21
        self.update(atoms)
22
        return self.forces
23

    
24
    def get_stress(self, atoms):
25
        self.update(atoms)
26
        return self.stress
27

    
28
    def read(self, atoms):
29
        self.positions = atoms.get_positions()
30
        self.energy_free, self.energy_zero = self.read_energy()
31
        self.forces = self.read_forces(atoms)
32
        self.dipole = self.read_dipole()
33
        self.fermi = self.read_fermi()
34
        self.atoms = atoms.copy()
35
        try:
36
            self.nbands = self.read_nbands()
37
        except NotImplementedError:
38
            return
39
        except AttributeError:
40
            return
41
        try:
42
            self.stress = self.read_stress()
43
        except NotImplementedError:
44
            return
45
        return