Commit 215a1934 authored by Markus Scheidgen's avatar Markus Scheidgen
Browse files

Merge branch 'parser-move' into 'v0.10.0'

Parser move

See merge request !280
parents d8984d35 373fd704
Pipeline #95607 passed with stages
in 22 minutes and 48 seconds
......@@ -34,4 +34,6 @@ parser.osio.log
......@@ -147,6 +147,8 @@ dev setup tests:
- pip install --upgrade pip
- ./
- python -m nomad.cli parse tests/data/parsers/vasp/vasp.xml
- python -c "import"
- python -c "import nomad.processing"
- tags
......@@ -4,24 +4,24 @@
branch = nomad-fair
[submodule "dependencies/parsers/vasp"]
path = dependencies/parsers/vasp
url =
branch = nomad-fair
url =
branch = master
[submodule "dependencies/parsers/exciting"]
path = dependencies/parsers/exciting
url =
branch = nomad-fair
url =
branch = master
[submodule "dependencies/parsers/fhi-aims"]
path = dependencies/parsers/fhi-aims
url =
branch = nomad-fair
url =
branch = master
[submodule "dependencies/parsers/cp2k"]
path = dependencies/parsers/cp2k
url =
branch = master
[submodule "dependencies/parsers/crystal"]
path = dependencies/parsers/crystal
url =
branch = nomad-fair
url =
branch = master
[submodule "dependencies/parsers/cpmd"]
path = dependencies/parsers/cpmd
url =
......@@ -52,8 +52,8 @@
branch = nomad-fair
[submodule "dependencies/parsers/abinit"]
path = dependencies/parsers/abinit
url =
branch = nomad-fair
url =
branch = master
[submodule "dependencies/parsers/orca"]
path = dependencies/parsers/orca
url =
......@@ -100,8 +100,8 @@
branch = master
[submodule "dependencies/parsers/elastic"]
path = dependencies/parsers/elastic
url =
branch = nomad-fair
url =
branch = master
[submodule "dependencies/parsers/gamess"]
path = dependencies/parsers/gamess
url =
......@@ -175,14 +175,16 @@
branch = master
[submodule "dependencies/parsers/gromacs"]
path = dependencies/parsers/gromacs
url =
url =
branch = master
[submodule "dependencies/parsers/gromos"]
path = dependencies/parsers/gromos
url =
branch = master
[submodule "dependencies/parsers/lammps"]
path = dependencies/parsers/lammps
url =
url =
branch = master
[submodule "dependencies/parsers/openkim"]
path = dependencies/parsers/openkim
url =
Subproject commit 562ae7d26fa108c7c31ebe38775c767aba1e642c
Subproject commit f55b5ad7826793c20d93a73fab01d028fbb44b00
Subproject commit e2c97b91a97ff997b41a99df9595ba6faea15f36
Subproject commit b6b9715460a414af4af433bc44a832c97319080f
Subproject commit d4a5d39b6c012807d71597a3e695295e51b4eedd
Subproject commit 6dfe32362b392808399fb9eba1853d522b8956bf
Subproject commit 7533d541798b110f17873f640b726cf9d7c6302e
Subproject commit d43d7cb50682679728f7280be309976feb4353be
Subproject commit 9246d3e496073282aa56b920e6d075a97829ffce
Subproject commit 44d5861d0503976714ce1a1e09bac2aa3495ddf9
Subproject commit f9870d4dfb52c2a89a90ef1497cef45eac59a8f7
Subproject commit 139ab4a5e288542f4343db3419597fdeddbde3f4
Subproject commit a32a1499b6aa163b17fe01fc8d324b55779418ec
Subproject commit bf2182de246d0b63866e8a61b94392afb8b78073
Subproject commit 7a9433b319a9a01445fc4542e3ba1f5258c5698c
Subproject commit 6ff8642f195b4eab1f6284d51f455348763602b6
Subproject commit c09f64143b6df098bd06882465fb9e4d29c44578
Subproject commit ce55910cabb529b7c0751017c5f10e803e2594a3
Subproject commit 4c35bae7f2834e9657eea438c0a98f8810ac415b
Subproject commit 6ebe206cb99f5bdf008f81f7bc8e4e434414460d
......@@ -76,6 +76,10 @@ everything into your virtual environment:
./ -e
If one of the Python packages that are installed during this process, fails because it
cannot be compiled on your platform, you can try `pip install --prefer-binary <packagename>`
to install set package manually.
The `-e` option will install the NOMAD-coe dependencies with symbolic links allowing you
to change the downloaded dependency code without having to reinstall after.
......@@ -134,11 +138,20 @@ via your preferred tools. Just make sure to use the right ports.
## Running NOMAD
NOMAD consist of the NOMAD app/api, a worker, and the GUI. You can run app and worker with
the NOMAD cli:
the NOMAD cli. These commands will run the services and show their logout put. You should open
them in separate shells as they run continuously. They will not watch code changes and
you have to restart manually.
nomad admin run app
nomad admin run worker
Or both together in once process:
nomad admin run appworker
......@@ -150,7 +163,9 @@ celery -A nomad.processing worker -l info
When you run the gui on its own (e.g. with react dev server below), you have to have
the app manually also.
the app manually also. The gui and its dependencies run on [node]( and
the [yarn]( dependency manager. Read their documentation on how to
install them for your platform.
cd gui
......@@ -162,18 +177,11 @@ yarn start
To run the tests some additional settings and files are necessary that are not part
of the code base.
First you need to create a `nomad.yaml` with the admin password for the user management
password: <the-password>
Secondly, you need to provide the `springer.msg` Springer materials database. It can
First, you need to provide the `springer.msg` Springer materials database. It can
be copied from `/nomad/fairdi/db/data/springer.msg` on our servers and should
be placed at `nomad/normalizing/data/springer.msg`.
Thirdly, you have to provide static files to serve the docs and NOMAD distribution:
Second, you have to provide static files to serve the docs and NOMAD distribution:
cd docs
make html
......@@ -66,7 +66,7 @@ def wrap_positions(
cell: NDArray[Any] = None,
pbc: Union[bool, NDArray[Any]] = True,
center: NDArray[Any] = [0.5, 0.5, 0.5],
eps: float = 1e-7) -> NDArray[Any]:
eps: float = 1e-12) -> NDArray[Any]:
"""Wraps the given position so that they are within the unit cell. If no
cell is given, scaled positions are assumed. For wrapping cartesian
positions you also need to provide the cell.
......@@ -94,13 +94,14 @@ def wrap_positions(
if cell is None:
fractional = positions
fractional = to_scaled(positions) - shift
fractional = to_scaled(positions, cell)
fractional -= shift
for i, periodic in enumerate(pbc):
if periodic:
fractional[:, i] %= 1.0
fractional[:, i] += shift[i]
if cell:
if cell is not None:
return, cell)
return fractional
......@@ -69,6 +69,10 @@ def __run_parallel(
for upload in uploads:
'cli schedules parallel %s processing for upload' % label,
current_task=upload.current_task, upload_id=upload.upload_id)
with cv:
cv.wait_for(lambda: state['available_threads_count'] > 0)
state['available_threads_count'] -= 1
......@@ -84,6 +88,10 @@ def __run_processing(
uploads, parallel: int, process, label: str, reprocess_running: bool = False):
def run_process(upload, logger):
'cli calls %s processing' % label,
current_task=upload.current_task, upload_id=upload.upload_id)
if upload.process_running and not reprocess_running:
'cannot trigger %s, since the upload is already/still processing' % label,
......@@ -99,7 +99,7 @@ def rabbitmq_url():
celery = NomadConfig(
max_memory=64e6, # 64 GB
timeout=1800, # 1/2 h
'Upload.process_upload': 5,
......@@ -288,6 +288,7 @@ meta = NomadConfig(
service='unknown nomad service',
name='novel materials discovery (NOMAD)',
......@@ -310,6 +311,8 @@ raw_file_strip_cutoff = 1000
max_entry_download = 500000
use_empty_parsers = False
reprocess_unmatched = True
reprocess_rematch = True
process_reuse_parser = True
metadata_file_name = 'nomad'
metadata_file_extensions = ('json', 'yaml', 'yml')
......@@ -415,6 +415,10 @@ class EntryMetadata(metainfo.MSection):
processing_errors = metainfo.Quantity(
type=str, shape=['*'], description='Errors that occured during processing',
nomad_version = metainfo.Quantity(
description='The NOMAD version used for the last processing',
......@@ -1523,7 +1523,6 @@ class Dos(MSection):
dos_values_lm = Quantity(
shape=['number_of_dos_lms', 'number_of_spin_channels', 'number_of_atoms', 'number_of_dos_values'],
Array containing the density (electronic-energy) of states values projected on the
various spherical harmonics (integrated on all atoms), see
log, ref, version, commit = "44c7e69 Fixed performance and other isseus.", "heads/mui4", "v0.7.9-398-g44c7e69", "44c7e69"
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment