xref: /honee/qfunctions/stabilization_types.h (revision 1c94e285dc30dc3bd7c84a205133ffbf79631595)
1 // SPDX-FileCopyrightText: Copyright (c) 2017-2024, HONEE contributors.
2 // SPDX-License-Identifier: Apache-2.0 OR BSD-2-Clause
3 #pragma once
4 #include <ceed/types.h>
5 
6 typedef enum {
7   STAB_NONE = 0,
8   STAB_SU   = 1,  // Streamline Upwind
9   STAB_SUPG = 2,  // Streamline Upwind Petrov-Galerkin
10 } StabilizationType;
11 #ifndef CEED_RUNNING_JIT_PASS
12 static const char *const StabilizationTypes[] = {"NONE", "SU", "SUPG", "StabilizationType", "STAB_", NULL};
13 #endif
14 
15 typedef enum {
16   STAB_TAU_CTAU           = 0,
17   STAB_TAU_ADVDIFF_SHAKIB = 1,  // Approximation from Shakib's Thesis
18 } StabilizationTauType;
19 #ifndef CEED_RUNNING_JIT_PASS
20 static const char *const StabilizationTauTypes[] = {"CTAU", "ADVDIFF_SHAKIB", "StabilizationTauType", "STAB_TAU_", NULL};
21 #endif
22 
23 typedef enum {
24   DIV_DIFF_FLUX_PROJ_NONE     = 0,
25   DIV_DIFF_FLUX_PROJ_DIRECT   = 1,
26   DIV_DIFF_FLUX_PROJ_INDIRECT = 2,
27 } DivDiffFluxProjectionMethod;
28 #ifndef CEED_RUNNING_JIT_PASS
29 static const char *const DivDiffFluxProjectionMethods[] = {"NONE", "DIRECT", "INDIRECT", "DivDiffFluxProjectionMethod", "DIV_DIFF_FLUX_PROJ_", NULL};
30 #endif
31