1# HONEE: High-Order Navier-stokes Equation Evaluator 2 3[](https://gitlab.com/phypid/honee/badges/main/pipeline.svg?key_text=GitLab-CI) 4[](https://opensource.org/licenses/BSD-2-Clause) 5[](https://phypid.gitlab.io/honee) 6[](https://gitlab.com/phypid/honee/-/commits/main) 7 8<!-- abstract --> 9HONEE (prounounced "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. 10 11HONEE uses continuous-Galerkin stabilized finite element methods, namely SUPG, with a focus on scale-resolving simulations. 12Effort is made to maintain flexibility in state variable choice, boundary conditions, time integration scheme (both implicit and explicit), and other solver choices. 13High-order finite elements implemented in a matrix-free fashion with appropriate preconditioning strategies can overcome these inefficiencies. 14 15# Getting Started 16<!-- getting-started --> 17 18## Download and Install 19 20A local build and installation provides greater control over build options and optimization. 21HONEE is open-source and can be downloaded from [the HONEE repository on GitLab](https://gitlab.com/phypid/honee). 22 23```console 24$ git clone https://gitlab.com/phypid/honee 25``` 26 27### Prerequisites 28 29HONEE is based upon libCEED and PETSc. 30 31#### libCEED 32 33HONEE requires libCEED's `main` development branch, which can be [cloned from Github](https://github.com/CEED/libCEED). 34 35```console 36$ git clone https://github.com/CEED/libCEED 37$ make -C -j8 libCEED 38``` 39 40The 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. 41 42#### PETSc 43 44HONEE requires PETSc's `main` development branch, which can be [cloned from GitLab](https://gitlab.com/petsc/petsc). 45 46```console 47$ git clone https://gitlab.com/petsc/petsc 48``` 49 50Follow the [PETSc documentation](https://petsc.org/main/install/) to configure and build PETSc. 51It is recommended that you install with [CGNS library](https://cgns.github.io/) support using `--download-hdf5 --download-cgns`. 52 53### Building 54 55The environment variables `CEED_DIR`, `PETSC_DIR`, and `PETSC_ARCH` must be set to build HONEE. 56 57Assuming you have cloned the HONEE repository as above, build using: 58 59```console 60$ export CEED_DIR=[path to libCEED] PETSC_DIR=[path to PETSc] PETSC_ARCH=[PETSc arch] ENZYME_LIB=[path to Enzyme] 61$ make -j8 62``` 63 64To run a sample problem, run: 65 66```console 67$ bin/navierstokes -options_file ./gaussianwave.yaml 68``` 69 70To test the installation, use 71 72```console 73$ make test -j8 74``` 75 76<!-- citing --> 77