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
|