9.1
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-2025 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
41
42/*=============================================================================
43 * Local Macro definitions
44 *============================================================================*/
45
46/*============================================================================
47 * Type definition
48 *============================================================================*/
49
50/* Radiative transfer model type */
51
52typedef enum {
53
54 CS_RAD_TRANSFER_NONE = 0, /* Set a value to avoid compilation warnings */
57
59
60/* Quadrature types */
61
62typedef enum {
63
72
74
75/* Radiative transfer model boundary condition type.
76 We use a naming similar to that of cs_boundary.h here, to ease
77 later migration. */
78
79enum {
80
83
86
90
96
100
104
105};
106
107/* Radiative transfer model type for atmospheric module */
108
109enum {
110
112 CS_RAD_ATMO_3D_DIRECT_SOLAR = 1 << 0,/* Solar IR band (SIR) absobed by H2O */
113 CS_RAD_ATMO_3D_DIRECT_SOLAR_O3BAND = 1 << 1, /* UV-visible band (SUV)
114 absobed by H2O */
115 CS_RAD_ATMO_3D_DIFFUSE_SOLAR = 1 << 2,/* Solar IR band (SIR) absobed by H2O */
116 CS_RAD_ATMO_3D_DIFFUSE_SOLAR_O3BAND = 1 << 3, /* UV-visible band (SUV)
117 absobed by H2O */
119
121
122/*============================================================================
123 * Global variables
124 *============================================================================*/
125
127extern const char *cs_rad_transfer_model_name[];
128
130extern const char *cs_rad_transfer_quadrature_name[];
131
132typedef struct {
133
139 int imgrey;
142 int imoadf;
147 int imfsck;
149 double xnp1mx;
150 int idiver;
159 int ndirs;
163 int nwsgg;
172
208 bool save_radiance_dir; /* Option to save radiance for all
209 directions. This increase the storage
210 but save some times because calculations
211 are not initialized to 0.
212 This is mandatory for atmospheric
213 because diffusion process induce
214 redistribution from one direction to
215 another*/
216 cs_time_control_t time_control; /* Time control for radiation updates */
217
218
220
222
223/*=============================================================================
224 * Public function prototypes
225 *============================================================================*/
226
227/*----------------------------------------------------------------------------*/
231/*----------------------------------------------------------------------------*/
232
233void
235
236/*----------------------------------------------------------------------------*/
242/*----------------------------------------------------------------------------*/
243
244bool
246
247/*----------------------------------------------------------------------------*/
248
250
251#endif /* __CS_RAD_TRANSFER_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:554
double cs_real_t
Floating-point value.
Definition: cs_defs.h:357
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:374
#define END_C_DECLS
Definition: cs_defs.h:555
@ CS_BOUNDARY_RAD_WALL_GRAY_1D_T
Definition: cs_rad_transfer.h:85
@ CS_BOUNDARY_RAD_WALL_GRAY_EXTERIOR_T
Definition: cs_rad_transfer.h:89
@ CS_BOUNDARY_RAD_WALL_GRAY
Definition: cs_rad_transfer.h:82
@ CS_BOUNDARY_RAD_WALL_GRAY_COND_FLUX
Definition: cs_rad_transfer.h:99
@ CS_BOUNDARY_RAD_WALL_REFL_COND_FLUX
Definition: cs_rad_transfer.h:103
@ CS_BOUNDARY_RAD_WALL_REFL_EXTERIOR_T
Definition: cs_rad_transfer.h:95
void cs_rad_transfer_finalize(void)
Finalize radiative transfer module.
Definition: cs_rad_transfer.cpp:322
cs_rad_quadrature_type_t
Definition: cs_rad_transfer.h:62
@ CS_RAD_QUADRATURE_DCT020_2468
Definition: cs_rad_transfer.h:71
@ CS_RAD_QUADRATURE_T4
Definition: cs_rad_transfer.h:68
@ CS_RAD_QUADRATURE_S8
Definition: cs_rad_transfer.h:66
@ CS_RAD_QUADRATURE_LC11
Definition: cs_rad_transfer.h:70
@ CS_RAD_QUADRATURE_S4
Definition: cs_rad_transfer.h:64
@ CS_RAD_QUADRATURE_T2
Definition: cs_rad_transfer.h:67
@ CS_RAD_QUADRATURE_TN
Definition: cs_rad_transfer.h:69
@ CS_RAD_QUADRATURE_S6
Definition: cs_rad_transfer.h:65
cs_rad_transfer_params_t * cs_glob_rad_transfer_params
@ CS_RAD_ATMO_3D_DIFFUSE_SOLAR
Definition: cs_rad_transfer.h:115
@ CS_RAD_ATMO_3D_DIFFUSE_SOLAR_O3BAND
Definition: cs_rad_transfer.h:116
@ CS_RAD_ATMO_3D_INFRARED
Definition: cs_rad_transfer.h:118
@ CS_RAD_ATMO_3D_NONE
Definition: cs_rad_transfer.h:111
@ CS_RAD_ATMO_3D_DIRECT_SOLAR
Definition: cs_rad_transfer.h:112
@ CS_RAD_ATMO_3D_DIRECT_SOLAR_O3BAND
Definition: cs_rad_transfer.h:113
cs_rad_transfer_model_t
Definition: cs_rad_transfer.h:52
@ CS_RAD_TRANSFER_P1
Definition: cs_rad_transfer.h:56
@ CS_RAD_TRANSFER_NONE
Definition: cs_rad_transfer.h:54
@ CS_RAD_TRANSFER_DOM
Definition: cs_rad_transfer.h:55
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:338
const char * cs_rad_transfer_model_name[]
Structure containing the radiation module parameters.
Definition: cs_rad_transfer.h:132
int restart
Definition: cs_rad_transfer.h:162
int imfsck
Definition: cs_rad_transfer.h:147
int atmo_dr_o3_id
Definition: cs_rad_transfer.h:181
int i_quadrature
Definition: cs_rad_transfer.h:157
bool save_radiance_dir
Definition: cs_rad_transfer.h:208
int imrcfsk
Definition: cs_rad_transfer.h:148
int idiver
Definition: cs_rad_transfer.h:150
int ndirs
Definition: cs_rad_transfer.h:159
int iprefl
Definition: cs_rad_transfer.h:167
int nwsgg
Definition: cs_rad_transfer.h:163
int iimpar
Definition: cs_rad_transfer.h:137
int imgrey
Definition: cs_rad_transfer.h:139
int atmo_df_o3_id
Definition: cs_rad_transfer.h:189
cs_real_3_t * vect_s
Definition: cs_rad_transfer.h:160
cs_time_control_t time_control
Definition: cs_rad_transfer.h:216
int ifinfe
Definition: cs_rad_transfer.h:171
int nrphas
Definition: cs_rad_transfer.h:136
cs_real_t * angsol
Definition: cs_rad_transfer.h:161
int ifgrno
Definition: cs_rad_transfer.h:168
int atmo_model
Definition: cs_rad_transfer.h:173
int iwrp1t
Definition: cs_rad_transfer.h:146
double xnp1mx
Definition: cs_rad_transfer.h:149
int verbosity
Definition: cs_rad_transfer.h:138
cs_real_t * wq
Definition: cs_rad_transfer.h:164
int atmo_dr_id
Definition: cs_rad_transfer.h:177
int ifrefl
Definition: cs_rad_transfer.h:169
int itpimp
Definition: cs_rad_transfer.h:165
int ndirec
Definition: cs_rad_transfer.h:158
cs_real_t dispersion_coeff
Definition: cs_rad_transfer.h:198
bool dispersion
Definition: cs_rad_transfer.h:197
int itpt1d
Definition: cs_rad_transfer.h:170
int atmo_df_id
Definition: cs_rad_transfer.h:185
cs_rad_transfer_model_t type
Definition: cs_rad_transfer.h:134
int atmo_ir_id
Definition: cs_rad_transfer.h:193
int imoadf
Definition: cs_rad_transfer.h:142
int ipgrno
Definition: cs_rad_transfer.h:166
Definition: cs_time_control.h:96