xref: /honee/qfunctions/stg_shur14_type.h (revision 493642f1e7bb5ccdccd1086ef1091462e675d35c)
1 // Copyright (c) 2017-2022, 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 stg_shur14_type_h
9 #define stg_shur14_type_h
10 
11 #include <ceed.h>
12 #include "newtonian_types.h"
13 
14 /* Access data arrays via:
15  *  CeedScalar (*sigma)[ctx->nmodes] = (CeedScalar (*)[ctx->nmodes])&ctx->data[ctx->offsets.sigma]; */
16 typedef struct STGShur14Context_ *STGShur14Context;
17 struct STGShur14Context_ {
18   CeedInt    nmodes;      // !< Number of wavemodes
19   CeedInt    nprofs;      // !< Number of profile points in STGInflow.dat
20   CeedScalar alpha;       // !< Geometric growth rate of kappa
21   CeedScalar u0;          // !< Convective velocity
22   CeedScalar time;        // !< Solution time
23   CeedScalar P0;          // !< Inlet pressure
24   CeedScalar theta0;      // !< Inlet temperature
25   bool       is_implicit; // !< Whether using implicit time integration
26   bool       mean_only;   // !< Only apply the mean profile
27   CeedScalar dx;          // !< dx used for h calculation
28   bool       prescribe_T; // !< Prescribe temperature weakly
29   struct NewtonianIdealGasContext_ newtonian_ctx;
30 
31   struct {
32     size_t sigma, d, phi; // !< Random number set, [nmodes,3], [nmodes,3], [nmodes]
33     size_t kappa;     // !< Wavemode frequencies in increasing order, [nmodes]
34     size_t prof_dw;   // !< Distance to wall for Inflow Profie, [nprof]
35     size_t ubar;      // !< Mean velocity, [nprof, 3]
36     size_t cij;       // !< Cholesky decomposition [nprof, 6]
37     size_t eps;       // !< Turbulent Disspation [nprof, 6]
38     size_t lt;        // !< Tubulent Length Scale [nprof, 6]
39   } offsets;          // !< Holds offsets for each array in data
40   size_t total_bytes; // !< Total size of struct plus array
41   CeedScalar data[1]; // !< Holds concatenated scalar array data
42 };
43 
44 #endif
45