osiris

Optical model ScatterIng & ReactIon Software (OSIRIS)

https://github.com/beykyle/osiris

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Optical model ScatterIng & ReactIon Software (OSIRIS)

Basic Info
  • Host: GitHub
  • Owner: beykyle
  • License: bsd-3-clause
  • Language: C++
  • Default Branch: main
  • Size: 317 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

CMake Python package

OSIRIS (/oʊˈsaɪərɨs/)

Optical model Scattering & Reaction Software

A fast, modern nuclear reaction code with a python interface using xtensor-python, built for uncertainty quantificaiton and model order reduction of parametric nucleon-nuclear interactions. Contains two main components; a c++ library osiris_lib containing the core solvers and physics functionality, and a python front end; osiris.

Python Installation

osiris is available at pypi.org/project/osiris-py:

  • pip install osiris-py

Example use

```python import osiris

```

For more in-depth examples and tutorials, see examples/

CMake integration

osiris supports CMake integration using FetchContent. Add the following to your CMakeLists.txt:

cmake FetchContent_Declare( osiris GIT_REPOSITORY https://github.com/beykyle/osiris.git GIT_TAG "origin/main" ) FetchContent_MakeAvailable(osiris)

Now you can #include files like "potential/params.hpp" into your project, as long as you link osiris_lib to the relevant target in your CMakeLists.txt, e.g.

cmake target_link_libraries(<MY_TARGET> osiris_lib)

Standalone executable

osiris can also be used as a standalone application, with an example main function living inexec/osiris_example_app.cpp. To build:

zsh git clone git@github.com:beykyle/osiris.git cd osiris mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make make test make docs

Building the documentation

python documentation

From the docs/ directory:

make html

c++ documentation

Following a build, run:

make docs

from the build/ directory.

Running the tests

osiris (python) unit tests

Running the tests requires pytest.

bash py.test .

osiris_lib (c++) unit tests

Following a build, run:

make test

from the build/ directory.

osiris_lib dependencies

  • CMake >= 3.18
  • a modern c++ compiler and tool chain. This was tested and built primarily with the following compilers, running on Ubuntu, using a dependency stack from conda-forge:

clang version 15.0.7 (https://github.com/conda-forge/clangdev-feedstock fc523913ae327dfa0a91bb2b45a36c810e0f55d0) Target: x86_64-unknown-linux-gnu Thread model: posix

and

g++ (conda-forge gcc 10.4.0-19) 10.4.0

handled by CMake (you don't have to do anything):

osiris dependencies for python bindings

If you only want to use osiris_lib as a library for your project, these are the only dependencies. To use the python bindings, you will also need:

handled by CMake (you don't have to do anything):

install yourself

install yourself, optional:

  • pytest to run the python unit tests

It is recomended to use use a package, dependency and environment manager like mamba or conda. Then, setting up an environment to run osiris with python is as easy as (e.g. using mamba), from pypi:

zsh mamba create -n osirenv python cmake compilers numpy pytest mamba activate osirenv pip install osiris Alternatively, to install for development purposes, clone the repository and create an editable install:

zsh mamba create -n osirenv python cmake compilers pybind11 numpy xtensor-python mamba activate osirenv git clone git@github.com:beykyle/osiris.git cd osiris py setup.py build -j{nproc} pip install -e .

Parallel execution with MPI

python import osiris import mpi4py

Using ipyparallel, notebooks can be run with a parallel backend.

Windows runtime requirements

On Windows, the Visual c++ 2015 redistributable packages are a runtime requirement for this project. It can be found here.

If you use the Anaconda python distribution, you may require the Visual Studio runtime as a platform-dependent runtime requirement for you package:

```yaml requirements: build: - python - setuptools - pybind11

run: - python - vs2015_runtime # [win] ```

Citation

latex @software{Beyer_OSIRIS, author = {Beyer, Kyle}, license = {BSD-3-Clause}, title = {{OSIRIS}}, url = {https://github.com/beykyle/osiris}, version = {0.1} }

Owner

  • Name: Kyle Beyer
  • Login: beykyle
  • Kind: user
  • Company: University of Michigan

PhD candidate at the University of Michigan studying nuclear fission and nuclear reaction phenomenology away from stability

Citation (CITATION.cff)

cff-version: 1.2.0
title: OSIRIS
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Kyle
    family-names: Beyer
    email: beyerk@frib.msu.edu
    affiliation: Facility for Rare Isotope Beams
    orcid: 'https://orcid.org/0000-0002-2695-2478'
repository-code: 'https://github.com/beykyle/osiris'
abstract: >-
    OSIRIS is a software package for performing uncertainty quantification of reaction observables
keywords:
  - nuclear physics
  - uncertainty quantification
  - nuclear reactions
license: BSD-3-Clause
version: '1.0'
date-released: '2024'

GitHub Events

Total
Last Year

Dependencies

.github/workflows/cmake.yml actions
  • actions/checkout v3 composite
.github/workflows/pypi-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/python-format.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • stefanzweifel/git-auto-commit-action v4 composite
.github/workflows/python-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
requirements.txt pypi
  • numpy *
  • pybind11 *
  • scikit-build *