programmer's documentation
cs_navsto_system.h
Go to the documentation of this file.
1 #ifndef __CS_NAVSTO_SYSTEM_H__
2 #define __CS_NAVSTO_SYSTEM_H__
3 
4 /*============================================================================
5  * Routines to handle cs_navsto_system_t structure
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2018 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  * Local headers
30  *----------------------------------------------------------------------------*/
31 
32 #include "cs_advection_field.h"
33 #include "cs_field.h"
34 #include "cs_param.h"
35 #include "cs_property.h"
36 #include "cs_mesh.h"
37 #include "cs_navsto_param.h"
38 #include "cs_time_step.h"
39 #include "cs_xdef.h"
40 
41 /*----------------------------------------------------------------------------*/
42 
44 
51 /*============================================================================
52  * Macro definitions
53  *============================================================================*/
54 
55 /*============================================================================
56  * Type definitions
57  *============================================================================*/
58 
59 /*----------------------------------------------------------------------------*/
71 /*----------------------------------------------------------------------------*/
72 
73 typedef void *
75  void *nscc);
76 
77 /*----------------------------------------------------------------------------*/
87 /*----------------------------------------------------------------------------*/
88 
89 typedef void *
90 (cs_navsto_free_scheme_context_t)(void *scheme_context);
91 
92 /*----------------------------------------------------------------------------*/
100 /*----------------------------------------------------------------------------*/
101 
102 typedef void
104  void *scheme_context);
105 
106 /*----------------------------------------------------------------------------*/
117 /*----------------------------------------------------------------------------*/
118 
119 typedef void
121  const cs_navsto_param_t *nsp,
122  double dt_cur,
123  void *scheme_context);
124 
125 /*=============================================================================
126  * Local Macro definitions and structure definitions
127  *============================================================================*/
128 
134 typedef struct {
135 
140 
153 
159 
166 
172 
179 
185 
192 
205 
212 
218 
224 
230 
232 
233 /*============================================================================
234  * Public function prototypes
235  *============================================================================*/
236 
237 /*----------------------------------------------------------------------------*/
244 /*----------------------------------------------------------------------------*/
245 
246 bool
248 
249 /*----------------------------------------------------------------------------*/
259 /*----------------------------------------------------------------------------*/
260 
263  cs_navsto_param_time_state_t time_state,
264  cs_navsto_param_coupling_t algo_coupling);
265 
266 /*----------------------------------------------------------------------------*/
270 /*----------------------------------------------------------------------------*/
271 
272 void
274 
275 /*----------------------------------------------------------------------------*/
280 /*----------------------------------------------------------------------------*/
281 
284 
285 /*----------------------------------------------------------------------------*/
291 /*----------------------------------------------------------------------------*/
292 
293 void
295 
296 /*----------------------------------------------------------------------------*/
304 /*----------------------------------------------------------------------------*/
305 
306 void
308  const cs_cdo_quantities_t *quant,
309  const cs_time_step_t *time_step);
310 
311 /*----------------------------------------------------------------------------*/
321 /*----------------------------------------------------------------------------*/
322 
323 void
325  const cs_cdo_connect_t *connect,
326  const cs_cdo_quantities_t *quant,
327  const cs_time_step_t *ts);
328 
329 /*----------------------------------------------------------------------------*/
336 /*----------------------------------------------------------------------------*/
337 
338 void
340 
341 /*----------------------------------------------------------------------------*/
348 /*----------------------------------------------------------------------------*/
349 
350 void
352  double dt_cur);
353 
354 /*----------------------------------------------------------------------------*/
376 /*----------------------------------------------------------------------------*/
377 
378 void
380  int mesh_id,
381  int cat_id,
382  int ent_flag[5],
383  cs_lnum_t n_cells,
384  cs_lnum_t n_i_faces,
385  cs_lnum_t n_b_faces,
386  const cs_lnum_t cell_ids[],
387  const cs_lnum_t i_face_ids[],
388  const cs_lnum_t b_face_ids[],
389  const cs_time_step_t *time_step);
390 
391 /*----------------------------------------------------------------------------*/
395 /*----------------------------------------------------------------------------*/
396 
397 void
399 
400 /*----------------------------------------------------------------------------*/
401 
403 
404 #endif /* __CS_NAVSTO_SYSTEM_H__ */
void cs_navsto_system_compute(const cs_mesh_t *mesh, double dt_cur)
Build, solve and update the Navier-Stokes system.
Definition: cs_navsto_system.c:635
time step descriptor
Definition: cs_time_step.h:51
cs_navsto_free_scheme_context_t * free_scheme_context
Definition: cs_navsto_system.h:211
bool cs_navsto_system_is_activated(void)
Check if the resolution of the Navier-Stokes system has been activated.
Definition: cs_navsto_system.c:161
Definition: cs_advection_field.h:118
cs_navsto_param_coupling_t
Choice of algorithm for solving the system.
Definition: cs_navsto_param.h:125
Field descriptor.
Definition: cs_field.h:124
void() cs_navsto_compute_t(const cs_mesh_t *mesh, const cs_navsto_param_t *nsp, double dt_cur, void *scheme_context)
Compute for the current time step the new state for the Navier-Stokes system. This means that equatio...
Definition: cs_navsto_system.h:120
void *() cs_navsto_free_scheme_context_t(void *scheme_context)
Free the context structure related to a given discretization scheme for the resolution of the Navier-...
Definition: cs_navsto_system.h:90
#define BEGIN_C_DECLS
Definition: cs_defs.h:462
cs_navsto_init_values_t * init_velocity
Definition: cs_navsto_system.h:217
cs_field_t * temperature
Definition: cs_navsto_system.h:178
Definition: cs_cdo_connect.h:74
Structure storing the parameters related to the resolution of the Navier-Stokes system.
Definition: cs_navsto_param.h:141
Definition: cs_cdo_quantities.h:94
void * scheme_context
Definition: cs_navsto_system.h:191
void cs_navsto_system_extra_post(void *input, int mesh_id, int cat_id, int ent_flag[5], cs_lnum_t n_cells, cs_lnum_t n_i_faces, cs_lnum_t n_b_faces, const cs_lnum_t cell_ids[], const cs_lnum_t i_face_ids[], const cs_lnum_t b_face_ids[], const cs_time_step_t *time_step)
Predefined post-processing output for the Navier-Stokes system. The prototype of this function is fix...
Definition: cs_navsto_system.c:674
Definition: cs_mesh.h:63
void() cs_navsto_init_values_t(const cs_navsto_param_t *nsp, void *scheme_context)
Initialize field values (pressure, velocity or temperature) according to the model, the space discretization or the model.
Definition: cs_navsto_system.h:103
cs_field_t * velocity
Definition: cs_navsto_system.h:158
cs_navsto_param_time_state_t
Status of the time for the Navier-Stokes system of equations.
Definition: cs_navsto_param.h:94
cs_navsto_init_scheme_context_t * init_scheme_context
Definition: cs_navsto_system.h:204
cs_navsto_param_t * cs_navsto_system_get_param(void)
Recover the structure storing the parameters for the Navier–Stokes system.
Definition: cs_navsto_system.c:321
cs_navsto_init_values_t * init_pressure
Definition: cs_navsto_system.h:223
cs_field_t * pressure
Definition: cs_navsto_system.h:171
void cs_navsto_system_finalize_setup(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step)
Last step of the setup of the Navier-Stokes system.
Definition: cs_navsto_system.c:447
Structure managing the Navier-Stokes system.
Definition: cs_navsto_system.h:134
static int input(void)
cs_navsto_system_t * cs_navsto_system_activate(cs_navsto_param_model_t model, cs_navsto_param_time_state_t time_state, cs_navsto_param_coupling_t algo_coupling)
Allocate and initialize the Navier-Stokes (NS) system.
Definition: cs_navsto_system.c:182
void *() cs_navsto_init_scheme_context_t(const cs_navsto_param_t *nsp, void *nscc)
Allocate and initialize the context structure related to a given discretization scheme for the resolu...
Definition: cs_navsto_system.h:74
cs_navsto_param_t * param
Definition: cs_navsto_system.h:139
void cs_navsto_system_compute_steady_state(const cs_mesh_t *mesh)
Build, solve and update the Navier-Stokes system in case of a steady-state approach.
Definition: cs_navsto_system.c:608
void cs_navsto_system_initialize(const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *ts)
Initialize the context structure used to build the algebraic system This is done after the setup step...
Definition: cs_navsto_system.c:567
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:293
cs_navsto_compute_t * compute
Definition: cs_navsto_system.h:229
#define END_C_DECLS
Definition: cs_defs.h:463
cs_adv_field_t * adv_field
Definition: cs_navsto_system.h:152
void cs_navsto_system_log_setup(void)
Summary of the main cs_navsto_system_t structure.
Definition: cs_navsto_system.c:710
void cs_navsto_system_init_setup(void)
Start setting-up the Navier-Stokes system At this stage, numerical settings should be completely dete...
Definition: cs_navsto_system.c:340
cs_navsto_param_model_t
Modelling related to the Navier-Stokes system of equations.
Definition: cs_navsto_param.h:68
void * coupling_context
Definition: cs_navsto_system.h:184
void cs_navsto_system_destroy(void)
Free the main structure related to the Navier-Stokes system.
Definition: cs_navsto_system.c:259
Definition: mesh.f90:26
cs_field_t * velocity_divergence
Definition: cs_navsto_system.h:165