8.0
general documentation
cs_physical_properties.h
Go to the documentation of this file.
1 #ifndef __CS_PHYSICAL_PROPERTIES_H__
2 #define __CS_PHYSICAL_PROPERTIES_H__
3 
4 /*============================================================================
5  * Physical properties computation and management.
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2023 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 typedef enum {
41 
49 
51 
52 typedef enum {
53 
67 
69 
70 /*=============================================================================
71  * Public function prototypes
72  *============================================================================*/
73 
74 /*----------------------------------------------------------------------------
75  * Define thermal table.
76  *----------------------------------------------------------------------------*/
77 
78 void
79 cs_thermal_table_set(const char *material,
80  const char *method,
81  const char *reference,
83  int temp_scale);
84 
85 /*----------------------------------------------------------------------------
86  * Finalize thermal table
87  *----------------------------------------------------------------------------*/
88 
89 void
91 
92 /*----------------------------------------------------------------------------*/
100 /*----------------------------------------------------------------------------*/
101 
102 const char *
104 
105 /*----------------------------------------------------------------------------*/
130 /*----------------------------------------------------------------------------*/
131 
132 void
134 
135 /*----------------------------------------------------------------------------
136  * Compute a physical property.
137  *
138  * For values var1 and var2, we can use a stride so that accesses for a given
139  * element with id i will be of the form: var[i*stride]; this allows regular
140  * access with stride 1, and access to constant variables stored as a
141  * single-valued array with a stride of 0.
142  *
143  * parameters:
144  * property <-- property queried
145  * n_vals <-- number of values
146  * var1_stride <-- stride between successive values of var1
147  * var2_stride <-- stride between successive values of var2
148  * var1 <-- values on first plane axis
149  * var2 <-- values on second plane axis
150  * val --> resulting property values
151  *----------------------------------------------------------------------------*/
152 
153 void
155  cs_lnum_t n_vals,
156  cs_lnum_t var1_stride,
157  cs_lnum_t var2_stride,
158  const cs_real_t var1[],
159  const cs_real_t var2[],
160  cs_real_t val[]);
161 
162 /*----------------------------------------------------------------------------
163  * Compute properties with Freesteam in a defined thermal plane.
164  *
165  * parameters:
166  * thermo_plane <-- thermodynamic plane
167  * property <-- property queried
168  * n_vals <-- number of values
169  * var1 <-- values on first plane axis
170  * var2 <-- values on second plane axis
171  * val --> resulting property values
172  *
173  * returns:
174  * floating point value associated with the key id for this field
175  *----------------------------------------------------------------------------*/
176 
177 void
179  cs_phys_prop_type_t property,
180  const cs_lnum_t n_vals,
181  const cs_real_t var1[],
182  const cs_real_t var2[],
183  cs_real_t val[]);
184 
185 /*----------------------------------------------------------------------------*/
193 /*----------------------------------------------------------------------------*/
194 
195 cs_real_t
196 cs_physical_property_get_ref_value(const char *name);
197 
198 /*----------------------------------------------------------------------------*/
205 /*----------------------------------------------------------------------------*/
206 
207 void
208 cs_physical_property_set_ref_value(const char *name,
209  const cs_real_t val);
210 
211 /*----------------------------------------------------------------------------*/
219 /*----------------------------------------------------------------------------*/
220 
221 void
222 cs_physical_property_get_zone_values(const char *name,
223  const char *zname,
224  cs_real_t retval[]);
225 
226 /*----------------------------------------------------------------------------*/
234 /*----------------------------------------------------------------------------*/
235 
236 void
237 cs_physical_property_create(const char *name,
238  const int dim,
239  const cs_real_t refval);
240 
241 /*----------------------------------------------------------------------------*/
250 /*----------------------------------------------------------------------------*/
251 
252 void
254  const char *zname,
255  const int dim,
256  const cs_real_t val);
257 
258 /*----------------------------------------------------------------------------*/
267 /*----------------------------------------------------------------------------*/
268 
269 void
271  const char *zname,
272  const int dim,
273  cs_real_t vals[]);
274 
275 /*----------------------------------------------------------------------------*/
287 /*----------------------------------------------------------------------------*/
288 
289 void
291  int type_flag,
292  int location_id,
293  int dim,
294  bool has_previous);
295 
296 /*----------------------------------------------------------------------------*/
304 /*----------------------------------------------------------------------------*/
305 
306 int
307 cs_physical_property_field_id_by_name(const char *name);
308 
309 /*----------------------------------------------------------------------------*/
317 /*----------------------------------------------------------------------------*/
318 
319 void
321  const char *zname,
322  const cs_real_t vals[]);
323 
324 /*----------------------------------------------------------------------------*/
325 
327 
328 #endif /* __CS_PHYSICAL_PROPERTIES_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:509
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
#define END_C_DECLS
Definition: cs_defs.h:510
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:313
void cs_phys_prop_freesteam(cs_phys_prop_thermo_plane_type_t thermo_plane, cs_phys_prop_type_t property, const cs_lnum_t n_vals, const cs_real_t var1[], const cs_real_t var2[], cs_real_t val[])
Compute properties with Freesteam in a defined thermal plane.
Definition: cs_physical_properties.c:658
void cs_physical_property_set_ref_value(const char *name, const cs_real_t val)
Set reference value for a physical property.
Definition: cs_physical_properties.c:1007
void cs_physical_property_define_from_values(const char *name, const char *zname, const int dim, cs_real_t vals[])
Add a property multi-diemnsional definition on a given zone.
Definition: cs_physical_properties.c:1141
void cs_physical_property_update_zone_values(const char *name, const char *zname, const cs_real_t vals[])
Update reference values for a property on a given zone.
Definition: cs_physical_properties.c:1229
void cs_physical_properties_set_coolprop_backend(const char *backend)
Set backend for CoolProp.
Definition: cs_physical_properties.c:495
void cs_phys_prop_compute(cs_phys_prop_type_t property, cs_lnum_t n_vals, cs_lnum_t var1_stride, cs_lnum_t var2_stride, const cs_real_t var1[], const cs_real_t var2[], cs_real_t val[])
Compute a physical property.
Definition: cs_physical_properties.c:542
cs_phys_prop_thermo_plane_type_t
Definition: cs_physical_properties.h:40
@ CS_PHYS_PROP_PLANE_TX
Definition: cs_physical_properties.h:48
@ CS_PHYS_PROP_PLANE_PS
Definition: cs_physical_properties.h:44
@ CS_PHYS_PROP_PLANE_TS
Definition: cs_physical_properties.h:47
@ CS_PHYS_PROP_PLANE_PT
Definition: cs_physical_properties.h:43
@ CS_PHYS_PROP_PLANE_PV
Definition: cs_physical_properties.h:46
@ CS_PHYS_PROP_PLANE_PH
Definition: cs_physical_properties.h:42
@ CS_PHYS_PROP_PLANE_PU
Definition: cs_physical_properties.h:45
void cs_physical_property_define_from_value(const char *name, const char *zname, const int dim, const cs_real_t val)
Add a property definition on a given zone using a single value.
Definition: cs_physical_properties.c:1102
cs_real_t cs_physical_property_get_ref_value(const char *name)
Get reference value of a physical property.
Definition: cs_physical_properties.c:983
void cs_thermal_table_set(const char *material, const char *method, const char *reference, cs_phys_prop_thermo_plane_type_t thermo_plane, int temp_scale)
Define thermal table.
Definition: cs_physical_properties.c:309
void cs_physical_property_define_from_field(const char *name, int type_flag, int location_id, int dim, bool has_previous)
Add a property definition based on a cs_field_t.
Definition: cs_physical_properties.c:1178
void cs_physical_property_get_zone_values(const char *name, const char *zname, cs_real_t retval[])
Get property reference values for a given zone.
Definition: cs_physical_properties.c:1030
void cs_physical_property_create(const char *name, const int dim, const cs_real_t refval)
Create a physical property.
Definition: cs_physical_properties.c:1083
cs_phys_prop_type_t
Definition: cs_physical_properties.h:52
@ CS_PHYS_PROP_THERMAL_CONDUCTIVITY
Definition: cs_physical_properties.h:64
@ CS_PHYS_PROP_SPECIFIC_VOLUME
Definition: cs_physical_properties.h:60
@ CS_PHYS_PROP_TEMPERATURE
Definition: cs_physical_properties.h:55
@ CS_PHYS_PROP_PRESSURE
Definition: cs_physical_properties.h:54
@ CS_PHYS_PROP_ISOCHORIC_HEAT_CAPACITY
Definition: cs_physical_properties.h:59
@ CS_PHYS_PROP_INTERNAL_ENERGY
Definition: cs_physical_properties.h:62
@ CS_PHYS_PROP_QUALITY
Definition: cs_physical_properties.h:63
@ CS_PHYS_PROP_DENSITY
Definition: cs_physical_properties.h:61
@ CS_PHYS_PROP_ENTHALPY
Definition: cs_physical_properties.h:56
@ CS_PHYS_PROP_SPEED_OF_SOUND
Definition: cs_physical_properties.h:66
@ CS_PHYS_PROP_ISOBARIC_HEAT_CAPACITY
Definition: cs_physical_properties.h:58
@ CS_PHYS_PROP_ENTROPY
Definition: cs_physical_properties.h:57
@ CS_PHYS_PROP_DYNAMIC_VISCOSITY
Definition: cs_physical_properties.h:65
int cs_physical_property_field_id_by_name(const char *name)
Return id of field associated to property.
Definition: cs_physical_properties.c:1206
const char * cs_physical_properties_get_coolprop_backend(void)
Get backend set for CoolProp.
Definition: cs_physical_properties.c:458
void cs_thermal_table_finalize(void)
finalize thermal table.
Definition: cs_physical_properties.c:407