File: run_mapchecker.py

package info (click to toggle)
votca 2025.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 132,424 kB
  • sloc: xml: 345,964; cpp: 80,067; python: 15,957; sh: 4,580; perl: 2,169; javascript: 202; makefile: 34
file content (41 lines) | stat: -rwxr-xr-x 1,387 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python3
"""Examples to show xtp_binds usage."""
from pyxtp import xtp_binds
from pathlib import Path
from multiprocessing import cpu_count

def run_mapchecker(nThreads: int, path_examples: Path) -> None:
    """Run the mapchecker calculator."""
    # mapchecker
    print("Calling mapchecker")
    # Look for the xml file to use as input
    xml_file = (path_examples / "mapchecker.xml").absolute().as_posix()
    state_file = (path_examples / "state.hdf5").absolute().as_posix()
    # Input to call the calculator
    dict_inp = {
        "xmlFile": xml_file,
        "stateFile": state_file,
        "nThreads": str(nThreads),
        "nFrames": '1',
        "firstFrame": '0',
        "save": '1'  # xtp_binds casts it to bool False
    }
    xtp_binds.call_calculator("mapchecker", dict_inp)

    # Check that the files exists
    expected = {"md_segments_step_0.pdb", "mp_segments_e_step_0.pdb",
                "mp_segments_h_step_0.pdb", "qm_segments_n_step_0.pdb"}
    pdb_files = set(p.as_posix() for p in Path(".").glob("*_step_0.pdb"))
    if not all(x in expected for x in pdb_files):
        raise AssertionError("map checker failed")


def run_examples():
    """Call the xtp_binds interface."""
    nThreads = cpu_count()
    path_examples = Path("files_examples")

    run_mapchecker(nThreads, path_examples)

if __name__ == "__main__":
    run_examples()