File: general.py

package info (click to toggle)
python-ase 3.21.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 13,936 kB
  • sloc: python: 122,428; xml: 946; makefile: 111; javascript: 47
file content (61 lines) | stat: -rw-r--r-- 1,762 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from ase.calculators.calculator import PropertyNotImplementedError

class Calculator:
    "Deprecated!!!!"
    def __init__(self):
        return

    def set_atoms(self, atoms):
        self.atoms = atoms.copy()

    def get_atoms(self):
        atoms = self.atoms.copy()
        atoms.calc = self
        return atoms

    def get_name(self):
        """Return the name of the calculator (string).  """
        return self.name

    def get_version(self):
        """Return the version of the calculator (string).  """
        raise NotImplementedError

    def get_potential_energy(self, atoms, force_consistent=False):
        self.update(atoms)
        if force_consistent:
            return self.energy_free
        else:
            return self.energy_zero

    def get_forces(self, atoms):
        self.update(atoms)
        return self.forces

    def get_stress(self, atoms):
        self.update(atoms)
        if self.stress is not None:
            return self.stress
        else:
            raise PropertyNotImplementedError

    def initialize(self, atoms):
        """Prepare the input files required to
        start the program (calculator).  """
        raise NotImplementedError

    def read(self, atoms):
        self.positions = atoms.get_positions()
        self.energy_free, self.energy_zero = self.read_energy()
        self.forces = self.read_forces(atoms)
        self.dipole = self.read_dipole()
        self.fermi = self.read_fermi()
        self.atoms = atoms.copy()
        try:
            self.nbands = self.read_nbands()
        except (NotImplementedError, AttributeError):
            pass
        try:
            self.stress = self.read_stress()
        except PropertyNotImplementedError:
            self.stress = None