3D-ICE 3.0.0
layer.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_LAYER_H_
40#define _3DICE_LAYER_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 "material.h"
57#include "material_list.h"
58#include "dimensions.h"
59#include "material_element_list.h"
60
61/******************************************************************************/
62
71 struct Layer_t
72 {
76
80
84
88
91 MaterialElementList_t MaterialLayout ;
92
96
100 } ;
101
104 typedef struct Layer_t Layer_t ;
105
106
107
108/******************************************************************************/
109
110
111
117 void layer_init (Layer_t *layer) ;
118
119
120
129 void layer_copy (Layer_t *dst, Layer_t *src) ;
130
131
132
141 void layer_destroy (Layer_t *layer) ;
142
143
144
154 Layer_t *layer_calloc ( void ) ;
155
156
157
167 Layer_t *layer_clone (Layer_t *layer) ;
168
169
170
182 void layer_free (Layer_t *layer) ;
183
184
185
195 bool layer_same_id (Layer_t *layer, Layer_t *other) ;
196
197
198
207 void layer_print (Layer_t *layer, FILE *stream, String_t prefix) ;
208
209
210
226 Dimensions_t *dimensions,
227 MaterialList_t *materials,
228 String_t filename) ;
229
230
231
245 CellIndex_t row_index,
246 CellIndex_t column_index,
247 Dimensions_t *dimensions) ;
248
249
250
264 CellIndex_t row_index,
265 CellIndex_t column_index,
266 Dimensions_t *dimensions) ;
267
268/******************************************************************************/
269
270#ifdef __cplusplus
271}
272#endif
273
274#endif /* _3DICE_LAYER_H_ */
void layer_destroy(Layer_t *layer)
Definition: layer.c:80
void layer_free(Layer_t *layer)
Definition: layer.c:124
Error_t fill_layout(Layer_t *layer, Dimensions_t *dimensions, MaterialList_t *materials, String_t filename)
Definition: layer.c:166
bool layer_same_id(Layer_t *layer, Layer_t *other)
Definition: layer.c:137
SolidTC_t get_thermal_conductivity(Layer_t *layer, CellIndex_t row_index, CellIndex_t column_index, Dimensions_t *dimensions)
Definition: layer.c:187
void layer_print(Layer_t *layer, FILE *stream, String_t prefix)
Definition: layer.c:144
Layer_t * layer_clone(Layer_t *layer)
Definition: layer.c:107
void layer_copy(Layer_t *dst, Layer_t *src)
Definition: layer.c:62
Layer_t * layer_calloc(void)
Definition: layer.c:94
SolidVHC_t get_volumetric_heat_capacity(Layer_t *layer, CellIndex_t row_index, CellIndex_t column_index, Dimensions_t *dimensions)
Definition: layer.c:215
void layer_init(Layer_t *layer)
Definition: layer.c:46
char * String_t
Definition: string_t.h:55
Collections of all the structures that are needed for the thermal simulation.
Definition: dimensions.h:311
Structure used to store data about the layers that compose the 2D/3D stack.
Definition: layer.h:72
String_t Id
Definition: layer.h:83
CellIndex_t Discr_X
Definition: layer.h:95
MaterialElementList_t MaterialLayout
Definition: layer.h:91
CellIndex_t Discr_Y
Definition: layer.h:99
CellDimension_t Height
Definition: layer.h:75
String_t LayoutFileName
Definition: layer.h:87
Material_t Material
Definition: layer.h:79
Structure used to store data about the materials that compose the 2D/3D stack.
Definition: material.h:68
double SolidVHC_t
Definition: types.h:99
Error_t
Definition: types.h:401
double SolidTC_t
Definition: types.h:107
double CellDimension_t
Definition: types.h:177
uint32_t CellIndex_t
Definition: types.h:213