xref: /honee/qfunctions/stabilization_types.h (revision 755bbe2599561002e1c40ab7238a292b119a7e0a)
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 extern const char *const StabilizationTypes[];
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 extern const char *const StabilizationTauTypes[];
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 extern const char *const DivDiffFluxProjectionMethods[];
30 #endif
31 
32 typedef struct {
33   CeedScalar Ctau_t;
34   CeedScalar Ctau_v;
35   CeedScalar Ctau_C;
36   CeedScalar Ctau_M;
37   CeedScalar Ctau_E;
38 } TauDiagCoefficients;
39