3D-ICE 3.0.0
heat_sink.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_HEAT_SINK_H_
40#define _3DICE_HEAT_SINK_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 "analysis.h"
59
60/******************************************************************************/
61
69 {
73
78
83
86 SpreaderDimension_t SpreaderLength, SpreaderWidth, SpreaderHeight;
87
91
95
99
103
107
111
115
121
127
129 int (*PluggableHeatsinkInit)(unsigned int nrows, unsigned int ncols,
130 double cellwidth, double celllength,
131 double initialtemperature,
132 double spreaderconductance,
133 double timestep,
134 const char *args);
135
137 int (*PluggableHeatsink)(const double *spreadertemperatures,
138 double *sinkheatflows);
139 };
140
143 typedef struct HeatSink_t HeatSink_t ;
144
145
146
147/******************************************************************************/
148
149
150
156 void heat_sink_init (HeatSink_t *hsink) ;
157
158
159
168 void heat_sink_copy (HeatSink_t *dst, HeatSink_t *src) ;
169
170
171
180 void heat_sink_destroy (HeatSink_t *hsink) ;
181
182
183
194
195
196
207
208
209
221 void heat_sink_free (HeatSink_t *hsink) ;
222
223
224
237 (
238 HeatSink_t *hsink,
239 Dimensions_t *dimensions,
240 CellIndex_t row_index,
241 CellIndex_t column_index
242 ) ;
243
244
245
254 void heat_sink_print (HeatSink_t *hsink, FILE *stream, String_t prefix) ;
255
262
269
272
275
278
281
284
285/******************************************************************************/
286
287#ifdef __cplusplus
288}
289#endif
290
291#endif /* _3DICE_HEAT_SINK_H_ */
void heat_sink_init(HeatSink_t *hsink)
Definition: heat_sink.c:51
HeatSink_t * heat_sink_clone(HeatSink_t *hsink)
Definition: heat_sink.c:141
void heat_sink_copy(HeatSink_t *dst, HeatSink_t *src)
Definition: heat_sink.c:89
Conductance_t get_spreader_conductance_top_bottom(HeatSink_t *hsink)
Definition: heat_sink.c:405
Conductance_t get_spreader_conductance_north_south(HeatSink_t *hsink)
Definition: heat_sink.c:396
void heat_sink_free(HeatSink_t *hsink)
Definition: heat_sink.c:158
Capacity_t get_spreader_capacity(HeatSink_t *hsink)
Definition: heat_sink.c:377
Error_t initialize_pluggable_heatsink(HeatSink_t *hsink, Analysis_t *analysis)
Definition: heat_sink.c:363
void heat_sink_print(HeatSink_t *hsink, FILE *stream, String_t prefix)
Definition: heat_sink.c:188
Error_t initialize_heat_spreader(HeatSink_t *hsink, Dimensions_t *chip)
Definition: heat_sink.c:280
void heat_sink_destroy(HeatSink_t *hsink)
Definition: heat_sink.c:117
HeatSink_t * heat_sink_calloc(void)
Definition: heat_sink.c:128
Conductance_t get_spreader_conductance_east_west(HeatSink_t *hsink)
Definition: heat_sink.c:387
Conductance_t heat_sink_conductance(HeatSink_t *hsink, Dimensions_t *dimensions, CellIndex_t row_index, CellIndex_t column_index)
Definition: heat_sink.c:172
Conductance_t get_spreader_conductance_top_bottom_nonuniform(HeatSink_t *hsink, ChipDimension_t area)
Definition: heat_sink.c:415
char * String_t
Definition: string_t.h:55
Informations about the type of thermal simulation to be run, timing and its initial settings.
Definition: analysis.h:65
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
Temperature_t AmbientTemperature
Definition: heat_sink.h:82
CellDimension_t CellWidth
Definition: heat_sink.h:106
CellIndex_t NColumns
Definition: heat_sink.h:114
CellIndex_t NumColumnsBorder
Definition: heat_sink.h:126
SpreaderDimension_t SpreaderLength
Definition: heat_sink.h:86
int(* PluggableHeatsinkInit)(unsigned int nrows, unsigned int ncols, double cellwidth, double celllength, double initialtemperature, double spreaderconductance, double timestep, const char *args)
Definition: heat_sink.h:129
HeatSinkModel_t SinkModel
Definition: heat_sink.h:72
CellIndex_t NumRowsBorder
Definition: heat_sink.h:120
CellDimension_t CellLength
Definition: heat_sink.h:102
int(* PluggableHeatsink)(const double *spreadertemperatures, double *sinkheatflows)
Definition: heat_sink.h:137
Material_t SpreaderMaterial
Definition: heat_sink.h:90
AmbientHTC_t AmbientHTC
Definition: heat_sink.h:77
String_t Args
Definition: heat_sink.h:98
CellIndex_t NRows
Definition: heat_sink.h:110
String_t Plugin
Definition: heat_sink.h:94
Structure used to store data about the materials that compose the 2D/3D stack.
Definition: material.h:68
double Capacity_t
Definition: types.h:119
double AmbientHTC_t
Definition: types.h:91
double Conductance_t
Definition: types.h:113
Error_t
Definition: types.h:401
double SpreaderDimension_t
Definition: types.h:196
double ChipDimension_t
Definition: types.h:187
double Temperature_t
Definition: types.h:71
double CellDimension_t
Definition: types.h:177
uint32_t CellIndex_t
Definition: types.h:213
HeatSinkModel_t
Definition: types.h:224