{"id":21100708,"url":"https://github.com/mlwong/hamers","last_synced_at":"2025-04-06T04:09:34.171Z","repository":{"id":37390917,"uuid":"101251177","full_name":"mlwong/HAMeRS","owner":"mlwong","description":"Hydrodynamics Adaptive Mesh Refinement Simulator (HAMeRS) for compressible multi-species/multi-phase simulations","archived":false,"fork":false,"pushed_at":"2025-03-24T18:42:44.000Z","size":60874,"stargazers_count":62,"open_issues_count":1,"forks_count":28,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-30T03:03:50.001Z","etag":null,"topics":["adaptive-mesh-refinement","computational-fluid-dynamics","large-eddy-simulation","multi-species","parallel-computing","shock-capturing","simulation","turbulence"],"latest_commit_sha":null,"homepage":"https://github.com/mlwong/HAMeRS/wiki","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlwong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-24T03:42:27.000Z","updated_at":"2025-03-15T04:49:29.000Z","dependencies_parsed_at":"2023-02-10T00:46:06.719Z","dependency_job_id":"13638c2a-ddc6-49c9-9bcd-9f79d5b24ec3","html_url":"https://github.com/mlwong/HAMeRS","commit_stats":{"total_commits":1196,"total_committers":35,"mean_commits":34.17142857142857,"dds":0.2859531772575251,"last_synced_commit":"df89edd698826131b7522f414aeeb6ceebf37f06"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlwong%2FHAMeRS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlwong%2FHAMeRS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlwong%2FHAMeRS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlwong%2FHAMeRS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlwong","download_url":"https://codeload.github.com/mlwong/HAMeRS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430869,"owners_count":20937874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive-mesh-refinement","computational-fluid-dynamics","large-eddy-simulation","multi-species","parallel-computing","shock-capturing","simulation","turbulence"],"created_at":"2024-11-19T23:15:13.415Z","updated_at":"2025-04-06T04:09:34.123Z","avatar_url":"https://github.com/mlwong.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HAMeRS: Hydrodynamics Adaptive Mesh Refinement Simulator #\n\n[![mlwong](https://circleci.com/gh/mlwong/HAMeRS/tree/master.svg?style=svg)](https://circleci.com/gh/mlwong/HAMeRS/tree/master)\n\n[HAMeRS](https://fpal.stanford.edu/hamers) is a compressible Navier-Stokes/Euler solver with the patch-based adaptive mesh refinement (AMR) technique. The parallelization of the code and all the construction, management and storage of cells are facilitated by the [Structured Adaptive Mesh Refinement Application Infrastructure](https://computation.llnl.gov/project/SAMRAI/) (SAMRAI) from the [Lawrence Livermore National Laboratory](https://www.llnl.gov/) (LLNL).\n\nThe code consists of various explicit high-order finite difference schemes including the WCNS's (Weighted Compact Nonlinear Schemes) for capturing shock waves, material interfaces, and turbulent features, and also the kinetic-energy-preserving (KEP) schemes for large-eddy simulations with subgrid-scale models. The AMR algorithm implemented is based on the one developed by Berger et al.\n\n### How do I get set up? ###\n\nGit is used for the version control of the code. To install Git on Debian-based distribution like Ubuntu, try apt-get:\n\n```\nsudo apt-get install git-all\n```\n\nTo compile the code, in general all you need is to use [CMake](https://cmake.org/). For example, after cloning the repository with `git clone`:\n\n```\ncd HAMeRS\nmkdir build\ncd build\ncmake ..\nmake\n```\n\nThe compilers to be used to compile C, C++ and Fortran parts of HAMeRS can be chosen by setting the environment variables `CC`, `CXX` and `F77` respectively before running CMake. For example, to use the default MPI compilers, you can run:\n```\nexport CC=mpicc\nexport CXX=mpicxx\nexport F77=mpif77\n```\n\nTo run the code, you need to provide the input file:\n\n```\nsrc/exec/main \u003cinput filename\u003e\n```\n\nTo restart a simulation, you need to provide restart directory and restore number in addition to the input file:\n\n```\nsrc/exec/main \u003cinput filename\u003e \u003crestart dir\u003e \u003crestore number\u003e\n```\n\nTo run the code in parallel, you need MPI. You can try mpirun:\n\n```\nmpirun -np \u003cnumber of processors\u003e src/exec/main \u003cinput filename\u003e\n```\n\n### What libraries do I need? ###\n\nHAMeRS relies on [HDF5](https://support.hdfgroup.org/HDF5/), [Boost](https://www.boost.org/) and [SAMRAI](https://computation.llnl.gov/projects/samrai). Before installing HAMeRS, it is required to set up the environment variables for [CMake](https://cmake.org/) to look for the locations of the libraries.\n\nTo set up HDF5:\n```\nexport HDF5_ROOT=\u003cpath to the directory of HDF5\u003e\n```\n\nTo set up Boost:\n```\nexport BOOST_ROOT=\u003cpath to the directory of Boost\u003e\n```\n\nTo set up SAMRAI:\n```\nexport SAMRAI_ROOT=\u003cpath to the directory of SAMRAI\u003e\n```\n\nHAMeRS has already been successfully tested with HDF5-1.8, Boost-1.60 and SAMRAI-3.11.2.\n\nNote that SAMRAI does not depend on the Boost library anymore since version 3.12.0. Please install HAMeRS without Boost library dependency using the CMake flag `-DHAMERS_USE_BOOST=OFF` when SAMRAI verison is equal to or greater than 3.12.0.\n\n### How do I change the problem? ###\n\nTo change the problem that you want to run for an application, e.g. the Euler application, just simply link the corresponding initial conditions cpp symlink (`EulerInitialConditions.cpp` in `src/apps/Euler`) to the actual problem file using `ln -sf \u003cabsolute path to .cpp file containing problem's initial conditions\u003e EulerInitialConditions.cpp`. If the problem has special boundary conditions, the user can supply the boundary conditions with `ln -sf \u003cabsolute path to .cpp file containing problem's user-coded boundary conditions\u003e EulerSpecialBoundaryConditions.cpp`. There are some initial conditions and boundary conditions files from different example problems in the `problems` folder.\n\n### Are there more tips and tutorials on how to compile and run the code?\n\nPlease have a look at the [Wiki page](https://github.com/mlwong/HAMeRS/wiki).\n\n### Who do I talk to? ###\n\nThe code is managed by the previous PhD graduate Man-Long Wong (mlwong@alumni.stanford.edu) of the [Flow Physics and Aeroacoustics Laboratory](https://fpal.stanford.edu/) (FPAL)  at the [Department of Aeronautics and Astronautics](https://aa.stanford.edu/) of [Stanford University](https://www.stanford.edu/).\n\n### Copyright ###\nHAMeRS is licensed under a GNU Lesser General Public License v3.0.\n\nIf you find this work useful, please consider citing the author's dissertation:\n\n    @phdthesis{wong2019thesis,\n    title={High-order shock-capturing methods for study of shock-induced turbulent mixing with adaptive mesh refinement simulations},\n    author={Wong, Man Long},\n    year={2019},\n    school={Stanford University}\n    }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlwong%2Fhamers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlwong%2Fhamers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlwong%2Fhamers/lists"}