nukebox

Package Manager for Nuclear Engineering Development

https://github.com/nukehub-dev/nukebox

Science Score: 57.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
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary

Keywords

dagmc geant4 nuclear-engineering nuclear-simulation openmc package-manager pyne
Last synced: 6 months ago · JSON representation ·

Repository

Package Manager for Nuclear Engineering Development

Basic Info
Statistics
  • Stars: 10
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 4
Topics
dagmc geant4 nuclear-engineering nuclear-simulation openmc package-manager pyne
Created almost 3 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Security

README.md

NukeBox

Build and Test Release DOI

This package manager is designed to set up a development environment for nuclear physics simulations and calculations. It automates the installation/update of various packages and libraries (PyNE, OpenMC, DAGMC, and Geant4) required for running nuclear physics simulations and analyses.

Usage

  1. Download the latest release and extract it to your local machine.

Using wget: ```sh wget "https://github.com/nukehub-dev/NukeBox/archive/refs/tags/v0.1.3.tar.gz" -O - | tar -xz

**Using curl:** sh curl -L "https://github.com/nukehub-dev/NukeBox/archive/refs/tags/v0.1.3.tar.gz" | tar -xz **Using Git:** (Download the most recent commit) sh git clone "https://github.com/nukehub-dev/NukeBox.git" ```

  1. Go to the NukeBox directory.

sh cd NukeBox*

  1. Make the install-nukebox.sh script executable.

sh chmod +x install-nukebox.sh

  1. Run the script.

sh ./install-nukebox.sh

The script will guide you through the installation process and prompt you for necessary configuration options.

Installation Options

During the installation process, you'll be asked for the following configuration options:

  1. Installation Directory Path: Set the path where all the software will be installed. You can use the current directory or specify a custom directory.

  2. Environment Name: Enter a name for the virtual environment that will be created. The default name is nuke, but you can provide a custom name.

  3. Geant4 Data Library Path: If you choose to install Geant4 data, provide the path for the Geant4 data library. The default is a directory within the virtual environment.

  4. Cross Section Library Path: If you choose to install cross sections, provide the path for the cross section library. The default is a directory within the virtual environment.

  5. Auto Download Geant4 Data: Choose whether to automatically download Geant4 data. Enter y for yes or n for no.

  6. Auto Download Cross Sections: Choose whether to automatically download cross sections. Enter y for yes or n for no.

Quick Installation

You can also provide the configuration options directly from the command line.

sh ./install-nukebox.sh -d <installation-directory> \ -e <environment-name> \ -g <geant4-data-library-path> \ -c <cross-section-library-path>

How it Works

  1. Operating System Detection: The script attempts to automatically detect the operating system and its version. It supports systems with /etc/lsb-release, /etc/debian_version, and systems with lsb_release binary. If the detection fails, the script will notify the user that their OS is not supported and provide an option to manually override the OS detection.

  2. Dependencies Installation: The script installs various packages through apt-get. The following packages are installed:

    • software-properties-common
    • python3-dev
    • python3-pip
    • python3-venv
    • wget
    • build-essential
    • git
    • cmake
    • gfortran
    • qtbase5-dev
    • libblas-dev
    • liblapack-dev
    • libeigen3-dev
    • hdf5-tools
    • g++
    • libhdf5-dev
    • libboost-dev
    • libboost-python-dev
    • cython3
  3. Python Environment Setup: The script creates a Python virtual environment using venv in the specified installation directory. It installs the following Python packages using pip3:

    • numpy
    • cython<3
    • setuptools
    • jinja2
    • progress
    • tables
    • future
  4. MOAB (Mesh-Oriented datABase) Installation: MOAB is a software component that provides a flexible, efficient, and easy-to-use interface for storing and accessing mesh data in MOAB-based applications. The script installs MOAB version 5.4.1 with support for HDF5 and Python.

  5. Geant4 (for GEometry ANd Tracking) Installation: Geant4 is a software toolkit that simulates the passage of particles through matter. The script installs version 11.1.2 of Geant4, with the option to install data libraries in a specified path. The geant4-pybind package is used to enable Python support.

  6. DAGMC (Direct Accelerated Geometry Monte Carlo) Installation: DAGMC is an extension of Geant4 that enables direct use of CAD (Computer-Aided Design) geometry in Monte Carlo radiation transport simulations. The script installs DAGMC with support for MOAB and Geant4.

  7. OpenMC (Open Monte Carlo) Installation: OpenMC is an open-source Monte Carlo particle transport simulation code that focuses on neutron criticality and radiation shielding problems. The script installs OpenMC with support for DAGMC.

  8. PyNE (Nuclear Engineering Toolkit) Installation: PyNE is a Python package for nuclear engineering and data processing. It provides various functionalities, including nuclear data, geometry processing, and more. The script installs PyNE with support for MOAB and DAGMC.

  9. Create Program File: The script creates an executable program file (shell script) in the specified installation directory with the given environment name.

  10. Add to Path: The script adds the NukeBox directory to the user's PATH environment variable.

