3D-ICE 3.0.0
system_matrix.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_SYSTEM_MATRIX_
40#define _3DICE_SYSTEM_MATRIX_
41
44#ifdef __cplusplus
45extern "C"
46{
47#endif
48
49/******************************************************************************/
50
51#include "types.h"
52#include "string_t.h"
53
54#include "dimensions.h"
55#include "thermal_grid.h"
56#include "analysis.h"
57
58#include "slu_ddefs.h"
59
60/******************************************************************************/
61
73 {
74
80
85
89
93
97
100 SuperMatrix SLUMatrix_A ;
101
105
108 SuperMatrix SLUMatrix_L ;
109
112 SuperMatrix SLUMatrix_U ;
113
116 SuperLUStat_t SLU_Stat ;
117
120 superlu_options_t SLU_Options ;
121
125
129
133
137 } ;
138
142
143
144
145/******************************************************************************/
146
147
148
154 void system_matrix_init (SystemMatrix_t *sysmatrix) ;
155
156
157
169
170 (SystemMatrix_t *sysmatrix, CellIndex_t size, CellIndex_t nnz) ;
171
172
173
182 void system_matrix_destroy (SystemMatrix_t *sysmatrix) ;
183
184
185
200 (
201 SystemMatrix_t *sysmatrix,
202 ThermalGrid_t *thermal_grid,
203 Analysis_t *analysis,
204 Dimensions_t *dimensions
205 ) ;
206
207
208
218
219
220
230 Error_t solve_sparse_linear_system (SystemMatrix_t *sysmatrix, SuperMatrix *b) ;
231
232
233
244 void system_matrix_print (SystemMatrix_t sysmatrix, String_t file_name) ;
245
246/******************************************************************************/
247
248#ifdef __cplusplus
249}
250#endif
251
252#endif /* _3DICE_SYSTEM_MATRIX_ */
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 representing the squared matrix storing the coefficients of the linear system that is solve...
Definition: system_matrix.h:73
SuperLUStat_t SLU_Stat
SuperMatrix SLUMatrix_A_Permuted
CellIndex_t Size
Definition: system_matrix.h:92
SuperMatrix SLUMatrix_L
SystemMatrixCoeff_t * Values
Definition: system_matrix.h:88
int * SLU_PermutationMatrixR
SuperMatrix SLUMatrix_A
CellIndex_t * ColumnPointers
Definition: system_matrix.h:79
CellIndex_t NNz
Definition: system_matrix.h:96
superlu_options_t SLU_Options
CellIndex_t * RowIndices
Definition: system_matrix.h:84
int * SLU_PermutationMatrixC
SuperMatrix SLUMatrix_U
Structure used to store data about the thermal cells / RC nodes.
Definition: thermal_grid.h:68
Error_t system_matrix_build(SystemMatrix_t *sysmatrix, CellIndex_t size, CellIndex_t nnz)
Definition: system_matrix.c:86
void system_matrix_init(SystemMatrix_t *sysmatrix)
Definition: system_matrix.c:46
void system_matrix_destroy(SystemMatrix_t *sysmatrix)
Error_t do_factorization(SystemMatrix_t *sysmatrix)
void fill_system_matrix(SystemMatrix_t *sysmatrix, ThermalGrid_t *thermal_grid, Analysis_t *analysis, Dimensions_t *dimensions)
Error_t solve_sparse_linear_system(SystemMatrix_t *sysmatrix, SuperMatrix *b)
void system_matrix_print(SystemMatrix_t sysmatrix, String_t file_name)
double SystemMatrixCoeff_t
Definition: types.h:125
Error_t
Definition: types.h:401
uint32_t CellIndex_t
Definition: types.h:213