8.3
general documentation
cs_physical_constants.h
Go to the documentation of this file.
1#ifndef __CS_PHYSICAL_CONSTANTS_H__
2#define __CS_PHYSICAL_CONSTANTS_H__
3
4/*============================================================================
5 * Base physical constants data.
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2024 EDF S.A.
12
13 This program is free software; you can redistribute it and/or modify it under
14 the terms of the GNU General Public License as published by the Free Software
15 Foundation; either version 2 of the License, or (at your option) any later
16 version.
17
18 This program is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21 details.
22
23 You should have received a copy of the GNU General Public License along with
24 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25 Street, Fifth Floor, Boston, MA 02110-1301, USA.
26*/
27
28/*----------------------------------------------------------------------------*/
29
30/*----------------------------------------------------------------------------
31 * Local headers
32 *----------------------------------------------------------------------------*/
33
34#include "cs_defs.h"
35
36/*----------------------------------------------------------------------------*/
37
39
40/*=============================================================================
41 * Macro definitions
42 *============================================================================*/
43
44/*============================================================================
45 * Type definitions
46 *============================================================================*/
47
48/* physical constants descriptor */
49/*-------------------------------*/
50
51typedef struct {
52
53 cs_real_t gravity[3]; /* gravity vector in m.s^-2 */
54 int icorio; /* Coriolis source terms indicator */
55
57
58/* fluid properties descriptor */
59/*-----------------------------*/
60
61typedef struct {
62
63 int ixyzp0; /* indicator for filling of reference point for
64 total pressure */
65 int icp; /* property index of the isobaric specific heat */
66 int icv; /* property index of the isochoric specific
67 heat */
68 int iviscv; /* property field id for volume viscosity
69 (for compressible model) */
70 int irovar; /* variable density field */
71 int ivivar; /* variable viscosity field */
72 int ivsuth; /* Sutherland law for laminar viscosity and
73 thermal conductivity in gas mix spec. phys. */
74 double ro0; /* reference density */
75 double viscl0; /* reference molecular dynamic viscosity */
76 double viscv0; /* reference volume viscosity
77 (for compressible model) */
78 double p0; /* reference pressure for the total pressure */
79 double pred0; /* reference value for the reduced pressure */
80 double xyzp0[3]; /* reference point coordinates for the total
81 pressure */
82 double t0; /* reference temperature */
83 double cp0; /* reference specific heat at constant pressure */
84 double cv0; /* reference specific heat at constant volume */
85 double cpv0; /* reference specific heat at constant volume
86 for water vapor */
87 double cvl; /* reference specific for liquid water */
88 double l00; /* Latent heat */
89 double lambda0; /* reference heat conductivity */
90
91 double r_pg_cnst; /* perfect gas specific constant in J/kg/K */
92 double r_v_cnst; /* water vapor specific constant in J/kg/K */
93 double rvsra; /* ratio gas constant h2o / dry air */
94 double clatev; /* latent heat of evaporation */
95 double xmasmr; /* molar mass of the perfect gas in kg/mol
96 (if ieos=1) */
97 int ipthrm; /* uniform variable thermodynamic pressure for the
98 low-Mach algorithm */
99 double pther; /* uniform thermodynamic pressure for the low-Mach
100 algorithm */
101 double pthera; /* thermodynamic pressure for the previous time
102 step */
103 double pthermax; /* thermodynamic maximum pressure for user
104 clipping, used to model a venting effect */
105 double eint0; /* reference internal energy for the barotropic
106 compressible module. */
107 double sleak; /* leak surface */
108 double kleak; /* leak head loss (2.9 by default, from Idelcick) */
109 double roref; /* Initial reference density */
110
112
113/*============================================================================
114 * Static global variables
115 *============================================================================*/
116
117/* Physical constants */
118
119#if (defined(__NVCC__) && defined(__CUDA_ARCH__)) \
120 || defined(SYCL_LANGUAGE_VERSION) \
121 || defined(HAVE_OPENMP_TARGET)
122
123/* On GPU, global variables are usually not accessible. */
124
125#define cs_physical_constants_r 8.31446261815324
126#define cs_physical_constants_kb 1.380649e-23
127#define cs_physical_constants_celsius_to_kelvin 273.15
128#define cs_physical_constants_stephan 5.6703e-8
129#define cs_physical_constants_avogadro = 6.02214076e23;
130
131#else
132
133/* General constants accessible on CPU */
134
135extern const double cs_physical_constants_r; /* Ideal gas constant (J/mol/K) */
136extern const double cs_physical_constants_kb; /* Boltzmann constant (J/K) */
137extern const double cs_physical_constants_celsius_to_kelvin; /* Celsius to
138 Kelvin*/
139extern const double cs_physical_constants_stephan; /* Stephan constant
140 (W/m2/K4)*/
141extern const double cs_physical_constants_avogadro; /* Avogadro constant
142 (1/mol) */
143#endif
144
145/* Pointer to main physical constants structure */
146
148
149/* Pointer to main fluid properties structure */
150
152
153/*=============================================================================
154 * Public function prototypes
155 *============================================================================*/
156
157/*----------------------------------------------------------------------------
158 * Provide access to cs_glob_physical_constants
159 *
160 * needed to initialize structure with GUI
161 *----------------------------------------------------------------------------*/
162
165
166/*----------------------------------------------------------------------------
167 * Provide access to cs_glob_fluid_properties
168 *
169 * needed to initialize structure with GUI
170 *----------------------------------------------------------------------------*/
171
174
175/*----------------------------------------------------------------------------
176 * Print the physical constants structure to setup.log.
177 *----------------------------------------------------------------------------*/
178
179void
181
182/*----------------------------------------------------------------------------
183 * Print the fluid properties structure to setup.log.
184 *----------------------------------------------------------------------------*/
185
186void
188
189/*----------------------------------------------------------------------------*/
190
192
193#endif /* __CS_PHYSICAL_CONSTANTS_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
double cs_real_t
Floating-point value.
Definition: cs_defs.h:342
#define END_C_DECLS
Definition: cs_defs.h:543
const double cs_physical_constants_stephan
Definition: cs_physical_constants.cpp:454
void cs_physical_constants_log_setup(void)
Definition: cs_physical_constants.cpp:708
const double cs_physical_constants_r
Definition: cs_physical_constants.cpp:441
const double cs_physical_constants_kb
Definition: cs_physical_constants.cpp:445
const double cs_physical_constants_celsius_to_kelvin
Definition: cs_physical_constants.cpp:449
const double cs_physical_constants_avogadro
Definition: cs_physical_constants.cpp:458
const cs_fluid_properties_t * cs_glob_fluid_properties
Definition: cs_physical_constants.cpp:465
const cs_physical_constants_t * cs_glob_physical_constants
Definition: cs_physical_constants.cpp:462
void cs_fluid_properties_log_setup(void)
Definition: cs_physical_constants.cpp:739
cs_physical_constants_t * cs_get_glob_physical_constants(void)
Definition: cs_physical_constants.cpp:683
cs_fluid_properties_t * cs_get_glob_fluid_properties(void)
Definition: cs_physical_constants.cpp:696
real(c_double), dimension(:), pointer, save xyzp0
coordinates of the reference point for the total pressure.
Definition: cstphy.f90:209
Fluid properties descriptor.
Definition: cs_physical_constants.h:61
int ivivar
Definition: cs_physical_constants.h:71
double kleak
Definition: cs_physical_constants.h:108
double viscl0
Definition: cs_physical_constants.h:75
int icp
Definition: cs_physical_constants.h:65
double pthermax
Definition: cs_physical_constants.h:103
double sleak
Definition: cs_physical_constants.h:107
double l00
Definition: cs_physical_constants.h:88
double eint0
Definition: cs_physical_constants.h:105
double ro0
Definition: cs_physical_constants.h:74
double cv0
Definition: cs_physical_constants.h:84
double pthera
Definition: cs_physical_constants.h:101
int iviscv
Definition: cs_physical_constants.h:68
double viscv0
Definition: cs_physical_constants.h:76
double cpv0
Definition: cs_physical_constants.h:85
double r_pg_cnst
Definition: cs_physical_constants.h:91
double xmasmr
Definition: cs_physical_constants.h:95
double cvl
Definition: cs_physical_constants.h:87
double rvsra
Definition: cs_physical_constants.h:93
int irovar
Definition: cs_physical_constants.h:70
double pred0
Definition: cs_physical_constants.h:79
int ipthrm
Definition: cs_physical_constants.h:97
int ixyzp0
Definition: cs_physical_constants.h:63
int icv
Definition: cs_physical_constants.h:66
double pther
Definition: cs_physical_constants.h:99
double clatev
Definition: cs_physical_constants.h:94
double t0
Definition: cs_physical_constants.h:82
double r_v_cnst
Definition: cs_physical_constants.h:92
double cp0
Definition: cs_physical_constants.h:83
double lambda0
Definition: cs_physical_constants.h:89
double roref
Definition: cs_physical_constants.h:109
double p0
Definition: cs_physical_constants.h:78
int ivsuth
Definition: cs_physical_constants.h:72
Physical constants descriptor.
Definition: cs_physical_constants.h:51
int icorio
Definition: cs_physical_constants.h:54