miluphcuda

smoothed particle hydrodynamics code

https://github.com/christophmschaefer/miluphcuda

Science Score: 39.0%

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

  • 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 (16.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

smoothed particle hydrodynamics code

Basic Info
  • Host: GitHub
  • Owner: christophmschaefer
  • License: gpl-3.0
  • Language: Cuda
  • Default Branch: main
  • Homepage:
  • Size: 459 MB
Statistics
  • Stars: 34
  • Watchers: 11
  • Forks: 9
  • Open Issues: 3
  • Releases: 0
Created almost 7 years ago · Last pushed 11 months ago
Metadata Files
Readme License Codemeta

README.md

miluphcuda

miluphcuda is a 3D Smoothed Particle Hydrodynamics (SPH) code, mainly developed for modeling astrophysical collision and impact processes. It supports several rheology models for elasto-plastic solid bodies, as well as granular-like materials.

  • miluphcuda is the CUDA port of the original miluph code.
  • miluphcuda runs on single Nvidia GPUs with compute capability 5.0 and higher.

For an overview and quick start guide continue reading, for further details see the documentation.

Main features

  • hydro and solid body modeling
  • arbitrary number of interacting materials
  • several material strength models for elasto-plastic flow
  • fragmentation model for brittle-failure (Grady-Kipp)
  • porosity models (P-alpha, epsilon-alpha, Sirono)
  • self-gravity (via Barnes-Hut tree)
  • various equations of state including tabulated (e.g., ANEOS)

Quick start

  1. Install dependencies and compile (see below).
  2. Run one or more of the scenarios in examples/. You find detailed instructions there in the respective USAGE.md.

For generic simulations, based on your own initial conditions and/or material model choices, see Usage below.

Compilation

Download the latest version of the code or clone the github repo.

After installation of the required dependencies (see below), compile via the Makefile:

  1. run configure.sh which performs some tests and system-dependent configuration
  2. run make to produce the miluphcuda executable

It may be necessary to make some changes to the Makefile even if configure.sh succeeds. Compiler errors will let you know if that happens.

Note: Many important options for the material model and numerics are set at compile time in parameter.h, i.e., you have to run the Makefile (but not configure.sh) again once you make changes there.

Dependencies

CUDA
Install the CUDA Toolkit to compile and run code on the GPU.

libconfig
Used for parsing the material config file.
To ensure best functionality, install the latest version:

  1. unpack the .tar.gz archive
  2. sudo ./configure
  3. sudo make
  4. sudo make install

HDF5
If you want to use HDF5 for input and/or output files, install libhdf5 and libhdf5-dev.

Usage

The basic usage philosophy for miluphcuda is:

  • Basic simulation-wide settings, mainly for the material model and numerics, are specified in parameter.h at compile-time.
    See comments there for details.
  • Material-specific parameters, mainly for the material model and equation of state, are set in a material config file (typically material.cfg) and processed at run-time.
    See material-config/CREATE-MATERIAL-CONFIG.md for details on the file structure and available settings.
    A collection of parameters for various materials is available in material-config/material_data/.
  • All other main options are controlled via cmd-line flags. Check ./miluphcuda -h once compiled.

For each simulation, you need:

  • an input file which specifies the initial conditions (SPH particle distribution and their properties), check ./miluphcuda --format for the required format
  • a material config file, typically material.cfg, see above
  • suitable cmd-line options for miluphcuda, check ./miluphcuda -h

Specifically the examples/, but also the test_cases/ provide various scenarios and use-cases.

Developers

in somewhat arbitrary order:

Christoph M. Schaefer, Sven Riecker, Oliver Wandel, Thomas I. Maindl, Samuel Scherrer, Janka Werner, Christoph Burger, Marius Morlock, Evita Vavilina, Michael Staneker, Maximilian Rutz.

References

The code is also listed in the ACSL.

Owner

  • Name: Christoph Schaefer
  • Login: christophmschaefer
  • Kind: user

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "name": "miluphcuda: Smooth particle hydrodynamics code",
  "description": "miluphcuda is the CUDA port of the original miluph code; it runs on single Nvidia GPUs with compute capability 5.0 and higher and provides fast and efficient computation. The code can be used for hydrodynamical simulations and collision and impact physics, and features self-gravity via Barnes-Hut trees and porosity models such as P-alpha and epsilon-alpha. It can model solid bodies, including ductile and brittle materials, as well as non-viscous fluids, granular media, and porous continua.",
  "identifier": "ascl:1911.023",
  "author": [
    {
      "@type": "Person",
      "givenName": "Christoph M.",
      "familyName": "Schaefer",
      "@id": "https://orcid.org/0000-0002-0341-3738"
    },
    {
      "@type": "Person",
      "givenName": "Sven",
      "familyName": "Riecker",
      "@id": "PLACEHOLDER: Add ORCID (https://orcid.org/xxxxxx) here"
    },
    {
      "@type": "Person",
      "givenName": "Oliver",
      "familyName": "Wandel",
      "@id": "PLACEHOLDER: Add ORCID (https://orcid.org/xxxxxx) here"
    },
    {
      "@type": "Person",
      "givenName": "Thomas I.",
      "familyName": "Maindl",
      "@id": "PLACEHOLDER: Add ORCID (https://orcid.org/xxxxxx) here"
    },
    {
      "@type": "Person",
      "givenName": "Samuel",
      "familyName": "Scherrer",
      "@id": "PLACEHOLDER: Add ORCID (https://orcid.org/xxxxxx) here"
    },
    {
      "@type": "Person",
      "givenName": "Janka",
      "familyName": "Werner",
      "@id": "PLACEHOLDER: Add ORCID (https://orcid.org/xxxxxx) here"
    },
    {
      "@type": "Person",
      "givenName": "Christoph",
      "familyName": "Burger",
      "@id": "PLACEHOLDER: Add ORCID (https://orcid.org/xxxxxx) here"
    },
    {
      "@type": "Person",
      "givenName": "Marius",
      "familyName": "Morlock",
      "@id": "PLACEHOLDER: Add ORCID (https://orcid.org/xxxxxx) here"
    }
  ],
  "citation": "https://ui.adsabs.harvard.edu/abs/2019ascl.soft11023S",
  "relatedLink": [
    "PLACEHOLDER: Add related links (if any) here"
  ],
  "codeRepository": [
    "https://github.com/christophmschaefer/miluphcuda"
  ],
  "referencePublication": [
    {
      "@type": "ScholarlyArticle",
      "url": "https://ui.adsabs.harvard.edu/abs/2016A%26A...590A..19S",
      "@id": "PLACEHOLDER: Add DOI (https://doi.org/xxxxxx) here"
    }
  ],
  "version": "PLACEHOLDER: Add version here",
  "license": "PLACEHOLDER: Add license (ideally as a URL to the SPDX page - e.g. https://spdx.org/licenses/MIT.html) here"
}

GitHub Events

Total
  • Watch event: 5
  • Push event: 7
Last Year
  • Watch event: 5
  • Push event: 7