|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | - | - |
| .gitlab/ | H | - | - | 58 | 32 |
| doc/ | H | - | - | 2,740 | 2,110 |
| examples/ | H | - | - | 2,286 | 1,937 |
| include/ | H | - | - | 1,222 | 769 |
| problems/ | H | - | - | 4,454 | 3,509 |
| qfunctions/ | H | - | - | 8,278 | 5,321 |
| src/ | H | - | - | 10,739 | 7,439 |
| tests/ | H | - | - | 2,331 | 1,874 |
| .clang-format | H A D | 09-Oct-2025 | 700 | 20 | 18 |
| .clang-tidy | H A D | 20-Mar-2024 | 261 | 4 | 3 |
| .gitignore | H A D | 26-Sep-2025 | 878 | 88 | 77 |
| .gitlab-ci.yml | H A D | 21-Oct-2025 | 19 KiB | 470 | 312 |
| AUTHORS | H A D | 13-Jun-2025 | 86 | 7 | 6 |
| CHANGELOG.md | H A D | 21-Oct-2025 | 3.6 KiB | 52 | 44 |
| CONTRIBUTING.md | H A D | 27-Jun-2024 | 5.1 KiB | 60 | 38 |
| Doxyfile | H A D | 26-Jun-2024 | 122.4 KiB | 2,792 | 2,199 |
| LICENSE-APACHE | H A D | 10-Jul-2024 | 11.1 KiB | 202 | 169 |
| LICENSE-BSD | H A D | 10-Jul-2024 | 1.4 KiB | 26 | 20 |
| Makefile | H A D | 26-Sep-2025 | 20.4 KiB | 475 | 350 |
| README.md | H A D | 20-Feb-2026 | 4.5 KiB | 125 | 90 |
| common.mk | H A D | 10-Jul-2024 | 1.4 KiB | 31 | 13 |
| conf.py | H A D | 06-Jul-2025 | 7.9 KiB | 278 | 114 |
| index.md | H A D | 28-Mar-2025 | 401 | 28 | 21 |
| pytorch_pkgconfig.py | H A D | 10-Jul-2024 | 2.2 KiB | 75 | 51 |
README.md
1# HONEE
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://opensource.org/license/Apache-2-0)
6[](https://honee.phypid.org)
7[](https://gitlab.com/phypid/honee/-/commits/main)
8
9<!-- abstract -->
10HONEE (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.
11
12HONEE uses continuous-Galerkin stabilized finite element methods, namely SUPG, with a focus on scale-resolving simulations.
13Effort is made to maintain flexibility in state variable choice, boundary conditions, time integration scheme (both implicit and explicit), and other solver choices.
14High-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.
15
16# Getting Started
17<!-- getting-started -->
18
19## Download and Install
20
21A local build and installation provides greater control over build options and optimization.
22HONEE is open-source and can be downloaded from [the HONEE repository on GitLab](https://gitlab.com/phypid/honee).
23
24```console
25$ git clone https://gitlab.com/phypid/honee
26```
27
28### Prerequisites
29
30HONEE is based upon libCEED and PETSc.
31
32#### libCEED
33
34HONEE requires libCEED's `main` development branch, which can be [cloned from Github](https://github.com/CEED/libCEED).
35
36```console
37$ git clone https://github.com/CEED/libCEED
38$ make -j8 -C libCEED
39```
40
41The 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.
42
43#### PETSc
44
45HONEE requires PETSc's `main` development branch, which can be [cloned from GitLab](https://gitlab.com/petsc/petsc).
46
47```console
48$ git clone https://gitlab.com/petsc/petsc
49```
50
51Follow the [PETSc documentation](https://petsc.org/main/install/) to configure and build PETSc.
52It is recommended that you install with [CGNS library](https://cgns.github.io/) support using `--download-hdf5 --download-cgns`.
53
54### Building
55
56The environment variables `CEED_DIR`, `PETSC_DIR`, and `PETSC_ARCH` must be set to build HONEE.
57
58Assuming you have cloned the HONEE repository as above, build using:
59
60```console
61$ export CEED_DIR=[path to libCEED] PETSC_DIR=[path to PETSc] PETSC_ARCH=[PETSc arch]
62$ make -j8
63```
64
65To run a sample problem, run:
66
67```console
68$ build/navierstokes -options_file examples/gaussianwave.yaml
69```
70
71To test the installation, use
72
73```console
74$ make test -j8
75```
76
77### Demo Build
78
79Here we walk through a complete, step-by-step demonstration of building and installing HONEE and its dependencies.
80This will be aimed at the minimal-viable install; better performance may be gained from different configurations, compiler flags, etc.
81As such, it will only target a CPU installation of HONEE.
82
83Generally, we assume that the system you're installing on has a pre-existing installation of MPI loaded into the environment.
84If this is not true, you can add a `--download-mpich` flag to PETSc's configuration command to have PETSc build and install MPICH.
85
86```console
87$ export CC=mpicc CXX=mpicxx # PETSc and libCEED will use these environment variables to select compiler
88$ mkdir honee_build_dir
89$ cd honee_build_dir
90$ ## Build PETSc
91$ git clone https://gitlab.com/petsc/petsc
92$ cd petsc
93$ export PETSC_DIR=$PWD PETSC_ARCH=arch-linux-c-opt
94$ ./configure \
95 --with-fc=0 \
96 --download-f2cblaslapack \
97 --download-hdf5 \
98 --download-cgns \
99 --with-debugging=0 \
100 COPTFLAGS='-O3 -g -march=native' \
101 CXXOPTFLAGS='-O3 -g -march=native'
102$ make -j
103$ ## Build libCEED
104$ cd ..
105$ git clone https://github.com/CEED/libCEED
106$ cd libCEED
107$ make -j
108$ ## Build HONEE
109$ cd ..
110$ git clone https://gitlab.com/phypid/honee
111$ cd honee
112$ make -j
113```
114
115<!-- citing -->
116
117## License
118
119HONEE is licensed under either of
120
121 * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
122 * BSD-2-Clause license ([LICENSE-BSD](LICENSE-BSD) or https://opensource.org/licenses/BSD-2-Clause)
123
124at your option.
125