1*4c95b225SJames Wright# HONEE 2ea10196cSJeremy L Thompson 330300449SJames Wright[](https://gitlab.com/phypid/honee/badges/main/pipeline.svg?key_text=GitLab-CI) 430300449SJames Wright[](https://opensource.org/licenses/BSD-2-Clause) 5a67b82d9SJames Wright[](https://opensource.org/license/Apache-2-0) 650112c34SJeremy L Thompson[](https://honee.phypid.org) 730300449SJames Wright[](https://gitlab.com/phypid/honee/-/commits/main) 830300449SJames Wright 9965d9f74SJames Wright<!-- abstract --> 10*4c95b225SJames WrightHONEE (High-Order Navier-stokes Equation Evaluator, pronounced "honey") is a fluids mechanics library based on [libCEED](https://libceed.org) and [PETSc](https://petsc.org) with support for efficient high-order elements and CUDA, ROCm, and Intel GPUs. 11ea10196cSJeremy L Thompson 1230300449SJames WrightHONEE uses continuous-Galerkin stabilized finite element methods, namely SUPG, with a focus on scale-resolving simulations. 1330300449SJames WrightEffort is made to maintain flexibility in state variable choice, boundary conditions, time integration scheme (both implicit and explicit), and other solver choices. 14*4c95b225SJames WrightHigh-order finite elements are implemented in an analytic matrix-free fashion to maximize performance on GPU hardware, while matrix assembly may also be used if desired. 15ea10196cSJeremy L Thompson 1630300449SJames Wright# Getting Started 1730300449SJames Wright<!-- getting-started --> 18ea10196cSJeremy L Thompson 1930300449SJames Wright## Download and Install 20acad7547SJames Wright 2130300449SJames WrightA local build and installation provides greater control over build options and optimization. 2230300449SJames WrightHONEE is open-source and can be downloaded from [the HONEE repository on GitLab](https://gitlab.com/phypid/honee). 23ea10196cSJeremy L Thompson 2430300449SJames Wright```console 2530300449SJames Wright$ git clone https://gitlab.com/phypid/honee 26575f8106SLeila Ghaffari``` 27ea10196cSJeremy L Thompson 2830300449SJames Wright### Prerequisites 29acad7547SJames Wright 3030300449SJames WrightHONEE is based upon libCEED and PETSc. 3130300449SJames Wright 3230300449SJames Wright#### libCEED 3330300449SJames Wright 3430300449SJames WrightHONEE requires libCEED's `main` development branch, which can be [cloned from Github](https://github.com/CEED/libCEED). 3530300449SJames Wright 3630300449SJames Wright```console 3730300449SJames Wright$ git clone https://github.com/CEED/libCEED 3830300449SJames Wright$ make -C -j8 libCEED 39acad7547SJames Wright``` 40acad7547SJames Wright 4130300449SJames WrightThe above will be enough for most simple CPU installations; see the [libCEED documentation](https://libceed.org/en/latest/gettingstarted/#) for details on using GPUs, tuning, and more complicated environments. 4230300449SJames Wright 4330300449SJames Wright#### PETSc 4430300449SJames Wright 4530300449SJames WrightHONEE requires PETSc's `main` development branch, which can be [cloned from GitLab](https://gitlab.com/petsc/petsc). 4630300449SJames Wright 4730300449SJames Wright```console 4830300449SJames Wright$ git clone https://gitlab.com/petsc/petsc 4930300449SJames Wright``` 5030300449SJames Wright 5130300449SJames WrightFollow the [PETSc documentation](https://petsc.org/main/install/) to configure and build PETSc. 5230300449SJames WrightIt is recommended that you install with [CGNS library](https://cgns.github.io/) support using `--download-hdf5 --download-cgns`. 5330300449SJames Wright 5430300449SJames Wright### Building 5530300449SJames Wright 5630300449SJames WrightThe environment variables `CEED_DIR`, `PETSC_DIR`, and `PETSC_ARCH` must be set to build HONEE. 5730300449SJames Wright 5830300449SJames WrightAssuming you have cloned the HONEE repository as above, build using: 5930300449SJames Wright 6030300449SJames Wright```console 61*4c95b225SJames Wright$ export CEED_DIR=[path to libCEED] PETSC_DIR=[path to PETSc] PETSC_ARCH=[PETSc arch] 6230300449SJames Wright$ make -j8 6330300449SJames Wright``` 6430300449SJames Wright 6530300449SJames WrightTo run a sample problem, run: 6630300449SJames Wright 6730300449SJames Wright```console 6830300449SJames Wright$ bin/navierstokes -options_file ./gaussianwave.yaml 6930300449SJames Wright``` 7030300449SJames Wright 7130300449SJames WrightTo test the installation, use 7230300449SJames Wright 7330300449SJames Wright```console 7430300449SJames Wright$ make test -j8 7530300449SJames Wright``` 76836c9e00SJames Wright 77836c9e00SJames Wright<!-- citing --> 78a67b82d9SJames Wright 79a67b82d9SJames Wright## License 80a67b82d9SJames Wright 81a67b82d9SJames WrightHONEE is licensed under either of 82a67b82d9SJames Wright 83a67b82d9SJames Wright * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0) 84a67b82d9SJames Wright * BSD-2-Clause license ([LICENSE-BSD](LICENSE-BSD) or https://opensource.org/licenses/BSD-2-Clause) 85a67b82d9SJames Wright 86a67b82d9SJames Wrightat your option. 87