3D-ICE 3.0.0
channel.h
Go to the documentation of this file.
1/******************************************************************************
2 * This file is part of 3D-ICE, version 3.1.0 . *
3 * *
4 * 3D-ICE is free software: you can redistribute it and/or modify it under *
5 * the terms of the GNU General Public License as published by the Free *
6 * Software Foundation, either version 3 of the License, or any later *
7 * version. *
8 * *
9 * 3D-ICE is distributed in the hope that it will be useful, but WITHOUT *
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
12 * more details. *
13 * *
14 * You should have received a copy of the GNU General Public License along *
15 * with 3D-ICE. If not, see <http://www.gnu.org/licenses/>. *
16 * *
17 * Copyright (C) 2021 *
18 * Embedded Systems Laboratory - Ecole Polytechnique Federale de Lausanne *
19 * All Rights Reserved. *
20 * *
21 * Authors: Arvind Sridhar Alessandro Vincenzi *
22 * Giseong Bak Martino Ruggiero *
23 * Thomas Brunschwiler Eder Zulian *
24 * Federico Terraneo Darong Huang *
25 * Luis Costero Marina Zapater *
26 * David Atienza *
27 * *
28 * For any comment, suggestion or request about 3D-ICE, please register and *
29 * write to the mailing list (see http://listes.epfl.ch/doc.cgi?liste=3d-ice) *
30 * Any usage of 3D-ICE for research, commercial or other purposes must be *
31 * properly acknowledged in the resulting products or publications. *
32 * *
33 * EPFL-STI-IEL-ESL Mail : 3d-ice@listes.epfl.ch *
34 * Batiment ELG, ELG 130 (SUBSCRIPTION IS NECESSARY) *
35 * Station 11 *
36 * 1015 Lausanne, Switzerland Url : http://esl.epfl.ch/3d-ice *
37 ******************************************************************************/
38
39#ifndef _3DICE_CHANNEL_H_
40#define _3DICE_CHANNEL_H_
41
44#ifdef __cplusplus
45extern "C"
46{
47#endif
48
49/******************************************************************************/
50
51#include <stdio.h> // For the file type FILE
52
53#include "types.h"
54#include "string_t.h"
55
56#include "dimensions.h"
57#include "material.h"
58#include "coolant.h"
59
60/******************************************************************************/
61
70 struct Channel_t
71 {
75
79
83
87
91
95
99
103
107
111
112 } ;
113
116 typedef struct Channel_t Channel_t ;
117
118
119
120/******************************************************************************/
121
122
123
129 void channel_init (Channel_t *channel) ;
130
131
132
141 void channel_copy (Channel_t *dst, Channel_t *src) ;
142
143
144
153 void channel_destroy (Channel_t *channel) ;
154
155
156
166 Channel_t *channel_calloc ( void ) ;
167
168
169
179 Channel_t *channel_clone (Channel_t *channel) ;
180
181
182
194 void channel_free (Channel_t *channel) ;
195
196
197
207 void channel_print
208 (
209 Channel_t *channel,
210 FILE *stream,
211 String_t prefix,
212 Dimensions_t *dimensions
213 ) ;
214
215
216
230 (
231 Channel_t *channel,
232 Dimensions_t *dimensions,
233 CellIndex_t layer_index,
234 CellIndex_t row_index,
235 CellIndex_t column_index
236 ) ;
237
250 (
251 Channel_t *channel,
252 Dimensions_t *dimensions,
253 CellIndex_t layer_index,
254 ChipDimension_t cell_length
255 ) ;
256
257
269 (
270 Channel_t *channel,
271 Dimensions_t *dimensions,
272 Temperature_t *temperatures
273 ) ;
274
275
276
288 (
289 Channel_t *channel,
290 Dimensions_t *dimensions,
291 Temperature_t *temperatures
292 ) ;
293
294
295
307 (
308 Channel_t *channel,
309 Dimensions_t *dimensions,
310 Temperature_t *temperatures
311 ) ;
312
313
314
326 (
327 Channel_t *channel,
328 Dimensions_t *dimensions,
329 Temperature_t *temperatures
330 ) ;
331
332/******************************************************************************/
333
334#ifdef __cplusplus
335}
336#endif
337
338#endif /* _3DICE_CHANNEL_H_ */
Temperature_t get_max_temperature_channel_outlet(Channel_t *channel, Dimensions_t *dimensions, Temperature_t *temperatures)
Definition: channel.c:345
void channel_print(Channel_t *channel, FILE *stream, String_t prefix, Dimensions_t *dimensions)
Definition: channel.c:135
void channel_init(Channel_t *channel)
Definition: channel.c:46
Channel_t * channel_calloc(void)
Definition: channel.c:91
void channel_copy(Channel_t *dst, Channel_t *src)
Definition: channel.c:63
Temperature_t get_gradient_temperature_channel_outlet(Channel_t *channel, Dimensions_t *dimensions, Temperature_t *temperatures)
Definition: channel.c:432
void channel_free(Channel_t *channel)
Definition: channel.c:121
Channel_t * channel_clone(Channel_t *channel)
Definition: channel.c:104
void channel_destroy(Channel_t *channel)
Definition: channel.c:82
Temperature_t get_min_temperature_channel_outlet(Channel_t *channel, Dimensions_t *dimensions, Temperature_t *temperatures)
Definition: channel.c:374
Cconv_t get_convective_term(Channel_t *channel, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
Cconv_t get_convective_term_nonuniform(Channel_t *channel, Dimensions_t *dimensions, CellIndex_t layer_index, ChipDimension_t cell_length)
Definition: channel.c:285
Temperature_t get_avg_temperature_channel_outlet(Channel_t *channel, Dimensions_t *dimensions, Temperature_t *temperatures)
Definition: channel.c:403
char * String_t
Definition: string_t.h:55
Structure used to store data about the channel that compose the 2D/3D stack.
Definition: channel.h:71
ChannelDimension_t Length
Definition: channel.h:82
CellDimension_t Height
Definition: channel.h:78
Coolant_t Coolant
Definition: channel.h:106
CellIndex_t NLayers
Definition: channel.h:98
ChannelModel_t ChannelModel
Definition: channel.h:74
Material_t WallMaterial
Definition: channel.h:110
CellIndex_t SourceLayerOffset
Definition: channel.h:102
ChannelDimension_t Pitch
Definition: channel.h:86
ChannelDimension_t Porosity
Definition: channel.h:90
Quantity_t NChannels
Definition: channel.h:94
A collection of parameters describing the properties cooling fluid.
Definition: coolant.h:61
Collections of all the structures that are needed for the thermal simulation.
Definition: dimensions.h:311
Structure used to store data about the materials that compose the 2D/3D stack.
Definition: material.h:68
double Cconv_t
Definition: types.h:165
ChannelModel_t
Definition: types.h:346
double ChipDimension_t
Definition: types.h:187
double ChannelDimension_t
Definition: types.h:205
double Temperature_t
Definition: types.h:71
double CellDimension_t
Definition: types.h:177
uint32_t Quantity_t
Definition: types.h:59
uint32_t CellIndex_t
Definition: types.h:213