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
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 2018
[3]—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. Martin [1]_; HERMESHD is based on the PERSEUS hydrodynamics derivative and will be adapted to fluctuating hydrodynamics (FH) simulations by Sean Seyler. See Background below!
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) equations [1]. 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 applications [2]. 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).
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
L0
)t0
)n0
)v0
)te0
)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!
CMake utility
_ (version 3.6.2 or higher)
Fortran compiler:
ifort
)gfortran
)MPI library: Any should work, but OpenMPI is a good starting point.
To use the Python front end (optional)
f2py
(part of numpy
)f90wrap
(see the f90wrap GitHub page
_)Clone the repository
git clone git@github.com:sseyler/HERMESHD.git
Change to toplevel HERMESHD directory (should contain CMakeLists.txt
)
cd /path/to/HERMESHD
Generate a Makefile
using cmake
.. code-block:: console
mkdir build && cd build
cmake ..
make
mpirun -n 6 hermes
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.
.. Articles .. --------
.. [1] 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
_.
.. _10.1063/1.3543799
: http://dx.doi.org/10.1063/1.3543799
.. [2] 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
_.
.. _10.1016/j.jcp.2014.08.044
: http://dx.doi.org/10.1016/j.jcp.2014.08.044
.. [3] 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
_.
.. _meetings.aps.org/Meeting/MAR18/Session/S51.5
: https://meetings.aps.org/Meeting/MAR18/Session/S51.5
.. _2016 Blue Waters Graduate Fellowship
: https://bluewaters.ncsa.illinois.edu/fellowships/2016
.. _Developing a hybrid continuum-particle method for simulating large-scale heterogeneous biomolecular systems
: https://bluewaters.ncsa.illinois.edu/science-teams?page=detail&psn=bafh
.. _my talk presented at APS March Meeting 2018
: https://meetings.aps.org/Meeting/MAR18/Session/S51.5
.. _CMake utility
: https://cmake.org/
.. _f90wrap GitHub page
: https://github.com/jameskermode/f90wrap