Commits (2)
import sys
from nomad.metainfo import Environment
from nomad.metainfo.legacy import LegacyMetainfoEnvironment
import atkparser.metainfo.atk
import nomad.datamodel.metainfo.common
import nomad.datamodel.metainfo.public
import nomad.datamodel.metainfo.general
m_env = LegacyMetainfoEnvironment()
m_env.m_add_sub_section(Environment.packages, sys.modules['atkparser.metainfo.atk'].m_package) # type: ignore
m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.common'].m_package) # type: ignore
m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.public'].m_package) # type: ignore
m_env.m_add_sub_section(Environment.packages, sys.modules['nomad.datamodel.metainfo.general'].m_package) # type: ignore
import numpy as np # pylint: disable=unused-import
import typing # pylint: disable=unused-import
from nomad.metainfo import ( # pylint: disable=unused-import
MSection, MCategory, Category, Package, Quantity, Section, SubSection, SectionProxy,
Reference
)
from nomad.metainfo.legacy import LegacyDefinition
from nomad.datamodel.metainfo import public
m_package = Package(
name='atk_nomadmetainfo_json',
description='None',
a_legacy=LegacyDefinition(name='atk.nomadmetainfo.json'))
class section_method(public.section_method):
m_def = Section(validate=False, extends_base_section=True, a_legacy=LegacyDefinition(name='section_method'))
x_atk_density_convergence_criterion = Quantity(
type=np.dtype(np.float64),
shape=[],
description='''
Density convergence criteria to break the SCF cycle
''',
a_legacy=LegacyDefinition(name='x_atk_density_convergence_criterion'))
x_atk_mix_old = Quantity(
type=np.dtype(np.int32),
shape=[],
description='''
Number of old densities in the density mixer
''',
a_legacy=LegacyDefinition(name='x_atk_mix_old'))
x_atk_mix_weight = Quantity(
type=np.dtype(np.float64),
shape=[],
description='''
Mixing weight in density mixer
''',
a_legacy=LegacyDefinition(name='x_atk_mix_weight'))
x_atk_monkhorstpack_sampling = Quantity(
type=np.dtype(np.int32),
shape=[3],
description='''
Monkhorstpack grid sampling
''',
a_legacy=LegacyDefinition(name='x_atk_monkhorstpack_sampling'))
m_package.__init_metainfo__()
......@@ -13,7 +13,6 @@
# limitations under the License.
from __future__ import division
import os
from contextlib import contextmanager
import numpy as np
import logging
......@@ -22,8 +21,6 @@ from ase.data import chemical_symbols
from atkparser.atkio import Reader
from ase.data import atomic_masses
from nomadcore.unit_conversion.unit_conversion import convert_unit as cu
from nomadcore.local_meta_info import loadJsonFile, InfoKindEl
from nomadcore.parser_backend import JsonParseEventsWriterBackend
from atkparser.libxc_names import get_libxc_xc_names
......@@ -40,15 +37,7 @@ def c(value, unit=None):
parser_info = {"name": "parser_atk", "version": "1.0"}
path = '../../../../nomad-meta-info/meta_info/nomad_meta_info/' +\
'atk.nomadmetainfo.json'
import nomad_meta_info
metaInfoPath = os.path.normpath(
os.path.join(os.path.dirname(os.path.abspath(nomad_meta_info.__file__)),
"atk.nomadmetainfo.json"))
metaInfoEnv, warnings = loadJsonFile(
filePath = metaInfoPath, dependencyLoader = None,
extraArgsHandling = InfoKindEl.ADD_EXTRA_ARGS, uri = None)
class ATKParserWrapper():
""" A proper class envolop for running this parser using nomad-FAIRDI infra. """
......@@ -58,12 +47,13 @@ class ATKParserWrapper():
def parse(self, mainfile):
logging.info('ATK parser started')
logging.getLogger('nomadcore').setLevel(logging.WARNING)
backend = self.backend_factory(metaInfoEnv)
backend = self.backend_factory('atk.nomadmetainfo.json')
parse_without_class(mainfile, backend)
return backend
def parse_without_class(filename, backend):
p = backend # JsonParseEventsWriterBackend(metaInfoEnv)
p = backend
o = open_section
r = Reader(filename)
......@@ -191,9 +181,3 @@ def parse_without_class(filename, backend):
p.addValue('program_name', 'ATK')
p.addValue('program_version', r.atk_version)
return p
if __name__ == '__main__':
import sys
filename = sys.argv[1]
parse(filename)
# Copyright 2016-2018 Mikkel Strange, Fawzi Mohamed
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys, os, os.path
baseDir = os.path.dirname(os.path.abspath(__file__))
commonDir = os.path.normpath(os.path.join(baseDir,"../../../../python-common/common/python"))
if not commonDir in sys.path:
sys.path.insert(0, commonDir)