39#ifndef _3DICE_DIMENSIONS_H_
40#define _3DICE_DIMENSIONS_H_
55#include "non_uniform_cell_list.h"
56#include "connection_list.h"
void cell_dimensions_copy(CellDimensions_t *dst, CellDimensions_t *src)
void dimensions_destroy(Dimensions_t *dimensions)
ChipDimension_t get_chip_length(Dimensions_t *dimensions)
CellIndex_t get_number_of_connections(Dimensions_t *dimensions)
CellDimension_t get_cell_height(Dimensions_t *dimensions, CellIndex_t layer_index)
void cell_dimensions_init(CellDimensions_t *celld)
ChipDimension_t get_cell_location_y(Dimensions_t *dimensions, CellIndex_t row_index)
void grid_dimensions_init(GridDimensions_t *gridd)
CellIndex_t get_number_of_layers(Dimensions_t *dimensions)
ChipDimension_t get_chip_width(Dimensions_t *dimensions)
ChipDimension_t get_cell_location_x(Dimensions_t *dimensions, CellIndex_t column_index)
void dimensions_print(Dimensions_t *dimensions, FILE *stream, String_t prefix)
CellIndex_t get_layer_cell_offset_from_spreader_coordinates(Dimensions_t *dimensions, struct HeatSink_t *hsink, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
void dimensions_init(Dimensions_t *dimensions)
CellIndex_t get_cell_offset_in_stack(Dimensions_t *dimensions, CellIndex_t layer_index, CellIndex_t row_index, CellIndex_t column_index)
CellIndex_t get_spreader_cell_offset(Dimensions_t *dimensions, struct HeatSink_t *hsink, CellIndex_t row_index, CellIndex_t column_index)
CellIndex_t get_spreader_cell_offset_from_layer_coordinates(Dimensions_t *dimensions, struct HeatSink_t *hsink, CellIndex_t row_index, CellIndex_t column_index)
void dimensions_free(Dimensions_t *dimensions)
void grid_dimensions_copy(GridDimensions_t *dst, GridDimensions_t *src)
CellDimension_t get_cell_length(Dimensions_t *dimensions, CellIndex_t column_index)
CellDimension_t get_cell_width(Dimensions_t *dimensions, CellIndex_t row_index)
void cell_dimensions_destroy(CellDimensions_t *celld)
ChipDimension_t get_chip_area(Dimensions_t *dimensions)
void chip_dimensions_init(ChipDimensions_t *chipd)
Dimensions_t * dimensions_calloc(void)
CellIndex_t last_column(Dimensions_t *dimensions)
void dimensions_copy(Dimensions_t *dst, Dimensions_t *src)
CellIndex_t get_cell_offset_in_layer(Dimensions_t *dimensions, CellIndex_t row_index, CellIndex_t column_index)
void print_axes(Dimensions_t *dimensions)
ChipDimension_t get_cell_center_x(Dimensions_t *dimensions, CellIndex_t column_index)
void chip_dimensions_destroy(ChipDimensions_t *chipd)
CellIndex_t get_number_of_cells(Dimensions_t *dimensions)
void chip_dimensions_copy(ChipDimensions_t *dst, ChipDimensions_t *src)
ChipDimension_t get_cell_center_y(Dimensions_t *dimensions, CellIndex_t row_index)
void compute_number_of_connections(Dimensions_t *dimensions, Quantity_t num_channels, ChannelModel_t channel_model, struct HeatSink_t *topSink)
CellIndex_t last_layer(Dimensions_t *dimensions)
CellIndex_t get_number_of_rows(Dimensions_t *dimensions)
bool has_layer_underneath(Dimensions_t *dimensions, struct HeatSink_t *hsink, CellIndex_t row_index, CellIndex_t column_index)
CellIndex_t first_layer(Dimensions_t *dimensions)
CellIndex_t first_column(Dimensions_t *dimensions)
void grid_dimensions_destroy(GridDimensions_t *gridd)
Dimensions_t * dimensions_clone(Dimensions_t *dimensions)
CellIndex_t get_number_of_columns(Dimensions_t *dimensions)
CellIndex_t get_layer_area(Dimensions_t *dimensions)
CellIndex_t first_row(Dimensions_t *dimensions)
CellIndex_t last_row(Dimensions_t *dimensions)
Structure that collects the dimensions of a thermal cell.
CellDimension_t LastWallLength
CellDimension_t * Heights
CellDimension_t ChannelLength
CellDimension_t FirstWallLength
CellDimension_t WallLength
Structure that collects the main dimensions of the IC.
Collections of all the structures that are needed for the thermal simulation.
ConnectionList_t connections_list
Non_uniform_cellList_t Cell_list
Structure that collects the dimensions of a 3d thermal grid of cells.
Structure used to store data about the heat dissipation through the top or bottom surfaces of the 2D/...