9.2
general documentation
cs_rad_transfer.h
Go to the documentation of this file.
1#ifndef CS_RAD_TRANSFER_H
2#define CS_RAD_TRANSFER_H
3
4/*============================================================================
5 * Radiation solver operations.
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
30/*----------------------------------------------------------------------------
31 * Local headers
32 *----------------------------------------------------------------------------*/
33
34#include "base/cs_defs.h"
35
37
38/*=============================================================================
39 * Local Macro definitions
40 *============================================================================*/
41
42/*============================================================================
43 * Type definition
44 *============================================================================*/
45
46/* Radiative transfer model type */
47
48typedef enum {
49
50 CS_RAD_TRANSFER_NONE = 0, /* Set a value to avoid compilation warnings */
53
55
56/* Quadrature types */
57
58typedef enum {
59
68
70
71/* Radiative transfer model boundary condition type.
72 We use a naming similar to that of cs_boundary.h here, to ease
73 later migration. */
74
75enum {
76
79
82
86
92
96
100
101};
102
103/* Radiative transfer model type for atmospheric module */
104
105enum {
106
108 CS_RAD_ATMO_3D_DIRECT_SOLAR = 1 << 0,/* Solar IR band (SIR) absobed by H2O */
109 CS_RAD_ATMO_3D_DIRECT_SOLAR_O3BAND = 1 << 1, /* UV-visible band (SUV)
110 absobed by H2O */
111 CS_RAD_ATMO_3D_DIFFUSE_SOLAR = 1 << 2,/* Solar IR band (SIR) absobed by H2O */
112 CS_RAD_ATMO_3D_DIFFUSE_SOLAR_O3BAND = 1 << 3, /* UV-visible band (SUV)
113 absobed by H2O */
115
117
118/*============================================================================
119 * Global variables
120 *============================================================================*/
121
123extern const char *cs_rad_transfer_model_name[];
124
126extern const char *cs_rad_transfer_quadrature_name[];
127
128typedef struct {
129
135 int imgrey;
138 int imoadf;
143 int imfsck;
145 double xnp1mx;
146 int idiver;
155 int ndirs;
159 int nwsgg;
168
204 bool save_radiance_dir; /* Option to save radiance for all
205 directions. This increase the storage
206 but save some times because calculations
207 are not initialized to 0.
208 This is mandatory for atmospheric
209 because diffusion process induce
210 redistribution from one direction to
211 another*/
212 cs_time_control_t time_control; /* Time control for radiation updates */
213
214
216
218
219/*=============================================================================
220 * Public function prototypes
221 *============================================================================*/
222
223/*----------------------------------------------------------------------------*/
227/*----------------------------------------------------------------------------*/
228
229void
231
232/*----------------------------------------------------------------------------*/
238/*----------------------------------------------------------------------------*/
239
240extern "C" bool
242
243/*----------------------------------------------------------------------------*/
244
245#endif /* CS_RAD_TRANSFER_H */
Definition: cs_time_control.h:92
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:349
@ CS_BOUNDARY_RAD_WALL_GRAY_1D_T
Definition: cs_rad_transfer.h:81
@ CS_BOUNDARY_RAD_WALL_GRAY_EXTERIOR_T
Definition: cs_rad_transfer.h:85
@ CS_BOUNDARY_RAD_WALL_GRAY
Definition: cs_rad_transfer.h:78
@ CS_BOUNDARY_RAD_WALL_GRAY_COND_FLUX
Definition: cs_rad_transfer.h:95
@ CS_BOUNDARY_RAD_WALL_REFL_COND_FLUX
Definition: cs_rad_transfer.h:99
@ CS_BOUNDARY_RAD_WALL_REFL_EXTERIOR_T
Definition: cs_rad_transfer.h:91
void cs_rad_transfer_finalize(void)
Finalize radiative transfer module.
Definition: cs_rad_transfer.cpp:300
cs_rad_quadrature_type_t
Definition: cs_rad_transfer.h:58
@ CS_RAD_QUADRATURE_DCT020_2468
Definition: cs_rad_transfer.h:67
@ CS_RAD_QUADRATURE_T4
Definition: cs_rad_transfer.h:64
@ CS_RAD_QUADRATURE_S8
Definition: cs_rad_transfer.h:62
@ CS_RAD_QUADRATURE_LC11
Definition: cs_rad_transfer.h:66
@ CS_RAD_QUADRATURE_S4
Definition: cs_rad_transfer.h:60
@ CS_RAD_QUADRATURE_T2
Definition: cs_rad_transfer.h:63
@ CS_RAD_QUADRATURE_TN
Definition: cs_rad_transfer.h:65
@ CS_RAD_QUADRATURE_S6
Definition: cs_rad_transfer.h:61
@ CS_RAD_ATMO_3D_DIFFUSE_SOLAR
Definition: cs_rad_transfer.h:111
@ CS_RAD_ATMO_3D_DIFFUSE_SOLAR_O3BAND
Definition: cs_rad_transfer.h:112
@ CS_RAD_ATMO_3D_INFRARED
Definition: cs_rad_transfer.h:114
@ CS_RAD_ATMO_3D_NONE
Definition: cs_rad_transfer.h:107
@ CS_RAD_ATMO_3D_DIRECT_SOLAR
Definition: cs_rad_transfer.h:108
@ CS_RAD_ATMO_3D_DIRECT_SOLAR_O3BAND
Definition: cs_rad_transfer.h:109
cs_rad_transfer_params_t * cs_glob_rad_transfer_params
cs_rad_transfer_model_t
Definition: cs_rad_transfer.h:48
@ CS_RAD_TRANSFER_P1
Definition: cs_rad_transfer.h:52
@ CS_RAD_TRANSFER_NONE
Definition: cs_rad_transfer.h:50
@ CS_RAD_TRANSFER_DOM
Definition: cs_rad_transfer.h:51
const char * cs_rad_transfer_quadrature_name[]
bool cs_rad_time_is_active(void)
Is time step for radiative transfer active?
Definition: cs_rad_transfer.cpp:316
const char * cs_rad_transfer_model_name[]
Structure containing the radiation module parameters.
Definition: cs_rad_transfer.h:128
int restart
Definition: cs_rad_transfer.h:158
int imfsck
Definition: cs_rad_transfer.h:143
int atmo_dr_o3_id
Definition: cs_rad_transfer.h:177
int i_quadrature
Definition: cs_rad_transfer.h:153
bool save_radiance_dir
Definition: cs_rad_transfer.h:204
int imrcfsk
Definition: cs_rad_transfer.h:144
int idiver
Definition: cs_rad_transfer.h:146
int ndirs
Definition: cs_rad_transfer.h:155
int iprefl
Definition: cs_rad_transfer.h:163
int nwsgg
Definition: cs_rad_transfer.h:159
int iimpar
Definition: cs_rad_transfer.h:133
int imgrey
Definition: cs_rad_transfer.h:135
int atmo_df_o3_id
Definition: cs_rad_transfer.h:185
cs_real_3_t * vect_s
Definition: cs_rad_transfer.h:156
cs_time_control_t time_control
Definition: cs_rad_transfer.h:212
int ifinfe
Definition: cs_rad_transfer.h:167
int nrphas
Definition: cs_rad_transfer.h:132
cs_real_t * angsol
Definition: cs_rad_transfer.h:157
int ifgrno
Definition: cs_rad_transfer.h:164
int atmo_model
Definition: cs_rad_transfer.h:169
int iwrp1t
Definition: cs_rad_transfer.h:142
double xnp1mx
Definition: cs_rad_transfer.h:145
int verbosity
Definition: cs_rad_transfer.h:134
cs_real_t * wq
Definition: cs_rad_transfer.h:160
int atmo_dr_id
Definition: cs_rad_transfer.h:173
int ifrefl
Definition: cs_rad_transfer.h:165
int itpimp
Definition: cs_rad_transfer.h:161
int ndirec
Definition: cs_rad_transfer.h:154
cs_real_t dispersion_coeff
Definition: cs_rad_transfer.h:194
bool dispersion
Definition: cs_rad_transfer.h:193
int itpt1d
Definition: cs_rad_transfer.h:166
int atmo_df_id
Definition: cs_rad_transfer.h:181
cs_rad_transfer_model_t type
Definition: cs_rad_transfer.h:130
int atmo_ir_id
Definition: cs_rad_transfer.h:189
int imoadf
Definition: cs_rad_transfer.h:138
int ipgrno
Definition: cs_rad_transfer.h:162