7.1
general documentation
cs_post_util.h
Go to the documentation of this file.
1 #ifndef __CS_POST_UTIL_H__
2 #define __CS_POST_UTIL_H__
3 
4 /*============================================================================
5  * Postprocessing utility functions.
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2021 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 "cs_defs.h"
35 #include "cs_mesh_location.h"
36 #include "cs_field_operator.h"
37 
38 /*----------------------------------------------------------------------------*/
39 
41 
42 /*=============================================================================
43  * Type Definitions
44  *============================================================================*/
45 
46 typedef enum {
47 
55 
56 /*============================================================================
57  * Global variables
58  *============================================================================*/
59 
62 extern int cs_glob_post_util_flag[];
63 
64 /*============================================================================
65  * Public function prototypes
66  *============================================================================*/
67 
68 /*----------------------------------------------------------------------------*/
95 /*----------------------------------------------------------------------------*/
96 
97 void
99  cs_lnum_t *n_cells,
100  cs_lnum_t **cell_ids);
101 
102 /*----------------------------------------------------------------------------*/
131 /*----------------------------------------------------------------------------*/
132 
133 void
135  cs_lnum_t n_points,
136  cs_lnum_t *n_cells,
137  cs_lnum_t **cell_ids,
138  cs_real_t **seg_c_len);
139 
140 /*----------------------------------------------------------------------------*/
171 /*----------------------------------------------------------------------------*/
172 
173 void
175  cs_lnum_t *n_elts,
176  cs_real_3_t **coords,
177  cs_real_t **s);
178 
179 /*----------------------------------------------------------------------------*/
191 /*----------------------------------------------------------------------------*/
192 
193 void
195  cs_lnum_t *n_elts,
196  cs_real_3_t **coords,
197  cs_real_t **s);
198 
199 /*----------------------------------------------------------------------------*/
210 /*----------------------------------------------------------------------------*/
211 
212 cs_real_t
213 cs_post_turbomachinery_head(const char *criteria_in,
214  cs_mesh_location_type_t location_in,
215  const char *criteria_out,
216  cs_mesh_location_type_t location_out);
217 
218 /*----------------------------------------------------------------------------*/
229 /*----------------------------------------------------------------------------*/
230 
231 cs_real_t
233  const cs_lnum_t b_face_ids[],
234  cs_real_t axis[3]);
235 
236 /*----------------------------------------------------------------------------*/
245 /*----------------------------------------------------------------------------*/
246 
247 void
249  const cs_lnum_t b_face_ids[],
250  cs_real_3_t stress[]);
251 
252 /*----------------------------------------------------------------------------*/
260 /*----------------------------------------------------------------------------*/
261 
262 void
263 cs_post_b_pressure(cs_lnum_t n_b_faces,
264  const cs_lnum_t b_face_ids[],
265  cs_real_t pres[]);
266 
267 /*----------------------------------------------------------------------------*/
280 /*----------------------------------------------------------------------------*/
281 
282 void
284  cs_lnum_t n_cells,
285  const cs_lnum_t cell_ids[],
286  const cs_real_3_t *coords,
287  cs_real_6_t *rst);
288 
289 /*----------------------------------------------------------------------------*/
300 /*----------------------------------------------------------------------------*/
301 
302 void
304  const cs_lnum_t cell_ids[],
305  const cs_real_t coords[][3],
306  cs_real_t inv[][2]);
307 
308 /*----------------------------------------------------------------------------*/
325 /*----------------------------------------------------------------------------*/
326 
327 void
328 cs_post_q_criterion(const cs_lnum_t n_loc_cells,
329  const cs_lnum_t cell_ids[],
330  cs_real_t q_crit[]);
331 
332 /*----------------------------------------------------------------------------*/
343 /*----------------------------------------------------------------------------*/
344 
345 void
346 cs_post_boundary_flux(const char *scalar_name,
347  cs_lnum_t n_loc_b_faces,
348  const cs_lnum_t b_face_ids[],
349  cs_real_t b_face_flux[]);
350 
351 /*----------------------------------------------------------------------------*/
364 /*----------------------------------------------------------------------------*/
365 
366 void
368  cs_lnum_t n_loc_b_faces,
369  const cs_lnum_t b_face_ids[],
370  cs_real_t *b_val);
371 
372 /*----------------------------------------------------------------------------*/
373 
375 
376 #endif /* __CS_POST_UTIL_H__ */
cs_real_t cs_post_turbomachinery_head(const char *criteria_in, cs_mesh_location_type_t location_in, const char *criteria_out, cs_mesh_location_type_t location_out)
Compute the head of a turbomachinery (total pressure increase)
Definition: cs_post_util.c:327
cs_real_t cs_post_moment_of_force(cs_lnum_t n_b_faces, const cs_lnum_t b_face_ids[], cs_real_t axis[3])
Compute the magnitude of a moment of force torque) given an axis and the stress on a specific boundar...
Definition: cs_post_util.c:461
void cs_cell_segment_intersect_select(void *input, cs_lnum_t *n_cells, cs_lnum_t **cell_ids)
Select cells cut by a given segment.
Definition: cs_post_util.c:128
void cs_post_boundary_flux(const char *scalar_name, cs_lnum_t n_loc_b_faces, const cs_lnum_t b_face_ids[], cs_real_t b_face_flux[])
Compute scalar flux on a specific boundary region.
Definition: cs_post_util.c:851
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:337
void cs_post_anisotropy_invariant(cs_lnum_t n_cells, const cs_lnum_t cell_ids[], const cs_real_t coords[][3], cs_real_t inv[][2])
Compute the invariant of the anisotropy tensor.
Field descriptor.
Definition: cs_field.h:125
cs_mesh_location_type_t
Definition: cs_mesh_location.h:60
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
void cs_post_q_criterion(const cs_lnum_t n_loc_cells, const cs_lnum_t cell_ids[], cs_real_t q_crit[])
Compute the Q-criterion from Hunt et. al over each cell of a specified volume region.
Definition: cs_post_util.c:807
cs_field_interpolate_t
Field interpolation modes.
Definition: cs_field_operator.h:54
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
void cs_post_evm_reynolds_stresses(cs_field_interpolate_t interpolation_type, cs_lnum_t n_cells, const cs_lnum_t cell_ids[], const cs_real_3_t *coords, cs_real_6_t *rst)
Compute Reynolds stresses in case of Eddy Viscosity Models.
Definition: cs_post_util.c:625
int cs_glob_post_util_flag[]
void cs_post_stress_tangential(cs_lnum_t n_b_faces, const cs_lnum_t b_face_ids[], cs_real_3_t stress[])
Compute tangential stress on a specific boundary.
Definition: cs_post_util.c:499
void cs_post_b_pressure(cs_lnum_t n_b_faces, const cs_lnum_t b_face_ids[], cs_real_t pres[])
Compute pressure on a specific boundary region.
Definition: cs_post_util.c:537
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:335
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
void cs_cell_polyline_intersect_select(void *input, cs_lnum_t n_points, cs_lnum_t *n_cells, cs_lnum_t **cell_ids, cs_real_t **seg_c_len)
Select cells cut by a line composed of segments.
Definition: cs_post_util.c:169
#define END_C_DECLS
Definition: cs_defs.h:511
Definition: cs_post_util.h:52
void cs_cell_segment_intersect_probes_define(void *input, cs_lnum_t *n_elts, cs_real_3_t **coords, cs_real_t **s)
Define probes based on the centers of cells intersected by a given segment.
Definition: cs_post_util.c:216
Definition: cs_post_util.h:48
cs_post_util_type_t
Definition: cs_post_util.h:46
void cs_post_field_cell_to_b_face_values(const cs_field_t *f, cs_lnum_t n_loc_b_faces, const cs_lnum_t b_face_ids[], cs_real_t *b_val)
Compute values at a selection of boundary faces of a given field located on cells.
Definition: cs_post_util.c:900
Definition: cs_post_util.h:50
void cs_b_face_criterion_probes_define(void *input, cs_lnum_t *n_elts, cs_real_3_t **coords, cs_real_t **s)
Define a profile based on centers of faces defined by a given criterion.
Definition: cs_post_util.c:277