xref: /honee/qfunctions/advection_types.h (revision f247af707eaa89d3bacbf7bc0146fbdbc88d858a)
1 // Copyright (c) 2017-2023, Lawrence Livermore National Security, LLC and other CEED contributors.
2 // All Rights Reserved. See the top-level LICENSE and NOTICE files for details.
3 //
4 // SPDX-License-Identifier: BSD-2-Clause
5 //
6 // This file is part of CEED:  http://github.com/ceed
7 
8 #ifndef advection_types_h
9 #define advection_types_h
10 
11 #include <ceed.h>
12 #include "stabilization_types.h"
13 
14 typedef enum {
15   WIND_ROTATION    = 0,
16   WIND_TRANSLATION = 1,
17 } WindType;
18 
19 // Advection - Bubble Types
20 typedef enum {
21   BUBBLE_SPHERE   = 0,  // dim=3
22   BUBBLE_CYLINDER = 1,  // dim=2
23   BUBBLE_COSINE   = 2,
24 } BubbleType;
25 
26 // Advection - Bubble Continuity Types
27 typedef enum {
28   BUBBLE_CONTINUITY_SMOOTH     = 0,  // Original continuous, smooth shape
29   BUBBLE_CONTINUITY_BACK_SHARP = 1,  // Discontinuous, sharp back half shape
30   BUBBLE_CONTINUITY_THICK      = 2,  // Define a finite thickness
31 } BubbleContinuityType;
32 
33 typedef struct AdvectionContext_ *AdvectionContext;
34 struct AdvectionContext_ {
35   CeedScalar        CtauS;
36   CeedScalar        strong_form;
37   CeedScalar        E_wind;
38   bool              implicit;
39   StabilizationType stabilization;
40 };
41 
42 #endif /* ifndef advection_types_h */
43