Skip to content

Commit

Permalink
Release 1.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
reiher-research-group committed Nov 20, 2023
1 parent 2b4872f commit 8795858
Show file tree
Hide file tree
Showing 157 changed files with 7,383 additions and 1,186 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,10 @@ docs/source/generated/

#VSCode
.vscode/

# unittests
puffin_unittest_scratch/

# puffin instance
puffin.yaml
puffin.sh
24 changes: 24 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
Changelog
=========

Release 1.3.0
-------------

New Features:
- Store found elementary step even if none of the endpoints corresponds to the initial starting structures
- Add restart information with valid TS for jobs trying to find new elementary steps, where the IRC failed to produce different endpoints
- Consider potential surface structures for label determination of new structures
- Logic to transfer indices information and other complex properties from reactants to products
- Save close lying spin multiplicities and allow to manipulate exact spin propensity
check behavior with added settings

New Jobs:
- Microkinetic modeling with the program Reaction Mechanism Simulator.

New interfaced programs
- AMS via SCINE AMS Wrapper
- MRCC (release version March 2022)

Bug fixes:
- Ensure that `only_distance_connectivity` is adhered in all reaction jobs

Other:
- Update address in license

Release 1.2.0
-------------

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright ETH Zurich, Laboratory of Physical Chemistry, Reiher Group
Copyright ETH Zurich, Department of Chemistry and Applied Biosciences, Reiher Group

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Introduction
------------

SCINE Puffin is a calculation handler for SCINE Chemoton. Thus, it bridges the gap between high level exploration jobs for reaction networks and basic quantum chemical calculations. Making use of the abstractions defined the SCINE Core and SCINE Utilities modules it provides the means to define and execute jobs that generate new data for reaction networks. SCINE Puffin is designed as an instanced runner that, once bootstrapped, continuously processes requested jobs. It is built to work in containerized environments (Docker, Singularity).
SCINE Puffin is a calculation handler for SCINE Chemoton. Thus, it bridges the gap between high level exploration jobs for reaction networks and basic quantum chemical calculations. Making use of the abstractions defined the SCINE Core and SCINE Utilities modules it provides the means to define and execute jobs that generate new data for reaction networks. SCINE Puffin is designed as an instanced runner that, once bootstrapped, continuously processes requested jobs. It is built to work in containerized environments (Docker, Apptainer/Singularity).

License and Copyright Information
---------------------------------
Expand Down
18 changes: 18 additions & 0 deletions conanfile.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[requires]
scine_utilities/9.0.0@
scine_molassembler/2.0.1@
scine_database/1.3.0@
scine_xtb_wrapper/3.0.0@
scine_sparrow/5.0.0@
scine_readuct/5.1.0@

[options]
scine_utilities:python=True
scine_molassembler:python=True
scine_database:python=True
scine_sparrow:python=True
scine_xtb_wrapper:python=True
scine_readuct:python=True

[generators]
virtualenv_python
27 changes: 14 additions & 13 deletions container/singularity/README.rst → container/apptainer/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,40 @@ Basic Container Usage
---------------------

In essence, these two commands should be enough to run a basic ``Puffin``
instance inside a Singularity image.
instance inside an Apptainer (formerly Singularity) image.
One to build the container:

.. code-block:: bash
singularity build puffin.sif puffin.def
apptainer build puffin.sif puffin.def
and one to run the generated image:

.. code-block:: bash
singularity run puffin.sif
apptainer run puffin.sif
The build command may require slight alterations to the ``.def`` file first, as
the file may reference a user's SSH keys in order to allow the cloning of some
``SCINE`` repositories.
For some users the ``--fakeroot`` option may be more comfortable than using a
``sudo`` preface, but keep in mind that this option is not guaranteed to work,
depending on the subordinate UID mapping configured for you on the machine you're working on.
Also, it may be required to make Singularity build the image in
Also, it may be required to make Apptainer build the image in
a custom temporary directory if the default ``/tmp`` is not big enough.
A slightly different build command may thus look like this:

