9.2
general documentation
cs_thermal_system.h
Go to the documentation of this file.
1#ifndef CS_THERMAL_SYSTEM_H
2#define CS_THERMAL_SYSTEM_H
3
4/*============================================================================
5 * Functions to handle cs_thermal_system_t structure
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2026 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 * Local headers
30 *----------------------------------------------------------------------------*/
31
32#include "base/cs_field.h"
33#include "base/cs_time_step.h"
35#include "cdo/cs_equation.h"
36#include "cdo/cs_property.h"
37#include "cdo/cs_source_term.h"
38#include "cdo/cs_xdef.h"
39#include "mesh/cs_mesh.h"
40
41/*============================================================================
42 * Macro definitions
43 *============================================================================*/
44
45/* Generic name given to fields and equations related to this module */
46
47#define CS_THERMAL_EQNAME "thermal_equation"
48#define CS_THERMAL_CP_NAME "thermal_capacity"
49#define CS_THERMAL_LAMBDA_NAME "thermal_conductivity"
50
62#define CS_THERMAL_POST_ENTHALPY (1 << 0) /* 1 */
63
68/*=============================================================================
69 * Structure and type definitions
70 *============================================================================*/
71
73
105typedef enum {
106
107 CS_THERMAL_MODEL_STEADY = 1<<0, /* = 1 */
109
110 /* Physical model associated with the thermal system */
111
112 CS_THERMAL_MODEL_NAVSTO = 1<<2, /* = 4 */
113
114 /* Main variable to consider (by default the temperature in Kelvin)
115 ---------------------------------------------------------------- */
116
120
121 /* Treatment of the diffusion term
122 ------------------------------- */
123
125
126 /* Additional bit settings
127 ----------------------- */
128
129 CS_THERMAL_MODEL_IN_CELSIUS = 1<<7 /* = 128 */
130
132
133/* Set of parameters related to the thermal module */
134
135typedef struct {
136
137 cs_flag_t model; /* Choice of modelling */
138 cs_flag_t numeric; /* General numerical options */
139 cs_flag_t post; /* Post-processing options */
140
141 /* Equation associated to this module */
142 /* ---------------------------------- */
143
145
146 /* Properties associated to this module */
147 /* ------------------------------------ */
148
149 cs_property_t *unsteady_property; /* Property of the unsteady term: rho.cp */
150 cs_property_t *lambda; /* Thermal conductivity */
151 cs_property_t *cp; /* Heat capacity */
152 cs_property_t *rho; /* Mass density (may be shared) */
153 cs_property_t *kappa; /* lambda/cp may be null*/
154
155 /* value of lambda/cp in each cell (allocated if the related property kappa
156 * is non-null and defined by array) */
158
159 /* Fields associated to this module */
160 /* -------------------------------- */
161
165
166 /* Additional members */
167 /* ------------------ */
168
170
171 /* N.B.: Other reference values for properties are stored within each
172 * property structure */
173
175
176/*============================================================================
177 * Public function prototypes
178 *============================================================================*/
179
180/*----------------------------------------------------------------------------*/
187/*----------------------------------------------------------------------------*/
188
191
192/*----------------------------------------------------------------------------*/
199/*----------------------------------------------------------------------------*/
200
201void
203
204/*----------------------------------------------------------------------------*/
210/*----------------------------------------------------------------------------*/
211
214
215/*----------------------------------------------------------------------------*/
222/*----------------------------------------------------------------------------*/
223
224bool
226
227/*----------------------------------------------------------------------------*/
233/*----------------------------------------------------------------------------*/
234
235bool
237
238/*----------------------------------------------------------------------------*/
248/*----------------------------------------------------------------------------*/
249
252 cs_flag_t numeric,
253 cs_flag_t post);
254
255/*----------------------------------------------------------------------------*/
259/*----------------------------------------------------------------------------*/
260
261void
263
264/*----------------------------------------------------------------------------*/
268/*----------------------------------------------------------------------------*/
269
272
273/*----------------------------------------------------------------------------*/
279/*----------------------------------------------------------------------------*/
280
281cs_real_t *
283
284/*----------------------------------------------------------------------------*/
290/*----------------------------------------------------------------------------*/
291
292void
294
295/*----------------------------------------------------------------------------*/
303/*----------------------------------------------------------------------------*/
304
305void
307 const cs_cdo_quantities_t *quant,
308 const cs_time_step_t *time_step);
309
310/*----------------------------------------------------------------------------*/
319/*----------------------------------------------------------------------------*/
320
321void
323 const cs_cdo_connect_t *connect,
324 const cs_cdo_quantities_t *quant,
325 const cs_time_step_t *time_step);
326
327/*----------------------------------------------------------------------------*/
337/*----------------------------------------------------------------------------*/
338
339void
340cs_thermal_system_compute(bool cur2prev,
341 const cs_mesh_t *mesh,
342 const cs_cdo_connect_t *connect,
343 const cs_cdo_quantities_t *quant,
344 const cs_time_step_t *time_step);
345
346/*----------------------------------------------------------------------------*/
356/*----------------------------------------------------------------------------*/
357
358void
360 const cs_cdo_connect_t *connect,
361 const cs_cdo_quantities_t *quant,
362 const cs_time_step_t *ts);
363
364/*----------------------------------------------------------------------------*/
374/*----------------------------------------------------------------------------*/
375
376void
378 const cs_cdo_connect_t *connect,
379 const cs_cdo_quantities_t *quant,
380 const cs_time_step_t *ts,
381 bool cur2prev);
382
383/*----------------------------------------------------------------------------*/
390/*----------------------------------------------------------------------------*/
391
392void
394 const cs_cdo_quantities_t *cdoq);
395
396/*----------------------------------------------------------------------------*/
418/*----------------------------------------------------------------------------*/
419
420void
422 int mesh_id,
423 int cat_id,
424 int ent_flag[5],
425 cs_lnum_t n_cells,
426 cs_lnum_t n_i_faces,
427 cs_lnum_t n_b_faces,
428 const cs_lnum_t cell_ids[],
429 const cs_lnum_t i_face_ids[],
430 const cs_lnum_t b_face_ids[],
431 const cs_time_step_t *time_step);
432
433/*----------------------------------------------------------------------------*/
437/*----------------------------------------------------------------------------*/
438
439void
441
442/*----------------------------------------------------------------------------*/
446/*----------------------------------------------------------------------------*/
447
448void
450
451#endif /* CS_THERMAL_SYSTEM_H */
Field descriptor.
Definition: cs_field.h:275
time step descriptor
Definition: cs_time_step.h:60
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
unsigned short int cs_flag_t
Definition: cs_defs.h:334
void cs_thermal_system_compute_steady_state(const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step)
Build and solve a steady-state thermal system.
Definition: cs_thermal_system.cpp:661
void cs_thermal_system_destroy(void)
Free the main structure related to the thermal system.
Definition: cs_thermal_system.cpp:461
cs_real_t * cs_thermal_system_get_face_temperature(void)
Retrieve the current temperature at face values.
Definition: cs_thermal_system.cpp:510
void cs_thermal_system_extra_op(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq)
Predefined extra-operations for the thermal system.
Definition: cs_thermal_system.cpp:849
cs_flag_t cs_thermal_model_type_t
Definition: cs_thermal_system.h:72
cs_thermal_model_type_bit_t
Bit values for physical modelling related to thermal system.
Definition: cs_thermal_system.h:105
@ CS_THERMAL_MODEL_IN_CELSIUS
Definition: cs_thermal_system.h:129
@ CS_THERMAL_MODEL_ADVECTION
Definition: cs_thermal_system.h:108
@ CS_THERMAL_MODEL_STEADY
Definition: cs_thermal_system.h:107
@ CS_THERMAL_MODEL_USE_TOTAL_ENERGY
Definition: cs_thermal_system.h:119
@ CS_THERMAL_MODEL_ANISOTROPIC_CONDUCTIVITY
Definition: cs_thermal_system.h:124
@ CS_THERMAL_MODEL_NAVSTO
Definition: cs_thermal_system.h:112
@ CS_THERMAL_MODEL_USE_TEMPERATURE
Definition: cs_thermal_system.h:117
@ CS_THERMAL_MODEL_USE_ENTHALPY
Definition: cs_thermal_system.h:118
void cs_thermal_system_update(const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *ts, bool cur2prev)
Update the quantities related to the thermal module.
Definition: cs_thermal_system.cpp:819
cs_thermal_system_t * cs_thermal_system_activate(cs_flag_t model, cs_flag_t numeric, cs_flag_t post)
Allocate and initialize the thermal system.
Definition: cs_thermal_system.cpp:290
bool cs_thermal_system_is_activated(void)
Check if the resolution of the thermal system has been activated.
Definition: cs_thermal_system.cpp:269
void cs_thermal_system_log_setup(void)
Summary of the main options related to cs_thermal_system_t structure.
Definition: cs_thermal_system.cpp:922
void cs_thermal_system_set_reference_temperature(cs_real_t ref)
Set the value of the reference temperature associated to the thermal system.
Definition: cs_thermal_system.cpp:208
void cs_thermal_system_init_values(const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *ts)
Set an initial values for all quantities related to this module This is done after the setup step.
Definition: cs_thermal_system.cpp:787
cs_real_t cs_thermal_system_get_reference_temperature(void)
Retrieve the value of the reference temperature associated to a thermal system.
Definition: cs_thermal_system.cpp:184
bool cs_thermal_system_needs_navsto(void)
Does the thermal system rely on the advection field associated to the Navier-Stokes equations ?
Definition: cs_thermal_system.cpp:249
void cs_thermal_system_extra_post(void *input, int mesh_id, int cat_id, int ent_flag[5], cs_lnum_t n_cells, cs_lnum_t n_i_faces, cs_lnum_t n_b_faces, const cs_lnum_t cell_ids[], const cs_lnum_t i_face_ids[], const cs_lnum_t b_face_ids[], const cs_time_step_t *time_step)
Predefined post-processing output for the thermal system. The prototype of this function is fixed sin...
Definition: cs_thermal_system.cpp:886
void cs_thermal_system_finalize_setup(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step)
Last step of the setup of the thermal system.
Definition: cs_thermal_system.cpp:632
void cs_thermal_system_cht_boundary_conditions_setup(void)
Initialize structures and/or boundary conditions used for CHT coupling.
Definition: cs_thermal_system.cpp:965
void cs_thermal_system_compute(bool cur2prev, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step)
Build and solve the thermal system.
Definition: cs_thermal_system.cpp:697
void cs_thermal_system_init_setup(void)
Start setting-up the thermal system At this stage, numerical settings should be completely determined...
Definition: cs_thermal_system.cpp:542
cs_flag_t cs_thermal_system_get_model(void)
Retrieve the model flag related to a thermal system.
Definition: cs_thermal_system.cpp:231
cs_equation_t * cs_thermal_system_get_equation(void)
Retrieve the main equation related to the thermal system.
Definition: cs_thermal_system.cpp:491
Definition: mesh.f90:26
Definition: cs_cdo_connect.h:57
Definition: cs_cdo_quantities.h:142
Main structure to handle the discretization and the resolution of an equation.
Definition: cs_mesh.h:85
Structure associated to the definition of a property relying on the cs_xdef_t structure.
Definition: cs_thermal_system.h:135
cs_field_t * total_energy
Definition: cs_thermal_system.h:164
cs_flag_t numeric
Definition: cs_thermal_system.h:138
cs_field_t * enthalpy
Definition: cs_thermal_system.h:163
cs_real_t ref_temperature
Definition: cs_thermal_system.h:169
cs_equation_t * thermal_eq
Definition: cs_thermal_system.h:144
cs_flag_t post
Definition: cs_thermal_system.h:139
cs_property_t * unsteady_property
Definition: cs_thermal_system.h:149
cs_field_t * temperature
Definition: cs_thermal_system.h:162
cs_property_t * rho
Definition: cs_thermal_system.h:152
cs_property_t * lambda
Definition: cs_thermal_system.h:150
cs_flag_t model
Definition: cs_thermal_system.h:137
cs_real_t * kappa_array
Definition: cs_thermal_system.h:157
cs_property_t * kappa
Definition: cs_thermal_system.h:153
cs_property_t * cp
Definition: cs_thermal_system.h:151