-n 1 ${PROGRAM[@]} --junitxml=$PLUGIN_MPI_TEST_XML : \
-n 1 ${PROGRAM[@]}
fi
-
-# Run Python acceptance tests.
-python -m pytest python_packaging/test --junitxml=$PY_ACCEPTANCE_TEST_XML --threads=2
-
-# Note: Multiple pytest processes getting --junitxml output file argument
-# may cause problems, so we set the option on only one of the launched processes.
-# See also Multiple Instruction Multiple Data Model for OpenMPI mpirun:
-# https://www.open-mpi.org/doc/v3.0/man1/mpiexec.1.php
-PROGRAM=(`which python` -m mpi4py -m pytest \
- -p no:cacheprovider \
- $PWD/python_packaging/test \
- --threads=1)
-# shellcheck disable=SC2068
-if [ -x `which mpiexec` ]; then
- PYTHONDONTWRITEBYTECODE=1 \
- mpiexec --allow-run-as-root \
- -x OMP_NUM_THREADS=1 \
- --mca opal_warn_on_missing_libcuda 0 \
- --mca orte_base_help_aggregate 0 \
- -n 1 ${PROGRAM[@]} --junitxml=$PLUGIN_MPI_TEST_XML : \
- -n 1 ${PROGRAM[@]}
-fi
+++ /dev/null
-========================
-Python packaging roadmap
-========================
-
-Describe functional goals, feature tracking, and associated tests.
-
-Functionality to build
-======================
-
-General tool implementation sequence
-------------------------------------
-
-1. Tools in ``operation`` submodule wrap Python code with compliant interface
-2. ``commandline_operation()`` provides UI for (nearly) arbitrary CLI tools
-3. ``tool`` submodule provides trivially wrapped ``gmx`` tools with well-defined inputs and outputs
-
-Simulation tool implementation sequence
----------------------------------------
-
-1. ``mdrun``
-2. ``modify_input``
-3. ``make_input``
-
-Data flow
----------
-
-* ``result()`` methods force data locality for use by non-API calls
-* output properties allow proxied access to (fault tolerant, portable) result futures
-* ``logical_and()``, etc. allow manipulation of data / signals "in flight"
-
-Data flow topology tools
-------------------------
-
-* implicit scatter / map
-* implicit broadcast
-* ``gather()`` makes results local
-* ``reduce()`` allows operation across an ensemble (implicit allReduce where appropriate)
-
-Control flow
-------------
-
-* ``subgraph`` allows several operations to be bundled with a scope that allows
- user-declared data persistence (e.g. when used in a loop)
-* ``while_loop`` allows repeated execution of a subgraph, subject to a declared
- condition of the subgraph state/output, managing accessibilty of data handles
- internal and external to the graph
-
-Execution environment
----------------------
-
-1. Top level module function ``run()`` launches work to produce requested data
-2. Infrastructure manages / negotiates dispatching or allocation of available resources
-
-Packaging
----------
-
-1. Python package can be installed from GROMACS source directory after GROMACS installation.
-2. Python package can be installed by a user from a hand-built GROMACS installation.
-3. Python package can be installed from a Linux binary GROMACS distribution using
- appropriate optimized binary libraries.
-
-Installation procedures are testable with Dockerfiles in a Docker-based CI environment.
-Ref: https://github.com/kassonlab/gmxapi/blob/master/ci_scripts/test_installers.sh
-
-Typing
-------
-
-In addition to basic scalar types,
-some structured data types are immediately necessary.
-
-* gmxapi.NDArray supports an N-dimensional array of a single scalar gmxapi data type
- (with sufficient metadata for common array view APIs)
-* gmxapi.Map supports an associative container with key strings and Variant values
-
-NDArray is immediately necessary to disambiguate non-scalar parameters/inputs from
-implicit data flow topological operations.
-
-Data structures currently coupled to file formats should be decomposable into
-Maps with well-specified schema, but in the absence of more complete API data
-abstractions we just use filename Strings as the API-level content of
-input/output data handles. (Suggest: no need for file objects at
-the higher-level API if read_Xfiletype(/write_Yfiletype) operations
-produce(/consume) named and typed data objects of specified API types.)
-
-The API specification should be clear about policies for narrowing and widening
-of scalar types.
-
-Sequence
-========
-
-Features development sequence based on functional priorities and dependencies.
-
-* fr1: wrap importable Python code.
-* fr2: output proxy establishes execution dependency (superseded by fr3)
-* fr3: output proxy can be used as input
-* fr4: dimensionality and typing of named data causes generation of correct work topologies
-* fr5: explicit many-to-one or many-to-many data flow
-* fr7: Python bindings for launching simulations
-* fr8: gmx.mdrun understands ensemble work
-* fr9: MD plugins
-* fr10: fused operations for use in looping constructs
-* fr11: Python access to TPR file contents
-* fr12: Simulation checkpoint handling
-* fr13: ``run`` module function simplifies user experience
-* fr14: Easy access to GROMACS run time parameters
-* fr15: Simulation input modification
-* fr16: Create simulation input from simulation output
-* fr17: Prepare simulation input from multiple sources
-* fr18: GROMACS CLI tools receive improved Python-level support over generic commandline_operations
-* fr19: GROMACS CLI tools receive improved C++-level support over generic commandline_operations
-* fr20: Python bindings use C++ API for expressing user interface
-* fr21 User insulated from filesystem paths
-* fr22 MPI-based ensemble management from Python
-* fr23 Ensemble simulations can themselves use MPI
-
-Expectations on Mark for Q1-Q2 2019 GROMACS master changes
-==========================================================
-
-* Broker and implement build system amenable to multiple use
- cases. Need to be able to build and deploy python module from single
- source repo that is usable (i.e. can run the acceptance tests).
-
- - Some kind of nested structure likely appropriate, perhaps
- structured as nested CMake projects that in principle could stand
- alone. That's probably workable because nested projects can see
- the parent project's cache variables (TODO check this)
- - probably a top-level project coordinating a libgromacs build and a
- python module build, with the former typically feeding the latter
- - the libgromacs build may be able to leverage independent efforts
- towards a multi-configuration build (so SIMD/MPI/GPU agnostic)
- - top-level project offers much the same UI as now, passing much of
- it through to the libgromacs project
- - top-level project offers the option to find a Python (or be told
- which to use), to find a libgromacs (or be told, or be told to
- build), to build any necessary wrapper binaries (ie. classical gmx
- and mdrun), and to deploy all linked artefacts to
- CMAKE_INSTALL_PREFIX or the appropriate Python site-packages
- - the top-level project will be used by e.g. setup.py wrapper
- from scikit-build/distutils
- - requires reform of compiler flags handling
- - probably requires some re-organization of external dependencies
- of libgromacs
- - follow online "Modern CMake" best practices as far as practicable
- - library should be available for static linking with position
- independent code to allow a single shared object to be built for
- the Python module.
-
-* Dissolve boundary between libgmxapi and libgromacs
-
- - no effort on form and stability of the C++ headers and library in
- 2019, beyond what facilitates implementing the Python interface
- in GROMACS 2020
- - existing libgromacs declarations of "public API" and installed
- headers removed
-
-* libgromacs to be able to be use an MPI communicator passed in,
- rather than hard-coding MPI_COMM_WORLD anywhere. It is likely that
- existing wrapper binaries can use the same mechanism to pass
- MPI_COMM_WORLD to libgromacs.
-
-* UI helpers should express.
- - preferred name for datum as a string: ``nsteps``, ``tau-t``, etc.
- - setter (function object, pointer to a builder method, )
- - typing and type discovery (could be deducible from setter, but something to allow user input checking, or determination
- of the suitability of a data source to provide the given input)
- - help text: can be recycled to provide auto-extracted documentation, command-line help, and annotation in Python docstrings.
- - for CLI: short name for flag. E.g. 'p' for "topology_file"
- - for compatibility: deprecated / alternate names. E.g. "nstlist" for "neighbor_list_rebuild_interval", or "orire" for
- "enable_orientation_restraints"
- - default values
-
-Possible GROMACS source changes whose impact is currently unknown
-=================================================================
-* gmx::Any (which is a flavour of C++17 std::any) type could be
- helpful at API boundary. Also perhaps a flavour of C++17
- std::optional or std::variant.
-
-Additional goals
-================
-
-Some project goals are integrations or optimizations that are explicitly hidden from the user
-and not testable in a high level script, but should be reflected as milestones in a roadmap.
-
-GROMACS source changes deferred to later in 2019
-================================================
-* Build system works also from tarball
-* Build system can produce maximally static artefacts (for performance
- on HPC infrastructure)
-* express grompp and mdrun options handling with gmx::Options to
- prepare for future dictionary-like handling in Python without
- serializing a .tpr file
They can be specified as arguments to the Docker containers based on `ci.dockerfile`
* `run_flake8` runs the Flake8 Python linting tool on the `gmxapi` package sources.
-* `run_acceptace_test` runs the test suite in the higher level `test` directory.
* `run_gmxapi_unittest` runs single-threaded tests for the gmxapi Python package.
* `run_sample_test` runs the tests for the sample_restraint MD plugin API client code.
* `run_full` runs all of the above tests.
+++ /dev/null
-#!/bin/bash
-# Entry point script for Docker containers.
-# Additional arguments are passed along to pytest.
-# See README.md and the gmxapi/ci-<option> Docker images.
-
-# TODO: (#2756) Centrally manage dependencies on the GROMACS installation.
-# The gmxapi package, virtualenv, or test infrastructure should have an
-# internal mechanism for tracking the correct GROMACS installation.
-source /usr/local/gromacs/bin/GMXRC
-
-pytest $HOME/test $@
source /usr/local/gromacs/bin/GMXRC
pytest $HOME/gmxapi/test
-pytest $HOME/test
pytest $HOME/sample_restraint/tests
mpiexec -n 2 `which python` -m mpi4py -m pytest $HOME/gmxapi/test
mpiexec -n 2 `which python` -m mpi4py -m pytest $HOME/sample_restraint/tests
-mpiexec -n 2 `which python` -m mpi4py -m pytest $HOME/test
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Configuration and fixtures for pytest."""
-
-import json
-import logging
-import os
-
-import pytest
-
-pytest_plugins = ('gmxapi.testsupport',)
-
-
-@pytest.fixture(scope='class')
-def spc_water_box(gmxcli, remove_tempdir):
- """Provide a TPR input file for a simple simulation.
-
- Prepare the MD input in a freshly created working directory.
- """
- import gmxapi as gmx
- # TODO: Remove this import when the the spc_water_box fixture is migrated to gmxapi.testsupport
- from gmxapi.testsupport import _cleandir
-
- # TODO: (#2896) Fetch MD input from package / library data.
- # Example:
- # import pkg_resources
- # # Note: importing pkg_resources means setuptools is required for running this test.
- # # Get or build TPR file from data bundled via setup(package_data=...)
- # # Ref https://setuptools.readthedocs.io/en/latest/setuptools.html#including-data-files
- # from gmx.data import tprfilename
-
- with _cleandir(remove_tempdir) as tempdir:
-
- testdir = os.path.dirname(__file__)
- with open(os.path.join(testdir, 'testdata.json'), 'r') as fh:
- testdata = json.load(fh)
-
- # TODO: (#2756) Don't rely on so many automagical behaviors (as described in comments below)
-
- structurefile = os.path.join(tempdir, 'structure.gro')
- # We let `gmx solvate` use the default solvent. Otherwise, we would do
- # gro_input = testdata['solvent_structure']
- # with open(structurefile, 'w') as fh:
- # fh.write('\n'.join(gro_input))
- # fh.write('\n')
-
- topfile = os.path.join(tempdir, 'topology.top')
- top_input = testdata['solvent_topology']
- # `gmx solvate` will append a line to the provided file with the molecule count,
- # so we strip the last line from the input topology.
- with open(topfile, 'w') as fh:
- fh.write('\n'.join(top_input[:-1]))
- fh.write('\n')
-
- assert os.path.exists(topfile)
- solvate = gmx.commandline_operation(gmxcli,
- arguments=['solvate', '-box', '5', '5', '5'],
- # We use the default solvent instead of specifying one.
- # input_files={'-cs': structurefile},
- output_files={'-p': topfile,
- '-o': structurefile,
- }
- )
- assert os.path.exists(topfile)
-
- if solvate.output.returncode.result() != 0:
- logging.debug(solvate.output.erroroutput.result())
- raise RuntimeError('solvate failed in spc_water_box testing fixture.')
-
- # Choose an exactly representable dt of 2^-9 ps (approximately 0.002)
- dt = 2.**-9.
- mdp_input = [('integrator', 'md'),
- ('dt', dt),
- ('cutoff-scheme', 'Verlet'),
- ('nsteps', 2),
- ('nstxout', 1),
- ('nstvout', 1),
- ('nstfout', 1),
- ('tcoupl', 'v-rescale'),
- ('tc-grps', 'System'),
- ('tau-t', 1),
- ('ref-t', 298)]
- mdp_input = '\n'.join([' = '.join([str(item) for item in kvpair]) for kvpair in mdp_input])
- mdpfile = os.path.join(tempdir, 'md.mdp')
- with open(mdpfile, 'w') as fh:
- fh.write(mdp_input)
- fh.write('\n')
- tprfile = os.path.join(tempdir, 'topol.tpr')
- # We don't use mdout_mdp, but if we don't specify it to grompp,
- # it will be created in the current working directory.
- mdout_mdp = os.path.join(tempdir, 'mdout.mdp')
-
- grompp = gmx.commandline_operation(gmxcli, 'grompp',
- input_files={
- '-f': mdpfile,
- '-p': solvate.output.file['-p'],
- '-c': solvate.output.file['-o'],
- '-po': mdout_mdp,
- },
- output_files={'-o': tprfile})
- tprfilename = grompp.output.file['-o'].result()
- if grompp.output.returncode.result() != 0:
- logging.debug(grompp.output.erroroutput.result())
- raise RuntimeError('grompp failed in spc_water_box testing fixture.')
-
- # TODO: more inspection of grompp errors...
- assert os.path.exists(tprfilename)
- yield tprfilename
+++ /dev/null
-[pytest]
-junit_family=xunit2
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Reusable definitions for test modules.
-
-Define the ``withmpi_only`` test decorator.
-"""
-
-import pytest
-
-# TODO: (#3718) Normalize the handling of run-time arguments.
-from gmxapi.simulation.mdrun import ResourceManager as _ResourceManager
-_ResourceManager.mdrun_kwargs = {'threads': 2}
-
-withmpi_only = None
-
-try:
- from mpi4py import MPI
- withmpi_only = \
- pytest.mark.skipif(not MPI.Is_initialized() or MPI.COMM_WORLD.Get_size() < 2,
- reason="Test requires at least 2 MPI ranks, "
- + "but MPI is not initialized or context is too small.")
-except ImportError:
- withmpi_only = pytest.mark.skip(reason="Test requires at least 2 MPI ranks, but mpi4py is not available.")
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import gmxapi as gmx
-
-
-def test_fr1():
- """FR1: Wrap importable Python code.
-
- gmxapi compatible operations are implemented with simple machinery that allows
- compartmentalized progress on functionality to be highly decoupled from
- implementing user-facing tools. Tools are provided in `gmx.operation` and
- demonstrated by implementing `gmx.commandline_operation`.
- """
- # commandline_operation helper creates a set of operations
- # that includes the discovery and execution of the program
- # named in `executable`.
- operation = gmx.commandline_operation(executable='true')
- operation.run()
- assert operation.output.returncode.result() == 0
-
- operation = gmx.commandline_operation(executable='false')
- operation.run()
- assert operation.output.returncode.result() == 1
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import os
-import shutil
-import stat
-import tempfile
-
-import gmxapi as gmx
-
-
-def test_fr3():
- """FR3: Output proxy can be used as input."""
- with tempfile.TemporaryDirectory() as directory:
- file1 = os.path.join(directory, 'input')
- file2 = os.path.join(directory, 'output')
-
- # Make a shell script that acts like the type of tool we are wrapping.
- scriptname = os.path.join(directory, 'clicommand.sh')
- with open(scriptname, 'w') as fh:
- fh.write('\n'.join(['#!' + shutil.which('bash'),
- '# Concatenate an input file and a string argument to an output file.',
- '# Mock a utility with the tested syntax.',
- '# clicommand.sh "some words" -i inputfile -o outputfile',
- 'echo $1 | cat $3 - > $5\n']))
- os.chmod(scriptname, stat.S_IRWXU)
-
- line1 = 'first line'
- filewriter1 = gmx.commandline_operation(scriptname,
- arguments=[line1],
- input_files={'-i': os.devnull},
- output_files={'-o': file1})
-
- line2 = 'second line'
- filewriter2 = gmx.commandline_operation(scriptname,
- arguments=[line2],
- input_files={'-i': filewriter1.output.file['-o']},
- output_files={'-o': file2})
-
- filewriter2.run()
- # Check that the files have the expected lines
- with open(file1, 'r') as fh:
- lines = [text.rstrip() for text in fh]
- assert len(lines) == 1
- assert lines[0] == line1
- with open(file2, 'r') as fh:
- lines = [text.rstrip() for text in fh]
- assert len(lines) == 2
- assert lines[0] == line1
- assert lines[1] == line2
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr4'),
- reason="Feature level not met.")
-def test_fr4():
- """FR4: Dimensionality and typing of named data causes generation of correct work topologies."""
- N = 10
- simulation_input = gmx.read_tpr(initial_tpr)
-
- # Array inputs imply array outputs.
- input_array = gmx.modify_input(
- simulation_input, params={'tau-t': [t / 10.0 for t in range(N)]})
-
- md = gmx.mdrun(input_array) # An array of simulations
-
- rmsf = gmx.commandline_operation(
- 'gmx',
- 'rmsf',
- input={
- '-f': md.output.trajectory,
- '-s': initial_tpr
- },
- output={'-o': gmx.FileName(suffix='.xvg')})
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr5'),
- reason="Feature level not met.")
-def test_fr5():
- """FR5: Explicit many-to-one or many-to-many data flow.
-
- Test operations for manipulating the data flow graph topology.
-
- Check for expected default behavior and explicit behavior of data flow (graph
- edges) with respect to scatter, gather, map, reduce, and broadcast.
- """
- output_files = gmx.gather(rmsf.output.file['-o'])
- gmx.run()
-
- print('Output file list:')
- print(', '.join(output_files.result()))
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-
-
-@pytest.mark.usefixtures('cleandir')
-def test_fr7(spc_water_box):
- """FR7: Python bindings for launching simulations.
-
- gmx.mdrun uses bindings to C++ API to launch simulations.
- """
- md = gmx.mdrun(spc_water_box)
- md.run()
- # Note: can't verify that this is accomplished with C++ integration without
- # exploring implementation details.
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-# Ref https://gitlab.com/gromacs/gromacs/-/issues/3192
-@pytest.mark.skipif(not has_feature('fr8'),
- reason="Feature level not met.")
-def test_fr8(spc_water_box):
- """FR8: gmx.mdrun understands ensemble work."""
- md = gmx.mdrun([spc_water_box, spc_water_box])
- md.run()
- # Maybe assert that two trajectory files with unique filesystem locations are produced?
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr9'),
- reason="Feature level not met.")
-def test_fr9():
- """FR9: *gmx.mdrun supports interface for binding MD plugins*
-
- (requires interaction with library development)
- """
- import sample_restraint
-
- starting_structure = 'input_conf.gro'
- topology_file = 'input.top'
- run_parameters = 'params.mdp'
-
- initial_tpr = gmx.commandline_operation(
- 'gmx',
- 'grompp',
- input={
- '-f': run_parameters,
- '-c': starting_structure,
- '-p': topology_file
- },
- output={'-o': gmx.OutputFile('.tpr')})
-
- simulation_input = gmx.read_tpr(initial_tpr.output.file['-o'])
-
- # Prepare a simple harmonic restraint between atoms 1 and 4
- restraint_params = {'sites': [1, 4],
- 'R0': 2.0,
- 'k': 10000.0}
-
- restraint = sample_restraint.harmonic_restraint(input=restraint_params)
-
- md = gmx.mdrun(input=simulation_input, potential=sample_restraint)
-
- #md.run()
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr10'),
- reason="Feature level not met.")
-def test_fr10():
- """FR10: 10: fused operations for use in looping constructs
-
- * gmx.subgraph fuses operations
- * gmx.while creates an operation wrapping a dynamic number of iterations of a subgraph
- """
- train = gmx.subgraph(variables={'conformation': initial_input})
- with train:
- myplugin.training_restraint(
- label='training_potential',
- params=my_dict_params)
- modified_input = gmx.modify_input(
- input=initial_input, structure=train.conformation)
- md = gmx.mdrun(input=modified_input, potential=train.training_potential)
- # Alternate syntax to facilitate adding multiple potentials:
- # md.interface.potential.add(train.training_potential)
- brer_tools.training_analyzer(
- label='is_converged',
- params=train.training_potential.output.alpha)
- train.conformation = md.output.conformation
-
- train_loop = gmx.while_loop(
- operation=train,
- condition=gmx.logical_not(train.is_converged))
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr11'),
- reason="Feature level not met.")
-def test_fr11():
- """FR11: Python access to TPR file contents.
-
- * gmx.read_tpr utility provides access to TPR file contents
- * gmx.read_tpr operation produces output consumable by gmx.mdrun
- * gmx.mdrun produces gromacs.read_tpr node for tpr filename kwargs
- """
- simulation_input = gmx.read_tpr(initial_tpr)
- nsteps = simulation_input.params('nsteps')
- md = gmx.mdrun(simulation_input)
- assert md.output.trajectory.step.result() == nsteps
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr12'),
- reason="Feature level not met.")
-def test_fr12():
- """FR12: Simulation checkpoint handling
-
- * gmx.mdrun is properly restartable
-
- This should be invisible to the user, and requires introspection and testing infrastructure to properly test (TBD).
- """
- from gmxapi import testsupport
-
- simulation_input = gmx.read_tpr(initial_tpr)
- md = gmx.mdrun(simulation_input, label='md')
- interrupting_context = testsupport.interrupted_md(md)
- with interrupting_context as session:
- first_half_md = session.md.run()
- md = gmx.mdrun(first_half_md, context=testsupport.inspect)
- testsupport.verify_restart(md)
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr13'),
- reason="Feature level not met.")
-def test_fr13():
- """FR13: ``run`` module function simplifies user experience
-
- * gmx.run finds and runs operations to produce expected output files
- * gmx.run handles ensemble work topologies
- * gmx.run handles multi-process execution
- * gmx.run safety checks to avoid data loss / corruption
- """
- # commandline_operation helper creates a set of operations
- # that includes the discovery and execution of the program
- # named in `executable`.
- md = gmx.mdrun([tprfilename, tprfilename])
- gmx.run()
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr14'),
- reason="Feature level not met.")
-def test_fr14():
- """FR14: Easy access to GROMACS run time parameters
-
- *gmx.run conveys run-time parameters to execution context*
-
- (requires interaction with library development)
-
- TODO: find human readable parameter names to complement short CLI flags.
- """
- gmx.run(work, tmpi=20, grid=gmx.NDArray([3, 3, 2]), ntomp_pme=1, npme=2, ntomp=1)
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import logging
-
-import pytest
-
-import gmxapi as gmx
-
-# Configure the `logging` module before proceeding any further.
-gmx.logger.setLevel(logging.WARNING)
-
-try:
- from mpi4py import MPI
- rank_number = MPI.COMM_WORLD.Get_rank()
-except ImportError:
- rank_number = 0
- rank_tag = ''
- MPI = None
-else:
- rank_tag = 'rank{}:'.format(rank_number)
-
-# Use this formatter to improve the caplog log records.
-formatter = logging.Formatter(rank_tag + '%(name)s:%(levelname)s: %(message)s')
-
-@pytest.mark.usefixtures('cleandir')
-def test_fr15(spc_water_box, caplog):
- """FR15: Simulation input modification.
-
- * *gmx.modify_input produces new (tpr) simulation input in data flow operation*
- (requires interaction with library development)
- """
- try:
- from mpi4py import MPI
- current_rank = MPI.COMM_WORLD.Get_rank()
- ensemble_size = MPI.COMM_WORLD.Get_size()
- except ImportError:
- current_rank = 0
- ensemble_size = 1
-
- with caplog.at_level(logging.DEBUG):
- caplog.handler.setFormatter(formatter)
- with caplog.at_level(logging.WARNING, 'gmxapi'), \
- caplog.at_level(logging.DEBUG, 'gmxapi.mdrun'), \
- caplog.at_level(logging.DEBUG, 'gmxapi.modify_input'), \
- caplog.at_level(logging.DEBUG, 'gmxapi.read_tpr'), \
- caplog.at_level(logging.DEBUG, 'gmxapi.simulation'):
-
- initial_input = gmx.read_tpr([spc_water_box for _ in range(ensemble_size)])
- parameters = list([{'ld-seed': i} for i in range(ensemble_size)])
- param_sweep = gmx.modify_input(input=initial_input,
- parameters=parameters
- )
- md = gmx.mdrun(param_sweep)
- # TODO: (#3179) Handle ensembles of size 1 more elegantly.
- if md.output.ensemble_width > 1:
- result_list = md.output.parameters['ld-seed'].result()
- else:
- result_list = [md.output.parameters['ld-seed'].result()]
- for expected, actual in zip(parameters, result_list):
- assert expected['ld-seed'] == actual
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr16'),
- reason="Feature level not met.")
-def test_fr16():
- """FR16: Create simulation input from simulation output.
-
- *gmx.make_input handles state from checkpoints*
- (requires interaction with library development)
- """
- initial_input = gmx.read_tpr(tpr_filename)
- md = gmx.mdrun(initial_input)
- stage2_input = gmx.make_input(topology=initial_input,
- conformation=md.output,
- parameters=stage2_params,
- simulation_state=md.output)
- md = gmx.mdrun(stage2_input)
- md.run()
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr17'),
- reason="Feature level not met.")
-def test_fr17():
- """FR17: Prepare simulation input from multiple sources
-
- gmx.write_tpr (a facility used to implement higher-level functionality)
- merges tpr data (e.g. inputrec, structure, topology) into new file(s)
- """
- gmx.fileio.write_tpr(filename=managed_filename, input=stage2_input)
- for key, value in gmx.fileio.read_tpr(managed_filename)['input']:
- assert stage2_input[key] == value
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr18'),
- reason="Feature level not met.")
-def test_fr18():
- """FR18: GROMACS CLI tools receive improved Python-level support over generic commandline_operations
-
- * gmx.tool provides wrapping of unmigrated gmx CLI tools
- """
- rmsf = gmx.tool.rmsf(trajectory=md.output.trajectory,
- structure=initial_tpr)
- output_files = gmx.gather(rmsf.output.file).result()
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr19'),
- reason="Feature level not met.")
-def test_fr19():
- """FR19: GROMACS CLI tools receive improved C++-level support over generic commandline_operations
-
- gmx.tool uses Python bindings on C++ API for CLI modules (not testable at the UI level)
- """
- rmsf = gmx.rmsf(trajectory=md.output.trajectory,
- structure=initial_tpr)
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr20'),
- reason="Feature level not met.")
-def test_fr20():
- """FR20: Python bindings use C++ API for expressing user interface
-
- gmx.tool operations are migrated to updated Options infrastructure
- (requires interaction with library development)
- """
- analysis = gmx.rmsf(trajectory=md.output.trajectory,
- topology=initial_input)
- file_list = gmx.fileio.write_xvg(analysis.output).result()
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-@pytest.mark.skipif(not has_feature('fr21'),
- reason="Feature level not met.")
-def test_fr21():
- """FR21: User insulated from filesystem paths.
-
- gmx.context manages data placement according to where operations run
- """
- output_files = gmx.gather(rmsf.output.file).result()
- testsupport.verify_unique_xvg_files(output_files)
- # Verify completeness of project sustainability goal in code review.
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-from pytesthelpers import withmpi_only
-
-@withmpi_only
-@pytest.mark.skipif(not has_feature('fr22'),
- reason="Feature level not met.")
-def test_fr22():
- """FR22: MPI-based ensemble management from Python
-
- gmx.context can own an MPI communicator and run ensembles of simulations.
- """
- from mpi4py import MPI
- comm_world = MPI.COMM_WORLD
-
- group2 = comm_world.Get_group().Incl([0,1])
- ensemble_comm = comm_world.Create_group(group2)
-
- md = gmx.mdrun([tpr_filename for _ in range(2)])
-
- with gmx.get_context(md, communicator=ensemble_comm) as session:
- session.run()
-
- ensemble_comm.Free()
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2019, by the GROMACS development team, led by
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
-# and including many others, as listed in the AUTHORS file in the
-# top-level source directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-
-"""Test gmxapi functionality described in roadmap.rst."""
-
-import pytest
-
-import gmxapi as gmx
-from gmxapi.version import has_feature
-
-from pytesthelpers import withmpi_only
-
-@withmpi_only
-@pytest.mark.skipif(not has_feature('fr23'),
- reason="Feature level not met.")
-def test_fr23():
- """FR23: Ensemble simulations can themselves use MPI
-
- *GROMACS simulation can use a set of subcommunicators from the comm owned by the client.*
- (requires interaction with library development)
- """
- from mpi4py import MPI
- comm_world = MPI.COMM_WORLD
-
- md = gmx.mdrun([tpr_filename for _ in range(2)])
-
- with gmx.get_context(md, communicator=comm_world) as session:
- session.run()
-
- md = gmx.mdrun([tpr_filename for _ in range(4)])
-
-
- with gmx.get_context(md, communicator=comm_world) as session:
- session.run()
+++ /dev/null
-{
- "datasource": {
- "solvent_topology": "src/testutils/simulationdatabase/spc216.top",
- "solvent_structure": "src/testutils/simulationdatabase/spc216.gro"
- },
- "solvent_topology": [
- "#include \"oplsaa.ff/forcefield.itp\"",
- "",
- "; Include water topology",
- "#include \"oplsaa.ff/tip3p.itp\"",
- "",
- "[ system ]",
- "; Name",
- "spc2",
- "",
- "[ molecules ]",
- "; Compound #mols",
- "SOL 216"
- ],
- "solvent_structure": [
- "216 water molecules",
- " 648",
- " 1SOL OW 1 0.005 0.600 0.244 0.1823 -0.4158 0.4875",
- " 1SOL HW1 2 -0.017 0.690 0.270 -1.7457 -0.5883 -0.4604",
- " 1SOL HW2 3 0.051 0.610 0.161 2.5085 -0.1501 1.7627",
- " 2SOL OW 4 0.155 0.341 0.735 0.6282 0.4390 0.0015",
- " 2SOL HW1 5 0.140 0.284 0.660 -0.3206 0.0700 0.4631",
- " 2SOL HW2 6 0.081 0.402 0.734 -0.1556 -0.4529 1.4404",
- " 3SOL OW 7 1.853 0.500 0.554 0.0780 0.6477 0.1596",
- " 3SOL HW1 8 1.788 0.505 0.484 -0.5409 -1.2601 0.5636",
- " 3SOL HW2 9 1.809 0.533 0.632 -0.0335 0.4430 0.1829",
- " 4SOL OW 10 0.732 1.356 1.314 0.3818 -0.1526 0.0053",
- " 4SOL HW1 11 0.724 1.291 1.245 -0.6376 0.1642 -0.1766",
- " 4SOL HW2 12 0.767 1.434 1.270 0.7292 -0.2888 0.0444",
- " 5SOL OW 13 1.746 1.593 0.575 -0.4779 -0.0868 0.0596",
- " 5SOL HW1 14 1.735 1.666 0.637 0.2545 -0.2925 0.4446",
- " 5SOL HW2 15 1.708 1.518 0.621 1.8857 -0.6672 1.1321",
- " 6SOL OW 16 1.759 0.582 0.800 0.1066 0.3638 0.1453",
- " 6SOL HW1 17 1.673 0.542 0.815 0.2653 -0.5059 -1.2580",
- " 6SOL HW2 18 1.787 0.608 0.888 -0.6999 -1.1652 0.8946",
- " 7SOL OW 19 0.965 0.529 0.941 0.0464 0.6791 -0.5470",
- " 7SOL HW1 20 0.912 0.531 1.020 0.7588 -0.9814 -0.0074",
- " 7SOL HW2 21 0.902 0.533 0.869 -0.5440 3.3012 0.0802",
- " 8SOL OW 22 0.091 0.598 1.836 0.0326 0.2995 0.5048",
- " 8SOL HW1 23 0.091 0.507 1.806 -1.9591 0.6076 -0.4926",
- " 8SOL HW2 24 0.174 0.634 1.804 0.0499 -0.6923 -0.5988",
- " 9SOL OW 25 0.796 1.279 0.780 0.0287 0.9120 0.0338",
- " 9SOL HW1 26 0.731 1.331 0.734 -0.7066 0.7743 0.9173",
- " 9SOL HW2 27 0.799 1.196 0.733 0.1127 1.1975 -0.4621",
- " 10SOL OW 28 0.737 0.813 0.145 -0.2045 -0.2755 -0.1129",
- " 10SOL HW1 29 0.765 0.723 0.130 2.0853 0.6254 -1.4381",
- " 10SOL HW2 30 0.771 0.835 0.231 0.8150 -0.0891 -0.5595",
- " 11SOL OW 31 0.547 1.092 0.477 0.7492 -0.2399 -0.7211",
- " 11SOL HW1 32 0.529 1.089 0.571 -1.6704 -1.5609 -1.1701",
- " 11SOL HW2 33 0.463 1.072 0.436 1.8685 -0.1447 -3.1641",
- " 12SOL OW 34 0.729 1.093 1.672 -0.3320 -0.4160 -0.1770",
- " 12SOL HW1 35 0.781 1.129 1.744 -3.0691 0.8046 1.2710",
- " 12SOL HW2 36 0.762 1.004 1.660 -0.3590 -0.9619 3.2122",
- " 13SOL OW 37 0.570 1.373 1.080 0.5042 -0.2319 -0.2229",
- " 13SOL HW1 38 0.625 1.297 1.099 -1.3369 -1.5288 0.0461",
- " 13SOL HW2 39 0.544 1.361 0.988 -1.9170 -1.3747 0.5551",
- " 14SOL OW 40 1.431 1.407 1.448 -0.0622 0.3206 -0.1113",
- " 14SOL HW1 41 1.471 1.367 1.526 -0.0250 -0.0867 -0.3344",
- " 14SOL HW2 42 1.398 1.332 1.397 -0.3689 0.6034 -0.3325",
- " 15SOL OW 43 0.544 0.321 1.628 0.2713 0.2958 -0.0287",
- " 15SOL HW1 44 0.458 0.278 1.627 0.2912 0.2480 0.2043",
- " 15SOL HW2 45 0.579 0.307 1.540 0.4867 -0.5991 0.1932",
- " 16SOL OW 46 1.482 0.418 0.684 0.2029 0.6095 -0.1120",
- " 16SOL HW1 47 1.396 0.411 0.641 -0.0022 0.9048 0.2426",
- " 16SOL HW2 48 1.490 0.336 0.734 -0.2046 0.9013 0.4457",
- " 17SOL OW 49 0.383 1.854 0.680 -0.5139 0.5358 0.4888",
- " 17SOL HW1 50 0.421 1.821 0.599 0.7665 0.7680 0.9853",
- " 17SOL HW2 51 0.458 1.885 0.731 -1.3106 0.4418 1.7385",
- " 18SOL OW 52 1.132 1.589 1.714 0.2895 -0.1975 -0.0185",
- " 18SOL HW1 53 1.043 1.553 1.717 0.5306 -0.7027 2.3217",
- " 18SOL HW2 54 1.155 1.588 1.621 -0.5281 -4.1539 -0.3015",
- " 19SOL OW 55 0.395 1.440 0.467 0.5492 0.0979 0.3540",
- " 19SOL HW1 56 0.368 1.353 0.437 -0.1402 0.0430 1.1291",
- " 19SOL HW2 57 0.315 1.491 0.468 1.3744 1.5434 -2.6982",
- " 20SOL OW 58 0.305 1.125 0.948 0.2111 -0.2977 -0.8856",
- " 20SOL HW1 59 0.295 1.202 0.892 2.3617 0.9048 0.3267",
- " 20SOL HW2 60 0.271 1.153 1.033 0.1365 -1.0047 -0.6756",
- " 21SOL OW 61 0.724 1.826 1.501 0.0298 0.4019 -0.0972",
- " 21SOL HW1 62 0.768 1.794 1.579 -0.4863 -1.1317 -0.4356",
- " 21SOL HW2 63 0.660 1.759 1.479 0.8721 0.2961 -2.4245",
- " 22SOL OW 64 0.514 0.998 0.125 0.6098 0.7181 -0.7434",
- " 22SOL HW1 65 0.597 0.957 0.101 0.9105 1.6725 -1.3616",
- " 22SOL HW2 66 0.482 1.036 0.043 -0.2917 0.6175 -0.4394",
- " 23SOL OW 67 1.315 0.291 1.516 -0.0316 0.1776 0.0042",
- " 23SOL HW1 68 1.404 0.271 1.488 -0.3833 -0.6259 -0.5615",
- " 23SOL HW2 69 1.300 0.382 1.490 -0.3373 -0.5364 -2.3890",
- " 24SOL OW 70 0.062 0.829 0.562 -0.1329 -0.4901 0.1105",
- " 24SOL HW1 71 0.100 0.870 0.484 -0.6830 -0.5973 -0.2147",
- " 24SOL HW2 72 -0.009 0.888 0.588 -1.4347 -1.6123 -0.8158",
- " 25SOL OW 73 0.236 1.600 0.680 0.0347 -0.3240 0.4242",
- " 25SOL HW1 74 0.202 1.585 0.592 1.3235 -1.8349 0.1530",
- " 25SOL HW2 75 0.267 1.691 0.679 -0.8062 -0.0476 -0.3902",
- " 26SOL OW 76 0.071 1.691 0.164 0.0618 -0.1646 0.2129",
- " 26SOL HW1 77 0.075 1.759 0.097 -0.3582 -0.6286 -0.2942",
- " 26SOL HW2 78 0.089 1.609 0.116 1.2034 -0.3431 0.9259",
- " 27SOL OW 79 1.692 0.825 0.708 -0.5641 -0.5462 -0.0453",
- " 27SOL HW1 80 1.604 0.794 0.687 -0.6763 -0.2255 -0.0492",
- " 27SOL HW2 81 1.733 0.751 0.752 -1.0728 -0.4631 0.5871",
- " 28SOL OW 82 1.579 1.053 0.254 -0.8033 -0.0906 -0.0352",
- " 28SOL HW1 83 1.484 1.038 0.253 -0.5163 -1.9637 -0.8677",
- " 28SOL HW2 84 1.612 0.993 0.321 -0.3926 1.8899 1.5777",
- " 29SOL OW 85 0.255 0.444 1.549 -0.3923 0.0985 0.0998",
- " 29SOL HW1 86 0.315 0.457 1.623 -0.3069 1.0962 -0.1358",
- " 29SOL HW2 87 0.201 0.370 1.575 0.7050 -0.5864 0.4719",
- " 30SOL OW 88 0.517 1.454 0.771 0.5258 0.3188 0.1433",
- " 30SOL HW1 89 0.540 1.448 0.678 -0.7306 1.1517 -0.2395",
- " 30SOL HW2 90 0.432 1.499 0.771 -0.5682 -1.6745 1.5617",
- " 31SOL OW 91 1.290 1.247 1.248 -0.1525 -0.1170 -0.3420",
- " 31SOL HW1 92 1.225 1.308 1.284 0.8657 0.1540 1.1053",
- " 31SOL HW2 93 1.238 1.177 1.208 -1.3298 0.9308 -0.6961",
- " 32SOL OW 94 1.161 0.046 0.549 -0.7899 0.0165 -0.2292",
- " 32SOL HW1 95 1.234 0.006 0.596 -1.1893 -0.2501 0.1682",
- " 32SOL HW2 96 1.172 0.017 0.459 -0.7270 -0.4863 -0.0610",
- " 33SOL OW 97 0.200 0.931 1.248 0.1834 -0.0182 -0.3383",
- " 33SOL HW1 98 0.256 0.920 1.171 0.0813 -1.0292 -0.2797",
- " 33SOL HW2 99 0.213 0.850 1.299 -0.7054 0.0873 0.0770",
- " 34SOL OW 100 1.653 0.813 0.403 -0.4229 0.4610 -0.5574",
- " 34SOL HW1 101 1.632 0.721 0.384 0.8351 0.2066 -0.7345",
- " 34SOL HW2 102 1.697 0.810 0.488 -0.8967 0.9684 -0.2935",
- " 35SOL OW 103 1.138 1.632 1.408 0.2235 0.1534 -0.3000",
- " 35SOL HW1 104 1.106 1.554 1.363 2.5410 -2.2790 2.0813",
- " 35SOL HW2 105 1.080 1.702 1.379 -2.4493 -2.5989 -1.8891",
- " 36SOL OW 106 0.309 0.377 1.834 -0.4182 -0.4312 -0.3901",
- " 36SOL HW1 107 0.270 0.293 1.810 1.5773 -1.5836 0.2316",
- " 36SOL HW2 108 0.356 0.359 1.915 -0.2928 1.3958 -0.0364",
- " 37SOL OW 109 1.437 1.245 1.000 -0.0010 0.2071 -0.1808",
- " 37SOL HW1 110 1.416 1.156 0.973 -1.6468 1.1111 -1.9656",
- " 37SOL HW2 111 1.405 1.252 1.090 0.6670 -1.1529 0.1781",
- " 38SOL OW 112 1.424 1.753 0.580 0.2135 -0.3184 0.0506",
- " 38SOL HW1 113 1.415 1.709 0.496 -0.3394 -0.8115 0.3676",
- " 38SOL HW2 114 1.382 1.694 0.643 -0.0567 0.4046 0.5551",
- " 39SOL OW 115 0.842 0.793 0.396 -0.1790 -0.0812 -0.1655",
- " 39SOL HW1 116 0.827 0.699 0.405 0.8753 -0.1486 1.0973",
- " 39SOL HW2 117 0.773 0.834 0.448 -0.1571 -0.1809 -0.0577",
- " 40SOL OW 118 1.184 0.226 0.775 0.0987 0.3445 -0.0968",
- " 40SOL HW1 119 1.151 0.212 0.686 1.4235 1.3947 -0.7627",
- " 40SOL HW2 120 1.273 0.191 0.774 -0.0295 -0.0600 0.9650",
- " 41SOL OW 121 1.645 1.631 0.294 -0.1345 0.2473 -0.0927",
- " 41SOL HW1 122 1.700 1.553 0.302 3.4777 2.7807 1.0014",
- " 41SOL HW2 123 1.633 1.661 0.384 -2.3958 0.4256 -0.4190",
- " 42SOL OW 124 0.990 0.346 1.386 0.0430 0.1267 -0.1927",
- " 42SOL HW1 125 1.000 0.372 1.477 -2.1829 -1.0234 0.4135",
- " 42SOL HW2 126 1.076 0.311 1.362 1.1511 1.9943 0.9059",
- " 43SOL OW 127 1.202 0.168 0.212 -1.0083 0.3755 0.1937",
- " 43SOL HW1 128 1.264 0.196 0.145 0.7411 -0.2800 1.5089",
- " 43SOL HW2 129 1.128 0.131 0.163 0.1573 0.0522 -1.3518",
- " 44SOL OW 130 1.107 1.012 1.474 0.1787 -0.3903 0.2368",
- " 44SOL HW1 131 1.103 1.064 1.393 -2.8553 -3.0802 -1.4572",
- " 44SOL HW2 132 1.098 1.077 1.544 2.7027 1.9887 -1.5560",
- " 45SOL OW 133 1.100 1.061 1.152 0.5007 0.1964 0.5163",
- " 45SOL HW1 134 1.055 1.105 1.080 0.6653 -0.2221 0.1570",
- " 45SOL HW2 135 1.038 0.995 1.183 0.0876 0.9561 1.3329",
- " 46SOL OW 136 1.136 0.703 0.486 -0.1829 0.0543 0.1652",
- " 46SOL HW1 137 1.042 0.696 0.470 -0.1004 -2.0729 0.5023",
- " 46SOL HW2 138 1.176 0.703 0.399 -0.2869 -2.7402 0.0715",
- " 47SOL OW 139 0.205 0.758 0.832 0.1211 -0.5871 0.3969",
- " 47SOL HW1 140 0.160 0.782 0.751 0.6567 -1.4270 -0.1532",
- " 47SOL HW2 141 0.153 0.798 0.901 0.0933 0.8180 -0.4036",
- " 48SOL OW 142 0.014 1.547 1.653 0.0626 0.4351 0.1221",
- " 48SOL HW1 143 -0.068 1.593 1.633 0.0169 1.2500 2.0845",
- " 48SOL HW2 144 -0.011 1.455 1.659 -0.7796 0.7015 0.9501",
- " 49SOL OW 145 0.937 0.550 0.310 -0.4266 0.1699 -0.0318",
- " 49SOL HW1 146 0.940 0.460 0.342 -1.3375 -0.2757 -1.1180",
- " 49SOL HW2 147 1.018 0.561 0.260 -1.7099 -1.1003 -2.4930",
- " 50SOL OW 148 1.594 0.494 1.709 -0.0166 0.2988 0.0705",
- " 50SOL HW1 149 1.526 0.554 1.740 -1.2253 -0.8979 -0.2534",
- " 50SOL HW2 150 1.597 0.508 1.614 1.3720 1.5596 0.2831",
- " 51SOL OW 151 1.317 0.968 0.261 -0.3666 0.0273 -0.2007",
- " 51SOL HW1 152 1.326 0.873 0.258 2.6967 0.1307 3.0264",
- " 51SOL HW2 153 1.237 0.982 0.311 1.1619 -0.9005 2.6027",
- " 52SOL OW 154 0.818 0.220 0.930 -0.2358 -0.1122 0.7203",
- " 52SOL HW1 155 0.896 0.264 0.962 -0.5134 -0.4077 1.8296",
- " 52SOL HW2 156 0.843 0.128 0.924 0.2529 0.1261 -1.3134",
- " 53SOL OW 157 1.063 1.375 0.602 -0.1037 0.4271 -0.4463",
- " 53SOL HW1 158 1.080 1.291 0.646 0.8360 -1.0279 -3.4337",
- " 53SOL HW2 159 1.144 1.425 0.613 -0.7715 1.0792 1.5996",
- " 54SOL OW 160 0.402 0.050 1.093 -0.3397 0.0770 -0.0682",
- " 54SOL HW1 161 0.419 -0.043 1.079 -0.9714 0.1003 -1.0092",
- " 54SOL HW2 162 0.426 0.092 1.010 -0.9941 0.6253 0.0181",
- " 55SOL OW 163 1.638 1.025 0.883 0.0757 0.2175 -0.6114",
- " 55SOL HW1 164 1.604 1.095 0.826 0.1478 0.1813 -0.6999",
- " 55SOL HW2 165 1.670 0.959 0.822 -0.0596 0.0744 -0.5271",
- " 56SOL OW 166 1.398 1.680 1.499 -0.4326 -0.1587 0.4298",
- " 56SOL HW1 167 1.380 1.610 1.437 -0.8688 1.3026 -1.1337",
- " 56SOL HW2 168 1.312 1.714 1.522 -0.1861 0.3706 0.5817",
- " 57SOL OW 169 0.233 0.934 0.223 0.8457 -0.4228 -0.3137",
- " 57SOL HW1 170 0.220 0.964 0.133 -0.8989 -2.8830 -0.9538",
- " 57SOL HW2 171 0.299 0.865 0.215 1.2989 -0.0754 0.4245",
- " 58SOL OW 172 1.441 0.685 0.696 0.2354 0.4515 -0.4124",
- " 58SOL HW1 173 1.354 0.700 0.734 -0.2181 0.6376 -1.4924",
- " 58SOL HW2 174 1.463 0.595 0.721 0.2007 0.7651 0.7684",
- " 59SOL OW 175 0.337 1.268 0.247 -0.0093 -0.4920 0.1373",
- " 59SOL HW1 176 0.344 1.178 0.215 2.3331 -0.5413 0.6397",
- " 59SOL HW2 177 0.250 1.273 0.286 0.5826 -3.2231 2.0231",
- " 60SOL OW 178 0.898 0.118 0.200 -0.3551 0.2302 -0.0587",
- " 60SOL HW1 179 0.911 0.132 0.106 0.2985 -1.4100 -0.2193",
- " 60SOL HW2 180 0.829 0.180 0.223 -0.2792 0.9071 -1.5410",
- " 61SOL OW 181 1.836 1.848 1.626 0.0758 -0.2851 0.2067",
- " 61SOL HW1 182 1.827 1.886 1.713 -0.3224 1.3741 -0.5508",
- " 61SOL HW2 183 1.760 1.789 1.619 -1.1443 1.2674 0.1338",
- " 62SOL OW 184 1.709 1.339 0.320 -0.0310 0.2465 -0.1588",
- " 62SOL HW1 185 1.682 1.260 0.274 -0.3448 0.1521 0.1802",
- " 62SOL HW2 186 1.803 1.329 0.333 -0.1206 -0.2203 0.1609",
- " 63SOL OW 187 0.565 0.045 0.300 0.0049 -0.4326 -0.1368",
- " 63SOL HW1 188 0.507 0.057 0.225 -0.1634 -2.5297 -0.3735",
- " 63SOL HW2 189 0.526 -0.026 0.350 1.0811 -0.2485 1.0029",
- " 64SOL OW 190 1.628 0.075 0.522 -0.1732 -0.1708 -0.0354",
- " 64SOL HW1 191 1.564 0.147 0.528 0.0770 -0.0114 0.6735",
- " 64SOL HW2 192 1.585 0.001 0.564 0.2490 0.0361 0.7716",
- " 65SOL OW 193 0.217 0.088 1.291 -0.4462 0.0630 0.0515",
- " 65SOL HW1 194 0.299 0.084 1.242 -0.2119 1.3491 0.3286",
- " 65SOL HW2 195 0.231 0.028 1.365 0.0105 -0.1842 -0.2283",
- " 66SOL OW 196 1.107 1.599 0.835 0.2849 0.8202 -0.0344",
- " 66SOL HW1 197 1.035 1.596 0.772 0.7229 -2.5884 -0.4613",
- " 66SOL HW2 198 1.184 1.575 0.784 0.8991 -0.4540 1.4607",
- " 67SOL OW 199 0.526 0.552 0.449 0.1748 -0.6067 0.3229",
- " 67SOL HW1 200 0.434 0.575 0.446 0.6174 1.3015 0.5709",
- " 67SOL HW2 201 0.527 0.459 0.471 -1.6192 -0.0837 2.7272",
- " 68SOL OW 202 1.370 0.230 1.838 0.4671 -0.0369 0.5305",
- " 68SOL HW1 203 1.436 0.291 1.805 -1.2860 1.7105 0.1811",
- " 68SOL HW2 204 1.357 0.168 1.766 -0.4179 1.3780 -0.5543",
- " 69SOL OW 205 0.265 0.145 0.335 -0.3628 0.3179 0.3174",
- " 69SOL HW1 206 0.205 0.108 0.401 -1.9831 1.8944 -0.2337",
- " 69SOL HW2 207 0.215 0.142 0.254 1.1223 -0.3200 -0.5913",
- " 70SOL OW 208 0.640 0.255 0.072 -0.5708 0.2064 0.1379",
- " 70SOL HW1 209 0.592 0.297 0.143 0.6043 -0.4147 1.3207",
- " 70SOL HW2 210 0.603 0.167 0.066 -0.6735 0.2601 -0.0204",
- " 71SOL OW 211 1.053 1.444 1.188 -0.0691 -0.6794 -0.2630",
- " 71SOL HW1 212 1.050 1.387 1.111 -2.0209 0.6149 -1.1791",
- " 71SOL HW2 213 1.105 1.519 1.161 -1.8638 0.4079 -0.8057",
- " 72SOL OW 214 1.220 0.833 1.310 -0.3143 0.7335 -0.3290",
- " 72SOL HW1 215 1.162 0.770 1.266 1.2222 -1.5075 0.7975",
- " 72SOL HW2 216 1.167 0.868 1.382 0.2237 -2.6185 1.7829",
- " 73SOL OW 217 0.826 1.515 0.927 0.3270 -0.2701 -0.4080",
- " 73SOL HW1 218 0.920 1.501 0.924 0.2200 -1.3970 1.3889",
- " 73SOL HW2 219 0.788 1.433 0.895 -0.0893 -0.7359 1.2522",
- " 74SOL OW 220 0.947 0.419 0.683 -0.1867 0.1362 -0.5691",
- " 74SOL HW1 221 0.950 0.388 0.592 -0.7514 0.0847 -0.5674",
- " 74SOL HW2 222 0.861 0.392 0.715 -0.0499 0.2952 -0.0654",
- " 75SOL OW 223 0.532 1.697 0.437 -0.6446 -0.7155 0.7480",
- " 75SOL HW1 224 0.627 1.686 0.437 -0.8548 -2.6894 -0.0127",
- " 75SOL HW2 225 0.498 1.614 0.471 -2.1241 -0.3559 0.1956",
- " 76SOL OW 226 1.398 1.337 0.222 -0.5257 0.2643 0.0180",
- " 76SOL HW1 227 1.405 1.361 0.314 -1.0932 1.0998 -0.1528",
- " 76SOL HW2 228 1.433 1.412 0.175 2.1972 -1.1944 -0.3851",
- " 77SOL OW 229 0.212 1.702 1.770 0.8164 -0.0679 -0.0905",
- " 77SOL HW1 230 0.262 1.670 1.695 1.2871 4.6169 -1.9424",
- " 77SOL HW2 231 0.127 1.724 1.734 0.7133 1.2614 0.9604",
- " 78SOL OW 232 0.699 0.270 0.386 -0.8177 -0.5114 0.3479",
- " 78SOL HW1 233 0.669 0.287 0.475 1.2496 0.7505 0.8311",
- " 78SOL HW2 234 0.636 0.206 0.352 -1.7993 -0.8114 2.6001",
- " 79SOL OW 235 1.364 0.635 1.746 -0.7384 -0.1142 0.3285",
- " 79SOL HW1 236 1.350 0.721 1.707 0.1639 -0.6765 -1.2647",
- " 79SOL HW2 237 1.276 0.603 1.766 -1.1202 0.8395 0.1977",
- " 80SOL OW 238 1.316 1.494 0.695 0.5271 0.4903 -0.2267",
- " 80SOL HW1 239 1.355 1.490 0.782 1.4716 2.4892 -0.5239",
- " 80SOL HW2 240 1.366 1.430 0.644 -0.3994 -1.1000 0.8041",
- " 81SOL OW 241 0.532 0.838 0.958 -0.4993 -0.0110 0.1528",
- " 81SOL HW1 242 0.442 0.838 0.927 -0.3290 1.0927 -0.3788",
- " 81SOL HW2 243 0.526 0.856 1.052 -0.7970 0.7189 -0.0061",
- " 82SOL OW 244 1.373 0.209 0.411 -0.4600 -0.0336 0.2506",
- " 82SOL HW1 245 1.349 0.299 0.436 0.8064 0.1217 0.9551",
- " 82SOL HW2 246 1.302 0.180 0.354 -1.2353 1.1687 0.5895",
- " 83SOL OW 247 0.863 0.622 1.815 0.1086 -0.0512 -0.2934",
- " 83SOL HW1 248 0.776 0.662 1.825 0.2746 -0.0065 1.0405",
- " 83SOL HW2 249 0.847 0.528 1.822 0.1601 -0.0462 -0.1118",
- " 84SOL OW 250 1.783 0.582 1.418 0.6465 0.6810 0.3160",
- " 84SOL HW1 251 1.875 0.567 1.396 0.4674 0.4019 -0.2379",
- " 84SOL HW2 252 1.784 0.663 1.469 1.2410 0.4910 0.6118",
- " 85SOL OW 253 0.613 0.312 1.111 0.2122 -0.1926 0.0935",
- " 85SOL HW1 254 0.548 0.299 1.042 -1.2204 -0.4568 1.4556",
- " 85SOL HW2 255 0.683 0.250 1.090 -0.5503 -0.7886 -0.7088",
- " 86SOL OW 256 0.672 0.064 0.643 -0.4134 -0.2417 -0.2832",
- " 86SOL HW1 257 0.713 0.018 0.570 1.2261 -0.1055 0.5337",
- " 86SOL HW2 258 0.745 0.093 0.698 -1.5062 1.5431 0.2971",
- " 87SOL OW 259 0.944 0.065 0.742 -0.4039 0.1338 -0.1715",
- " 87SOL HW1 260 0.972 -0.020 0.777 -1.0742 0.3828 0.9718",
- " 87SOL HW2 261 1.010 0.086 0.676 0.5369 -0.6258 0.5115",
- " 88SOL OW 262 1.518 1.398 0.544 0.3191 0.1672 0.1253",
- " 88SOL HW1 263 1.542 1.340 0.617 1.3829 -3.0497 -2.6516",
- " 88SOL HW2 264 1.585 1.383 0.478 -0.9695 2.5176 -1.7930",
- " 89SOL OW 265 1.383 0.745 0.981 0.6221 0.4835 -0.5502",
- " 89SOL HW1 266 1.424 0.776 1.062 0.3016 0.6178 -0.4363",
- " 89SOL HW2 267 1.382 0.650 0.990 2.1328 0.3926 -1.1555",
- " 90SOL OW 268 1.430 0.711 0.228 -0.5541 -0.2056 -0.2440",
- " 90SOL HW1 269 1.484 0.752 0.161 1.4464 -1.4288 0.5632",
- " 90SOL HW2 270 1.487 0.704 0.304 -2.0971 -0.8420 0.8945",
- " 91SOL OW 271 0.594 1.349 0.251 0.4694 -0.3366 -0.1842",
- " 91SOL HW1 272 0.504 1.319 0.264 0.4413 -0.5655 -0.8713",
- " 91SOL HW2 273 0.591 1.399 0.170 0.3740 2.1788 1.3333",
- " 92SOL OW 274 0.012 1.346 0.947 -0.5059 0.3559 -0.8179",
- " 92SOL HW1 275 0.035 1.286 1.017 -1.8536 0.1320 -0.5600",
- " 92SOL HW2 276 0.082 1.411 0.947 -0.5934 0.4480 0.8287",
- " 93SOL OW 277 0.975 0.631 1.569 0.3983 -0.5427 -0.0867",
- " 93SOL HW1 278 0.951 0.615 1.661 1.8703 0.5422 0.4925",
- " 93SOL HW2 279 0.916 0.701 1.541 0.5134 -0.3107 0.2594",
- " 94SOL OW 280 0.424 0.348 0.217 0.1101 0.2239 -0.2278",
- " 94SOL HW1 281 0.386 0.282 0.276 -0.3617 0.8853 0.2184",
- " 94SOL HW2 282 0.371 0.426 0.232 0.5477 0.6496 -0.8958",
- " 95SOL OW 283 1.796 1.062 1.504 0.2695 0.6634 -0.0751",
- " 95SOL HW1 284 1.834 0.988 1.550 1.3024 0.4717 -1.2049",
- " 95SOL HW2 285 1.725 1.025 1.453 1.7321 0.1617 -1.8100",
- " 96SOL OW 286 0.776 1.177 1.110 -0.1065 0.8948 -0.3445",
- " 96SOL HW1 287 0.821 1.160 1.027 -0.7478 -1.4805 -0.2468",
- " 96SOL HW2 288 0.783 1.095 1.158 1.2731 2.6040 2.4881",
- " 97SOL OW 289 1.646 1.672 1.639 -0.7898 -0.2604 -0.5233",
- " 97SOL HW1 290 1.620 1.703 1.726 -1.0611 -0.1904 -0.6292",
- " 97SOL HW2 291 1.566 1.678 1.587 0.1940 3.0779 -1.7466",
- " 98SOL OW 292 0.939 1.027 0.909 0.0792 0.1363 0.3449",
- " 98SOL HW1 293 0.975 0.941 0.888 0.5802 0.7760 -1.5203",
- " 98SOL HW2 294 0.899 1.057 0.828 0.0139 1.7174 0.9382",
- " 99SOL OW 295 1.706 1.046 1.150 -0.0080 0.1842 -0.0903",
- " 99SOL HW1 296 1.617 1.024 1.177 0.1120 1.5197 1.4922",
- " 99SOL HW2 297 1.704 1.046 1.054 -1.3207 -1.2705 -0.0770",
- " 100SOL OW 298 1.111 0.060 1.299 0.6560 -0.4016 0.2593",
- " 100SOL HW1 299 1.057 -0.014 1.271 2.1510 -1.8943 1.2423",
- " 100SOL HW2 300 1.161 0.083 1.221 -2.4139 1.9814 -1.1128",
- " 101SOL OW 301 1.054 1.138 1.722 -0.5332 -0.8115 -0.1786",
- " 101SOL HW1 302 0.985 1.166 1.783 -0.2649 -1.4601 0.4295",
- " 101SOL HW2 303 1.121 1.206 1.729 -0.3829 -1.0225 0.4524",
- " 102SOL OW 304 0.779 1.078 0.328 0.3264 -0.0895 0.3044",
- " 102SOL HW1 305 0.689 1.092 0.359 0.3399 1.9332 -0.5641",
- " 102SOL HW2 306 0.823 1.161 0.344 1.5363 -0.4619 -1.0674",
- " 103SOL OW 307 0.597 1.033 1.410 0.5611 -0.0677 -0.1702",
- " 103SOL HW1 308 0.652 1.088 1.466 1.5061 -0.8838 -0.2823",
- " 103SOL HW2 309 0.659 0.982 1.358 -0.2060 2.0267 -3.3556",
- " 104SOL OW 310 1.397 0.447 1.174 -0.2703 -0.3920 0.0860",
- " 104SOL HW1 311 1.329 0.477 1.236 -1.9939 1.4621 -2.6202",
- " 104SOL HW2 312 1.349 0.431 1.093 1.6783 -4.4843 -0.3707",
- " 105SOL OW 313 0.342 1.754 1.444 -0.7895 -0.3252 0.5390",
- " 105SOL HW1 314 0.432 1.725 1.434 -0.4843 0.8878 -0.3721",
- " 105SOL HW2 315 0.289 1.686 1.404 -0.2417 -0.7319 0.5069",
- " 106SOL OW 316 0.002 1.006 0.356 -0.0082 -0.1035 0.3071",
- " 106SOL HW1 317 -0.063 0.996 0.287 1.1105 -0.6804 -0.6858",
- " 106SOL HW2 318 0.085 0.984 0.314 0.8663 0.8560 1.4823",
- " 107SOL OW 319 0.447 0.278 0.844 0.5699 -0.2726 0.1385",
- " 107SOL HW1 320 0.353 0.299 0.848 -0.0268 -2.5891 -0.5926",
- " 107SOL HW2 321 0.468 0.279 0.751 1.1462 -0.2559 0.2661",
- " 108SOL OW 322 1.114 1.213 0.176 -0.5160 0.4537 -0.4754",
- " 108SOL HW1 323 1.193 1.266 0.182 -0.1529 0.2045 -2.8947",
- " 108SOL HW2 324 1.111 1.183 0.086 -2.4625 -0.9720 0.0273",
- " 109SOL OW 325 1.481 1.728 1.247 -0.1655 -0.4445 0.5919",
- " 109SOL HW1 326 1.396 1.723 1.205 0.8162 1.6705 -1.7794",
- " 109SOL HW2 327 1.462 1.727 1.341 -2.6390 -1.7162 0.1293",
- " 110SOL OW 328 1.138 0.825 0.006 0.3403 -0.2263 0.6843",
- " 110SOL HW1 329 1.188 0.906 0.011 2.4061 -1.3404 -1.0926",
- " 110SOL HW2 330 1.068 0.836 0.071 1.9808 1.9921 2.1470",
- " 111SOL OW 331 0.413 1.587 1.126 -0.4510 -0.1948 0.2874",
- " 111SOL HW1 332 0.451 1.503 1.103 0.8830 0.2222 0.9179",
- " 111SOL HW2 333 0.357 1.569 1.201 -1.2876 -0.7672 -0.4700",
- " 112SOL OW 334 0.578 0.590 1.601 -0.2121 0.4248 0.2637",
- " 112SOL HW1 335 0.575 0.494 1.609 0.4014 0.1196 -2.8748",
- " 112SOL HW2 336 0.523 0.621 1.673 1.0861 -2.2013 2.4997",
- " 113SOL OW 337 0.002 0.779 1.615 0.7813 -0.7307 -0.2776",
- " 113SOL HW1 338 0.016 0.699 1.667 3.4450 -0.3780 -0.3442",
- " 113SOL HW2 339 -0.021 0.846 1.679 0.6986 -1.0630 0.0413",
- " 114SOL OW 340 0.992 0.139 1.797 0.3564 -0.2052 0.2572",
- " 114SOL HW1 341 1.059 0.117 1.732 -0.1788 -0.0542 -0.3569",
- " 114SOL HW2 342 0.944 0.212 1.759 0.9191 0.7955 1.4597",
- " 115SOL OW 343 0.241 0.160 1.602 0.4831 -0.1816 -0.7919",
- " 115SOL HW1 344 0.156 0.128 1.634 0.3119 0.6631 -0.3942",
- " 115SOL HW2 345 0.267 0.096 1.536 -1.5273 0.7510 -2.5467",
- " 116SOL OW 346 0.586 0.808 1.228 0.2997 -0.4046 -0.1919",
- " 116SOL HW1 347 0.602 0.794 1.321 -0.7320 0.6096 0.1501",
- " 116SOL HW2 348 0.589 0.720 1.190 -0.6107 -0.9722 1.0146",
- " 117SOL OW 349 1.289 1.008 0.944 -0.3185 -0.4256 0.0058",
- " 117SOL HW1 350 1.228 0.995 1.016 1.2257 -0.3232 1.3683",
- " 117SOL HW2 351 1.348 0.933 0.949 -0.2008 -0.4172 -1.1646",
- " 118SOL OW 352 1.187 0.580 0.165 0.3280 -0.3664 0.3273",
- " 118SOL HW1 353 1.275 0.613 0.184 0.3810 -0.8104 0.8781",
- " 118SOL HW2 354 1.150 0.643 0.104 0.4595 0.6771 1.3106",
- " 119SOL OW 355 0.128 0.363 1.323 -0.0700 0.0085 -0.1949",
- " 119SOL HW1 356 0.163 0.288 1.275 0.8070 0.0786 0.3254",
- " 119SOL HW2 357 0.200 0.392 1.379 -1.1518 -0.2325 1.3565",
- " 120SOL OW 358 0.061 1.186 1.158 0.4563 0.0669 0.1443",
- " 120SOL HW1 359 0.104 1.123 1.216 1.6294 -0.5795 -1.3865",
- " 120SOL HW2 360 -0.028 1.154 1.150 0.8566 -1.0241 -0.0685",
- " 121SOL OW 361 0.280 0.690 1.377 0.0612 -0.5249 -0.4113",
- " 121SOL HW1 362 0.248 0.623 1.436 2.7647 -0.7044 0.9387",
- " 121SOL HW2 363 0.354 0.649 1.331 1.8039 1.5013 0.5020",
- " 122SOL OW 364 1.833 0.972 1.801 -0.2131 -0.4145 0.3714",
- " 122SOL HW1 365 1.749 0.997 1.840 -1.2497 0.3115 -2.2315",
- " 122SOL HW2 366 1.892 1.044 1.823 -0.9338 0.2591 0.1444",
- " 123SOL OW 367 0.141 1.603 0.414 0.3883 0.0585 0.0978",
- " 123SOL HW1 368 0.133 1.634 0.323 0.8960 -0.8732 -0.2699",
- " 123SOL HW2 369 0.051 1.606 0.448 -0.0498 -1.0693 -0.9321",
- " 124SOL OW 370 1.560 0.559 0.427 -0.0216 0.5022 -0.4211",
- " 124SOL HW1 371 1.601 0.486 0.380 -2.0502 -0.9402 -0.0325",
- " 124SOL HW2 372 1.511 0.517 0.498 -1.5476 2.2157 -0.4319",
- " 125SOL OW 373 0.996 0.813 0.704 -0.1978 0.1388 -0.1498",
- " 125SOL HW1 374 1.063 0.744 0.703 0.3067 0.6290 -1.7186",
- " 125SOL HW2 375 0.913 0.766 0.693 0.0989 -0.2822 -0.6183",
- " 126SOL OW 376 0.868 1.729 1.730 0.0281 0.1797 -0.7823",
- " 126SOL HW1 377 0.942 1.789 1.717 -1.1948 1.9851 0.3784",
- " 126SOL HW2 378 0.842 1.741 1.821 -0.0835 -2.3569 -0.4305",
- " 127SOL OW 379 1.789 1.270 1.671 -0.4728 0.2798 0.3146",
- " 127SOL HW1 380 1.723 1.273 1.741 -1.8178 2.0205 -0.9753",
- " 127SOL HW2 381 1.770 1.190 1.624 0.7075 -1.1325 2.1509",
- " 128SOL OW 382 0.429 1.108 1.723 0.1544 -0.3079 0.1986",
- " 128SOL HW1 383 0.516 1.097 1.684 -0.4514 0.4598 -1.4119",
- " 128SOL HW2 384 0.368 1.089 1.651 -0.9869 0.7867 0.8568",
- " 129SOL OW 385 1.645 0.313 0.302 -0.6779 -0.2001 -0.2455",
- " 129SOL HW1 386 1.704 0.328 0.228 -1.1186 -0.2033 -0.5945",
- " 129SOL HW2 387 1.596 0.235 0.279 -0.5821 -0.3981 0.2017",
- " 130SOL OW 388 0.911 0.913 1.641 -0.9318 0.4624 -0.7830",
- " 130SOL HW1 389 0.949 0.979 1.583 -2.1402 1.7456 -0.1606",
- " 130SOL HW2 390 0.986 0.867 1.678 -0.0066 2.4026 -0.1816",
- " 131SOL OW 391 1.058 1.317 0.952 -0.8086 -0.0363 -0.2081",
- " 131SOL HW1 392 1.003 1.272 0.889 -1.2713 0.1838 0.0344",
- " 131SOL HW2 393 1.144 1.321 0.910 -1.2565 0.6379 -1.0784",
- " 132SOL OW 394 0.511 1.081 0.739 -1.0025 -0.0666 0.1815",
- " 132SOL HW1 395 0.447 1.108 0.805 -2.4376 -1.3233 -0.6516",
- " 132SOL HW2 396 0.568 1.019 0.785 -0.2783 1.1289 0.9507",
- " 133SOL OW 397 0.285 0.503 0.910 -0.4210 0.2898 -0.2476",
- " 133SOL HW1 398 0.233 0.459 0.843 1.5523 -0.2180 -1.5119",
- " 133SOL HW2 399 0.298 0.591 0.877 -0.0853 0.2705 -0.1709",
- " 134SOL OW 400 0.674 0.539 0.187 -0.1741 0.3018 0.4115",
- " 134SOL HW1 401 0.623 0.512 0.263 0.5879 -1.0290 0.4599",
- " 134SOL HW2 402 0.764 0.515 0.208 0.3944 2.0605 0.0540",
- " 135SOL OW 403 1.260 0.591 1.441 -0.0711 -0.3111 0.1552",
- " 135SOL HW1 404 1.173 0.593 1.479 -0.1192 -1.3540 0.1238",
- " 135SOL HW2 405 1.286 0.683 1.435 -1.8560 0.1173 -1.4502",
- " 136SOL OW 406 1.148 0.087 1.574 -0.9736 -0.3746 0.3638",
- " 136SOL HW1 407 1.181 0.176 1.561 1.7731 -1.2568 1.0305",
- " 136SOL HW2 408 1.138 0.052 1.485 2.9650 -1.1229 0.1136",
- " 137SOL OW 409 0.210 1.415 0.061 -0.2491 -0.4412 0.2942",
- " 137SOL HW1 410 0.289 1.413 0.116 -0.5031 -0.3641 0.6618",
- " 137SOL HW2 411 0.243 1.432 -0.027 0.0174 1.4375 0.7313",
- " 138SOL OW 412 0.105 0.047 0.820 0.3959 0.2991 0.0300",
- " 138SOL HW1 413 0.094 0.131 0.776 -0.9519 -0.6603 -1.5166",
- " 138SOL HW2 414 0.190 0.015 0.790 0.8202 1.0145 0.4649",
- " 139SOL OW 415 0.575 1.728 0.881 -0.3117 0.1583 0.4072",
- " 139SOL HW1 416 0.542 1.639 0.896 -0.8514 0.5344 1.5039",
- " 139SOL HW2 417 0.629 1.721 0.802 1.4058 -1.5886 1.7098",
- " 140SOL OW 418 0.964 0.679 1.295 0.2869 -0.2653 0.7807",
- " 140SOL HW1 419 0.968 0.634 1.380 -0.0459 -0.5819 0.6255",
- " 140SOL HW2 420 0.908 0.624 1.241 1.1585 -0.4952 0.0927",
- " 141SOL OW 421 0.038 0.532 1.056 0.4558 0.0500 -0.1209",
- " 141SOL HW1 422 0.032 0.488 1.141 1.5562 1.7609 0.8655",
- " 141SOL HW2 423 0.123 0.504 1.021 0.3521 -0.0328 -0.3071",
- " 142SOL OW 424 0.421 0.753 0.165 -0.0407 -0.2100 0.1967",
- " 142SOL HW1 425 0.436 0.844 0.141 -0.5029 -0.0369 0.5633",
- " 142SOL HW2 426 0.509 0.717 0.178 0.1348 0.2213 0.2070",
- " 143SOL OW 427 1.324 0.904 1.624 1.0762 -0.8165 0.4165",
- " 143SOL HW1 428 1.329 0.928 1.716 -1.5403 -0.4747 0.5047",
- " 143SOL HW2 429 1.236 0.931 1.596 2.4504 0.6983 -2.6520",
- " 144SOL OW 430 0.732 0.704 0.718 0.0771 0.4227 0.0065",
- " 144SOL HW1 431 0.709 0.614 0.743 0.0107 0.8290 1.4635",
- " 144SOL HW2 432 0.700 0.757 0.790 0.6118 1.5690 -0.5968",
- " 145SOL OW 433 1.583 0.679 1.262 -0.3123 0.9622 -0.3549",
- " 145SOL HW1 434 1.557 0.609 1.201 -1.5669 1.4574 -0.3935",
- " 145SOL HW2 435 1.652 0.639 1.315 0.4282 0.3518 -1.7523",
- " 146SOL OW 436 0.528 1.467 1.839 0.3102 0.4490 -0.4735",
- " 146SOL HW1 437 0.579 1.460 1.758 -0.3168 -0.4040 -0.8050",
- " 146SOL HW2 438 0.442 1.434 1.816 0.4957 -1.0398 0.8606",
- " 147SOL OW 439 0.840 0.459 1.175 -0.0390 -0.2074 0.0596",
- " 147SOL HW1 440 0.892 0.425 1.247 1.2875 1.0698 -0.2676",
- " 147SOL HW2 441 0.758 0.410 1.179 0.2575 -0.5741 2.0556",
- " 148SOL OW 442 0.898 1.762 1.289 -0.0258 -0.3272 0.3500",
- " 148SOL HW1 443 0.833 1.708 1.245 0.5574 -0.8435 0.1070",
- " 148SOL HW2 444 0.851 1.801 1.363 -0.6747 -0.4782 0.0182",
- " 149SOL OW 445 0.240 0.537 0.438 0.0973 -0.0193 0.0246",
- " 149SOL HW1 446 0.236 0.629 0.414 -0.0976 0.8547 3.1703",
- " 149SOL HW2 447 0.156 0.520 0.481 0.2380 -1.5922 -0.2902",
- " 150SOL OW 448 0.167 1.257 1.465 -0.0175 -0.1640 -0.2819",
- " 150SOL HW1 449 0.226 1.189 1.433 1.2020 1.3149 -1.2321",
- " 150SOL HW2 450 0.091 1.209 1.499 2.0974 -2.1736 1.8520",
- " 151SOL OW 451 1.448 0.931 1.184 0.1071 0.1399 0.1917",
- " 151SOL HW1 452 1.365 0.938 1.232 0.5540 0.1868 0.9605",
- " 151SOL HW2 453 1.495 0.860 1.227 0.2740 -0.1986 -0.5408",
- " 152SOL OW 454 1.046 0.926 0.250 -0.6933 -0.1237 0.2538",
- " 152SOL HW1 455 1.016 1.015 0.233 -1.1037 -0.7282 -2.3918",
- " 152SOL HW2 456 0.981 0.891 0.312 -2.0415 0.5621 -0.7431",
- " 153SOL OW 457 1.697 1.681 1.059 -0.2543 -0.7362 0.1995",
- " 153SOL HW1 458 1.786 1.691 1.095 -0.3965 0.4371 0.2585",
- " 153SOL HW2 459 1.641 1.677 1.137 -0.3755 -0.0992 0.1528",
- " 154SOL OW 460 1.264 1.681 1.111 0.1793 -0.5189 -0.2497",
- " 154SOL HW1 461 1.261 1.758 1.053 1.7480 0.1655 0.5563",
- " 154SOL HW2 462 1.309 1.615 1.059 -1.8673 -1.1698 -1.2370",
- " 155SOL OW 463 0.199 1.529 0.946 0.1219 -0.3495 -0.5337",
- " 155SOL HW1 464 0.223 1.579 1.024 2.0497 -0.7833 -0.8147",
- " 155SOL HW2 465 0.189 1.595 0.877 0.7406 -0.1690 -0.4524",
- " 156SOL OW 466 0.413 1.850 0.088 0.6024 -0.0153 0.0548",
- " 156SOL HW1 467 0.320 1.848 0.112 0.7607 -0.7892 0.5918",
- " 156SOL HW2 468 0.418 1.798 0.008 0.7989 -1.1020 0.7781",
- " 157SOL OW 469 0.748 1.654 0.109 0.0532 -0.2063 -0.2413",
- " 157SOL HW1 470 0.692 1.593 0.061 -1.6524 1.2952 -0.2546",
- " 157SOL HW2 471 0.687 1.715 0.150 1.6694 1.1019 0.2907",
- " 158SOL OW 472 1.458 0.115 0.761 0.6646 0.0012 -0.3672",
- " 158SOL HW1 473 1.436 0.025 0.739 -0.2017 0.1036 0.0692",
- " 158SOL HW2 474 1.548 0.110 0.793 0.2372 -0.8712 0.7125",
- " 159SOL OW 475 1.338 1.663 0.337 0.0918 0.0030 -0.3212",
- " 159SOL HW1 476 1.244 1.654 0.324 0.3347 1.1393 -3.3671",
- " 159SOL HW2 477 1.377 1.616 0.263 1.9313 -0.7064 1.0542",
- " 160SOL OW 478 0.088 0.231 0.153 -0.1407 0.1993 0.6057",
- " 160SOL HW1 479 0.016 0.278 0.110 -1.1478 0.7008 2.8087",
- " 160SOL HW2 480 0.044 0.168 0.210 1.1963 -1.5358 -0.2335",
- " 161SOL OW 481 1.283 0.951 0.550 0.0367 -0.4990 -0.2473",
- " 161SOL HW1 482 1.362 0.897 0.559 -0.6926 -1.7377 -1.1492",
- " 161SOL HW2 483 1.214 0.888 0.528 -1.0495 0.6751 -0.2095",
- " 162SOL OW 484 0.885 1.501 1.606 0.3989 -0.2065 -0.0986",
- " 162SOL HW1 485 0.812 1.459 1.652 0.5494 0.0827 0.4159",
- " 162SOL HW2 486 0.879 1.593 1.632 0.6767 -0.1003 -0.4140",
- " 163SOL OW 487 0.807 1.803 0.428 0.5850 0.0805 0.0023",
- " 163SOL HW1 488 0.762 1.842 0.353 -0.3587 -0.2961 0.3542",
- " 163SOL HW2 489 0.895 1.783 0.396 0.0905 -0.3758 -1.1018",
- " 164SOL OW 490 1.804 1.664 1.361 0.4053 -0.6471 0.0447",
- " 164SOL HW1 491 1.744 1.596 1.392 0.2468 0.3319 2.0102",
- " 164SOL HW2 492 1.797 1.733 1.427 0.4871 1.3243 -1.9667",
- " 165SOL OW 493 0.013 0.096 1.087 -0.1594 -0.2881 -0.0326",
- " 165SOL HW1 494 0.082 0.103 1.154 -1.3044 2.4442 0.9139",
- " 165SOL HW2 495 0.061 0.086 1.005 1.2950 -2.1038 0.9922",
- " 166SOL OW 496 0.056 0.190 0.535 -0.8500 -0.0155 -0.2255",
- " 166SOL HW1 497 -0.034 0.159 0.535 -1.0624 0.5389 1.8354",
- " 166SOL HW2 498 0.058 0.259 0.469 -2.2319 0.8203 0.5893",
- " 167SOL OW 499 1.309 1.603 0.061 -0.1846 0.2039 -0.0659",
- " 167SOL HW1 500 1.221 1.598 0.023 -0.0875 -1.2432 -0.1217",
- " 167SOL HW2 501 1.352 1.673 0.013 -1.4978 1.3326 0.3530",
- " 168SOL OW 502 1.001 1.275 1.418 0.1961 0.2455 -0.5259",
- " 168SOL HW1 503 0.975 1.323 1.340 -0.7940 0.1687 -0.2492",
- " 168SOL HW2 504 0.991 1.338 1.490 -0.2898 -0.1090 -0.2771",
- " 169SOL OW 505 0.869 1.045 0.628 0.0408 -0.0640 0.0010",
- " 169SOL HW1 506 0.849 1.047 0.534 -0.4359 1.2988 0.1199",
- " 169SOL HW2 507 0.928 0.971 0.638 0.1610 -0.1753 -1.3973",
- " 170SOL OW 508 1.581 1.502 0.042 0.3486 0.5272 -0.6055",
- " 170SOL HW1 509 1.536 1.586 0.051 -1.4792 -0.6154 1.4154",
- " 170SOL HW2 510 1.669 1.518 0.078 -0.3017 1.3279 0.6445",
- " 171SOL OW 511 0.163 1.528 1.312 0.0348 0.3933 0.2362",
- " 171SOL HW1 512 0.147 1.436 1.331 1.0306 -0.3305 -2.3119",
- " 171SOL HW2 513 0.078 1.570 1.325 -0.7793 -1.1381 -0.0225",
- " 172SOL OW 514 1.732 1.393 1.356 0.1865 -0.2101 0.3886",
- " 172SOL HW1 515 1.708 1.363 1.443 -1.7684 -1.3902 -0.5414",
- " 172SOL HW2 516 1.774 1.318 1.315 -0.9957 -0.4001 -0.4945",
- " 173SOL OW 517 1.219 1.169 0.712 0.7108 0.0799 0.3876",
- " 173SOL HW1 518 1.239 1.106 0.781 -0.5986 0.3617 1.0436",
- " 173SOL HW2 519 1.248 1.127 0.631 -0.0776 -1.3392 0.8280",
- " 174SOL OW 520 0.916 1.795 0.997 -0.3173 0.5315 -0.6086",
- " 174SOL HW1 521 0.927 1.762 1.087 -1.4594 1.0705 -0.2562",
- " 174SOL HW2 522 0.870 1.724 0.951 0.2503 0.2632 -0.7627",
- " 175SOL OW 523 0.692 1.417 0.534 -0.4818 0.1942 0.1468",
- " 175SOL HW1 524 0.775 1.399 0.489 -0.5134 -0.7626 0.4633",
- " 175SOL HW2 525 0.626 1.372 0.482 -0.3647 -1.9769 1.8356",
- " 176SOL OW 526 1.596 0.304 1.445 0.3175 -0.3135 -0.3898",
- " 176SOL HW1 527 1.601 0.229 1.386 -0.2043 0.2695 -1.1878",
- " 176SOL HW2 528 1.664 0.364 1.414 -0.5382 0.3797 -0.9635",
- " 177SOL OW 529 0.110 1.254 0.395 0.8718 0.0832 -0.2134",
- " 177SOL HW1 530 0.064 1.171 0.384 1.1078 0.0548 -0.9772",
- " 177SOL HW2 531 0.119 1.263 0.490 -2.4736 1.0684 0.0644",
- " 178SOL OW 532 0.366 0.651 1.780 -0.3176 -0.4077 0.2699",
- " 178SOL HW1 533 0.375 0.705 1.858 0.3938 -0.8403 0.4906",
- " 178SOL HW2 534 0.371 0.561 1.813 0.6242 -0.5852 -0.3474",
- " 179SOL OW 535 0.709 0.281 1.425 -0.2923 -0.3998 -0.3144",
- " 179SOL HW1 536 0.703 0.185 1.419 -0.3200 -0.5026 1.1601",
- " 179SOL HW2 537 0.803 0.298 1.433 -0.3159 -0.3427 -0.1457",
- " 180SOL OW 538 1.778 0.392 0.025 0.1767 0.1091 0.2609",
- " 180SOL HW1 539 1.709 0.415 -0.038 0.7657 1.2727 0.0323",
- " 180SOL HW2 540 1.818 0.476 0.049 1.0650 -0.4929 0.9148",
- " 181SOL OW 541 1.573 0.890 1.471 0.1204 0.8595 0.4310",
- " 181SOL HW1 542 1.582 0.815 1.413 1.1199 1.7859 -0.6159",
- " 181SOL HW2 543 1.492 0.872 1.520 -0.5716 -0.0790 -1.0080",
- " 182SOL OW 544 1.797 0.031 0.294 -0.0270 -0.4136 0.4942",
- " 182SOL HW1 545 1.793 -0.063 0.279 -0.9247 0.1595 -3.2590",
- " 182SOL HW2 546 1.726 0.048 0.357 -0.0789 -2.1643 0.9253",
- " 183SOL OW 547 1.286 1.295 1.789 -0.1058 -0.0729 0.2014",
- " 183SOL HW1 548 1.312 1.386 1.777 2.5978 -0.4213 2.8308",
- " 183SOL HW2 549 1.349 1.245 1.737 0.7367 -0.6255 1.7384",
- " 184SOL OW 550 0.702 0.764 1.460 0.1077 0.2028 0.1007",
- " 184SOL HW1 551 0.657 0.684 1.486 -1.0328 1.1151 0.9885",
- " 184SOL HW2 552 0.735 0.800 1.543 0.7375 0.5908 -0.3136",
- " 185SOL OW 553 1.472 1.539 0.971 0.3685 0.0007 -0.1396",
- " 185SOL HW1 554 1.527 1.610 1.005 1.9000 -0.6298 -1.2404",
- " 185SOL HW2 555 1.526 1.461 0.980 -1.2975 -1.0340 1.0200",
- " 186SOL OW 556 0.796 0.342 1.743 0.0647 0.2087 -0.1905",
- " 186SOL HW1 557 0.707 0.346 1.708 -0.3481 0.2139 0.8310",
- " 186SOL HW2 558 0.785 0.316 1.835 1.1248 0.0596 -0.0939",
- " 187SOL OW 559 1.487 1.196 1.625 0.4477 0.5894 0.6552",
- " 187SOL HW1 560 1.548 1.170 1.694 2.1930 1.6754 -0.4105",
- " 187SOL HW2 561 1.492 1.124 1.561 -0.7804 -0.1724 1.3911",
- " 188SOL OW 562 0.315 1.419 1.668 -0.4269 0.4976 0.2966",
- " 188SOL HW1 563 0.356 1.333 1.667 -1.1730 0.0661 2.6060",
- " 188SOL HW2 564 0.233 1.407 1.620 -0.2799 0.0302 0.1602",
- " 189SOL OW 565 0.000 0.814 1.008 -0.2210 0.1754 -0.2464",
- " 189SOL HW1 566 -0.002 0.723 1.036 0.1164 0.1740 -0.2193",
- " 189SOL HW2 567 -0.041 0.862 1.081 3.2990 0.5086 1.6467",
- " 190SOL OW 568 1.032 0.288 0.415 -0.1519 -0.0754 0.3182",
- " 190SOL HW1 569 0.963 0.222 0.421 -0.1008 -0.1269 0.3370",
- " 190SOL HW2 570 1.089 0.257 0.345 -0.7622 0.5406 -0.4522",
- " 191SOL OW 571 0.701 0.456 0.847 -0.4419 0.4681 -0.1803",
- " 191SOL HW1 572 0.753 0.382 0.877 0.3932 0.7910 -0.8278",
- " 191SOL HW2 573 0.610 0.427 0.857 -0.2297 0.7292 3.0945",
- " 192SOL OW 574 1.627 0.171 1.737 -0.0843 -0.6683 -0.2299",
- " 192SOL HW1 575 1.648 0.209 1.652 -1.2194 0.7121 0.0805",
- " 192SOL HW2 576 1.644 0.241 1.800 0.3143 -1.5331 0.6388",
- " 193SOL OW 577 0.323 0.958 1.510 0.8214 0.2761 0.1865",
- " 193SOL HW1 578 0.400 0.939 1.457 -0.0335 0.5136 -1.1590",
- " 193SOL HW2 579 0.255 0.898 1.478 0.1442 0.7849 0.6396",
- " 194SOL OW 580 0.821 1.189 0.033 0.7230 0.2025 0.1811",
- " 194SOL HW1 581 0.815 1.128 0.107 -1.5800 0.9849 0.6960",
- " 194SOL HW2 582 0.784 1.270 0.067 0.5179 0.8440 -1.5475",
- " 195SOL OW 583 0.715 1.616 1.172 0.3272 0.1027 0.1359",
- " 195SOL HW1 584 0.756 1.581 1.093 1.3288 -0.8263 1.0564",
- " 195SOL HW2 585 0.623 1.628 1.149 0.5732 -0.3826 -1.0964",
- " 196SOL OW 586 1.505 1.805 1.833 0.0644 -0.5227 -0.2325",
- " 196SOL HW1 587 1.540 1.873 1.775 -0.6363 -0.8056 -0.9864",
- " 196SOL HW2 588 1.506 1.846 1.920 0.3753 0.1810 -0.5619",
- " 197SOL OW 589 0.838 0.896 1.211 -0.4776 -0.5819 0.4604",
- " 197SOL HW1 590 0.751 0.856 1.204 -0.7558 0.0597 0.2601",
- " 197SOL HW2 591 0.885 0.839 1.272 -1.7175 0.2815 2.2857",
- " 198SOL OW 592 1.331 1.018 0.010 -0.4672 -0.2101 -0.2947",
- " 198SOL HW1 593 1.334 0.992 0.102 -1.0490 -0.1719 -0.2637",
- " 198SOL HW2 594 1.328 1.113 0.011 1.4277 -0.1154 -0.4045",
- " 199SOL OW 595 1.740 1.770 0.797 0.2027 0.2325 -0.0524",
- " 199SOL HW1 596 1.736 1.738 0.887 2.6560 -0.4792 -0.1416",
- " 199SOL HW2 597 1.811 1.835 0.798 -0.3223 0.8364 -1.2781",
- " 200SOL OW 598 0.197 1.145 0.013 0.2240 0.8576 0.7433",
- " 200SOL HW1 599 0.278 1.144 -0.037 0.6253 0.5874 1.3956",
- " 200SOL HW2 600 0.177 1.238 0.025 0.3334 0.9227 0.4177",
- " 201SOL OW 601 0.122 1.292 0.675 -0.3671 0.2154 -0.0378",
- " 201SOL HW1 602 0.041 1.320 0.716 -0.5104 -0.4630 0.1516",
- " 201SOL HW2 603 0.186 1.359 0.698 -0.4702 -0.0923 1.1957",
- " 202SOL OW 604 0.657 1.362 1.581 0.1997 -0.5559 -0.0528",
- " 202SOL HW1 605 0.666 1.268 1.596 1.2042 -0.5582 -0.6486",
- " 202SOL HW2 606 0.667 1.373 1.486 0.4830 0.1893 0.0563",
- " 203SOL OW 607 1.674 0.094 1.271 0.0036 -0.0188 0.0723",
- " 203SOL HW1 608 1.766 0.107 1.246 -0.1186 1.3906 0.2757",
- " 203SOL HW2 609 1.645 0.018 1.221 0.9219 0.2964 -0.9485",
- " 204SOL OW 610 0.406 0.320 0.534 -0.3975 0.8945 -0.0319",
- " 204SOL HW1 611 0.332 0.379 0.519 -0.5592 -0.0524 -3.3378",
- " 204SOL HW2 612 0.378 0.237 0.494 0.8998 -0.6322 2.1519",
- " 205SOL OW 613 1.602 1.329 0.808 -0.0543 -0.2794 0.0018",
- " 205SOL HW1 614 1.539 1.298 0.873 0.0647 1.3093 0.8743",
- " 205SOL HW2 615 1.685 1.292 0.836 -0.3532 -1.3058 -0.4265",
- " 206SOL OW 616 0.504 0.525 1.274 -0.1373 0.6219 0.1464",
- " 206SOL HW1 617 0.581 0.508 1.329 -0.1329 1.8063 0.5251",
- " 206SOL HW2 618 0.504 0.454 1.210 -0.6928 -1.3916 2.2639",
- " 207SOL OW 619 0.939 1.622 0.615 0.0376 0.2169 -0.8057",
- " 207SOL HW1 620 0.864 1.660 0.569 -0.2825 -0.9206 -1.2431",
- " 207SOL HW2 621 0.946 1.533 0.580 0.4289 -0.3187 0.5869",
- " 208SOL OW 622 1.222 0.448 0.958 0.8093 0.1695 0.0716",
- " 208SOL HW1 623 1.230 0.403 0.874 -0.7606 -2.3903 1.2470",
- " 208SOL HW2 624 1.131 0.478 0.961 0.7570 -0.0912 1.0302",
- " 209SOL OW 625 1.162 0.079 1.002 -0.1201 0.0294 -0.0134",
- " 209SOL HW1 626 1.152 0.158 0.948 -1.6848 -0.0229 0.1683",
- " 209SOL HW2 627 1.090 0.022 0.974 1.8094 -1.9202 -1.1086",
- " 210SOL OW 628 0.951 1.274 0.372 -0.2479 0.5020 -0.2795",
- " 210SOL HW1 629 1.002 1.247 0.297 -0.3032 -0.8555 0.1568",
- " 210SOL HW2 630 1.015 1.296 0.439 -0.2177 -0.1231 -0.1009",
- " 211SOL OW 631 0.570 1.596 1.430 -0.0067 -0.0669 0.2383",
- " 211SOL HW1 632 0.637 1.550 1.379 0.2717 -0.1940 0.7151",
- " 211SOL HW2 633 0.518 1.527 1.471 -1.0547 0.0175 -0.9171",
- " 212SOL OW 634 1.490 0.038 0.235 0.3812 -0.5175 0.0030",
- " 212SOL HW1 635 1.467 -0.050 0.265 1.2784 -0.8382 -0.2278",
- " 212SOL HW2 636 1.472 0.095 0.309 0.9136 -1.0588 0.5495",
- " 213SOL OW 637 1.274 0.440 0.514 0.3406 -0.4876 -0.2221",
- " 213SOL HW1 638 1.201 0.390 0.477 -0.5303 0.5126 0.1369",
- " 213SOL HW2 639 1.247 0.531 0.509 1.3323 -0.1447 0.4304",
- " 214SOL OW 640 1.673 0.249 0.968 0.2535 0.0918 0.1841",
- " 214SOL HW1 641 1.723 0.211 1.040 -0.3275 -0.9696 0.0332",
- " 214SOL HW2 642 1.656 0.339 0.995 0.9016 -0.0077 0.9253",
- " 215SOL OW 643 1.625 1.226 0.027 0.6308 -0.1048 0.8494",
- " 215SOL HW1 644 1.594 1.313 0.049 -0.0604 -0.0212 -0.4190",
- " 215SOL HW2 645 1.593 1.170 0.098 1.5560 0.7563 1.9532",
- " 216SOL OW 646 1.002 1.711 0.243 0.1020 -0.6172 0.1515",
- " 216SOL HW1 647 0.926 1.677 0.196 0.3933 -1.2573 0.1242",
- " 216SOL HW2 648 0.988 1.805 0.248 -2.5080 -1.0870 3.3619",
- " 1.86206 1.86206 1.86206",
- ""
- ]
-}
-