/usr/include/code_saturne/cs_numbering.h is in code-saturne-include 3.2.1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | #ifndef __CS_NUMBERING_H__
#define __CS_NUMBERING_H__
/*============================================================================
* Numbering information for vectorization or multithreading
*============================================================================*/
/*
This file is part of Code_Saturne, a general-purpose CFD tool.
Copyright (C) 1998-2013 EDF S.A.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
* Local headers
*----------------------------------------------------------------------------*/
#include "cs_defs.h"
#include "cs_base.h"
/*----------------------------------------------------------------------------*/
BEGIN_C_DECLS
/*============================================================================
* Macro definitions
*============================================================================*/
/*============================================================================
* Type definitions
*============================================================================*/
/* Renumbering types */
typedef enum {
CS_NUMBERING_DEFAULT, /* Default numbering */
CS_NUMBERING_VECTORIZE, /* Numbered for vectorization */
CS_NUMBERING_THREADS /* Numbered for threads */
} cs_numbering_type_t;
/* Renumbering structure */
typedef struct {
cs_numbering_type_t type; /* Numbering type */
int vector_size; /* Vector size if vectorized, 1 otherwise */
int n_threads; /* Number of threads */
int n_groups; /* Number of associated groups */
cs_lnum_t *group_index; /* For thread t and group g, the start and end
ids for entities in a given group and thread
are group_index[t*n_groups*2 + g] and
group_index[t*n_groups*2 + g + 1] respectively.
(size: n_groups * n_threads * 2) */
} cs_numbering_t;
/*=============================================================================
* Global variable definitions
*============================================================================*/
/* Names for numbering types */
extern const char *cs_numbering_type_name[];
/*============================================================================
* Public function prototypes for Fortran API
*============================================================================*/
/*=============================================================================
* Public function prototypes
*============================================================================*/
/*----------------------------------------------------------------------------
* Create a default numbering information structure.
*
* parameters:
* n_faces <-- number of associated faces
*
* returns:
* pointer to created cs_numbering_t structure
*---------------------------------------------------------------------------*/
cs_numbering_t *
cs_numbering_create_default(cs_lnum_t n_faces);
/*----------------------------------------------------------------------------
* Create a numbering information structure in case of vectorization.
*
* parameters:
* n_faces <-- number of associated faces
* vector_size <-- vector size used for this vectorization
*
* returns:
* pointer to created cs_numbering_t structure
*---------------------------------------------------------------------------*/
cs_numbering_t *
cs_numbering_create_vectorized(cs_lnum_t n_faces,
int vector_size);
/*----------------------------------------------------------------------------
* Create a numbering information structure in case of threading.
*
* parameters:
* n_threads <-- number of threads
* n_groups <-- number of groups
* group_index <-- group_index[thread_id*group_id*2 + group_id*2] and
* group_index[thread_id*group_id*2 + group_id*2 +1] define
* the start and end ids for entities in a given group and
* thread; (size: n_groups *2 * n_threads)
*
* returns:
* pointer to created cs_numbering_t structure
*---------------------------------------------------------------------------*/
cs_numbering_t *
cs_numbering_create_threaded(int n_threads,
int n_groups,
cs_lnum_t group_index[]);
/*----------------------------------------------------------------------------
* Destroy a numbering information structure.
*
* parameters:
* numbering <-> pointer to cs_numbering_t structure pointer (or NULL)
*---------------------------------------------------------------------------*/
void
cs_numbering_destroy(cs_numbering_t **numbering);
/*----------------------------------------------------------------------------
* Dump a cs_numbering_t structure.
*
* parameters:
* numbering <-- pointer to cs_numbering_t structure (or NULL)
*---------------------------------------------------------------------------*/
void
cs_numbering_dump(const cs_numbering_t *numbering);
/*----------------------------------------------------------------------------*/
END_C_DECLS
#endif /* __CS_NUMBERING_H__ */
|