8.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-2023 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 
133  void *context);
134 
135 /*----------------------------------------------------------------------------*/
145 /*----------------------------------------------------------------------------*/
146 
147 void *
149  cs_navsto_param_t *nsp);
150 
151 /*----------------------------------------------------------------------------*/
160 /*----------------------------------------------------------------------------*/
161 
162 void *
163 cs_navsto_ac_free_context(void *context);
164 
165 /*----------------------------------------------------------------------------*/
175 /*----------------------------------------------------------------------------*/
176 
177 void
179  cs_adv_field_t *adv_field,
180  void *context);
181 
182 /*----------------------------------------------------------------------------*/
190 /*----------------------------------------------------------------------------*/
191 
192 void
194  void *context);
195 
196 /*----------------------------------------------------------------------------*/
205 /*----------------------------------------------------------------------------*/
206 
208 cs_navsto_ac_get_momentum_eq(void *context);
209 
210 /*----------------------------------------------------------------------------*/
220 /*----------------------------------------------------------------------------*/
221 
222 void *
224  cs_navsto_param_t *nsp);
225 
226 /*----------------------------------------------------------------------------*/
234 /*----------------------------------------------------------------------------*/
235 
236 void *
237 cs_navsto_monolithic_free_context(void *context);
238 
239 /*----------------------------------------------------------------------------*/
249 /*----------------------------------------------------------------------------*/
250 
251 void
253  cs_adv_field_t *adv_field,
254  void *context);
255 
256 /*----------------------------------------------------------------------------*/
264 /*----------------------------------------------------------------------------*/
265 
266 void
268  void *context);
269 /*----------------------------------------------------------------------------*/
278 /*----------------------------------------------------------------------------*/
279 
282 
283 /*----------------------------------------------------------------------------*/
294 /*----------------------------------------------------------------------------*/
295 
296 void *
298  cs_navsto_param_t *nsp);
299 
300 /*----------------------------------------------------------------------------*/
308 /*----------------------------------------------------------------------------*/
309 
310 void *
311 cs_navsto_projection_free_context(void *context);
312 
313 /*----------------------------------------------------------------------------*/
325 /*----------------------------------------------------------------------------*/
326 
327 void
329  cs_adv_field_t *adv_field,
330  int loc_id,
331  bool has_previous,
332  void *context);
333 
334 /*----------------------------------------------------------------------------*/
344 /*----------------------------------------------------------------------------*/
345 
346 void
348  const cs_navsto_param_t *nsp,
349  void *context);
350 
351 /*----------------------------------------------------------------------------*/
360 /*----------------------------------------------------------------------------*/
361 
364 
365 /*----------------------------------------------------------------------------*/
366 
368 
369 #endif /* __CS_NAVSTO_COUPLING_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:514
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
#define END_C_DECLS
Definition: cs_defs.h:515
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:236
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:320
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:499
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:169
void * cs_navsto_projection_free_context(void *context)
Free the context structure related to a Projection approach.
Definition: cs_navsto_coupling.c:595
cs_equation_param_t * cs_navsto_coupling_get_momentum_eqp(const cs_navsto_param_t *nsp, void *context)
Retrieve the cs_equation_param_t structure related to the momentum equation according to the type of ...
Definition: cs_navsto_coupling.c:115
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:693
void * cs_navsto_ac_free_context(void *context)
Free the context structure related to an Artificial Compressibility approach.
Definition: cs_navsto_coupling.c:214
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:343
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:417
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:622
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:283
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:467
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:752
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:523
void * cs_navsto_monolithic_free_context(void *context)
Free the context structure related to a monolithic approach.
Definition: cs_navsto_coupling.c:395
cs_param_bc_type_t
Definition: cs_param_types.h:476
Definition: cs_advection_field.h:150
Definition: cs_cdo_quantities.h:137
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition: cs_equation_param.h:192
Main structure to handle the discretization and the resolution of an equation.
Field descriptor.
Definition: cs_field.h:131
Set of parameters specific for solving the Navier-Stokes system with the "artificial compressibility"...
Definition: cs_navsto_coupling.h:60
cs_equation_t * momentum
Definition: cs_navsto_coupling.h:62
cs_property_t * zeta
Definition: cs_navsto_coupling.h:68
Set of parameters specific for solving the Navier-Stokes system with a fully coupled monolithic algor...
Definition: cs_navsto_coupling.h:77
cs_equation_t * momentum
Definition: cs_navsto_coupling.h:79
Structure storing the parameters related to the resolution of the Navier-Stokes system.
Definition: cs_navsto_param.h:611
Set of parameters specific for solving the Navier-Stokes system with an incremental projection algori...
Definition: cs_navsto_coupling.h:90
cs_equation_t * correction
Definition: cs_navsto_coupling.h:94
cs_field_t * predicted_velocity
Definition: cs_navsto_coupling.h:111
cs_equation_t * prediction
Definition: cs_navsto_coupling.h:92
cs_real_t * bdy_pressure_incr
Definition: cs_navsto_coupling.h:105
cs_real_t * div_st
Definition: cs_navsto_coupling.h:100
Structure associated to the definition of a property relying on the cs_xdef_t structure.