From b67cc82968fef981d79c189f41e2b20c301d0e5b Mon Sep 17 00:00:00 2001
From: Mikkel Strange <mikst@fysik.dtu.dk>
Date: Tue, 25 Oct 2016 10:27:40 +0200
Subject: [PATCH] use good stuff in ase 3.12

---
 parser/parser-asap/parser_asap.py | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/parser/parser-asap/parser_asap.py b/parser/parser-asap/parser_asap.py
index 3244b13..461d982 100644
--- a/parser/parser-asap/parser_asap.py
+++ b/parser/parser-asap/parser_asap.py
@@ -56,10 +56,11 @@ def parse(filename):
         if hasattr(t, 'ase_version'):
             aversion = t.ase_version
         else:
-            aversion = '3'  # default Asap version
+            aversion = '3.x.x'  # default Asap version
         p.addValue('program_version', aversion)
         with o(p, 'section_topology'):
-            p.addValue('topology_force_field_name', 'EMT')
+            ffn = t[0].calc.name  # maybe get it from asap3.todict method?
+            p.addValue('topology_force_field_name', ffn)
             with o(p, 'section_constraint'):  # assuming constraints do not
                 #indices = []                  # change from frame to frame
                 for constraint in t[0].constraints:
@@ -72,7 +73,7 @@ def parse(filename):
                                      np.asarray(indices))
                     p.addValue('constraint_kind', get_nomad_name(constraint))
         with o(p, 'section_method') as method_gid:
-            p.addValue('calculation_method', 'EMT')
+            p.addValue('calculation_method', ffn)
         with o(p, 'section_frame_sequence'):
             for f in t:  # loop over frames
                 with o(p, 'section_system') as system_gid:
@@ -102,14 +103,25 @@ def parse(filename):
                                      c(f.get_forces(apply_constraint=False),
                                        'eV/angstrom'))
         with o(p, 'section_sampling_method'):
+            ds = t.description
             ensemble_type = 'NVE'  # default ensemble_type
             if ds:  # if there is a traj.description
-                print('d:', ds)
+                if 'timestep' in ds:  # timestep in MD
+                    p.addRealValue('x_asap_timestep', ds['timestep'])
+                if 'maxstep' in ds:  # maxstep in relaxation
+                    p.addRealValue('x_asap_maxstep', ds['maxstep'])
                 if ds['type'] == 'optimization':
-                    p.addValue('geometry_optimization_method', ds['optimizer'])
-                elif d['type'] == 'molecular-dynamics':
+                    p.addValue('sampling_method', 'geometry_optimization')
+                    p.addValue('geometry_optimization_method',
+                               ds['optimizer'].lower())
+                elif ds['type'] == 'molecular-dynamics':
+                    p.addValue('sampling_method', 'molecular_dynamics')
+                    p.addRealValue('x_asap_temperature', ds['temperature'])
                     md_type = ds['md-type']
-                    if 'Langevin' in md_type or 'NVT' in md_type:
+                    if 'Langevin' in md_type:
+                        p.addValue('x_asap_langevin_friction', ds['friction'])
+                        ensemble_type = 'NVT'
+                    elif 'NVT' in md_type:
                         ensemble_type = 'NVT'
                     elif 'Verlet' in md_type:
                         ensemble_type = 'NVE'
-- 
GitLab