7.1
general documentation
cs_navsto_coupling.h
Go to the documentation of this file.
1 #ifndef __CS_NAVSTO_COUPLING_H__
2 #define __CS_NAVSTO_COUPLING_H__
3 
4 /*============================================================================
5  * Functions to handle structures used as a context when solving the
6  * Navier-Stokes equations. Structures are cast on-the-fly according to the
7  * type of coupling.
8  *============================================================================*/
9 
10 /*
11  This file is part of Code_Saturne, a general-purpose CFD tool.
12 
13  Copyright (C) 1998-2021 EDF S.A.
14 
15  This program is free software; you can redistribute it and/or modify it under
16  the terms of the GNU General Public License as published by the Free Software
17  Foundation; either version 2 of the License, or (at your option) any later
18  version.
19 
20  This program is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
22  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
23  details.
24 
25  You should have received a copy of the GNU General Public License along with
26  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
27  Street, Fifth Floor, Boston, MA 02110-1301, USA.
28 */
29 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_equation.h"
35 #include "cs_field.h"
36 #include "cs_navsto_param.h"
37 
38 /*----------------------------------------------------------------------------*/
39 
41 
42 /*============================================================================
43  * Macro definitions
44  *============================================================================*/
45 
46 /*============================================================================
47  * Type definitions
48  *============================================================================*/
49 
50 /* Predefined context structures depending on the settings */
51 /* ======================================================= */
52 
60 typedef struct {
61 
69 
71 
77 typedef struct {
78 
82 
90 typedef struct {
91 
101 
106 
112 
114 
115 /*============================================================================
116  * Public function prototypes
117  *============================================================================*/
118 
119 /*----------------------------------------------------------------------------*/
129 /*----------------------------------------------------------------------------*/
130 
131 void *
133  cs_navsto_param_t *nsp);
134 
135 /*----------------------------------------------------------------------------*/
144 /*----------------------------------------------------------------------------*/
145 
146 void *
147 cs_navsto_ac_free_context(void *context);
148 
149 /*----------------------------------------------------------------------------*/
159 /*----------------------------------------------------------------------------*/
160 
161 void
163  cs_adv_field_t *adv_field,
164  void *context);
165 
166 /*----------------------------------------------------------------------------*/
174 /*----------------------------------------------------------------------------*/
175 
176 void
178  void *context);
179 
180 /*----------------------------------------------------------------------------*/
189 /*----------------------------------------------------------------------------*/
190 
192 cs_navsto_ac_get_momentum_eq(void *context);
193 
194 /*----------------------------------------------------------------------------*/
204 /*----------------------------------------------------------------------------*/
205 
206 void *
208  cs_navsto_param_t *nsp);
209 
210 /*----------------------------------------------------------------------------*/
218 /*----------------------------------------------------------------------------*/
219 
220 void *
221 cs_navsto_monolithic_free_context(void *context);
222 
223 /*----------------------------------------------------------------------------*/
233 /*----------------------------------------------------------------------------*/
234 
235 void
237  cs_adv_field_t *adv_field,
238  void *context);
239 
240 /*----------------------------------------------------------------------------*/
248 /*----------------------------------------------------------------------------*/
249 
250 void
252  void *context);
253 /*----------------------------------------------------------------------------*/
262 /*----------------------------------------------------------------------------*/
263 
266 
267 /*----------------------------------------------------------------------------*/
278 /*----------------------------------------------------------------------------*/
279 
280 void *
282  cs_navsto_param_t *nsp);
283 
284 /*----------------------------------------------------------------------------*/
292 /*----------------------------------------------------------------------------*/
293 
294 void *
295 cs_navsto_projection_free_context(void *context);
296 
297 /*----------------------------------------------------------------------------*/
309 /*----------------------------------------------------------------------------*/
310 
311 void
313  cs_adv_field_t *adv_field,
314  int loc_id,
315  bool has_previous,
316  void *context);
317 
318 /*----------------------------------------------------------------------------*/
328 /*----------------------------------------------------------------------------*/
329 
330 void
332  const cs_navsto_param_t *nsp,
333  void *context);
334 
335 /*----------------------------------------------------------------------------*/
344 /*----------------------------------------------------------------------------*/
345 
348 
349 /*----------------------------------------------------------------------------*/
350 
352 
353 #endif /* __CS_NAVSTO_COUPLING_H__ */
Definition: cs_advection_field.h:149
cs_field_t * predicted_velocity
Definition: cs_navsto_coupling.h:111
Field descriptor.
Definition: cs_field.h:125
void cs_navsto_projection_init_setup(const cs_navsto_param_t *nsp, cs_adv_field_t *adv_field, int loc_id, bool has_previous, void *context)
Start setting-up the Navier-Stokes equations when a projection algorithm is used to coupled the syste...
Definition: cs_navsto_coupling.c:531
cs_property_t * zeta
Definition: cs_navsto_coupling.h:68
void cs_navsto_monolithic_last_setup(const cs_navsto_param_t *nsp, void *context)
Finalize the setup for the Navier-Stokes equations when a monolithic algorithm is used to coupled the...
Definition: cs_navsto_coupling.c:382
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
void * cs_navsto_ac_free_context(void *context)
Free the context structure related to an Artificial Compressibility approach.
Definition: cs_navsto_coupling.c:156
void * cs_navsto_monolithic_free_context(void *context)
Free the context structure related to a monolithic approach.
Definition: cs_navsto_coupling.c:319
cs_equation_t * cs_navsto_ac_get_momentum_eq(void *context)
Retrieve the pointer to the cs_equation_t structure related to the momentum equation in case of artif...
Definition: cs_navsto_coupling.c:252
cs_real_t * bdy_pressure_incr
Definition: cs_navsto_coupling.h:105
Structure storing the parameters related to the resolution of the Navier-Stokes system.
Definition: cs_navsto_param.h:605
void * cs_navsto_ac_create_context(cs_param_bc_type_t bc, cs_navsto_param_t *nsp)
Allocate and initialize a context structure when the Navier-Stokes system is coupled using an Artific...
Definition: cs_navsto_coupling.c:113
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
Definition: cs_cdo_quantities.h:129
cs_equation_t * cs_navsto_projection_get_momentum_eq(void *context)
Retrieve the pointer to the cs_equation_t structure related to the momentum equation in case of a pro...
Definition: cs_navsto_coupling.c:640
cs_equation_t * momentum
Definition: cs_navsto_coupling.h:79
cs_equation_t * correction
Definition: cs_navsto_coupling.h:94
void * cs_navsto_projection_free_context(void *context)
Free the context structure related to a Projection approach.
Definition: cs_navsto_coupling.c:504
void cs_navsto_ac_init_setup(const cs_navsto_param_t *nsp, cs_adv_field_t *adv_field, void *context)
Start setting-up the Navier-Stokes equations when an Artificial Compressibility algorithm is used to ...
Definition: cs_navsto_coupling.c:178
cs_equation_t * prediction
Definition: cs_navsto_coupling.h:92
Set of parameters specific for solving the Navier-Stokes system with an incremental projection algori...
Definition: cs_navsto_coupling.h:90
void cs_navsto_projection_last_setup(const cs_cdo_quantities_t *quant, const cs_navsto_param_t *nsp, void *context)
Finalize the setup for the Navier-Stokes equations when a projection algorithm is used to coupled the...
Definition: cs_navsto_coupling.c:586
cs_real_t * div_st
Definition: cs_navsto_coupling.h:100
cs_equation_t * momentum
Definition: cs_navsto_coupling.h:62
void cs_navsto_monolithic_init_setup(const cs_navsto_param_t *nsp, cs_adv_field_t *adv_field, void *context)
Start setting-up the Navier-Stokes equations when a monolithic algorithm is used to coupled the syste...
Definition: cs_navsto_coupling.c:341
#define END_C_DECLS
Definition: cs_defs.h:511
cs_param_bc_type_t
Definition: cs_param_types.h:439
Main structure to handle the discretization and the resolution of an equation.
void cs_navsto_ac_last_setup(const cs_navsto_param_t *nsp, void *context)
Finalize the setup for the Navier-Stokes equations when an Artificial Compressibility algorithm is us...
Definition: cs_navsto_coupling.c:217
void * cs_navsto_projection_create_context(cs_param_bc_type_t bc, cs_navsto_param_t *nsp)
Allocate and initialize a context structure when the Navier-Stokes system is coupled using an increme...
Definition: cs_navsto_coupling.c:437
cs_equation_t * cs_navsto_monolithic_get_momentum_eq(void *context)
Retrieve the pointer to the cs_equation_t structure related to the momentum equation in case of a mon...
Definition: cs_navsto_coupling.c:413
Structure associated to the definition of a property relying on the cs_xdef_t structure.
void * cs_navsto_monolithic_create_context(cs_param_bc_type_t bc, cs_navsto_param_t *nsp)
Allocate and initialize a context structure when the Navier-Stokes system is coupled using a monolith...
Definition: cs_navsto_coupling.c:275
Set of parameters specific for solving the Navier-Stokes system with a fully coupled monolithic algor...
Definition: cs_navsto_coupling.h:77
Set of parameters specific for solving the Navier-Stokes system with the "artificial compressibility"...
Definition: cs_navsto_coupling.h:60