root / ase / calculators / general.py @ 20
Historique | Voir | Annoter | Télécharger (1,2 ko)
1 | 3 | tkerber | class Calculator(object): |
---|---|---|---|
2 | 1 | tkerber | def __init__(self): |
3 | 1 | tkerber | return
|
4 | 1 | tkerber | |
5 | 1 | tkerber | def set_atoms(self, atoms): |
6 | 1 | tkerber | self.atoms = atoms.copy()
|
7 | 1 | tkerber | |
8 | 1 | tkerber | def get_atoms(self): |
9 | 1 | tkerber | atoms = self.atoms.copy()
|
10 | 1 | tkerber | atoms.set_calculator(self)
|
11 | 1 | tkerber | return atoms
|
12 | 1 | tkerber | |
13 | 1 | tkerber | def get_potential_energy(self, atoms, force_consistent=False): |
14 | 1 | tkerber | self.update(atoms)
|
15 | 1 | tkerber | if force_consistent:
|
16 | 1 | tkerber | return self.energy_free |
17 | 1 | tkerber | else:
|
18 | 1 | tkerber | return self.energy_zero |
19 | 1 | tkerber | |
20 | 1 | tkerber | def get_forces(self, atoms): |
21 | 1 | tkerber | self.update(atoms)
|
22 | 1 | tkerber | return self.forces |
23 | 1 | tkerber | |
24 | 1 | tkerber | def get_stress(self, atoms): |
25 | 1 | tkerber | self.update(atoms)
|
26 | 1 | tkerber | return self.stress |
27 | 1 | tkerber | |
28 | 1 | tkerber | def read(self, atoms): |
29 | 1 | tkerber | self.positions = atoms.get_positions()
|
30 | 1 | tkerber | self.energy_free, self.energy_zero = self.read_energy() |
31 | 1 | tkerber | self.forces = self.read_forces(atoms) |
32 | 1 | tkerber | self.dipole = self.read_dipole() |
33 | 1 | tkerber | self.fermi = self.read_fermi() |
34 | 1 | tkerber | self.atoms = atoms.copy()
|
35 | 1 | tkerber | try:
|
36 | 1 | tkerber | self.nbands = self.read_nbands() |
37 | 1 | tkerber | except NotImplementedError: |
38 | 1 | tkerber | return
|
39 | 1 | tkerber | except AttributeError: |
40 | 1 | tkerber | return
|
41 | 1 | tkerber | try:
|
42 | 1 | tkerber | self.stress = self.read_stress() |
43 | 1 | tkerber | except NotImplementedError: |
44 | 1 | tkerber | return
|
45 | 1 | tkerber | return |