Quick Start Guide
-----------------
Calculation Engine
~~~~~~~~~~~~~~~~~~
**TODO**
Docker
~~~~~~
The quickest way to run the Chiral EFT module on your machine is using
the Docker container. Make sure that you have
`Docker `__ locally installed on your machine.
The recommended way to obtain the Chiral EFT Docker container is to
pull the latest version from the GitLab Container Registry::
docker pull registry.gitlab.com/nsf-muses/chiral-eft-eos/chiral_eft_eos:v1.0.1
In order to run this container, you must at least have a minimal project
directory containing an ``input/`` and ``output/`` directory and a
`config.yaml
`__
containing the module configuration. Then simply run
the container::
export DOCKER_IMAGE_NAME=registry.gitlab.com/nsf-muses/chiral-eft-eos/chiral_eft_eos
export DOCKER_IMAGE_TAG=v1.0.1
docker run -it --rm --name chiraleft \
-v "${PWD}/input:/opt/input" \
-v "${PWD}/output:/opt/output" \
$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG make run
The output files will appear in the ``output/`` directory upon completion.
You may also choose to build the Docker image and run it on your machine.
In that case, start by cloning the `Chiral EFT
repository `__
and building the Docker image::
git clone git@gitlab.com:nsf-muses/chiral-eft-eos/chiral_eft_eos.git
export DOCKER_IMAGE_NAME=chiraleft
export DOCKER_IMAGE_TAG=dev
cd chiral_eft_eos
docker build -t $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG .
If the `MUSES common container `__
needs to be updated type::
docker pull registry.gitlab.com/nsf-muses/common/muses-common:latest
To run the container, first make sure that you have created a
`config.yaml
`__
containing the module configuration in the ``input/`` directory. Then run::
bash run_docker.sh $DOCKER_IMAGE_NAME $DOCKER_IMAGE_TAG
The output files will appear in the
`output/
`__
directory upon completion.
Locally (without Docker)
~~~~~~~~~~~~~~~~~~~~~~~~
Dependencies (C++)
^^^^^^^^^^^^^^^^^^
The module can also be compiled and executed locally without using
Docker. To compile the C++ module, the following libraries are
required:
- `yaml-cpp `__
To build from source, make sure you have ``CMAKE`` installed,
then clone and build the ``yaml-cpp`` project with::
git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
mkdir build
cd build
cmake -DYAML_BUILD_SHARED_LIBS=OFF ..
make
make DESTDIR=/desired/path/to/installation install
The file ``libyaml-cpp.a`` will be created upon successful
compilation in ``DESTDIR``.
For macOS, use `Homebrew `__
`brew install yaml-cpp`. For Linux, use your package manager, for
instance, in Debian use `sudo apt-get install libyaml-cpp-dev` or
install from source using the instructions detailed above.
- `doctest `__
To build from source, make sure you have ``CMAKE`` installed,
then clone and build the ``doctest`` project with::
git clone https://github.com/doctest/doctest.git
cd doctest
cmake .
make DESTDIR=/desired/path/to/installation install
the header file ``doctest.h`` will be created upon successful compilation in
DESTDIR/PREFIX, the default PREFIX is /usr/local/.
For macOS, use `Homebrew `__
`brew install doctest`. For Linux, use your package manager, for
instance, in Debian use `sudo apt-get install doctest-dev` or
install from source using the instructions detailed above.
Also required is an up-to-date `GNU GCC Compiler `__
and `make `__.
How to Build
^^^^^^^^^^^^
After successful installation of the required libraries, simply write::
git clone https://gitlab.com/nsf-muses/chiral-eft-eos/chiral_eft_eos
cd chiral_eft_eos/src
make
The executable ``chiraleft`` will be created upon successful compilation
and linking. Note that if the libraries are not installed in the default
``PATH``, the
`Makefile `__
will need to be modified, specifically in the ``-I`` flag for includes
in ``CXXFLAGS`` and the ``-L`` flag for libraries in ``LDFLAGS``.
Dependencies (Python)
^^^^^^^^^^^^^^^^^^^^^
In order to run the module locally, the local machine must have an up-to-date
version of `python3 `__ installed, including the
following packages:
- `numpy `__
- `scipy `__
- `pandas `__
- `pyyaml `__
- `openapi-core `__
- `muses_porter `__
These libraries can all be easily installed using ``pip`` package manager.
To install the MUSES Porter library with ``pip``, see the Porter
`README `__.
How to Run
^^^^^^^^^^
Once all of the dependencies are successfully installed, and the project
has been compiled, all that's left to do is run the module.
First make sure that you have created a
`config.yaml
`__
containing the module configuration in the ``input/`` directory. Then run::
cd chiral_eft_eos/
bash run_local.sh
The output files will appear in the
`output/ `__
directory upon completion.