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