xref: /honee/README.md (revision 149fb5361f5198e41f87e8815a7e9dbfee84a96a)
1# HONEE: High-Order Navier-stokes Equation Evaluator
2
3[![GitLab-CI](https://gitlab.com/phypid/honee/badges/main/pipeline.svg?key_text=GitLab-CI)](https://gitlab.com/phypid/honee/badges/main/pipeline.svg?key_text=GitLab-CI)
4[![BSD-2-Clause](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)
5[![Documentation](https://img.shields.io/badge/Documentation-latest-blue.svg)](https://phypid.gitlab.io/honee)
6[![Code Coverage](https://gitlab.com/phypid/honee/badges/main/coverage.svg)](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