9.2
general documentation
cs_mobile_structures.h
Go to the documentation of this file.
1#ifndef CS_MOBILE_STRUCTURES_H
2#define CS_MOBILE_STRUCTURES_H
3
4/*============================================================================
5 * Mobile structures management.
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
36#include "base/cs_restart.h"
38#include "base/cs_time_plot.h"
39
40/*----------------------------------------------------------------------------*/
41
42/* Bit values for mobile boundary
43 ----------------------------- */
44
45typedef enum {
46 CS_STRUCTURE_NONE = 1 << 0, /* No structure*/
51
53/*-------------------------*/
54
55typedef struct {
56
57 /* Base structure definitions and input */
58
76 /* Output (plotting) control */
77
78 int plot;
87 /* Computed structure values */
88
109 /* Association with mesh */
110
111 int *idfstr;
113 cs_mobile_structure_type_t *idftype; /* structure type associated to each
114 * boundary face */
115
116 /* Plotting */
117
120 cs_time_plot_t **plot_files[2];
123
124/*=============================================================================
125 * Macro definitions
126 *============================================================================*/
127
128/*============================================================================
129 * Type definitions
130 *============================================================================*/
131
132/*============================================================================
133 * Global variables
134 *============================================================================*/
135
138
141
143
144/*=============================================================================
145 * Public function prototypes
146 *============================================================================*/
147
148/*----------------------------------------------------------------------------*/
152/*----------------------------------------------------------------------------*/
153
154void
156
157/*----------------------------------------------------------------------------*/
161/*----------------------------------------------------------------------------*/
162
163void
165
166/*----------------------------------------------------------------------------*/
170/*----------------------------------------------------------------------------*/
171
172void
174
175/*----------------------------------------------------------------------------*/
179/*----------------------------------------------------------------------------*/
180
181void
183
184/*----------------------------------------------------------------------------*/
190/*----------------------------------------------------------------------------*/
191
192int
194
195/*----------------------------------------------------------------------------*/
201/*----------------------------------------------------------------------------*/
202
203int
205
206/*----------------------------------------------------------------------------*/
212/*----------------------------------------------------------------------------*/
213
214int
216
217/*----------------------------------------------------------------------------*/
226/*----------------------------------------------------------------------------*/
227
228void
229cs_mobile_structures_add_n_int_structures(const int n_structures);
230
231/*----------------------------------------------------------------------------*/
240/*----------------------------------------------------------------------------*/
241
242void
243cs_mobile_structures_add_n_ext_structures(const int n_structures);
244
245/*----------------------------------------------------------------------------*/
254/*----------------------------------------------------------------------------*/
255
256void
257cs_mobile_structures_add_n_ast_structures(const int n_structures);
258
259/*----------------------------------------------------------------------------*/
267/*----------------------------------------------------------------------------*/
268
269void
271 cs_real_t beta,
273
274/*----------------------------------------------------------------------------*/
275/*
276 * \brief Predict displacement of mobile structures with ALE.
277 *
278 * \param[in] itrfin indicator for last iteration of implicit coupling
279 */
280/*----------------------------------------------------------------------------*/
281
282void
284
285/*----------------------------------------------------------------------------*/
295/*----------------------------------------------------------------------------*/
296
297void
299 int itrale,
300 int italim,
301 int ineefl,
302 int impale[]);
303
304/*----------------------------------------------------------------------------*/
312/*----------------------------------------------------------------------------*/
313
314void
316 int italim,
317 int *itrfin);
318
319/*----------------------------------------------------------------------------*/
325/*----------------------------------------------------------------------------*/
326
327void
329
330/*----------------------------------------------------------------------------*/
336/*----------------------------------------------------------------------------*/
337
338void
340
341/*----------------------------------------------------------------------------*/
342
343#endif /* CS_MOBILE_STRUCTURES_H */
Field boundary condition descriptor (for variables)
Definition: cs_field.h:107
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_real_t cs_real_33_t[3][3]
3x3 matrix of floating-point values
Definition: cs_defs.h:358
@ gamma
Definition: cs_field_pointer.h:197
cs_mobile_structures_t * _mobile_structures
void cs_mobile_structures_initialize(void)
Initialize mobile structures with ALE for internal coupling.
Definition: cs_mobile_structures.cpp:715
void cs_mobile_structures_log_setup(void)
Log structures and coupling information.
Definition: cs_mobile_structures.cpp:885
void cs_mobile_structures_displacement(int itrale, int italim, int *itrfin)
Displacement of mobile structures with ALE for internal coupling.
Definition: cs_mobile_structures.cpp:1543
int cs_mobile_structures_get_n_ext_structures(void)
Query number of external mobile structures defined.
Definition: cs_mobile_structures.cpp:1041
void cs_mobile_structures_finalize(void)
Finalize mobile structures with ALE for internal coupling.
Definition: cs_mobile_structures.cpp:869
int cs_mobile_structures_get_n_ast_structures(void)
Query number of aster mobile structures defined.
Definition: cs_mobile_structures.cpp:1061
void cs_mobile_structures_restart_write(cs_restart_t *r)
Write mobile structures data to checkpoint.
Definition: cs_mobile_structures.cpp:1943
double cs_glob_mobile_structures_i_eps
void cs_mobile_structures_restart_read(cs_restart_t *r)
Read mobile structures data to checkpoint.
Definition: cs_mobile_structures.cpp:1813
cs_mobile_structure_type_t
Definition: cs_mobile_structures.h:45
@ CS_STRUCTURE_EXTERNAL_USER
Definition: cs_mobile_structures.h:49
@ CS_STRUCTURE_NONE
Definition: cs_mobile_structures.h:46
@ CS_STRUCTURE_INTERNAL_0D
Definition: cs_mobile_structures.h:47
@ CS_STRUCTURE_EXTERNAL_CODE_ASTER
Definition: cs_mobile_structures.h:48
void cs_mobile_structures_set_newmark_coefficients(cs_real_t alpha, cs_real_t beta, cs_real_t gamma)
Set Newmark coefficients for internal mobile structures.
Definition: cs_mobile_structures.cpp:1157
void cs_mobile_structures_restore_previous_values(int itrfin)
Restore previous values in case of implicit coupling.
Definition: cs_mobile_structures.cpp:1199
int cs_glob_mobile_structures_n_iter_max
void cs_mobile_structures_add_n_int_structures(const int n_structures)
Add internal mobile structures.
Definition: cs_mobile_structures.cpp:1084
int cs_mobile_structures_get_n_int_structures(void)
Query number of internal mobile structures defined.
Definition: cs_mobile_structures.cpp:1022
void cs_mobile_structures_add_n_ext_structures(const int n_structures)
Add external mobile structures.
Definition: cs_mobile_structures.cpp:1110
void cs_mobile_structures_add_n_ast_structures(const int n_structures)
Add aster mobile structures.
Definition: cs_mobile_structures.cpp:1134
void cs_mobile_structures_setup(void)
Initialize mobile structures with ALE for internal coupling.
Definition: cs_mobile_structures.cpp:660
void cs_mobile_structures_prediction(cs_field_bc_coeffs_t *bc_coeffs_vel, int itrale, int italim, int ineefl, int impale[])
Predict displacement of mobile structures with ALE.
Definition: cs_mobile_structures.cpp:1323
struct _cs_restart_t cs_restart_t
Definition: cs_restart.h:91
struct _cs_time_plot_t cs_time_plot_t
Definition: cs_time_plot.h:44
Definition: cs_mobile_structures.h:55
cs_real_3_t * xsta
Definition: cs_mobile_structures.h:91
cs_real_t aexxst
Definition: cs_mobile_structures.h:63
cs_real_33_t * xmstru
Definition: cs_mobile_structures.h:72
cs_real_t gamnmk
Definition: cs_mobile_structures.h:70
int plot
Definition: cs_mobile_structures.h:78
cs_real_t * dtsta
Definition: cs_mobile_structures.h:107
cs_real_3_t * xstr
Definition: cs_mobile_structures.h:89
cs_mobile_structure_type_t * idftype
Definition: cs_mobile_structures.h:113
cs_real_3_t * xstp
Definition: cs_mobile_structures.h:92
int n_ast_structs
Definition: cs_mobile_structures.h:61
cs_real_3_t * forsta
Definition: cs_mobile_structures.h:103
int n_plots
Definition: cs_mobile_structures.h:118
cs_real_3_t * forstr
Definition: cs_mobile_structures.h:102
cs_real_t * dtstr
Definition: cs_mobile_structures.h:106
int n_int_structs
Definition: cs_mobile_structures.h:59
cs_real_t bexxst
Definition: cs_mobile_structures.h:64
int * idfstr
Definition: cs_mobile_structures.h:111
int n_ext_structs
Definition: cs_mobile_structures.h:60
cs_real_33_t * xcstru
Definition: cs_mobile_structures.h:73
cs_real_3_t * xppsta
Definition: cs_mobile_structures.h:99
cs_time_control_t plot_time_control
Definition: cs_mobile_structures.h:84
cs_real_3_t * xpsta
Definition: cs_mobile_structures.h:96
cs_real_3_t * xstreq
Definition: cs_mobile_structures.h:93
cs_real_t alpnmk
Definition: cs_mobile_structures.h:68
cs_real_t cfopre
Definition: cs_mobile_structures.h:66
cs_real_t betnmk
Definition: cs_mobile_structures.h:69
cs_real_3_t * xpstr
Definition: cs_mobile_structures.h:95
cs_real_3_t * forstp
Definition: cs_mobile_structures.h:104
cs_real_3_t * xppstr
Definition: cs_mobile_structures.h:98
cs_real_33_t * xkstru
Definition: cs_mobile_structures.h:74
char * plot_dir_name
Definition: cs_mobile_structures.h:85