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 newtonian_types_h 9 #define newtonian_types_h 10 11 #include <ceed.h> 12 13 #include "stabilization_types.h" 14 15 typedef enum { 16 STATEVAR_CONSERVATIVE = 0, 17 STATEVAR_PRIMITIVE = 1, 18 } StateVariable; 19 20 typedef struct SetupContext_ *SetupContext; 21 struct SetupContext_ { 22 CeedScalar theta0; 23 CeedScalar thetaC; 24 CeedScalar P0; 25 CeedScalar N; 26 CeedScalar cv; 27 CeedScalar cp; 28 CeedScalar g[3]; 29 CeedScalar rc; 30 CeedScalar lx; 31 CeedScalar ly; 32 CeedScalar lz; 33 CeedScalar center[3]; 34 CeedScalar dc_axis[3]; 35 CeedScalar time; 36 int wind_type; // See WindType: 0=ROTATION, 1=TRANSLATION 37 int bubble_type; // See BubbleType: 0=SPHERE, 1=CYLINDER 38 int bubble_continuity_type; // See BubbleContinuityType: 0=SMOOTH, 1=BACK_SHARP 2=THICK 39 }; 40 41 typedef struct NewtonianIdealGasContext_ *NewtonianIdealGasContext; 42 struct NewtonianIdealGasContext_ { 43 CeedScalar lambda; 44 CeedScalar mu; 45 CeedScalar k; 46 CeedScalar cv; 47 CeedScalar cp; 48 CeedScalar g[3]; 49 CeedScalar c_tau; 50 CeedScalar Ctau_t; 51 CeedScalar Ctau_v; 52 CeedScalar Ctau_C; 53 CeedScalar Ctau_M; 54 CeedScalar Ctau_E; 55 CeedScalar dt; 56 CeedScalar ijacobian_time_shift; 57 CeedScalar P0; 58 bool is_implicit; 59 StateVariable state_var; 60 StabilizationType stabilization; 61 }; 62 63 #endif // newtonian_types_h 64