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