programmer's documentation
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
src
fvm
fvm_convert_array.h
Go to the documentation of this file.
1
#ifndef __FVM_CONVERT_ARRAY_H__
2
#define __FVM_CONVERT_ARRAY_H__
3
4
/*============================================================================
5
* Functions related to the transformation of data arrays for import
6
* or export of meshes and fields.
7
*
8
* All "reasonable" combinations of datatypes are handled here.
9
* (templates would be useful here).
10
*============================================================================*/
11
12
/*
13
This file is part of Code_Saturne, a general-purpose CFD tool.
14
15
Copyright (C) 1998-2013 EDF S.A.
16
17
This program is free software; you can redistribute it and/or modify it under
18
the terms of the GNU General Public License as published by the Free Software
19
Foundation; either version 2 of the License, or (at your option) any later
20
version.
21
22
This program is distributed in the hope that it will be useful, but WITHOUT
23
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
24
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
25
details.
26
27
You should have received a copy of the GNU General Public License along with
28
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
29
Street, Fifth Floor, Boston, MA 02110-1301, USA.
30
*/
31
32
/*----------------------------------------------------------------------------*/
33
34
#include "
cs_defs.h
"
35
36
/*----------------------------------------------------------------------------
37
* Local headers
38
*----------------------------------------------------------------------------*/
39
40
#include "
fvm_defs.h
"
41
#include "
fvm_nodal.h
"
42
43
/*----------------------------------------------------------------------------*/
44
45
BEGIN_C_DECLS
46
47
/*=============================================================================
48
* Macro definitions
49
*============================================================================*/
50
51
/*============================================================================
52
* Type definitions
53
*============================================================================*/
54
55
/*=============================================================================
56
* Static global variables
57
*============================================================================*/
58
59
/*=============================================================================
60
* Public function prototypes
61
*============================================================================*/
62
63
/*----------------------------------------------------------------------------
64
* Convert an array representation of one type to that of another type, with
65
* possible indirection, interlacing, de-interlacing, or change of data
66
* dimension (i.e. projection or filling extra dimension with zeroes).
67
*
68
* Floating point (real or double) source and destination arrays may be
69
* multidimensional (interlaced or not), but with and integer type
70
* for source or destination, only 1-D arrays are allowed (no use for
71
* integer "vector fields" being currently required or apparent).
72
*
73
* Integer type destination arrays may be converted to floating point
74
* (for output formats with no integer datatype, such as EnSight),
75
* but floating point values may not be converted to integer values
76
* (no use for this operation being currently apparent).
77
*
78
* parameters:
79
* src_dim <-- dimension of source data
80
* src_dim_shift <-- source data dimension shift (start index)
81
* dest_dim <-- destination data dimension (1 if non interlaced)
82
* src_idx_start <-- start index in source data
83
* src_idx_end <-- past-the-end index in source data
84
* src_interlace <-- indicates if source data is interlaced
85
* src_datatype <-- source data type (float, double, or int)
86
* dest_datatype <-- destination data type (float, double, or int)
87
* n_parent_lists <-- number of parent lists (if parent_num != NULL)
88
* parent_num_shift <-- parent number to value array index shifts;
89
* size: n_parent_lists
90
* parent_num <-- if n_parent_lists > 0, parent entity numbers
91
* src_data <-- array of source arrays (at least one, with one per
92
* source dimension if non interlaced, times one per
93
* parent list if multiple parent lists, with
94
* x_parent_1, y_parent_1, ..., x_parent_2, ...) order
95
* dest_data --> destination buffer
96
*----------------------------------------------------------------------------*/
97
98
void
99
fvm_convert_array
(
const
int
src_dim,
100
const
int
src_dim_shift,
101
const
int
dest_dim,
102
const
cs_lnum_t
src_idx_start,
103
const
cs_lnum_t
src_idx_end,
104
const
cs_interlace_t
src_interlace,
105
const
cs_datatype_t
src_datatype,
106
const
cs_datatype_t
dest_datatype,
107
const
int
n_parent_lists,
108
const
cs_lnum_t
parent_num_shift[],
109
const
cs_lnum_t
parent_num[],
110
const
void
*
const
src_data[],
111
void
*
const
dest_data);
112
113
/*----------------------------------------------------------------------------*/
114
115
END_C_DECLS
116
117
#endif
/* __FVM_CONVERT_ARRAY_H__ */
Generated on Thu Feb 27 2014 19:21:34 by
1.8.3.1