xref: /honee/qfunctions/stabilization_types.h (revision 475f0cac5d40259768f4556cf888e8f2448554cb) !
1ae2b091fSJames Wright // SPDX-FileCopyrightText: Copyright (c) 2017-2024, HONEE contributors.
2ae2b091fSJames Wright // SPDX-License-Identifier: Apache-2.0 OR BSD-2-Clause
3c7ece6efSJeremy L Thompson #pragma once
41c94e285SJames Wright #include <ceed/types.h>
515a3537eSJed Brown 
615a3537eSJed Brown typedef enum {
715a3537eSJed Brown   STAB_NONE = 0,
815a3537eSJed Brown   STAB_SU   = 1,  // Streamline Upwind
915a3537eSJed Brown   STAB_SUPG = 2,  // Streamline Upwind Petrov-Galerkin
1015a3537eSJed Brown } StabilizationType;
111c94e285SJames Wright #ifndef CEED_RUNNING_JIT_PASS
12e5a8cae0SJames Wright extern const char *const StabilizationTypes[];
131c94e285SJames Wright #endif
1415a3537eSJed Brown 
1557272ee0SJames Wright typedef enum {
1657272ee0SJames Wright   STAB_TAU_CTAU           = 0,
1757272ee0SJames Wright   STAB_TAU_ADVDIFF_SHAKIB = 1,  // Approximation from Shakib's Thesis
1857272ee0SJames Wright } StabilizationTauType;
191c94e285SJames Wright #ifndef CEED_RUNNING_JIT_PASS
20e5a8cae0SJames Wright extern const char *const StabilizationTauTypes[];
211c94e285SJames Wright #endif
2217cb71b0SJames Wright 
2317cb71b0SJames Wright typedef enum {
2417cb71b0SJames Wright   DIV_DIFF_FLUX_PROJ_NONE     = 0,
2517cb71b0SJames Wright   DIV_DIFF_FLUX_PROJ_DIRECT   = 1,
2617cb71b0SJames Wright   DIV_DIFF_FLUX_PROJ_INDIRECT = 2,
2717cb71b0SJames Wright } DivDiffFluxProjectionMethod;
281c94e285SJames Wright #ifndef CEED_RUNNING_JIT_PASS
29e5a8cae0SJames Wright extern const char *const DivDiffFluxProjectionMethods[];
301c94e285SJames Wright #endif
31*cde3d787SJames Wright 
32*cde3d787SJames Wright typedef struct {
33*cde3d787SJames Wright   CeedScalar Ctau_t;
34*cde3d787SJames Wright   CeedScalar Ctau_v;
35*cde3d787SJames Wright   CeedScalar Ctau_C;
36*cde3d787SJames Wright   CeedScalar Ctau_M;
37*cde3d787SJames Wright   CeedScalar Ctau_E;
38*cde3d787SJames Wright } TauDiagCoefficients;
39