programmer's documentation
cs_xdef.h
Go to the documentation of this file.
1 #ifndef __CS_XDEF_H__
2 #define __CS_XDEF_H__
3 
4 /*============================================================================
5  * Routines to handle extended definitions of quantities (cs_xdef_t structures)
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 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_base.h"
35 #include "cs_param.h"
36 #include "cs_quadrature.h"
37 
38 /*----------------------------------------------------------------------------*/
39 
41 
42 /*============================================================================
43  * Macro definitions
44  *============================================================================*/
45 
46 /*============================================================================
47  * Type definitions
48  *============================================================================*/
49 
78 typedef enum {
79 
87 
89 
91 
106 typedef enum {
107 
108  CS_XDEF_SUPPORT_TIME, /* support for time step description */
109  CS_XDEF_SUPPORT_BOUNDARY, /* zones attached to boundary faces */
111 
113 
115 
122 typedef struct {
123 
155  int dim;
157  int z_id;
159 
162 
164 
165  void *input;
166 
167 } cs_xdef_t;
168 
174 typedef struct {
175 
189  int stride;
193 
195 
201 typedef struct {
202 
207  void *input;
208 
213 
215 
221 typedef struct {
222 
230  void *input;
232 
234 
235 /*============================================================================
236  * Public function prototypes
237  *============================================================================*/
238 
239 /*----------------------------------------------------------------------------*/
253 /*----------------------------------------------------------------------------*/
254 
255 cs_xdef_t *
257  int dim,
258  int z_id,
259  cs_flag_t state,
260  cs_flag_t meta,
261  void *input);
262 
263 /*----------------------------------------------------------------------------*/
277 /*----------------------------------------------------------------------------*/
278 
279 cs_xdef_t *
281  int dim,
282  int z_id,
283  cs_flag_t state,
284  cs_flag_t meta,
285  void *input);
286 
287 /*----------------------------------------------------------------------------*/
300 /*----------------------------------------------------------------------------*/
301 
302 cs_xdef_t *
304  cs_flag_t state,
305  cs_flag_t meta,
306  void *input);
307 
308 /*----------------------------------------------------------------------------*/
316 /*----------------------------------------------------------------------------*/
317 
318 cs_xdef_t *
320 
321 /*----------------------------------------------------------------------------*/
329 /*----------------------------------------------------------------------------*/
330 
331 void
333  cs_real_t *array);
334 
335 /*----------------------------------------------------------------------------*/
343 /*----------------------------------------------------------------------------*/
344 
345 void
347  cs_lnum_t *array_index);
348 
349 /*----------------------------------------------------------------------------*/
357 /*----------------------------------------------------------------------------*/
358 
359 void
361  cs_quadrature_type_t qtype);
362 
363 /*----------------------------------------------------------------------------*/
372 /*----------------------------------------------------------------------------*/
373 
376 
377 /*----------------------------------------------------------------------------*/
385 /*----------------------------------------------------------------------------*/
386 
388 cs_xdef_get_type(const cs_xdef_t *d);
389 
390 /*----------------------------------------------------------------------------*/
398 /*----------------------------------------------------------------------------*/
399 
400 cs_flag_t
402 
403 /*----------------------------------------------------------------------------*/
409 /*----------------------------------------------------------------------------*/
410 
411 void
413 
414 /*----------------------------------------------------------------------------*/
415 
417 
418 #endif /* __CS_XDEF_H__ */
void cs_xdef_set_array_index(cs_xdef_t *d, cs_lnum_t *array_index)
In case of definition by array, set the index to get access to the array values.
Definition: cs_xdef.c:441
void() cs_analytic_func_t(cs_real_t time, cs_lnum_t n_elts, const cs_lnum_t *elt_ids, const cs_real_t *coords, bool compact, void *input, cs_real_t *retval)
Generic function pointer for an analytic function elt_ids is optional. If not NULL, it enables to access in coords at the right location and the same thing to fill retval if compact is set to false.
Definition: cs_param.h:66
cs_quadrature_type_t cs_xdef_get_quadrature(cs_xdef_t *d)
Get the type of quadrature to use for evaluating the given description.
Definition: cs_xdef.c:489
cs_xdef_t * cs_xdef_free(cs_xdef_t *d)
Free a cs_xdef_t structure.
Definition: cs_xdef.c:379
Definition: cs_xdef.h:86
cs_analytic_func_t * func
Definition: cs_xdef.h:212
cs_xdef_t * cs_xdef_volume_create(cs_xdef_type_t type, int dim, int z_id, cs_flag_t state, cs_flag_t meta, void *input)
Allocate and initialize a new cs_xdef_t structure based on volumic elements.
Definition: cs_xdef.c:94
Definition: cs_xdef.h:108
#define BEGIN_C_DECLS
Definition: cs_defs.h:461
Input structure when an array is used for the definition.
Definition: cs_xdef.h:174
Definition: cs_xdef.h:82
cs_flag_t state
Definition: cs_xdef.h:160
Definition: cs_xdef.h:81
cs_xdef_type_t cs_xdef_get_type(const cs_xdef_t *d)
Retrieve the flag dedicated to the state.
Definition: cs_xdef.c:508
Definition: cs_xdef.h:110
cs_xdef_t * cs_xdef_boundary_create(cs_xdef_type_t type, int dim, int z_id, cs_flag_t state, cs_flag_t meta, void *input)
Allocate and initialize a new cs_xdef_t structure based on boundary elements.
Definition: cs_xdef.c:207
cs_flag_t cs_xdef_get_state_flag(const cs_xdef_t *d)
Retrieve the flag dedicated to the state.
Definition: cs_xdef.c:527
double cs_real_t
Floating-point value.
Definition: cs_defs.h:297
int dim
Definition: cs_xdef.h:155
cs_real_t() cs_timestep_func_t(int time_iter, double time, void *input)
Function which defines the time step according to the number of iteration already done...
Definition: cs_param.h:89
cs_xdef_type_t type
Definition: cs_xdef.h:156
void * input
Definition: cs_xdef.h:207
void * input
Definition: cs_xdef.h:165
cs_lnum_t * index
Definition: cs_xdef.h:192
Definition: cs_xdef.h:84
cs_xdef_support_t
Definition: cs_xdef.h:106
cs_real_t * values
Definition: cs_xdef.h:191
void cs_xdef_set_array(cs_xdef_t *d, cs_real_t *array)
In case of definition by array, set the array after having added this definition. ...
Definition: cs_xdef.c:414
cs_quadrature_type_t
Definition: cs_quadrature.h:51
void cs_xdef_set_quadrature(cs_xdef_t *d, cs_quadrature_type_t qtype)
Set the type of quadrature to use for evaluating the given description.
Definition: cs_xdef.c:468
cs_flag_t loc
Definition: cs_xdef.h:190
cs_quadrature_type_t qtype
Definition: cs_xdef.h:163
cs_xdef_type_t
Definition: cs_xdef.h:78
Definition: cs_xdef.h:80
static int input(void)
cs_xdef_t * cs_xdef_timestep_create(cs_xdef_type_t type, cs_flag_t state, cs_flag_t meta, void *input)
Allocate and initialize a new cs_xdef_t structure for setting the time step.
Definition: cs_xdef.c:316
void * input
Definition: cs_xdef.h:230
Definition: cs_xdef.h:85
Structure storing medata for defining a quantity in a very flexible way.
Definition: cs_xdef.h:122
Definition: cs_xdef.h:112
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:293
cs_xdef_support_t support
Definition: cs_xdef.h:158
Definition: cs_xdef.h:83
#define END_C_DECLS
Definition: cs_defs.h:462
unsigned short int cs_flag_t
Definition: cs_defs.h:299
cs_flag_t meta
Definition: cs_xdef.h:161
int stride
Definition: cs_xdef.h:189
Input structure when an analytic function is used for the definition.
Definition: cs_xdef.h:201
int z_id
Definition: cs_xdef.h:157
Definition: cs_xdef.h:88
cs_timestep_func_t * func
Definition: cs_xdef.h:231
Definition: cs_xdef.h:109
void cs_xdef_log(cs_xdef_t *d)
Output the settings related to a a cs_xdef_t structure.
Definition: cs_xdef.c:544
Input structure when a time step function is used for the definition.
Definition: cs_xdef.h:221