.. code-block:: bash
SINGULARITY_TMPDIR=/scratch/tmp singularity build --fakeroot puffin.sif puffin.def
APPTAINER_TMPDIR=/scratch/tmp apptainer build --fakeroot puffin.sif puffin.def
The run command will have to be changed depending on the use case.
It may be required to change some of the settings of the Puffin
instance running inside the container. To this end, environment variables for
Puffin can be set. These variables need to be present inside the container.
With Singularity versions greater than 3.6 it is possible to use the
``--env`` or ``--env-file`` argument to the run command. The more general way is
setting ``SINGULARITYENV_`` variables on the host machine.
It is possible to use the ``--env`` or ``--env-file`` argument to the run command.
However, the more general way is setting ``APPTAINERENV_`` variables on the host
machine.

Furthermore it is required to mount two folders into the image, both are scratch
direcories, one for ``.log`` and ``.pid`` files (``/socket``) and one for the
Expand All @@ -44,10 +45,10 @@ A more complete run could thus look like this:

.. code-block:: bash
singularity build puffin.sif puffin.def
export SINGULARITYENV_PUFFIN_DATABASE_NAME=ath_dft
export SINGULARITYENV_PUFFIN_DATABASE_PORT=27001
export SINGULARITYENV_PUFFIN_DATABASE_IP=129.132.118.83
singularity run --bind /scratch/puffin:/socket \
apptainer build puffin.sif puffin.def
export APPTAINERENV_PUFFIN_DATABASE_NAME=ath_dft
export APPTAINERENV_PUFFIN_DATABASE_PORT=27001
export APPTAINERENV_PUFFIN_DATABASE_IP=129.132.118.83
apptainer run --bind /scratch/puffin:/socket \
--bind /scratch/puffin/jobs:/jobs \
puffin.sif
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ From: ubuntu:focal
echo 'export MKLROOT=/opt/intel/oneapi/mkl/latest' >>$SINGULARITY_ENVIRONMENT

# Install Cython
pip3 install Cython pythran
pip3 install Cython==0.29.36 pythran

# Install numpy
git clone https://github.com/numpy/numpy.git numpy
cd numpy
git checkout v1.24.2
git submodule update --init
cp site.cfg.example site.cfg
echo "\n[mkl]" >> site.cfg
Expand All @@ -62,6 +63,7 @@ From: ubuntu:focal
# Install scipy
git clone https://github.com/scipy/scipy.git scipy
cd scipy
git checkout v1.10.1
git submodule update --init
python3 setup.py build
python3 setup.py install
Expand Down
25 changes: 14 additions & 11 deletions container/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,31 @@ ENV LD_LIBRARY_PATH=/opt/intel/oneapi/mkl/latest/lib/intel64:$LD_LIBRARY_PATH
ENV MKLROOT=/opt/intel/oneapi/mkl/latest

# Install Cython
RUN pip3 install Cython pythran
RUN pip3 install Cython==0.29.36 pythran

# Install numpy
WORKDIR /
RUN git clone https://github.com/numpy/numpy.git numpy
RUN cd numpy ; \
cp site.cfg.example site.cfg ; \
WORKDIR /numpy
RUN git checkout v1.24.2
RUN git submodule update --init
RUN cp site.cfg.example site.cfg ; \
echo "\n[mkl]" >> site.cfg ; \
echo "include_dirs = /opt/intel/oneapi/mkl/latest/lib/intel64/" >> site.cfg ; \
echo "library_dirs = /opt/intel/oneapi/mkl/latest/lib/intel64/" >> site.cfg ; \
echo "mkl_libs = mkl_rt" >> site.cfg ; \
echo "lapack_libs =" >> site.cfg
RUN cd numpy ; git submodule update --init
RUN cd numpy ; python3 setup.py build --fcompiler=gnu95
RUN cd numpy ; python3 setup.py install
RUN rm -rf numpy
RUN python3 setup.py build --fcompiler=gnu95
RUN python3 setup.py install

# Install scipy
WORKDIR /
RUN git clone https://github.com/scipy/scipy.git scipy
RUN cd scipy ; git submodule update --init
RUN cd scipy ; python3 setup.py build
RUN cd scipy ; python3 setup.py install
RUN rm -rf scipy
WORKDIR /scipy
RUN git checkout v1.10.1
RUN git submodule update --init
RUN python3 setup.py build
RUN python3 setup.py install

