3D-ICE 3.0.0
thermal_grid.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_THERMAL_GRID_H_
40#define _3DICE_THERMAL_GRID_H_
41
44#ifdef __cplusplus
45extern "C"
46{
47#endif
48
49/******************************************************************************/
50
51#include "types.h"
52
53#include "channel.h"
54#include "heat_sink.h"
55#include "layer.h"
56
57#include "dimensions.h"
58#include "stack_element_list.h"
59
60/******************************************************************************/
61
68 {
72
76
81
85
89
93 } ;
94
98
99
100
101/******************************************************************************/
102
103
104
110 void thermal_grid_init (ThermalGrid_t *tgrid) ;
111
112
113
124
125
126
135 void thermal_grid_destroy (ThermalGrid_t *tgrid) ;
136
137
138
146 Error_t thermal_grid_fill (ThermalGrid_t *tgrid, StackElementList_t *list) ;
147
159 (
160 ThermalGrid_t *tgrid,
161 Dimensions_t *dimensions,
162 Non_uniform_cellListNode_t* i_cell
163 );
164
180 (
181 ThermalGrid_t *tgrid,
182 Dimensions_t *dimensions,
183 CellIndex_t layer_index,
184 CellIndex_t row_index,
185 CellIndex_t column_index
186 ) ;
187
202 (
203 ThermalGrid_t *tgrid,
204 Dimensions_t *dimensions,
205 ConnectionListNode_t* i_cell,
206 Non_uniform_cellListNode_t* node,
207 int16_t direction_note
208 );
209
224 (
225 ThermalGrid_t *tgrid,
226 Dimensions_t *dimensions,
227 ChipDimension_t value,
228 Non_uniform_cellListNode_t* node,
229 Conductance_t direction_note
230 );
231
245 (
246 ThermalGrid_t *tgrid,
247 Dimensions_t *dimensions,
248 ConnectionListNode_t* i_cell,
249 Non_uniform_cellListNode_t* node
250 );
251
267 (
268 ThermalGrid_t *tgrid,
269 Dimensions_t *dimensions,
270 ConnectionListNode_t* i_cell,
271 CellIndex_t node1_index,
272 CellIndex_t node2_index,
273 Conductance_t* sign_note
274 ) ;
275
291 (
292 ThermalGrid_t *tgrid,
293 Dimensions_t *dimensions,
294 CellIndex_t layer_index,
295 CellIndex_t row_index,
296 CellIndex_t column_index
297 ) ;
298
299
300
316 (
317 ThermalGrid_t *tgrid,
318 Dimensions_t *dimensions,
319 CellIndex_t layer_index,
320 CellIndex_t row_index,
321 CellIndex_t column_index
322 ) ;
323
324
325
341 (
342 ThermalGrid_t *tgrid,
343 Dimensions_t *dimensions,
344 CellIndex_t layer_index,
345 CellIndex_t row_index,
346 CellIndex_t column_index
347 ) ;
348
349
350
366 (
367 ThermalGrid_t *tgrid,
368 Dimensions_t *dimensions,
369 CellIndex_t layer_index,
370 CellIndex_t row_index,
371 CellIndex_t column_index
372 ) ;
373
374
375
391 (
392 ThermalGrid_t *tgrid,
393 Dimensions_t *dimensions,
394 CellIndex_t layer_index,
395 CellIndex_t row_index,
396 CellIndex_t column_index
397 ) ;
398
399
400
416 (
417 ThermalGrid_t *tgrid,
418 Dimensions_t *dimensions,
419 CellIndex_t layer_index,
420 CellIndex_t row_index,
421 CellIndex_t column_index
422 ) ;
423
424/******************************************************************************/
425
426#ifdef __cplusplus
427}
428#endif
429
430#endif /* _3DICE_THERMAL_GRID_H_ */
Structure used to store data about the channel that compose the 2D/3D stack.
Definition: channel.h:71
Collections of all the structures that are needed for the thermal simulation.
Definition: dimensions.h:311
Structure used to store data about the heat dissipation through the top or bottom surfaces of the 2D/...
Definition: heat_sink.h:69
Structure used to store data about the layers that compose the 2D/3D stack.
Definition: layer.h:72
Structure used to store data about the thermal cells / RC nodes.
Definition: thermal_grid.h:68
StackLayerType_t * LayersTypeProfile
Definition: thermal_grid.h:75
Channel_t * Channel
Definition: thermal_grid.h:84
HeatSink_t * BottomHeatSink
Definition: thermal_grid.h:92
HeatSink_t * TopHeatSink
Definition: thermal_grid.h:88
Layer_t * LayersProfile
Definition: thermal_grid.h:80
CellIndex_t NLayers
Definition: thermal_grid.h:71
Conductance_t get_conductance_non_uniform(ThermalGrid_t *tgrid, Dimensions_t *dimensions, ConnectionListNode_t *i_cell, CellIndex_t node1_index, CellIndex_t node2_index, Conductance_t *sign_note)
Definition: thermal_grid.c:820
Capacity_t get_capacity(ThermalGrid_t *tgrid, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
Definition: thermal_grid.c:425
Error_t thermal_grid_build(ThermalGrid_t *tgrid, Dimensions_t *dimensions)
Definition: thermal_grid.c:59
Conductance_t get_conductance_south(ThermalGrid_t *tgrid, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
Conductance_t get_conductance_east(ThermalGrid_t *tgrid, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
Conductance_t get_conductance_top(ThermalGrid_t *tgrid, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
Definition: thermal_grid.c:904
Error_t thermal_grid_fill(ThermalGrid_t *tgrid, StackElementList_t *list)
Definition: thermal_grid.c:117
Conductance_t get_conductance_non_uniform_y(ThermalGrid_t *tgrid, Dimensions_t *dimensions, ChipDimension_t value, Non_uniform_cellListNode_t *node, Conductance_t direction_note)
Definition: thermal_grid.c:641
Conductance_t get_conductance_north(ThermalGrid_t *tgrid, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
void thermal_grid_destroy(ThermalGrid_t *tgrid)
Definition: thermal_grid.c:96
Capacity_t get_capacity_non_uniform(ThermalGrid_t *tgrid, Dimensions_t *dimensions, Non_uniform_cellListNode_t *i_cell)
Definition: thermal_grid.c:326
Conductance_t get_conductance_bottom(ThermalGrid_t *tgrid, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
void thermal_grid_init(ThermalGrid_t *tgrid)
Definition: thermal_grid.c:47
Conductance_t get_conductance_non_uniform_x(ThermalGrid_t *tgrid, Dimensions_t *dimensions, ConnectionListNode_t *i_cell, Non_uniform_cellListNode_t *node)
Definition: thermal_grid.c:736
Conductance_t get_conductance_west(ThermalGrid_t *tgrid, Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
Conductance_t get_conductance_non_uniform_z(ThermalGrid_t *tgrid, Dimensions_t *dimensions, ConnectionListNode_t *i_cell, Non_uniform_cellListNode_t *node, int16_t direction_note)
Definition: thermal_grid.c:525
double Capacity_t
Definition: types.h:119
double Conductance_t
Definition: types.h:113
Error_t
Definition: types.h:401
StackLayerType_t
Definition: types.h:243
double ChipDimension_t
Definition: types.h:187
uint32_t CellIndex_t
Definition: types.h:213