Implement todict() method for turbomole and vasp calculators
Some calculators, such as Vasp and Turbomole do not have the todict() method implemented. It is called in some database classes. For example a GA simulation with Vasp produces this output:
Relaxing starting candidate 2 Traceback (most recent call last): File "./ga-example.py", line 52, in <module> da.add_relaxed_step(a) File "/myhome/anaconda4/lib/python2.7/site-packages/ase/ga/data.py", line 116, in add_relaxed_step data=a.info['data']) File "/myhome/anaconda4/lib/python2.7/site-packages/ase/db/core.py", line 140, in new_method return method(self, *args, **kwargs) File "/myhome/anaconda4/lib/python2.7/site-packages/ase/db/core.py", line 201, in write id = self._write(atoms, kvp, data) File "/myhome/anaconda4/lib/python2.7/site-packages/ase/db/sqlite.py", line 190, in _write row = AtomsRow(atoms) File "/myhome/anaconda4/lib/python2.7/site-packages/ase/db/row.py", line 67, in __init__ dct = atoms2dict(dct) File "/myhome/anaconda4/lib/python2.7/site-packages/ase/db/row.py", line 49, in atoms2dict dct['calculator_parameters'] = atoms.calc.todict() AttributeError: Vasp instance has no attribute 'todict'
The issue was discussed in this thread:
https://listserv.fysik.dtu.dk/pipermail/ase-users/2016-October/003155.html