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