9.2
general documentation
cs_xdef_eval.h
Go to the documentation of this file.
1#ifndef CS_XDEF_EVAL_H
2#define CS_XDEF_EVAL_H
3
4/*============================================================================
5 * Manage the (generic) evaluation of extended definitions
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2026 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 "cdo/cs_cdo_connect.h"
36#include "cdo/cs_quadrature.h"
37#include "cdo/cs_xdef.h"
38#include "mesh/cs_mesh.h"
39
40/*============================================================================
41 * Function pointer type definitions
42 *============================================================================*/
43
44/*----------------------------------------------------------------------------*/
59/*----------------------------------------------------------------------------*/
60
61typedef void
63 const cs_lnum_t *elt_ids,
64 bool dense_output,
65 const cs_mesh_t *mesh,
66 const cs_cdo_connect_t *connect,
67 const cs_cdo_quantities_t *quant,
68 cs_real_t time_eval,
69 void *context,
70 cs_real_t *eval);
71
72/*============================================================================
73 * Public function prototypes
74 *============================================================================*/
75
76/*----------------------------------------------------------------------------*/
92/*----------------------------------------------------------------------------*/
93
94void
96 const cs_lnum_t *elt_ids,
97 bool dense_output,
98 const cs_mesh_t *mesh,
99 const cs_cdo_connect_t *connect,
100 const cs_cdo_quantities_t *quant,
101 cs_real_t time_eval,
102 void *context,
103 cs_real_t *eval);
104
105/*----------------------------------------------------------------------------*/
121/*----------------------------------------------------------------------------*/
122
123void
125 const cs_lnum_t *elt_ids,
126 bool dense_output,
127 const cs_mesh_t *mesh,
128 const cs_cdo_connect_t *connect,
129 const cs_cdo_quantities_t *quant,
130 cs_real_t time_eval,
131 void *context,
132 cs_real_t *eval);
133
134/*----------------------------------------------------------------------------*/
151/*----------------------------------------------------------------------------*/
152
153void
155 const cs_lnum_t *elt_ids,
156 bool dense_output,
157 const cs_mesh_t *mesh,
158 const cs_cdo_connect_t *connect,
159 const cs_cdo_quantities_t *quant,
160 cs_real_t time_eval,
161 void *context,
162 cs_real_t *eval);
163
164/*----------------------------------------------------------------------------*/
180/*----------------------------------------------------------------------------*/
181
182void
184 const cs_lnum_t *elt_ids,
185 bool dense_output,
186 const cs_mesh_t *mesh,
187 const cs_cdo_connect_t *connect,
188 const cs_cdo_quantities_t *quant,
189 cs_real_t time_eval,
190 void *context,
191 cs_real_t *eval);
192
193/*----------------------------------------------------------------------------*/
210/*----------------------------------------------------------------------------*/
211
212void
214 const cs_lnum_t *elt_ids,
215 bool dense_output,
216 const cs_mesh_t *mesh,
217 const cs_cdo_connect_t *connect,
218 const cs_cdo_quantities_t *quant,
219 cs_real_t time_eval,
220 void *context,
221 cs_real_t *eval);
222
223/*----------------------------------------------------------------------------*/
240/*----------------------------------------------------------------------------*/
241
242void
244 const cs_lnum_t *elt_ids,
245 bool dense_output,
246 const cs_mesh_t *mesh,
247 const cs_cdo_connect_t *connect,
248 const cs_cdo_quantities_t *quant,
249 cs_real_t time_eval,
250 void *context,
251 cs_real_t *eval);
252
253/*----------------------------------------------------------------------------*/
270/*----------------------------------------------------------------------------*/
271
272void
274 const cs_lnum_t *elt_ids,
275 bool dense_output,
276 const cs_mesh_t *mesh,
277 const cs_cdo_connect_t *connect,
278 const cs_cdo_quantities_t *quant,
279 cs_real_t time_eval,
280 void *context,
281 cs_real_t *eval);
282
283/*----------------------------------------------------------------------------*/
300/*----------------------------------------------------------------------------*/
301
302void
304 const cs_lnum_t *elt_ids,
305 bool dense_output,
306 const cs_mesh_t *mesh,
307 const cs_cdo_connect_t *connect,
308 const cs_cdo_quantities_t *quant,
309 cs_real_t time_eval,
310 void *context,
311 cs_real_t *eval);
312
313/*----------------------------------------------------------------------------*/
329/*----------------------------------------------------------------------------*/
330
331void
333 const cs_lnum_t *elt_ids,
334 bool dense_output,
335 const cs_mesh_t *mesh,
336 const cs_cdo_connect_t *connect,
337 const cs_cdo_quantities_t *quant,
338 cs_real_t time_eval,
339 void *context,
340 cs_real_t *eval);
341
342/*----------------------------------------------------------------------------*/
359/*----------------------------------------------------------------------------*/
360
361void
363 const cs_lnum_t *elt_ids,
364 bool dense_output,
365 const cs_mesh_t *mesh,
366 const cs_cdo_connect_t *connect,
367 const cs_cdo_quantities_t *quant,
368 cs_real_t time_eval,
369 void *context,
370 cs_real_t *eval);
371
372/*----------------------------------------------------------------------------*/
389/*----------------------------------------------------------------------------*/
390
391void
393 const cs_lnum_t *elt_ids,
394 bool dense_output,
395 const cs_mesh_t *mesh,
396 const cs_cdo_connect_t *connect,
397 const cs_cdo_quantities_t *quant,
398 cs_real_t time_eval,
399 void *context,
400 cs_real_t *eval);
401
402/*----------------------------------------------------------------------------*/
418/*----------------------------------------------------------------------------*/
419
420void
422 const cs_lnum_t *elt_ids,
423 bool dense_output,
424 const cs_mesh_t *mesh,
425 const cs_cdo_connect_t *connect,
426 const cs_cdo_quantities_t *quant,
427 cs_real_t time_eval,
428 void *context,
429 cs_real_t *eval);
430
431/*----------------------------------------------------------------------------*/
448/*----------------------------------------------------------------------------*/
449
450void
452 const cs_lnum_t *elt_ids,
453 bool dense_output,
454 const cs_mesh_t *mesh,
455 const cs_cdo_connect_t *connect,
456 const cs_cdo_quantities_t *quant,
457 cs_real_t time_eval,
458 void *context,
459 cs_real_t *eval);
460
461/*----------------------------------------------------------------------------*/
478/*----------------------------------------------------------------------------*/
479
480void
482 const cs_lnum_t *elt_ids,
483 bool dense_output,
484 const cs_mesh_t *mesh,
485 const cs_cdo_connect_t *connect,
486 const cs_cdo_quantities_t *quant,
487 cs_real_t time_eval,
488 void *context,
489 cs_real_t *eval);
490
491/*----------------------------------------------------------------------------*/
508/*----------------------------------------------------------------------------*/
509
510void
512 const cs_lnum_t *elt_ids,
513 bool dense_output,
514 const cs_mesh_t *mesh,
515 const cs_cdo_connect_t *connect,
516 const cs_cdo_quantities_t *quant,
517 cs_real_t time_eval,
518 void *context,
519 cs_real_t *eval);
520
521/*----------------------------------------------------------------------------*/
538/*----------------------------------------------------------------------------*/
539
540void
542 const cs_lnum_t *elt_ids,
543 bool dense_output,
544 const cs_mesh_t *mesh,
545 const cs_cdo_connect_t *connect,
546 const cs_cdo_quantities_t *quant,
547 cs_real_t time_eval,
548 void *context,
549 cs_real_t *eval);
550
551/*----------------------------------------------------------------------------*/
568/*----------------------------------------------------------------------------*/
569
570void
572 const cs_lnum_t *elt_ids,
573 bool dense_output,
574 const cs_mesh_t *mesh,
575 const cs_cdo_connect_t *connect,
576 const cs_cdo_quantities_t *quant,
577 cs_real_t time_eval,
578 void *context,
579 cs_real_t *eval);
580
581/*----------------------------------------------------------------------------*/
597/*----------------------------------------------------------------------------*/
598
599void
601 const cs_lnum_t *elt_ids,
602 bool dense_output,
603 const cs_mesh_t *mesh,
604 const cs_cdo_connect_t *connect,
605 const cs_cdo_quantities_t *quant,
606 cs_real_t time_eval,
607 void *context,
608 cs_real_t *eval);
609
610/*----------------------------------------------------------------------------*/
626/*----------------------------------------------------------------------------*/
627
628void
630 const cs_lnum_t *elt_ids,
631 bool dense_output,
632 const cs_mesh_t *mesh,
633 const cs_cdo_connect_t *connect,
634 const cs_cdo_quantities_t *quant,
635 cs_real_t time_eval,
636 void *context,
637 cs_real_t *eval);
638
639/*----------------------------------------------------------------------------*/
655/*----------------------------------------------------------------------------*/
656
657void
659 const cs_lnum_t *elt_ids,
660 bool dense_output,
661 const cs_mesh_t *mesh,
662 const cs_cdo_connect_t *connect,
663 const cs_cdo_quantities_t *quant,
664 cs_real_t time_eval,
665 void *context,
666 cs_real_t *eval);
667
668/*----------------------------------------------------------------------------*/
685/*----------------------------------------------------------------------------*/
686
687void
689 const cs_lnum_t *elt_ids,
690 bool dense_output,
691 const cs_mesh_t *mesh,
692 const cs_cdo_connect_t *connect,
693 const cs_cdo_quantities_t *quant,
694 cs_real_t time_eval,
695 void *context,
697 int dim,
698 cs_real_t *eval);
699
700#endif /* CS_XDEF_EVAL_H */
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
cs_quadrature_type_t
Type of quadrature to use when computing an integral quantity. This rationale is used for integrals a...
Definition: cs_quadrature.h:79
void cs_xdef_eval_symtens_by_val(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a tensor-valued quantity for a list of elements with symmetric storage. This function compli...
Definition: cs_xdef_eval.cpp:181
void cs_xdef_eval_at_vertices_by_dof_func(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at vertices using a function associated to dof (dof = degrees of freedom)...
Definition: cs_xdef_eval.cpp:714
void cs_xdef_eval_at_b_faces_by_array(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at boundary faces using an array This function complies with the generic ...
Definition: cs_xdef_eval.cpp:1073
void cs_xdef_eval_at_b_faces_by_dof_func(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at boundary faces using a function associated to dof (dof = degrees of fr...
Definition: cs_xdef_eval.cpp:760
void cs_xdef_eval_at_cells_by_dof_func(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at primal cells using a function associated to dof (dof = degrees of free...
Definition: cs_xdef_eval.cpp:668
void cs_xdef_eval_at_cells_by_analytic(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at cells using an analytic function This function complies with the gener...
Definition: cs_xdef_eval.cpp:468
void cs_xdef_eval_nd_at_cells_by_array(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a nd-valued quantity at cells defined by an array. Array is assumed to be interlaced....
Definition: cs_xdef_eval.cpp:892
void cs_xdef_eval_at_b_faces_by_analytic(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at border faces using an analytic function This function complies with th...
Definition: cs_xdef_eval.cpp:566
void cs_xdef_eval_avg_at_b_faces_by_analytic(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_quadrature_type_t qtype, int dim, cs_real_t *eval)
Evaluate a quantity defined at border faces using an analytic function.
Definition: cs_xdef_eval.cpp:1233
void cs_xdef_eval_vector_by_val(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a vector-valued quantity for a list of elements This function complies with the generic func...
Definition: cs_xdef_eval.cpp:134
void cs_xdef_eval_tensor_by_time_func(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a tensor-valued quantity with only a time-dependent variation for a list of elements This fu...
Definition: cs_xdef_eval.cpp:418
void cs_xdef_eval_scalar_at_cells_by_array(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a scalar-valued quantity at cells defined by an array. Array is assumed to be interlaced....
Definition: cs_xdef_eval.cpp:806
void cs_xdef_eval_at_vertices_by_array(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at vertices using an array This function complies with the generic functi...
Definition: cs_xdef_eval.cpp:1000
void cs_xdef_eval_scalar_by_val(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a scalar-valued quantity for a list of elements This function complies with the generic func...
Definition: cs_xdef_eval.cpp:88
void cs_xdef_eval_symtens_by_time_func(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a tensor-valued quantity with a symmetric storage and with only a time-dependent variation f...
Definition: cs_xdef_eval.cpp:370
void cs_xdef_eval_scalar_by_time_func(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a scalar-valued quantity with only a time-dependent variation for a list of elements This fu...
Definition: cs_xdef_eval.cpp:274
void cs_xdef_eval_at_i_faces_by_analytic(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at interior faces using an analytic function. This function complies with...
Definition: cs_xdef_eval.cpp:518
void cs_xdef_eval_tensor_by_val(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a tensor-valued quantity for a list of elements This function complies with the generic func...
Definition: cs_xdef_eval.cpp:227
void cs_xdef_eval_cell_by_field(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity inside a cell defined using a field This function complies with the generic funct...
Definition: cs_xdef_eval.cpp:1155
void cs_xdef_eval_at_vertices_by_analytic(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a quantity defined at vertices using an analytic function This function complies with the ge...
Definition: cs_xdef_eval.cpp:613
void cs_xdef_eval_vector_by_time_func(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Evaluate a vector-valued quantity with only a time-dependent variation for a list of elements....
Definition: cs_xdef_eval.cpp:322
void() cs_xdef_eval_t(cs_lnum_t n_elts, const cs_lnum_t *elt_ids, bool dense_output, const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t time_eval, void *context, cs_real_t *eval)
Function pointer for evaluating a quantity defined through a descriptor (cs_xdef_t structure)
Definition: cs_xdef_eval.h:62
Definition: mesh.f90:26
Definition: cs_cdo_connect.h:57
Definition: cs_cdo_quantities.h:142
Definition: cs_mesh.h:85