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