sseyler / HERMESHD

HERMESHD is a discontinuous Galerkin 3D fluctuating hydrodynamics code for nanoscale fluid simulation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HERMESHD

HERMESHD is a 3D Discontinuous Galerkin (DG) numerical code written in Fortran and Python for simulating fully compressible hydrodynamics and fluctuating hydrodynamics.

Authors

Sean L. Seyler (FH and modularized code), Charles Seyler (original code),

Organization

Arizona State University, Cornell University

Contact

slseyler@asu.edu, ces7@cornell.edu

Year

2017

License

MIT License

Copyright

© 2017 Sean L. Seyler

Using this work

This work is currently distributed under the terms of the MIT license, though this may change in the near feature. If you choose to use any part of this work or these ideas, I kindly request that you cite my talk presented at APS March Meeting 20181—at least until we make our manuscript (in preparation) available! Many thanks for your consideration!

Important note: The original hydrodynamics code, derived from the PERSEUS XMHD code, was written by Charles E. Seyler and Matthew R. Martin2; HERMESHD is based on the PERSEUS hydrodynamics derivative and will be adapted to fluctuating hydrodynamics (FH) simulations by Sean Seyler. See Background below!

Background

The original PERSEUS (Physics of the Extended-mhd Relaxation System using an Efficient Upwind Scheme) numerical code is a 3D finite volume (FV) method developed by Matt Martin and Charles Seyler in 2011 for solving the extended magnetohydrodynamics (XMHD) equations3. PERSEUS finds applications in simulating High Energy Density (HED) plasmas, such as dense z-pinches, where a wide range of dynamical length scales and densities are encountered. In 2014, Xuan Zhao, Nat Hamlin, and Charles Seyler developed a discontinuous Galerkin method extending the original PERSEUS FV algorithm, further improving its accuracy and computational efficiency in HED applications4. HERMESHD (Hyperbolic Equations and Relaxation Model for Extended Systems of HydroDynamics) is a specialized extension of the PERSEUS XMHD DG algorithm that solves the compressible Euler, Navier-Stokes, and higher-moment equations in three dimensions. The code is actively being extended by Sean Seyler (as part of his Blue Waters Graduate Fellowship Project) to (1) model fluctuating hydrodynamics, and (2) form a basis for hybrid atomistic-continuum simulation (with a view toward biological macromolecular simulation).

Overview

  • Variables (5, 10, or 13 moment-equations):
    • 5 independent field variables from conventional hydrodynamics
      • density (rh)
      • velocity (vx, vy, vz)
      • energy (en)
    • 5 variables describing viscous stresses and 3 for heat flux
      • stress (pxx, pyy, pzz, pxy, pxz, pyz) – 5 independent for symmetric, traceless stress
      • heat flux (qx, qy, qz)
  • Units—a value of unity for each variable or parameter corresponds to the following dimensional units
    • length (L0)
    • time (t0)
    • number density (n0)
    • velocity (v0)
    • temperature (te0)

Getting Started

Important note: HERMESHD is currently only working with the Intel Fortran compiler. In particular, the random number generation requires the Intel MKL since the applicable data structures and subprograms are hard-coded to interact with Intel MKL. This is not going to be a permanent feature and will change so as to accommodate other architectures and math libraries.

Important note: this section (and this README.rst) are a work-in-progress and will be continuously updated and refined. Feedback and contributions are welcome!

Prerequisites

  1. CMake utility (version 3.6.2 or higher)
  2. Fortran compiler:
    • Intel Fortran compiler (ifort)
    • GNU Fortran (gfortran)
  3. MPI library: Any should work, but OpenMPI is a good starting point.
  4. To use the Python front end (optional)

From GitHub to simulation

  1. Clone the repository

    git clone git@github.com:sseyler/HERMESHD.git

  2. Change to toplevel HERMESHD directory (should contain CMakeLists.txt)

    cd /path/to/HERMESHD

  3. Generate a Makefile using cmake
    mkdir build && cd build
    cmake ..
    make
    mpirun -n 6 hermes

Acknowledgements

This work was funded by a 2016 Blue Waters Graduate Fellowship for Developing a hybrid continuum-particle method for simulating large-scale heterogeneous biomolecular systems. Sean Seyler also expresses his eternal gratitude to Professor Oliver Beckstein who, as his doctoral advisor, was very generous in allowing him to pursue this project in his final year of graduate school.

References


  1. S.L. Seyler, C.E. Seyler & O. Beckstein. Fluctuating Hydrodynamics in the 13-moment Approximation for Simulating Biomacromolecular Nanomachines. Talk, APS March Meeting 2018. url:meetings.aps.org/Meeting/MAR18/Session/S51.5.

  2. C.E. Seyler & M.R. Martin. Relaxation model for extended magnetohydrodynamics: Comparison to magnetohydrodynamics for dense Z-pinches. Phys. Plasmas 18, 012703 (2011). doi:`10.1063/1.3543799`_.

  3. C.E. Seyler & M.R. Martin. Relaxation model for extended magnetohydrodynamics: Comparison to magnetohydrodynamics for dense Z-pinches. Phys. Plasmas 18, 012703 (2011). doi:`10.1063/1.3543799`_.

  4. X. Zhao, Y. Yang & C.E. Seyler. A positivity-preserving semi-implicit discontinuous Galerkin scheme for solving extended magnetohydrodynamics equations. J. Comput. Phys. 278, 400–415 (2014). doi:`10.1016/j.jcp.2014.08.044`_.

About

HERMESHD is a discontinuous Galerkin 3D fluctuating hydrodynamics code for nanoscale fluid simulation

License:Other


Languages

Language:Fortran 88.8%Language:Python 9.5%Language:Makefile 1.1%Language:CMake 0.5%Language:Shell 0.0%