Statistiques
| Révision :

root / ase / calculators / general.py @ 2

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

1

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

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

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

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

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

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

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