Code_Saturne
CFD tool
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
ecs_table_priv.h
Go to the documentation of this file.
1 #ifndef _ECS_CHAMP_PRIV_H_
2 #define _ECS_CHAMP_PRIV_H_
3 
4 /*============================================================================
5  * Définition privée de la structure `_ecs_table_t' décrivant une table
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2012 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  * Fichiers `include' librairie standard C
32  *----------------------------------------------------------------------------*/
33 
34 
35 /*----------------------------------------------------------------------------
36  * Fichiers `include' publics du paquetage global "Utilitaire"
37  *----------------------------------------------------------------------------*/
38 
39 
40 /*----------------------------------------------------------------------------
41  * Fichiers `include' publics des paquetages visibles
42  *----------------------------------------------------------------------------*/
43 
44 #include "ecs_descr.h"
45 
46 
47 /*----------------------------------------------------------------------------
48  * Fichiers `include' publics du paquetage courant
49  *----------------------------------------------------------------------------*/
50 
51 #include "ecs_table.h"
52 
53 
54 /*============================================================================
55  * Définition de macros
56  *============================================================================*/
57 
58 
59 /*============================================================================
60  * Définition des structures
61  *============================================================================*/
62 
63 struct _ecs_table_t {
64 
65  size_t nbr; /* Nombre d'éléments associés */
66 
67  size_t pas; /* Pas des positions si elles
68  forment une REGLE (0 sinon) */
69  ecs_size_t *pos; /* Positions des valeurs de la table
70  (NULL si elles forment une REGLE) */
71 
72  ecs_int_t *val; /* Valeurs de la table */
73 
74  ecs_descr_t *descr; /* Tête de la liste chaînée des
75  descripteurs de table "attribut" */
76 };
77 
78 /*============================================================================
79  *
80  * Schéma d'association entre les tables "positions" et "valeurs"
81  * ----------------------------------------------------------------
82  *
83  * Table des valeurs `val' (de dimension `pos[nbr-1]-1')
84  *
85  * .---.-------..------.-------.------..------.-------..-------.------.
86  * | | ... || | ... | || | ... || ... | |
87  * `---'-------'`------'-------'------'`------'-------'`-------'------'
88  * 0 iVal-1 jVal-2 jVal-1 nVal-2 nVal-1
89  *
90  * | | |
91  * | | |
92  * `----------. .---' .-------------------'
93  * | | |
94  * .-----.-------.------.------.-------.------.
95  * | 1 | ... | iVal | jVal | ... | nVal |
96  * `-----'-------'------'------'-------'------'
97  * 0 iPos iPos+1 nPos = pos->nbr - 1
98  *
99  * Table des positions `pos' (de dimension `nbr' + 1)
100  *
101  *============================================================================*/
102 
103 /*----------------------------------------------------------------------------*/
104 
105 #endif /* _ECS_TABLE_PRIV_H_ */
ecs_int_t * val
Definition: ecs_table_priv.h:72
int ecs_int_t
Definition: ecs_def.h:131
size_t nbr
Definition: ecs_table_priv.h:65
Definition: ecs_descr_priv.h:58
ecs_size_t * pos
Definition: ecs_table_priv.h:69
size_t ecs_size_t
Definition: ecs_def.h:132
size_t pas
Definition: ecs_table_priv.h:67
Definition: ecs_table_priv.h:63
ecs_descr_t * descr
Definition: ecs_table_priv.h:74