# Install MongoDB C++ bindings
RUN wget https://github.com/mongodb/mongo-c-driver/releases/download/1.17.3/mongo-c-driver-1.17.3.tar.gz
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@

# General information about the project.
project = 'scine_puffin'
copyright = '2022, ETH Zurich, Laboratory for Physical Chemistry, Reiher Group'
copyright = 'ETH Zurich, Department of Chemistry and Applied Biosciences, Reiher Group'
author = 'Reiher Group'

# The version info for the project you're documenting, acts as replacement for
Expand Down
4 changes: 4 additions & 0 deletions docs/source/programs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ SCINE: Sparrow
``````````````
.. autoclass:: scine_puffin.programs.sparrow.Sparrow

SCINE: Parrot
`````````````
.. autoclass:: scine_puffin.programs.parrot.Parrot

Serenity
````````
.. autoclass:: scine_puffin.programs.serenity.Serenity
Expand Down
4 changes: 0 additions & 4 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ matplotlib
pytest
coverage
recommonmark
sphinx
sphinx_rtd_theme
sphinx_autodoc_typehints
sphinx_copybutton
numpydoc
pylint
pylint-exit
Expand Down
6 changes: 6 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
gitpython
numpy
psutil
pymatgen
python-daemon
pyyaml
scipy
setproctitle
sphinx
sphinx_rtd_theme
sphinx_autodoc_typehints
sphinx_copybutton
salib
2 changes: 1 addition & 1 deletion scine_puffin/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__copyright__ = """ This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory of Physical Chemistry, Reiher Group.
Copyright ETH Zurich, Department of Chemistry and Applied Biosciences, Reiher Group.
See LICENSE.txt for details.
"""

Expand Down
2 changes: 1 addition & 1 deletion scine_puffin/__main__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__copyright__ = """ This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory of Physical Chemistry, Reiher Group.
Copyright ETH Zurich, Department of Chemistry and Applied Biosciences, Reiher Group.
See LICENSE.txt for details.
"""

Expand Down
4 changes: 2 additions & 2 deletions scine_puffin/_version.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
__copyright__ = """ This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory of Physical Chemistry, Reiher Group.
Copyright ETH Zurich, Department of Chemistry and Applied Biosciences, Reiher Group.
See LICENSE.txt for details.
"""

__version__ = "1.2.0"
__version__ = "1.3.0"
25 changes: 22 additions & 3 deletions scine_puffin/bootstrap.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
__copyright__ = """ This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory of Physical Chemistry, Reiher Group.
Copyright ETH Zurich, Department of Chemistry and Applied Biosciences, Reiher Group.
See LICENSE.txt for details.
"""
import os
Expand Down Expand Up @@ -62,15 +62,18 @@ def bootstrap(config: Configuration):

# Install minimal requirement
print("")
print("Building SCINE Utils from sources.")
print("Building SCINE Core/Utils from sources.")
print("")
core_build_dir = os.path.join(build_dir, "core")
core = Utils(config.programs()["core"])
core.install(core_build_dir, install_dir, config["resources"]["cores"])
utils_build_dir = os.path.join(build_dir, "utils")
utils = Utils(config.programs()["utils"])
utils.install(utils_build_dir, install_dir, config["resources"]["cores"])

# Install all other programs
for program_name, settings in config.programs().items():
if program_name == "utils" or not settings["available"]:
if program_name in ['core', 'utils'] or not settings["available"]:
continue
print("")
print("Preparing " + program_name.capitalize() + "...")
Expand Down Expand Up @@ -101,6 +104,22 @@ def bootstrap(config: Configuration):
"python" + str(python_version[0]) + "." + str(python_version[1]),
"site-packages",
)
+ ":"
+ os.path.join(
install_dir,
"local",
"lib",
"python" + str(python_version[0]) + "." + str(python_version[1]),
"dist-packages",
)
+ ":"
+ os.path.join(
install_dir,
"local",
"lib64",
"python" + str(python_version[0]) + "." + str(python_version[1]),
"dist-packages",
)
)
env["PATH"] = os.path.join(install_dir, "bin")
env["LD_LIBRARY_PATH"] = os.path.join(install_dir, "lib") + ":" + os.path.join(install_dir, "lib64")
Expand Down
Loading

0 comments on commit 8795858

Please sign in to comment.