Activation and Usage

Once the installation is complete, the script will create a program file named after the specified environment name (e.g., nuke).

Commands: - -h or --help: Display help - -V or --version: Display version - activate: Activate the NukeBox environment - deactivate: Deactivate the NukeBox environment - update <module>: Update component - core: Update NukeBox - geant4: Update Geant4 to the latest version - dagmc: Update DAGMC to the latest version - openmc: Update OpenMC to the latest version - pyne: Update PyNE to the latest version - all: Update all components (NukeBox, Geant4, DAGMC, OpenMC, and PyNE) - endf <library>: Set the path for cross-section data library: - endfb70: ENDF/B-VII.0 (70) - endfb71: ENDF/B-VII.1 (71) - lib80x: ENDF/B-VIII.0/X (80X) - uninstall: Uninstall the NukeBox toolkit

Usage: sh nuke <command> [options]

Note: - Use activate to activate the NukeBox environment. - Use deactivate to deactivate the NukeBox environment. - Use update with specific components to update them individually. - Use update all to update all components. - Use endf <library> to set the cross-section data library path. - Use uninstall to completely uninstall the NukeBox toolkit.

Examples: sh nuke activate nuke update geant4 nuke update all nuke endf endfb70 nuke uninstall

Recommended Packages

The installer script provides a list of recommended Python packages in the packages.txt file. These packages complement the functionality of the installed software. To install them, use:

sh nuke activate pip3 install -r packages.txt --default-timeout=0

Please ensure that you have appropriate permissions to install software on your system. The script may require you to enter your administrator password (sudo) during the installation process.

Important Notes

  • The script is primarily designed for systems that use apt-get package manager. If your system doesn't support apt-get, the installation process may not work as expected.
  • The script is intended for use with Linux-based systems, and its compatibility with other operating systems (e.g., macOS, Windows) may vary.
  • Use the script at your own risk. Always review and understand the code before executing any script on your system.
  • Before running the script, make sure to read and understand the installation process, as it may involve modifying your system's settings.

License

This project is licensed under the MIT License.

Disclaimer

The NukeBox program is provided for informational purposes only. The authors and contributors are not responsible for any damages or issues caused by using this script. Use it at your own risk.

Contributing

Contributions to this project are welcome. If you find any issues or have improvements to suggest, feel free to open a GitHub issue or create a pull request. For more information, check out the CONTRIBUTING page.

Contact

For any questions or inquiries, please contact through:

Owner

  • Name: NukeHub
  • Login: nukehub-dev
  • Kind: organization
  • Email: talk@nukehub.org

Empowering Nuclear Innovation

Citation (CITATION.cff)

cff-version: 1.2.0
title: >-
  NukeBox: Package Manager for Nuclear Engineering
  Development
message: Nuclear Physics Simulation Toolkit
type: software
authors:
  - given-names: Ahnaf Tahmid
    family-names: Chowdhury
    email: tahmid@nse.mist.ac.bd
    affiliation: Military Institute of Science and Technology (MIST)
    orcid: 'https://orcid.org/0000-0003-1070-5576'
identifiers:
  - type: doi
    value: 10.5281/zenodo.8307492
repository-code: 'https://github.com/nukehub-dev/NukeBox'
abstract: >-
  NukeBox is a versatile package manager tailored for
  nuclear engineering development, streamlining the setup of
  a comprehensive development environment for nuclear
  physics simulations and calculations. It facilitates the
  effortless installation and updating of essential packages
  and libraries, such as PyNE, OpenMC, DAGMC, and Geant4,
  crucial for conducting nuclear physics simulations and
  analyses. The script detects the operating system, manages
  dependencies, creates a Python virtual environment, and
  installs the required components. With user-configurable
  options and a straightforward installation process,
  NukeBox simplifies the often complex task of setting up
  a nuclear engineering development environment, making it
  an invaluable tool for researchers and engineers in the
  field.
keywords:
  - Nuclear Engineering
  - Nuclear Physics
  - Package Manager
  - Installation Automation
  - Scientific Computing
  - Simulation
license: MIT
version: 0.1.3
date-released: '2023-11-04'

GitHub Events

Total
  • Watch event: 2
Last Year
  • Watch event: 2