8.2
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-2024 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 /*============================================================================
47  * Global variables
48  *============================================================================*/
49 
50 /*============================================================================
51  * Public function prototypes
52  *============================================================================*/
53 
54 /*----------------------------------------------------------------------------*/
81 /*----------------------------------------------------------------------------*/
82 
83 void
85  cs_lnum_t *n_cells,
86  cs_lnum_t **cell_ids);
87 
88 /*----------------------------------------------------------------------------*/
119 /*----------------------------------------------------------------------------*/
120 
121 void
123  cs_lnum_t n_points,
124  cs_lnum_t *n_cells,
125  cs_lnum_t **cell_ids,
126  cs_real_t **seg_c_len,
127  cs_real_3_t **seg_c_cen);
128 
129 /*----------------------------------------------------------------------------*/
160 /*----------------------------------------------------------------------------*/
161 
162 void
164  cs_lnum_t *n_elts,
165  cs_real_3_t **coords,
166  cs_real_t **s);
167 
168 /*----------------------------------------------------------------------------*/
180 /*----------------------------------------------------------------------------*/
181 
182 void
184  cs_lnum_t *n_elts,
185  cs_real_3_t **coords,
186  cs_real_t **s);
187 
188 /*----------------------------------------------------------------------------*/
199 /*----------------------------------------------------------------------------*/
200 
201 cs_real_t
202 cs_post_turbomachinery_head(const char *criteria_in,
203  cs_mesh_location_type_t location_in,
204  const char *criteria_out,
205  cs_mesh_location_type_t location_out);
206 
207 /*----------------------------------------------------------------------------*/
218 /*----------------------------------------------------------------------------*/
219 
220 cs_real_t
222  const cs_lnum_t b_face_ids[],
223  cs_real_t axis[3]);
224 
225 /*----------------------------------------------------------------------------*/
234 /*----------------------------------------------------------------------------*/
235 
236 void
238  const cs_lnum_t b_face_ids[],
239  cs_real_3_t stress[]);
240 
241 /*----------------------------------------------------------------------------*/
249 /*----------------------------------------------------------------------------*/
250 
251 void
252 cs_post_b_pressure(cs_lnum_t n_b_faces,
253  const cs_lnum_t b_face_ids[],
254  cs_real_t pres[]);
255 
256 /*----------------------------------------------------------------------------*/
264 /*----------------------------------------------------------------------------*/
265 
266 void
268  const cs_lnum_t b_face_ids[],
269  cs_real_t pres[]);
270 
271 /*----------------------------------------------------------------------------*/
284 /*----------------------------------------------------------------------------*/
285 
286 void
288  cs_lnum_t n_cells,
289  const cs_lnum_t cell_ids[],
290  const cs_real_3_t *coords,
291  cs_real_6_t *rst);
292 
293 /*----------------------------------------------------------------------------*/
304 /*----------------------------------------------------------------------------*/
305 
306 void
308  const cs_lnum_t cell_ids[],
309  const cs_real_t coords[][3],
310  cs_real_t inv[][2]);
311 
312 /*----------------------------------------------------------------------------*/
323 /*----------------------------------------------------------------------------*/
324 
325 void
326 cs_post_boundary_flux(const char *scalar_name,
327  cs_lnum_t n_loc_b_faces,
328  const cs_lnum_t b_face_ids[],
329  cs_real_t b_face_flux[]);
330 
331 /*----------------------------------------------------------------------------*/
344 /*----------------------------------------------------------------------------*/
345 
346 void
348  cs_lnum_t n_loc_b_faces,
349  const cs_lnum_t b_face_ids[],
350  cs_real_t *b_val);
351 
352 /*----------------------------------------------------------------------------*/
363 /*----------------------------------------------------------------------------*/
364 
365 cs_real_t
367  const cs_lnum_t n_loc_b_faces,
368  const cs_lnum_t b_face_ids[]);
369 
370 /*----------------------------------------------------------------------------*/
381 /*----------------------------------------------------------------------------*/
382 
383 cs_real_t
385  const cs_lnum_t n_loc_b_faces,
386  const cs_lnum_t b_face_ids[]);
387 
388 /*----------------------------------------------------------------------------*/
400 /*----------------------------------------------------------------------------*/
401 
402 cs_real_t
403 cs_post_scalar_boundary_mean(const cs_real_t *scalar_vals,
404  const cs_lnum_t n_loc_b_faces,
405  const cs_lnum_t b_face_ids[]);
406 
407 /*----------------------------------------------------------------------------*/
419 /*----------------------------------------------------------------------------*/
420 
421 cs_real_t
423  const cs_lnum_t n_loc_b_faces,
424  const cs_lnum_t b_face_ids[]);
425 
426 /*----------------------------------------------------------------------------*/
436 /*----------------------------------------------------------------------------*/
437 
438 cs_real_t
440  const cs_real_t *scalar_vals);
441 
442 /*----------------------------------------------------------------------------*/
452 /*----------------------------------------------------------------------------*/
453 
454 cs_real_t
456  const cs_real_t *scalar_vals);
457 
458 /*----------------------------------------------------------------------------*/
469 /*----------------------------------------------------------------------------*/
470 
471 cs_real_t
473  const cs_real_t *scalar_vals);
474 
475 /*----------------------------------------------------------------------------*/
486 /*----------------------------------------------------------------------------*/
487 
488 cs_real_t
490  const cs_real_t *scalar_vals);
491 
492 /*----------------------------------------------------------------------------*/
493 
495 
496 #endif /* __CS_POST_UTIL_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
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:347
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:349
#define END_C_DECLS
Definition: cs_defs.h:529
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
cs_field_interpolate_t
Definition: cs_field_operator.h:54
cs_mesh_location_type_t
Definition: cs_mesh_location.h:60
cs_real_t cs_post_scalar_b_zone_integral(const cs_zone_t *z, const cs_real_t *scalar_vals)
Compute the surface integral of a scalar array of values located on boundary faces over a boundary zo...
Definition: cs_post_util.c:1190
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:836
cs_real_t cs_post_scalar_b_zone_mean(const cs_zone_t *z, const cs_real_t *scalar_vals)
Compute the surface mean of a scalar array of values located on boundary faces over a boundary zone....
Definition: cs_post_util.c:1233
cs_real_t cs_post_scalar_boundary_mean(const cs_real_t *scalar_vals, const cs_lnum_t n_loc_b_faces, const cs_lnum_t b_face_ids[])
Compute the surface mean of a scalar array of values located on boundary faces over a selection of bo...
Definition: cs_post_util.c:1093
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
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:469
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.
cs_real_t cs_post_bnd_scalar_b_zone_integral(const cs_zone_t *z, const cs_real_t *scalar_vals)
Compute the surface integral of a scalar over a boundary zone faces, for an array of values located o...
Definition: cs_post_util.c:1211
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:335
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:663
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:285
cs_real_t cs_post_scalar_boundary_integral(const cs_real_t *scalar_vals, const cs_lnum_t n_loc_b_faces, const cs_lnum_t b_face_ids[])
Compute the surface integral of a scalar array of values located on boundary faces over a selection o...
Definition: cs_post_util.c:1004
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, cs_real_3_t **seg_c_cen)
Select cells cut by a line composed of segments.
Definition: cs_post_util.c:167
cs_real_t cs_post_bnd_scalar_b_zone_mean(const cs_zone_t *z, const cs_real_t *scalar_vals)
Compute the surface mean of a scalar over a boundary zone faces, for an array of values located on th...
Definition: cs_post_util.c:1263
cs_real_t cs_post_bnd_scalar_boundary_integral(const cs_real_t *scalar_vals, const cs_lnum_t n_loc_b_faces, const cs_lnum_t b_face_ids[])
Compute the surface integral over a selection of boundary faces for a scalar array of values located ...
Definition: cs_post_util.c:1048
void cs_post_b_total_pressure(cs_lnum_t n_b_faces, const cs_lnum_t b_face_ids[], cs_real_t pres[])
Compute total pressure on a specific boundary region.
Definition: cs_post_util.c:620
cs_real_t cs_post_bnd_scalar_boundary_mean(const cs_real_t *scalar_vals, const cs_lnum_t n_loc_b_faces, const cs_lnum_t b_face_ids[])
Compute the surface mean over a selection of boundary faces for a scalar array of values located over...
Definition: cs_post_util.c:1143
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:545
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:124
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:885
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:507
Field descriptor.
Definition: cs_field.h:131
Definition: cs_zone.h:55