diff --git a/doc/changelog.d/6495.added.md b/doc/changelog.d/6495.added.md new file mode 100644 index 00000000000..ad021c6047e --- /dev/null +++ b/doc/changelog.d/6495.added.md @@ -0,0 +1 @@ +Icepak model reviewer extension \ No newline at end of file diff --git a/doc/source/User_guide/pyaedt_extensions_doc/icepak/icepak_model_reviewer.rst b/doc/source/User_guide/pyaedt_extensions_doc/icepak/icepak_model_reviewer.rst new file mode 100644 index 00000000000..5b6e192ccda --- /dev/null +++ b/doc/source/User_guide/pyaedt_extensions_doc/icepak/icepak_model_reviewer.rst @@ -0,0 +1,111 @@ +Icepak Model Reviewer +===================== + +The Icepak Model Reviewer extension allows users to inspect and modify details of an Icepak project. It enables +reviewing critical data such as boundary conditions, materials, and model-specific properties. + +The extension provides a graphical user interface (GUI) where the user can load a project, review its components, +and make necessary updates. + +The following image shows the extension GUI: + +.. image:: ../../../_static/extensions/icepak_model_reviewer_initial_panel.png + :width: 800 + :alt: Icepak Model Reviewer UI + +After the project is loaded by clicking, the GUI show tables +.. image:: ../../../_static/extensions/icepak_model_reviewer_ui_with_table.png + :width: 800 + :alt: Icepak Model Reviewer UI After loading Project + +Features +-------- + +- Load and inspect an Icepak project. +- Display editable tables showing: + - Boundary conditions + - Material properties + - Model details +- Update project parameters. + +Using the Extension +------------------- + +1. Open the **Automation** tab in the Icepak interface. +2. Click on the **Icepak Model Reviewer** icon under the Extension Manager. +3. In the GUI, interact with the following elements: + - **Load Project**: Load the Icepak project into the GUI. + - **Update Project**: Push any modifications made in the tables back to the project. +4. After the project is loaded: + - The GUI displays three main tables: + - **Boundary Conditions**: Lists all the boundary condition settings applied in the model. + - **Materials**: Shows the materials used and their key properties. + - **Models**: Displays model-specific data and configurations. + +Each table allows inline editing of values. To commit changes, click the **Update Project** button. This will apply all modifications to the currently loaded project. + +Tables Overview +--------------- + +**Boundary Conditions Table** + +This table displays the thermal boundary conditions defined in the Icepak project. +The data is organized with both read-only and editable fields to help users review and make updates. ++--------------------------+----------------------------------------------------------------------------------+ +| **Property** | **Description** | ++==========================+==================================================================================+ +| **Name** | Name of the boundary. This field is **read-only** and cannot be modified. | ++--------------------------+----------------------------------------------------------------------------------+ +| **Boundary Type** | Indicates whether the boundary is a *Block* or a *Source*. This is | +| | also a **read-only** field. | ++--------------------------+----------------------------------------------------------------------------------+ +| **BC Name 1 / BC Name 2**| Names of the boundary conditions applied (*Total Power*, *Power Density*, | +| | *Heat Transfer Coefficient*, *Temperature*). These fields are **read-only** | ++--------------------------+----------------------------------------------------------------------------------+ +| **Value 1 / Value 2** | Corresponding values for the selected boundary conditions. These fields | +| | are **editable**. | ++--------------------------+----------------------------------------------------------------------------------+ + + +**Materials Table** + + +This table displays material properties for all objects used in the Icepak project. +Some fields are read-only and provided for reference, while others can be modified depending on the simulation setup. + ++----------------------------------+--------------------------------------------------------------+ +| **Property** | **Description** | ++==================================+==============================================================+ +| **Name** | Material name (**read-only**) | ++----------------------------------+--------------------------------------------------------------+ +| **Material Type** | Indicates if the material is *Solid* or *Fluid* | +| | (**read-only**) | ++----------------------------------+--------------------------------------------------------------+ +| **Thermal Conductivity** | Thermal conductivity in **W/m·K** | ++----------------------------------+--------------------------------------------------------------+ +| **Mass Density** | Density in **kg/m³** | ++----------------------------------+--------------------------------------------------------------+ +| **Specific Heat** | Specific heat capacity in **J/kg·K** | ++----------------------------------+--------------------------------------------------------------+ +| **Thermal Expansion Coefficient**| Coefficient of thermal expansion in **1/K** | ++----------------------------------+--------------------------------------------------------------+ +| **Thermal Diffusivity** | Thermal diffusivity in **m²/s** | ++----------------------------------+--------------------------------------------------------------+ +| **Viscosity** | Dynamic viscosity in **Kg/m-s** | ++----------------------------------+--------------------------------------------------------------+ + + +**Models Table** + +This table lists the object-level settings related to modeling in the Icepak project. +It shows the assigned bulk and surface materials. Information about whether an object is model/ non-model object. + + + +Notes +----- + +- Ensure the CSV file for power map creation is formatted correctly before importing. +- Changes made in the tables are not applied to the project until the **Update Project** button is clicked. +- This extension is intended for reviewing model data efficiently without the need to navigate complex menus. + diff --git a/doc/source/_static/extensions/icepak_model_reviewer_initial_panel.png b/doc/source/_static/extensions/icepak_model_reviewer_initial_panel.png new file mode 100644 index 00000000000..1f44e1b785a Binary files /dev/null and b/doc/source/_static/extensions/icepak_model_reviewer_initial_panel.png differ diff --git a/doc/source/_static/extensions/icepak_model_reviewer_ui_with_table.png b/doc/source/_static/extensions/icepak_model_reviewer_ui_with_table.png new file mode 100644 index 00000000000..41690962900 Binary files /dev/null and b/doc/source/_static/extensions/icepak_model_reviewer_ui_with_table.png differ diff --git a/src/ansys/aedt/core/extensions/icepak/icepak_model_reviewer.py b/src/ansys/aedt/core/extensions/icepak/icepak_model_reviewer.py new file mode 100644 index 00000000000..474228a0090 --- /dev/null +++ b/src/ansys/aedt/core/extensions/icepak/icepak_model_reviewer.py @@ -0,0 +1,372 @@ +import tkinter as tk +import os +from tkinter import ttk +from ansys.aedt.core.extensions.icepak.model_reviewer.backend import export_config_file, get_object_id_mapping, import_config_file +#from model_reviewer.backend import export_config_file, get_object_id_mapping, import_config_file +from ansys.aedt.core.extensions.misc import get_aedt_version +from ansys.aedt.core.extensions.misc import get_port +from ansys.aedt.core.extensions.misc import get_process_id +from ansys.aedt.core.extensions.misc import is_student +from ansys.aedt.core.extensions.misc import ExtensionCommon +from ansys.aedt.core.extensions.misc import ExtensionCommonData +from ansys.aedt.core.extensions.misc import ExtensionTheme +from ansys.aedt.core import * +from ansys.aedt.core.internal.errors import AEDTRuntimeError + +from ansys.aedt.core.extensions.icepak.model_reviewer.configuration_data_processing import extract_boundary_data, extract_material_data, extract_model_data, \ + compare_and_update_boundary_data, compare_and_update_material_data, compare_and_update_model_data +#from model_reviewer.configuration_data_processing import extract_boundary_data, extract_material_data, extract_model_data, \ +# compare_and_update_boundary_data, compare_and_update_material_data, compare_and_update_model_data + +port = get_port() +version = get_aedt_version() +aedt_process_id = get_process_id() +theme = ExtensionTheme() +EXTENSION_TITLE = "Icepak Model Reviewer" + +def flatten_list(mixed_list): + flat_list = [] + for row in mixed_list: + result = [] + for item in row: + if isinstance(item, list): + result.append(",".join(str(sub) for sub in item)) + else: + result.append(str(item)) + flat_list.append(result) + return flat_list + +def expand_list(flat_list): + mixed_list = [] + for row in flat_list: + result = [] + for item in row: + if isinstance(item, str) and "," in item: + parts = [s.strip() for s in item.split(",")] + result.append(parts) + else: + result.append(str(item)) + mixed_list.append(result) + return mixed_list + +def add_icon_to_cells(data, icon_indices, icon="🔒"): + """ + Adds an icon to specified cells in the data. + Parameters: + - data: list of list of strings (table rows) + - icon_indices: list of list of ints, where each inner list contains read only column indices + - icon: string icon to prepend (default '🔒') + + Returns: + - new_data: deep copy of data with icons added + """ + from copy import deepcopy + new_data = deepcopy(data) + + for row_idx, cols in enumerate(icon_indices): + for col_idx in cols: + cell = new_data[row_idx][col_idx-1] + if isinstance(cell, str): + new_data[row_idx][col_idx-1] = f"{cell}{icon}" + elif isinstance(cell, list): + cell[-1] += icon + new_data[row_idx][col_idx-1] = cell + return new_data + +def remove_icon_from_cells(data, icon="🔒"): + """ + Removes the icon from all cells that start with it. + + Parameters: + - data: list of list of strings + - icon: the icon to remove (default '🔒') + + Returns: + - new_data: deep copy of data with icons removed + """ + from copy import deepcopy + new_data = deepcopy(data) + + for i, row in enumerate(new_data): + for j, cell in enumerate(row): + if isinstance(cell, str): + if cell.endswith(f"{icon}"): # cells can also be list in case of multiple selection + new_data[i][j] = cell[:-(len(icon))] + if isinstance(cell, list): + if cell[-1].endswith(icon): + cell[-1] = cell[-1][:-(len(icon))] + return new_data + +def add_table_to_tab(tab, table_data): + for child in tab.winfo_children(): + child.destroy() + headings, type_list, selection_dict, row_data, read_only_cols = table_data + table = Table(tab, headings, type_list, read_only_cols) + table.pack(fill=tk.BOTH, expand=True) + for column_name, options in selection_dict.items(): + table.set_multi_select_options(column_name, options) + row_data_with_icon = add_icon_to_cells(flatten_list(row_data), read_only_cols) + for row in row_data_with_icon: + table.add_row(row) + return table + + +class Table(tk.Frame): + def __init__(self, parent, headers, types, read_only_data): + super().__init__(parent) + self.headers = ["✔"] + headers + self.types = ["checkbox"] + types + self.read_only_data = [set(r) for r in read_only_data] + #style.configure("Treeview", font=theme.default_font) + self.tree = ttk.Treeview(self, columns=self.headers, show="headings", selectmode="browse") + for i, header in enumerate(self.headers): + self.tree.heading(header, text=header) + self.tree.column(header, width=50 if i == 0 else 140, anchor=tk.CENTER) + + self.tree.pack(fill=tk.BOTH, expand=True) + self.tree.bind("", self.edit_cell) + + self.rows_data = [] + self.multi_select_options = {} + self.selected_rows = set() + + def set_multi_select_options(self, header, options): + self.multi_select_options[header] = options + + def add_row(self, row_data): + print("adding row") + print(row_data) + if len(row_data) != len(self.headers) - 1: + raise ValueError("Row data must match the number of non-checkbox columns") + + full_data = ["⬜"] + row_data + self.rows_data.append(full_data) + row_id = self.tree.insert("", "end", values=full_data) + + def toggle_row(self, row_id, item_index): + if row_id in self.selected_rows: + self.selected_rows.remove(row_id) + self.tree.set(row_id, 0, "⬜") + else: + self.selected_rows.add(row_id) + self.tree.set(row_id, 0, "✅") + + def get_modified_data(self): + return [self.tree.item(row)["values"][1: ] for row in self.tree.get_children()] + #return [row[1:] for row in self.rows_data] # exclude checkbox column + + def edit_cell(self, event): + region = self.tree.identify("region", event.x, event.y) + if region != "cell": + return + + row_id = self.tree.identify_row(event.y) + col = int(self.tree.identify_column(event.x)[1:]) - 1 + item_index = self.tree.index(row_id) + + if col == 0: + self.toggle_row(row_id, item_index) + return + + if col in self.read_only_data[item_index]: + return + + bbox = self.tree.bbox(row_id, f"#{col + 1}") + if not bbox: + return + + x, y, width, height = bbox + abs_x = self.tree.winfo_rootx() + x + abs_y = self.tree.winfo_rooty() + y + + item = self.tree.item(row_id) + value = item["values"][col] + type_ = self.types[col] + + def apply_to_selected(new_value): + for rid in self.tree.get_children(): + if row_id in self.selected_rows: + targets = self.selected_rows + else: + targets = {row_id} + if rid in targets: + idx = self.tree.index(rid) + if col not in self.read_only_data[idx]: + self.tree.set(rid, col, new_value) + self.rows_data[idx][col] = new_value + + if type_ == "text": + entry = tk.Entry(self.tree) + entry.insert(0, value) + entry.place(x=x, y=y, width=width, height=height) + entry.focus_set() + + + def on_return(event): + new_value = entry.get() + apply_to_selected(new_value) + entry.destroy() + + entry.bind("", on_return) + entry.bind("", lambda e: entry.destroy()) + + elif type_ == "combo": + options = self.multi_select_options.get(self.headers[col], []) + combo = ttk.Combobox(self.tree, values=options, state="readonly", style="PyAEDT.TCombobox", font=theme.default_font) + combo.place(x=x, y=y, width=width, height=height) + combo.set(value) + + def on_select(event=None): + new_value = combo.get() + apply_to_selected(new_value) + combo.destroy() + + combo.bind("<>", on_select) + combo.bind("", lambda e: combo.destroy()) + combo.focus_set() + + elif type_ == "multiple_text": + options = self.multi_select_options.get(self.headers[col], []) + top = tk.Toplevel(self) + top.title("Select Multiple") + top.geometry(f"200x300+{abs_x}+{abs_y}") + + listbox = tk.Listbox(top, selectmode="multiple", font=theme.default_font) + for opt in options: + listbox.insert(tk.END, opt) + listbox.pack(fill="both", expand=True) + + current_vals = [val.strip() for val in value.split(",")] + for idx, opt in enumerate(options): + if opt in current_vals: + listbox.selection_set(idx) + + def confirm(): + selected = [options[i] for i in listbox.curselection()] + value_str = ", ".join(selected) + apply_to_selected(value_str) + top.destroy() + + ttk.Button(top, text="OK", command=confirm).pack() + top.transient(self) + top.grab_set() + self.wait_window(top) + + + +class IcepakModelReviewer(ExtensionCommon): + def __init__(self, withdraw: bool = False): + # Initialize the common extension class with the title and theme color + super().__init__( + EXTENSION_TITLE, + theme_color="light", + withdraw=withdraw, + add_custom_content=False, + ) + + self.combined_data = None + self.add_extension_content() + + def add_extension_content(self): + # --- Top Button Panel --- + button_frame = ttk.Frame(self.root, style="PyAEDT.TFrame") + button_frame.pack(fill=tk.X, padx=10, pady=5) + notebook = ttk.Notebook(self.root, style="TNotebook") + notebook.pack(fill=tk.BOTH, expand=True) + self.root.boundary_tab = ttk.Frame(notebook, style="PyAEDT.TFrame") + notebook.add(self.root.boundary_tab, text="Boundary") + self.root.materials_tab = ttk.Frame(notebook, style="PyAEDT.TFrame") + notebook.add(self.root.materials_tab, text="Material") + self.root.models_tab = ttk.Frame(notebook, style="PyAEDT.TFrame") + notebook.add(self.root.models_tab, text="Models") + self.load_button = ttk.Button(button_frame, text="Load Project", command=self.load_project, style="PyAEDT.TButton") + self.load_button.pack(side=tk.LEFT,padx=5) + self.update_button = ttk.Button(button_frame, text="Update Project", command=self.update_project, style="PyAEDT.TButton") + self.update_button.pack(side=tk.LEFT, padx=5) + + def check_design_type(self): + """Check if the active design is an Icepak design.""" + if self.aedt_application.design_type != "Icepak": + raise AEDTRuntimeError("This extension can only be used with Icepak designs.") + + def get_project_data(self): + desktop = Desktop( + new_desktop=False, + version=version, + port=port, + aedt_process_id=aedt_process_id, + student_version=is_student(), + ) + ipk = Icepak() + data = export_config_file(ipk) + if "PYTEST_CURRENT_TEST" not in os.environ: + desktop.release_desktop(close_projects=False, close_on_exit=False) + return data + + def import_data_to_project(self, combined_data): + desktop = Desktop( + new_desktop=False, + version=version, + port=port, + aedt_process_id=aedt_process_id, + student_version=is_student(), + ) + ipk = Icepak() + import_config_file(ipk, combined_data) + if "PYTEST_CURRENT_TEST" not in os.environ: + desktop.release_desktop(False, False) + + def object_id_mapping(self): + desktop = Desktop( + new_desktop=False, + version=version, + port=port, + aedt_process_id=aedt_process_id, + student_version=is_student(), + ) + ipk = Icepak() + mapping = get_object_id_mapping(ipk) + if "PYTEST_CURRENT_TEST" not in os.environ: + desktop.release_desktop(False, False) + return mapping + + def load_project(self): + print("Loading project...") + print("config_file_exported") + data = self.get_project_data() + self.root.json_data = data + + # --- Tabbed Interface --- + table_data = extract_boundary_data(data) + self.root.bc_table = add_table_to_tab(self.root.boundary_tab, table_data) + table_data = extract_material_data(data) + self.root.mat_table = add_table_to_tab(self.root.materials_tab, table_data) + table_data = extract_model_data(data) + self.root.model_table = add_table_to_tab(self.root.models_tab, table_data) + + def update_project(self): + print("Updating project...") + obj_mapping = self.object_id_mapping() + bc_data = self.root.bc_table.get_modified_data() + bc_data = expand_list(remove_icon_from_cells(bc_data)) + differences, new_bc_data = compare_and_update_boundary_data(self.root.json_data, bc_data, obj_mapping) + print(differences) + mat_data = self.root.mat_table.get_modified_data() + mat_data = expand_list(remove_icon_from_cells(mat_data)) + differences, new_mat_data = compare_and_update_material_data(self.root.json_data, mat_data) + print(differences) + model_data = self.root.model_table.get_modified_data() + model_data = expand_list(remove_icon_from_cells(model_data)) + differences, new_model_data = compare_and_update_model_data(self.root.json_data, model_data) + print(differences) + self.combined_data = {**new_model_data, **new_mat_data, **new_bc_data} + self.import_data_to_project(self.combined_data) + + + + +# === Main Application === +if __name__ == "__main__": + #main() + extension = IcepakModelReviewer(withdraw=False) + tk.mainloop() \ No newline at end of file diff --git a/src/ansys/aedt/core/extensions/icepak/model_reviewer/__init__.py b/src/ansys/aedt/core/extensions/icepak/model_reviewer/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/ansys/aedt/core/extensions/icepak/model_reviewer/backend.py b/src/ansys/aedt/core/extensions/icepak/model_reviewer/backend.py new file mode 100644 index 00000000000..a1bd680f410 --- /dev/null +++ b/src/ansys/aedt/core/extensions/icepak/model_reviewer/backend.py @@ -0,0 +1,32 @@ +import json +import os + +def export_config_file(aedtapp): + aedtapp.configurations.options.export_monitor = False + aedtapp.configurations.options.export_native_components = False + aedtapp.configurations.options.export_datasets = False + aedtapp.configurations.options.export_parametrics = False + aedtapp.configurations.options.export_variables = False + aedtapp.configurations.options.export_mesh_operations = False + aedtapp.configurations.options.export_optimizations = False + config_file = aedtapp.configurations.export_config() + with open(config_file, 'r') as file: + data = json.load(file) + return data + +def import_config_file(aedtapp, json_data): + full_path = os.path.abspath("load.json") + with open(full_path, 'w') as file: + json.dump(json_data, file) + print(f"json file path is {full_path}") + out = aedtapp.configurations.import_config(full_path) + result = aedtapp.configurations.validate(out) + if result: + print("sucessfully imported configuration") + else: + print("import has issues") + return None + +def get_object_id_mapping(aedtapp): + object_id_map = {name: aedtapp.modeler.get_obj_id(name) for name in aedtapp.modeler.object_names} + return object_id_map diff --git a/src/ansys/aedt/core/extensions/icepak/model_reviewer/configuration_data_processing.py b/src/ansys/aedt/core/extensions/icepak/model_reviewer/configuration_data_processing.py new file mode 100644 index 00000000000..d34cb2ba34d --- /dev/null +++ b/src/ansys/aedt/core/extensions/icepak/model_reviewer/configuration_data_processing.py @@ -0,0 +1,452 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2021 - 2025 ANSYS, Inc. and/or its affiliates. +# SPDX-License-Identifier: MIT +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import copy + + +def extract_boundary_data(data): + boundary_data = [] + object_mapping = data.get("general", {}).get("object_mapping", {}) + read_only_cols = [] + selection_dict = {} + headings = ["Boundary Name", "Boundary Type", "Selected Objects", "BC Name 1", "Value 1", "BC Name 2", "Value 2"] + type_list = ["text", "text", "multiple_text", "text", "text", "text", "text"] + # Convert mapping to ensure all values are names (some are lists) + id_to_name = {} + for obj_id, value in object_mapping.items(): + if isinstance(value, list): # Some entries have extra data in a list + id_to_name[obj_id] = value[0] # Extract the name + else: + id_to_name[obj_id] = value # Direct mapping + + all_objects = [obj_name for obj_name, obj_details in data.get("objects", {}).items()] + selection_dict["Selected Objects"] = all_objects + + for boundary_name, boundary_details in data.get("boundaries", {}).items(): + cols = [1, 2, 4, 6] + boundary_type = boundary_details.get("BoundType", "") + # block_type = boundary_details.get("Block Type", "") # Solid or Fluid + if boundary_type == "Block": + use_total_power = boundary_details.get("Use Total Power", "") + use_external_conditions = boundary_details.get("Use External Conditions", "") + if use_total_power: + bc_name1 = "Total Power" + bc_name2 = "N/A" + value2 = "0.0" + value1 = boundary_details.get("Total Power", "0W") # Default to "0W" if missing + object_ids = boundary_details.get("Objects", []) # Default to empty list if missing + selected_objects = [id_to_name[str(obj_id)] for obj_id in object_ids] + boundary_data.append( + [boundary_name, boundary_type, selected_objects, bc_name1, value1, bc_name2, value2] + ) + cols.append(7) + read_only_cols.append(cols) + elif use_external_conditions: + bc_name1 = "Heat Transfer Coefficient" + bc_name2 = "Temperature" + value1 = boundary_details.get("Heat Transfer Coefficient", "0w_per_m2k") + value2 = boundary_details.get("Temperature", "0cel") + object_ids = boundary_details.get("Objects", []) # Default to empty list if missing + selected_objects = [id_to_name[str(obj_id)] for obj_id in object_ids] + boundary_data.append( + [boundary_name, boundary_type, selected_objects, bc_name1, value1, bc_name2, value2] + ) + read_only_cols.append(cols) + else: + bc_name1 = "Power Density" + bc_name2 = "N/A" + value2 = "0.0" + value1 = boundary_details.get("Power Density", "0w_per_m3") + object_ids = boundary_details.get("Objects", []) # Default to empty list if missing + selected_objects = [id_to_name[str(obj_id)] for obj_id in object_ids] + boundary_data.append( + [boundary_name, boundary_type, selected_objects, bc_name1, value1, bc_name2, value2] + ) + cols.append(7) + read_only_cols.append(cols) + + if boundary_type == "Source": + thermal_condition = boundary_details.get("Thermal Condition", "") + if thermal_condition == "Surface Flux": + bc_name1 = "Surface Heat" + bc_name2 = "N/A" + value1 = boundary_details.get("Surface Heat", "0kW_per_m2") + value2 = "0.0" + object_ids = boundary_details.get("Faces", []) # Default to empty list if missing + print(f"Faces id {object_ids}") + # selected_objects = [id_to_name[str(obj_id)] for obj_id in object_ids] + # print(f"converted faces id {selected_objects}") + selected_objects = [str(ids) for ids in object_ids] + boundary_data.append( + [boundary_name, boundary_type, selected_objects, bc_name1, value1, bc_name2, value2] + ) + cols.append(3) + cols.append(7) + read_only_cols.append(cols) + if thermal_condition == "Total Power": + bc_name1 = "Total Power" + bc_name2 = "N/A" + value1 = boundary_details.get("Total Power", "0W") + value2 = "0.0" + object_ids = boundary_details.get("Faces", []) # Default to empty list if missing + # selected_objects = [id_to_name[str(obj_id)] for obj_id in object_ids] + selected_objects = [str(ids) for ids in object_ids] + boundary_data.append( + [boundary_name, boundary_type, selected_objects, bc_name1, value1, bc_name2, value2] + ) + cols.append(3) + cols.append(7) + read_only_cols.append(cols) + if thermal_condition == "Fixed Temperature": + bc_name1 = "Fixed Temperature" + bc_name2 = "N/A" + value1 = boundary_details.get("Temperature", "0cel") + value2 = "0.0" + object_ids = boundary_details.get("Faces", []) # Default to empty list if missing + # selected_objects = [id_to_name[str(obj_id)] for obj_id in object_ids] + selected_objects = [str(ids) for ids in object_ids] + boundary_data.append( + [boundary_name, boundary_type, selected_objects, bc_name1, value1, bc_name2, value2] + ) + cols.append(3) + cols.append(7) + read_only_cols.append(cols) + return headings, type_list, selection_dict, boundary_data, read_only_cols + + +def extract_model_data(data): + object_data = [] + bulk_materials = set() + surface_materials = set() + headings = ["Object Name", "Bulk Material", "Surface Material", "Solve Inside", "Modeling"] + type_list = ["text", "combo", "combo", "combo", "combo"] + selection_dict = {"Solve Inside": ["True", "False"], "Modeling": ["Model", "Non-Model"]} + read_only_cols = [] + + for obj_name, obj_details in data.get("objects", {}).items(): + cols = [1] + component_name = obj_name + bulk_material = obj_details.get("Material", "") + surface_material = obj_details.get("SurfaceMaterial", "") + solve = obj_details.get("SolveInside", "") + if solve: + solve_inside = "True" + else: + solve_inside = "False" + + model = obj_details.get("Model", "") + + if model: + modelling = "Model" + else: + modelling = "Non-Model" + + if bulk_material == '""' or bulk_material == "": + bulk_material = "Not Specified" + bulk_materials.add(bulk_material) + else: + bulk_materials.add(bulk_material) + + if surface_material == '""': + surface_material = surface_material.strip('"') + data["objects"][obj_name]["SurfaceMaterial"] = surface_material + surface_material = "Not Specified" + surface_materials.add(surface_material) + elif surface_material == "": + surface_material = "Not Specified" + surface_materials.add(surface_material) + elif surface_material == None: + surface_material = "Not Specified" + surface_materials.add(surface_material) + else: + surface_material = surface_material.strip('"') + data["objects"][obj_name]["SurfaceMaterial"] = surface_material # removing "" in the source + surface_materials.add(surface_material) + + object_data.append([component_name, bulk_material, surface_material, solve_inside, modelling]) + read_only_cols.append(cols) + selection_dict["Bulk Material"] = list(bulk_materials) + selection_dict["Surface Material"] = list(surface_materials) + return headings, type_list, selection_dict, object_data, read_only_cols + + +def extract_material_data(data): + materials = data.get("materials", {}) + extracted_data = [] + read_only_cols = [] + headings = [ + "Material Name", + "Material Type", + "Thermal Conductivity", + "Mass Density", + "Specific Heat", + "Thermal Expansion Coefficient", + "Diffusivity", + "Viscosity", + ] + type_list = ["text", "text", "text", "text", "text", "text", "text", "text"] + selection_dict = {} + + for mat_name, mat_details in materials.items(): + cols = [1] + material_type = mat_details.get("thermal_material_type", {}).get("Choice", "N/A") + # make material type read only + cols.append(2) + if material_type == "Solid" or material_type == "N/A": + cols.append(8) + thermal_conductivity = mat_details.get("thermal_conductivity", "N/A") + # Handle anisotropic thermal conductivity case + if isinstance(thermal_conductivity, dict): + thermal_conductivity = thermal_conductivity["property_type"] + cols.append(3) + mass_density = mat_details.get("mass_density", "N/A") + specific_heat = mat_details.get("specific_heat", "N/A") + thermal_expansion_coefficient = mat_details.get("thermal_expansion_coefficient", "N/A") + + diffusivity = mat_details.get("diffusivity", "N/A") + viscosity = mat_details.get("viscosity", "N/A") + + extracted_data.append( + [ + mat_name, + material_type, + thermal_conductivity, + mass_density, + specific_heat, + thermal_expansion_coefficient, + diffusivity, + viscosity, + ] + ) + read_only_cols.append(cols) + return headings, type_list, selection_dict, extracted_data, read_only_cols + + +def compare_and_update_boundary_data(original_data, modified_object_data, object_mapping): + """ + Compares modified object data with the original data and identifies differences. + Also returns the updated original data with the modifications applied. + """ + # updated_data = copy.deepcopy(original_data) # Make a copy to avoid modifying original + differences = [] + inverse_mapping = {str(v): k for k, v in object_mapping.items()} + + updated_data = {"boundaries": {}, "general": {}} + updated_data["general"]["object_mapping"] = {**original_data["general"]["object_mapping"], **inverse_mapping} + modified_boundary = set() + for row in modified_object_data: + (boundary_name, boundary_type, selected_objects, bc_name1, value1, bc_name2, value2) = row + + original_obj = original_data["boundaries"][boundary_name] + updated_data["boundaries"][boundary_name] = copy.deepcopy(original_data["boundaries"][boundary_name]) + + # Convert string values back to boolean where necessary + print("printing selected objects") + print(selected_objects) + print(object_mapping) + + # Check for differences and update + if isinstance(selected_objects, list): + selected_object_ids = [int(i) if str(i).isdigit() else object_mapping[i] for i in selected_objects] + selected_objects_list = [i for i in selected_objects] + if isinstance(selected_objects, str): + selected_object_ids = [ + int(i.strip()) if str(i.strip()).isdigit() else object_mapping[i.strip()] + for i in selected_objects.split(",") + ] + selected_objects_list = [i.strip() for i in selected_objects.split(",")] + + original_obj_ids = original_obj.get("Objects", []) + if original_obj_ids: + if set(original_obj_ids) != set(selected_object_ids): + differences.append(f"{boundary_name}: {bc_name1} selected objects changed to '{selected_objects}'") + # updated_data["boundaries"][boundary_name]["Objects"] = selected_object_ids + updated_data["boundaries"][boundary_name]["Objects"] = selected_objects_list + modified_boundary.add(boundary_name) + + if original_obj.get(bc_name1, "") != value1: + differences.append( + f"{boundary_name}: {bc_name1} changed from '{original_obj.get(bc_name1, '')}' to '{value1}'" + ) + updated_data["boundaries"][boundary_name][bc_name1] = value1 + modified_boundary.add(boundary_name) + + if bc_name2 != "N/A": + if original_obj.get(bc_name2, "") != value2: + differences.append( + f"{boundary_name}: {bc_name1} changed from '{original_obj.get(bc_name1, '')}' to '{value1}'" + ) + updated_data["boundaries"][boundary_name][bc_name2] = value2 + modified_boundary.add(boundary_name) + + modified_data = {"boundaries": {}, "general": {}} + modified_data["general"]["object_mapping"] = {**original_data["general"]["object_mapping"], **inverse_mapping} + for boundary_name in modified_boundary: + modified_data["boundaries"][boundary_name] = copy.deepcopy(updated_data["boundaries"][boundary_name]) + + return differences, modified_data + + +def compare_and_update_model_data(original_data, modified_object_data): + """ + Compares modified object data with the original data and identifies differences. + Also returns the updated original data with the modifications applied. + """ + # updated_data = copy.deepcopy(original_data) # Make a copy to avoid modifying original + updated_data = {"objects": {}} + differences = [] + modified_objects = set() + # Convert object data into a lookup dictionary for easy comparison + for row in modified_object_data: + obj_name, bulk_material, surface_material, solve_inside, modelling = row + + original_obj = original_data["objects"][obj_name] + updated_data["objects"][obj_name] = copy.deepcopy(original_data["objects"][obj_name]) + + # Convert string values back to boolean where necessary + solve_inside_bool = solve_inside == "True" + modelling_bool = modelling == "Model" + + # Check for differences and update + if not bulk_material == "Not Specified": + if original_obj.get("Material", "") != bulk_material: + differences.append( + f"{obj_name}: Bulk Material changed from '{original_obj.get('Material', '')}' to '{bulk_material}'" + ) + updated_data["objects"][obj_name]["Material"] = bulk_material + modified_objects.add(obj_name) + + if not surface_material == "Not Specified": + if original_obj.get("SurfaceMaterial", "") != surface_material: + differences.append( + f"{obj_name}: Surface Material changed from '{original_obj.get('SurfaceMaterial', '')}' to '{surface_material}'" + ) + updated_data["objects"][obj_name]["SurfaceMaterial"] = surface_material + modified_objects.add(obj_name) + + if original_obj.get("SolveInside", "") != solve_inside_bool: + differences.append( + f"{obj_name}: Solve Inside changed from '{original_obj.get('SolveInside', '')}' to '{solve_inside_bool}'" + ) + updated_data["objects"][obj_name]["SolveInside"] = solve_inside_bool + modified_objects.add(obj_name) + + if original_obj.get("Model", "") != modelling_bool: + differences.append( + f"{obj_name}: Modeling changed from '{original_obj.get('Model', '')}' to '{modelling_bool}'" + ) + updated_data["objects"][obj_name]["Model"] = modelling_bool + updated_data["objects"][obj_name]["SurfaceMaterial"] = None + modified_objects.add(obj_name) + + modified_data = {"objects": {}} + for obj_name in modified_objects: + modified_data["objects"][obj_name] = copy.deepcopy(updated_data["objects"][obj_name]) + + return differences, modified_data + + +def compare_and_update_material_data(original_data, modified_object_data): + """ + Compares modified object data with the original data and identifies differences. + Also returns the updated original data with the modifications applied. + """ + # updated_data = copy.deepcopy(original_data) # Make a copy to avoid modifying original + differences = [] + updated_data = {"materials": {}} + # Convert object data into a lookup dictionary for easy comparison + modified_materials = set() + for row in modified_object_data: + ( + mat_name, + material_type, + thermal_conductivity, + mass_density, + specific_heat, + thermal_expansion_coefficient, + diffusivity, + viscosity, + ) = row + + original_obj = original_data["materials"][mat_name] + updated_data["materials"][mat_name] = copy.deepcopy(original_data["materials"][mat_name]) + + # Check for differences and update + if not isinstance(original_obj.get("thermal_conductivity"), dict): + if original_obj.get("thermal_conductivity", "") != thermal_conductivity: + differences.append( + f"{mat_name}: Thermal Conductivity changed from '{original_obj.get('thermal_conductivity', '')}' to '{thermal_conductivity}'" + ) + updated_data["materials"][mat_name]["thermal_conductivity"] = thermal_conductivity + modified_materials.add(mat_name) + + if original_obj.get("mass_density", "") != mass_density: + differences.append( + f"{mat_name}: Mass density changed from '{original_obj.get('mass_density', '')}' to '{mass_density}'" + ) + updated_data["materials"][mat_name]["mass_density"] = mass_density + modified_materials.add(mat_name) + + if original_obj.get("specific_heat", "") != specific_heat: + differences.append( + f"{mat_name}: specific heat changed from '{original_obj.get('specific_heat', '')}' to '{specific_heat}'" + ) + updated_data["materials"][mat_name]["specific_heat"] = specific_heat + modified_materials.add(mat_name) + + if original_obj.get("thermal_expansion_coefficient", "") != thermal_expansion_coefficient: + differences.append( + f"{mat_name}: Thermal expansion coefficient changed " + f"from '{original_obj.get('thermal_expansion_coefficient', '')}' to '{thermal_expansion_coefficient}'" + ) + updated_data["materials"][mat_name]["thermal_expansion_coefficient"] = thermal_expansion_coefficient + modified_materials.add(mat_name) + + if original_obj.get("diffusivity", "") != diffusivity: + differences.append( + f"{mat_name}: diffusivity changed from '{original_obj.get('diffusivity', '')}' to '{diffusivity}'" + ) + updated_data["materials"][mat_name]["diffusivity"] = diffusivity + modified_materials.add(mat_name) + + if original_obj.get("viscosity", "") != viscosity: + differences.append( + f"{mat_name}: diffusivity changed from '{original_obj.get('diffusivity', '')}' to '{diffusivity}'" + ) + updated_data["materials"][mat_name]["viscosity"] = diffusivity + modified_materials.add(mat_name) + + modified_data = {"materials": {}} + for mat_name in modified_materials: + modified_data["materials"][mat_name] = copy.deepcopy(updated_data["materials"][mat_name]) + return differences, modified_data + + +if __name__ == "__main__": + import json + + sample_json = "test1.json" + with open(sample_json, "r") as file: + data = json.load(file) + extract_boundary_data(data) diff --git a/src/ansys/aedt/core/extensions/icepak/toolkits_catalog.toml b/src/ansys/aedt/core/extensions/icepak/toolkits_catalog.toml index cfa37bd6a68..4eb4b74e94f 100644 --- a/src/ansys/aedt/core/extensions/icepak/toolkits_catalog.toml +++ b/src/ansys/aedt/core/extensions/icepak/toolkits_catalog.toml @@ -2,4 +2,10 @@ name = "Create Power Map from CSV file" script = "power_map_from_csv.py" icon = "images/large/power_map.png" +template = "run_pyaedt_toolkit_script" + +[IcepakModelReviewer] +name = "Icepak Model Reviewer" +script = "icepak_model_reviewer.py" +icon = "images/large/push.png" template = "run_pyaedt_toolkit_script" \ No newline at end of file diff --git a/tests/system/extensions/example_models/T45/Graphics_Card.aedt b/tests/system/extensions/example_models/T45/Graphics_Card.aedt new file mode 100644 index 00000000000..daec8388b4c --- /dev/null +++ b/tests/system/extensions/example_models/T45/Graphics_Card.aedt @@ -0,0 +1,3098 @@ +$begin 'AnsoftProject' + Created='Thu Mar 02 13:18:51 2017' + Product='ElectronicsDesktop' + FileOwnedByWorkbench=false + $begin 'Desktop' + Version(2025, 1) + InfrastructureVersion(1, 0) + $begin 'FactoryHeader' + $begin 'geometry3deditor' + KernelVersion(2, 0) + ProjectContainsGeometry3D='1' + $end 'geometry3deditor' + $end 'FactoryHeader' + $end 'Desktop' + UsesAdvancedFeatures=false + NextUniqueID=0 + MoveBackwards=false + $begin 'HFSSEnvironment' + Version(1, 0) + $end 'HFSSEnvironment' + $begin 'PlanarEMEnvironment' + Version(1, 0) + $end 'PlanarEMEnvironment' + $begin 'Q3DEnvironment' + Version(1, 0) + $end 'Q3DEnvironment' + $begin '2DExtractorEnvironment' + Version(1, 0) + $end '2DExtractorEnvironment' + $begin 'NexximEnvironment' + Version(1, 0) + $end 'NexximEnvironment' + $begin 'NexximNetlistEnvironment' + Version(1, 0) + $end 'NexximNetlistEnvironment' + $begin 'EmitEnvironment' + Version(1, 0) + $end 'EmitEnvironment' + $begin 'Maxwell3DEnvironment' + Version(1, 0) + $end 'Maxwell3DEnvironment' + $begin 'Maxwell2DEnvironment' + Version(1, 0) + $end 'Maxwell2DEnvironment' + $begin 'RMxprtEnvironment' + Version(1, 0) + $end 'RMxprtEnvironment' + $begin 'MaxCirEnvironment' + Version(1, 0) + $end 'MaxCirEnvironment' + $begin 'SimplorerEnvironment' + Version(1, 0) + $end 'SimplorerEnvironment' + $begin 'IcepakEnvironment' + Version(1, 0) + $end 'IcepakEnvironment' + $begin 'MechanicalEnvironment' + Version(1, 0) + $end 'MechanicalEnvironment' + $begin 'SchematicEnvironment' + Version(1, 0) + $end 'SchematicEnvironment' + $begin 'geometry3deditor' + Version(1, 0) + $end 'geometry3deditor' + ReadVersion=12 + $begin 'DesignMgrEnvironment' + CompInstCounter=1 + GPortCounter=0 + NetCounter=0 + Alias('Ieee;Simplorer Elements\\Ieee', 'Std;Simplorer Elements\\Std', 'Basic_VHDLAMS;Simplorer Elements\\Basic Elements VHDLAMS\\Basic Elements VHDLAMS', 'Digital_Elements;Simplorer Elements\\Digital Elements\\Digital Elements', 'Transformations;Simplorer Elements\\Tools\\Transformations\\Transformations', 'HEV_VHDLAMS;Simplorer Elements\\HEV VHDLAMS\\HEV VHDLAMS', 'automotive_vda;Simplorer Elements\\VDALibs VHDLAMS\\automotive_vda', 'example_boardnet;Simplorer Elements\\VDALibs VHDLAMS\\example_boardnet', 'example_ecar;Simplorer Elements\\VDALibs VHDLAMS\\example_ecar', 'fundamentals_vda;Simplorer Elements\\VDALibs VHDLAMS\\fundamentals_vda', 'hybrid_emc_vda;Simplorer Elements\\VDALibs VHDLAMS\\hybrid_emc_vda', 'megma;Simplorer Elements\\VDALibs VHDLAMS\\megma', 'modelica_rotational;Simplorer Elements\\VDALibs VHDLAMS\\modelica_rotational', 'modelica_thermal;Simplorer Elements\\VDALibs VHDLAMS\\modelica_thermal', 'modelica_translational;Simplorer Elements\\VDALibs VHDLAMS\\modelica_translational', 'spice2vhd;Simplorer Elements\\VDALibs VHDLAMS\\spice2vhd', 'spice2vhd_devices;Simplorer Elements\\VDALibs VHDLAMS\\spice2vhd_devices', 'aircraft_electrical_vhdlams;Simplorer Elements\\Aircraft Electrical VHDLAMS\\Aircraft Electrical VHDLAMS', 'power_system_vhdlams;Simplorer Elements\\Power System VHDLAMS\\Power System VHDLAMS') + $end 'DesignMgrEnvironment' + $begin 'ProjectDatasets' + NextUniqueID=1 + MoveBackwards=false + DatasetType='ProjectDatasetType' + $begin 'DatasetDefinitions' + $begin '$Ceramic_material_39' + ID=0 + $begin 'Coordinates' + DimUnits[2: '', ''] + Points[8: -273.15, 0.067032967032967, -196.15, 0.067032967032967, 99.85, 1, 726.85, 1] + $end 'Coordinates' + $end '$Ceramic_material_39' + $end 'DatasetDefinitions' + $end 'ProjectDatasets' + VariableOrders[0:] + $begin 'Definitions' + $begin 'Materials' + $begin 'Al-Extruded' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=1 + $begin 'PhysicsTypes' + set('Thermal') + $end 'PhysicsTypes' + $begin 'AttachedData' + $begin 'MatAppearanceData' + property_data='appearance_data' + Red=232 + Green=235 + Blue=235 + $end 'MatAppearanceData' + $end 'AttachedData' + permittivity='1' + permeability='1' + conductivity='0' + dielectric_loss_tangent='0' + magnetic_loss_tangent='0' + thermal_conductivity='152' + mass_density='2000' + specific_heat='900' + youngs_modulus='0' + poissons_ratio='0' + thermal_expansion_coefficient='0' + $begin 'thermal_material_type' + property_type='ChoiceProperty' + Choice='Solid' + $end 'thermal_material_type' + diffusivity='0.8' + molecular_mass='0' + viscosity='0' + $begin 'clarity_type' + property_type='ChoiceProperty' + Choice='Opaque' + $end 'clarity_type' + ModTime=1753886315 + Library='' + LibLocation='Project' + ModSinceLib=true + $end 'Al-Extruded' + $begin 'air' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=1 + $begin 'PhysicsTypes' + set('Electromagnetic', 'Thermal') + $end 'PhysicsTypes' + $begin 'AttachedData' + $begin 'MatAppearanceData' + property_data='appearance_data' + Red=230 + Green=230 + Blue=230 + Transparency=0.949999988079071 + $end 'MatAppearanceData' + $end 'AttachedData' + permittivity='1.0006' + permeability='1.0000004' + conductivity='0' + dielectric_loss_tangent='0' + magnetic_loss_tangent='0' + thermal_conductivity='0.0261' + mass_density='1.1614' + specific_heat='1005' + youngs_modulus='0' + poissons_ratio='0' + thermal_expansion_coefficient='0.00333' + $begin 'thermal_material_type' + property_type='ChoiceProperty' + Choice='Fluid' + $end 'thermal_material_type' + diffusivity='2.88e-05' + molecular_mass='0.028966' + viscosity='1.84e-05' + material_refractive_index='1.000293' + $begin 'clarity_type' + property_type='ChoiceProperty' + Choice='Transparent' + $end 'clarity_type' + ModTime=1753886316 + Library='' + LibLocation='Project' + ModSinceLib=true + $end 'air' + $begin 'PCB_Material' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=1 + $begin 'PhysicsTypes' + set('Thermal') + $end 'PhysicsTypes' + $begin 'AttachedData' + $begin 'MatAppearanceData' + property_data='appearance_data' + Red=210 + Green=105 + Blue=30 + Transparency=0 + $end 'MatAppearanceData' + $end 'AttachedData' + permittivity='1' + permeability='1' + conductivity='0' + dielectric_loss_tangent='0' + magnetic_loss_tangent='0' + thermal_conductivity='0.01' + mass_density='1' + specific_heat='2' + youngs_modulus='0' + poissons_ratio='0' + thermal_expansion_coefficient='1' + diffusivity='0.8' + molecular_mass='0' + viscosity='0' + ModTime=1753886315 + Library='' + LibLocation='Project' + ModSinceLib=true + $end 'PCB_Material' + $begin 'Ceramic_material' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=1 + $begin 'PhysicsTypes' + set('Thermal') + $end 'PhysicsTypes' + $begin 'AttachedData' + $begin 'MatAppearanceData' + property_data='appearance_data' + Red=0 + Green=100 + Blue=0 + Transparency=0 + $end 'MatAppearanceData' + $end 'AttachedData' + $begin 'ModifierData' + $begin 'ThermalModifierData' + modifier_data='thermal_modifier_data' + $begin 'all_thermal_modifiers' + $end 'all_thermal_modifiers' + $end 'ThermalModifierData' + $end 'ModifierData' + permittivity='1' + permeability='1' + conductivity='0' + dielectric_loss_tangent='0' + magnetic_loss_tangent='0' + thermal_conductivity='15' + mass_density='2500' + specific_heat='910' + youngs_modulus='0' + poissons_ratio='0' + thermal_expansion_coefficient='0' + $begin 'thermal_material_type' + property_type='ChoiceProperty' + Choice='Solid' + $end 'thermal_material_type' + diffusivity='0.8' + molecular_mass='0' + viscosity='0' + ModTime=1753886315 + Library='' + LibLocation='Project' + ModSinceLib=true + $end 'Ceramic_material' + $end 'Materials' + $begin 'SurfaceMaterials' + $begin 'Steel-oxidised-surface' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=2 + $begin 'PhysicsTypes' + set('Thermal') + $end 'PhysicsTypes' + surface_emissivity='0.8' + ModTime=1461288057 + Library='SurfaceMaterials' + LibLocation='SysLibrary' + ModSinceLib=false + $end 'Steel-oxidised-surface' + $begin 'Shellac dull-surface' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=2 + $begin 'PhysicsTypes' + set('Thermal') + $end 'PhysicsTypes' + surface_emissivity='0.91' + ModTime=1461288057 + Library='SurfaceMaterials' + LibLocation='SysLibrary' + ModSinceLib=false + $end 'Shellac dull-surface' + $begin 'Shellac-Bright-surface' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=2 + $begin 'PhysicsTypes' + set('Thermal') + $end 'PhysicsTypes' + surface_emissivity='0.82' + ModTime=1461288057 + Library='SurfaceMaterials' + LibLocation='SysLibrary' + ModSinceLib=false + $end 'Shellac-Bright-surface' + $begin 'Soft Rubber-Gray-surface' + CoordinateSystemType='Cartesian' + BulkOrSurfaceType=2 + $begin 'PhysicsTypes' + set('Thermal') + $end 'PhysicsTypes' + surface_emissivity='0.86' + ModTime=1461288057 + Library='SurfaceMaterials' + LibLocation='SysLibrary' + ModSinceLib=false + $end 'Soft Rubber-Gray-surface' + $end 'SurfaceMaterials' + $begin 'Scripts' + $end 'Scripts' + $begin 'Symbols' + $begin 'IcepakDesign1' + ModTime=1488469606 + Library='' + ModSinceLib=false + LibLocation='Project' + HighestLevel=1 + Normalize=true + InitialLevels(0, 1) + $begin 'Graphics' + Rect(0, 0, 0, 0, 0.00254, 0.00254, 0.00508, 0.00508, 0, 0, 0) + Rect(0, 1, 0, 0, 0.000423333333333333, 0.00254, 0.000423333333333333, 0.000423333333333334, 0, 0, 0) + $end 'Graphics' + $end 'IcepakDesign1' + $end 'Symbols' + $begin 'DefInfo' + IcepakDesign1(1002, 0, 0, 0, '', 1488469606, '', 'IcepakDesign1', '', '', '', '', '', 'Design.bmp', '', 'Project', '', '', 1488469606, '', 0, 0) + $end 'DefInfo' + $begin 'Compdefs' + $begin 'IcepakDesign1' + Library='' + CircuitEnv=0 + Refbase='U' + NumParts=1 + ModSinceLib=true + $begin 'Properties' + TextProp('Representation', 'SRD', '', 'IcepakDesign1') + TextProp('Owner', 'SRD', '', 'Icepak') + $end 'Properties' + CompExtID=6 + $begin 'Parameters' + ButtonProp('CosimDefinition', 'D', '', 'Edit', 'Edit', 40501, ButtonPropClientData()) + MenuProp('CoSimulator', 'D', '', 'DefaultNetlist', 0) + $end 'Parameters' + $begin 'CosimDefinitions' + $begin 'CosimDefinition' + CosimulatorType=4 + CosimDefName='DefaultNetlist' + IsDefinition=true + Connect=true + Data() + GRef() + $end 'CosimDefinition' + DefaultCosim='DefaultNetlist' + $end 'CosimDefinitions' + $end 'IcepakDesign1' + $end 'Compdefs' + $end 'Definitions' + DesignIDServer=2 + MoveBackwards=false + $begin 'IcepakModel' + RepRewriteV2=true + Name='IcepakDesign1' + DesignID=0 + 'Perform Minimal validation'=true + 'Default Fluid Material'='air' + 'Default Solid Material'='Al-Extruded' + 'Default Surface Material'='Steel-Oxidised-surface' + AmbientTemperature='20cel' + AmbientPressure='0n_per_meter_sq' + AmbientRadiationTemperature='20cel' + 'Gravity Vector CS ID'=1 + 'Gravity Vector Axis'='Y' + Positive=false + ExportOnSimulationComplete=false + ExportDirectory='' + SherlockExportOnSimulationComplete=false + SherlockExportAsFatigue=true + SherlockExportDirectory='D:/Siva_Coding/Graphics_Card.aedtexport/IcepakDesign1/' + AutoLaunchMeshViewer=true + MeshCadAsLightWeight=true + EnableTransitionTemplate=false + TempSecondaryGradientSkewMesh=false + EnableMeshByLayerFor2DMLM=false + BoundaryBasedMeshRefinement=false + EnableAltitudeEffects=false + UpdateFanCurve=false + Altitude='0meter' + EnableIdealGasLaw=false + OperatingPressure='101325n_per_meter_sq' + EnableOperatingDensity=false + OperatingDensity='1.225kg_per_m3' + AppendTemplateToFieldsSummaryReport=false + EnableLoadSolution=false + $begin 'SolutionTypeOption' + SolutionTypeOption='SteadyState' + ProblemOption='TemperatureAndFlow' + $end 'SolutionTypeOption' + $begin 'OutputVariable' + NextUniqueID=0 + MoveBackwards=false + $end 'OutputVariable' + $begin 'ModelSetup' + $begin 'DesignDatasets' + NextUniqueID=0 + MoveBackwards=false + DatasetType='DesignDatasetType' + $begin 'DatasetDefinitions' + $end 'DatasetDefinitions' + $end 'DesignDatasets' + VariableOrders[0:] + $begin 'Editor3D Doc Preferences' + BackgroundColorVersion=1 + 'Plane Background'=0 + 'Need Lights'=true + 'Ambient Light'=9671571 + 'Num Lights'=4 + Light0[4: 6710886, 0, -1, -0.150000005960464] + Light1[4: 6710886, -0.600000023841858, 0.100000001490116, -0.5] + Light2[4: 6710886, 0.5, 0.100000001490116, -0.5] + Light3[4: 6710886, 0.200000002980232, 0.400000005960464, 1] + Ver=2 + $end 'Editor3D Doc Preferences' + SnapMode=31 + WorkingCS=1 + $begin 'GeometryCore' + BlockVersionID=3 + DataVersion=170 + NativeKernel='PARASOLID' + NativeKernelVersionID=25 + Units='mm' + ModelExtents=10000 + InstanceID=-1 + $begin 'ValidationOptions' + EntityCheckLevel='Basic' + IgnoreUnclassifiedObjects=true + SkipIntersectionChecks=true + $end 'ValidationOptions' + ContainsGeomLinkUDM=false + $begin 'GeometryOperations' + BlockVersionID=2 + $begin 'AnsoftRangedIDServerManager' + $begin 'AnsoftRangedIDServer' + IDServerObjectTypeID=0 + IDServerRangeMin=0 + IDServerRangeMax=2146483647 + NextUniqueID=609 + MoveBackwards=false + $end 'AnsoftRangedIDServer' + $begin 'AnsoftRangedIDServer' + IDServerObjectTypeID=1 + IDServerRangeMin=2146483648 + IDServerRangeMax=2146485547 + NextUniqueID=2146483654 + MoveBackwards=false + $end 'AnsoftRangedIDServer' + $end 'AnsoftRangedIDServerManager' + StartBackGroundFaceID=2146483648 + $begin 'CoordinateSystems' + $end 'CoordinateSystems' + $begin 'OperandCSs' + $end 'OperandCSs' + $begin 'SubModelDefinitions' + $end 'SubModelDefinitions' + $begin 'Groups' + $begin 'Group' + GroupID=477 + $begin 'Attributes' + Name='graphics_card_simple' + ParentGroupID=-1 + $end 'Attributes' + $end 'Group' + $end 'Groups' + $begin 'UserDefinedModels' + $end 'UserDefinedModels' + $begin 'OperandUserDefinedModels' + $end 'OperandUserDefinedModels' + $begin 'ToplevelParts' + $begin 'GeometryPart' + $begin 'Attributes' + Name='Region' + Flags='Wireframe#' + Color='(0 0 0)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=-1 + MaterialValue='"air"' + SurfaceMaterialValue='""' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='Region' + ID=5 + ReferenceCoordSystemID=1 + $begin 'RegionParameters' + KernelVersion=9 + '+XPaddingType'='Percentage Offset' + '+XPadding'='50' + '-XPaddingType'='Percentage Offset' + '-XPadding'='50' + '+YPaddingType'='Percentage Offset' + '+YPadding'='50' + '-YPaddingType'='Percentage Offset' + '-YPadding'='50' + '+ZPaddingType'='Percentage Offset' + '+ZPadding'='50' + '-ZPaddingType'='Percentage Offset' + '-ZPadding'='50' + $begin 'BoxForVirtualObjects' + LowPoint[3: 1, 1, 1] + HighPoint[3: -1, -1, -1] + $end 'BoxForVirtualObjects' + $end 'RegionParameters' + ParentPartID=6 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=6 + StartFaceID=7 + StartEdgeID=13 + StartVertexID=25 + NumNewFaces=6 + NumNewEdges=12 + NumNewVertices=8 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + IsXZ2DModeler=false + $end 'OperationIdentity' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='SERIAL_PORT' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Al-Extruded"' + SurfaceMaterialValue='"Soft Rubber-Gray-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=33 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=34 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000034.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='MEMORY1' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Ceramic_material"' + SurfaceMaterialValue='"Soft Rubber-Gray-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=61 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=62 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000062.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='MEMORY1_1' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Ceramic_material"' + SurfaceMaterialValue='"Soft Rubber-Gray-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=89 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=90 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000090.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='CAPACITOR' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Ceramic_material"' + SurfaceMaterialValue='"Soft Rubber-Gray-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=117 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=118 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=4 + NumWires=0 + NumLoops=4 + NumCoedges=12 + NumEdges=6 + NumVertices=4 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000118.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='CAPACITOR_1' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Ceramic_material"' + SurfaceMaterialValue='"Soft Rubber-Gray-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=133 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=134 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=4 + NumWires=0 + NumLoops=4 + NumCoedges=12 + NumEdges=6 + NumVertices=4 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000134.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='KB' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Al-Extruded"' + SurfaceMaterialValue='"Soft Rubber-Gray-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=149 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=150 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000150.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='HEAT_SINK' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Al-Extruded"' + SurfaceMaterialValue='"Soft Rubber-Gray-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=177 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=178 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=42 + NumWires=0 + NumLoops=42 + NumCoedges=240 + NumEdges=120 + NumVertices=80 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000178.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[1: 581] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='CPU' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Al-Extruded"' + SurfaceMaterialValue='"Steel-oxidised-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=421 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=422 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000422.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='ALPHA_MAIN_PCB' + Flags='' + Color='(175 175 175)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=477 + MaterialValue='"Al-Extruded"' + SurfaceMaterialValue='"Steel-oxidised-surface"' + SolveInside=true + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='NativeBody' + ID=449 + ReferenceCoordSystemID=1 + $begin 'NativeBodyParameters' + KernelVersion=9 + SourceFile='D:\\AnsysEM\\AnsysEM18.1\\Win64\\Examples\\Icepak\\Graphics Card\\graphics_card_simple.stp' + $end 'NativeBodyParameters' + ParentPartID=450 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=-1 + StartFaceID=-1 + StartEdgeID=-1 + StartVertexID=-1 + NumNewFaces=0 + NumNewEdges=0 + NumNewVertices=0 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + BodyType='BRepBody' + $begin 'BodyBlock' + BodyFileNamesVec[1: '0000450.x_b'] + $end 'BodyBlock' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='Box1' + Flags='NonModel#Wireframe#' + Color='(255 0 0)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=-1 + MaterialValue='""' + SurfaceMaterialValue='""' + SolveInside=false + ShellElement=false + ShellElementThickness='0mm' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='Box' + ID=497 + ReferenceCoordSystemID=1 + $begin 'BoxParameters' + KernelVersion=9 + XPosition='-72mm' + YPosition='-5mm' + ZPosition='-63mm' + XSize='67mm' + YSize='38mm' + ZSize='52mm' + $end 'BoxParameters' + ParentPartID=498 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=498 + StartFaceID=499 + StartEdgeID=505 + StartVertexID=517 + NumNewFaces=6 + NumNewEdges=12 + NumNewVertices=8 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + $end 'OperationIdentity' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[1: 553] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='MeshRegion1_SubRegion' + Flags='NonModel#Wireframe#' + Color='(255 0 0)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=-1 + MaterialValue='""' + SurfaceMaterialValue='""' + SolveInside=true + ShellElement=false + ShellElementThickness='nan ' + ReferenceTemperature='20cel' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='SubRegion' + ID=553 + ReferenceCoordSystemID=1 + $begin 'SubRegionParameters' + KernelVersion=24 + '+XPaddingType'='Absolute Offset' + '+XPadding'='0mm' + '-XPaddingType'='Absolute Offset' + '-XPadding'='0mm' + '+YPaddingType'='Absolute Offset' + '+YPadding'='0mm' + '-YPaddingType'='Absolute Offset' + '-YPadding'='0mm' + '+ZPaddingType'='Absolute Offset' + '+ZPadding'='0mm' + '-ZPaddingType'='Absolute Offset' + '-ZPadding'='0mm' + $begin 'BoxForVirtualObjects' + LowPoint[3: 1, 1, 1] + HighPoint[3: -1, -1, -1] + $end 'BoxForVirtualObjects' + SubRegionParts[1: 498] + SubRegionSubmodels[0:] + $end 'SubRegionParameters' + ParentPartID=554 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=554 + StartFaceID=555 + StartEdgeID=561 + StartVertexID=573 + NumNewFaces=6 + NumNewEdges=12 + NumNewVertices=8 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + IsXZ2DModeler=false + $end 'OperationIdentity' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $begin 'GeometryPart' + $begin 'Attributes' + Name='MeshRegion2_SubRegion' + Flags='NonModel#Wireframe#' + Color='(143 175 143)' + Transparency=0 + PartCoordinateSystem=1 + UDMId=-1 + GroupId=-1 + MaterialValue='"air"' + SurfaceMaterialValue='""' + SolveInside=true + ShellElement=false + ShellElementThickness='nan ' + ReferenceTemperature='nan ' + IsMaterialEditable=true + IsSurfaceMaterialEditable=true + UseMaterialAppearance=false + IsLightweight=false + IsAlwaysHidden=false + $end 'Attributes' + $begin 'PhysicsAttributes' + SuppressedForPhysics='False' + SuppressedForPhysicsEditable=true + $end 'PhysicsAttributes' + $begin 'Operations' + $begin 'Operation' + OperationType='SubRegion' + ID=581 + ReferenceCoordSystemID=1 + $begin 'SubRegionParameters' + KernelVersion=25 + '+XPaddingType'='Percentage Offset' + '+XPadding'='1' + '-XPaddingType'='Percentage Offset' + '-XPadding'='1' + '+YPaddingType'='Percentage Offset' + '+YPadding'='1' + '-YPaddingType'='Percentage Offset' + '-YPadding'='1' + '+ZPaddingType'='Percentage Offset' + '+ZPadding'='1' + '-ZPaddingType'='Percentage Offset' + '-ZPadding'='1' + $begin 'BoxForVirtualObjects' + LowPoint[3: 1, 1, 1] + HighPoint[3: -1, -1, -1] + $end 'BoxForVirtualObjects' + SubRegionParts[1: 178] + SubRegionSubmodels[0:] + $end 'SubRegionParameters' + ParentPartID=582 + ReferenceUDMID=-1 + IsSuppressed=false + $begin 'OperationIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=582 + StartFaceID=583 + StartEdgeID=589 + StartVertexID=601 + NumNewFaces=6 + NumNewEdges=12 + NumNewVertices=8 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + IsXZ2DModeler=false + $end 'OperationIdentity' + $end 'Operation' + $end 'Operations' + $begin 'SubregionDependencyInformation' + ChildSubregions[0:] + $end 'SubregionDependencyInformation' + $end 'GeometryPart' + $end 'ToplevelParts' + $begin 'OperandParts' + $end 'OperandParts' + $begin 'Planes' + $begin 'GeometryPlane' + $begin 'Attributes' + Name='Plane1' + Color='(143 175 143)' + $end 'Attributes' + $begin 'Operation' + OperationType='Plane' + ID=496 + ReferenceCoordSystemID=1 + $begin 'PlaneParameters' + KernelVersion=9 + PlaneBaseX='0mm' + PlaneBaseY='1.6mm' + PlaneBaseZ='-55mm' + PlaneNormalX='0mm' + PlaneNormalY='0mm' + PlaneNormalZ='5mm' + $end 'PlaneParameters' + ParentPartID=-1 + ReferenceUDMID=-1 + $end 'Operation' + $end 'GeometryPlane' + $end 'Planes' + $begin 'Points' + $begin 'GeometryPoint' + $begin 'Attributes' + Name='CPU_Monitor' + Color='(143 175 143)' + $end 'Attributes' + $begin 'Operation' + OperationType='Point' + ID=482 + ReferenceCoordSystemID=1 + $begin 'PointParameters' + KernelVersion=9 + PointX='-37mm' + PointY='3.086mm' + PointZ='-43mm' + $end 'PointParameters' + ParentPartID=-1 + ReferenceUDMID=-1 + $end 'Operation' + $end 'GeometryPoint' + $begin 'GeometryPoint' + $begin 'Attributes' + Name='Memory_Monitor' + Color='(143 175 143)' + $end 'Attributes' + $begin 'Operation' + OperationType='Point' + ID=483 + ReferenceCoordSystemID=1 + $begin 'PointParameters' + KernelVersion=9 + PointX='-35mm' + PointY='3.6mm' + PointZ='-86mm' + $end 'PointParameters' + ParentPartID=-1 + ReferenceUDMID=-1 + $end 'Operation' + $end 'GeometryPoint' + $begin 'GeometryPoint' + $begin 'Attributes' + Name='Point1' + Color='(143 175 143)' + $end 'Attributes' + $begin 'Operation' + OperationType='Point' + ID=485 + ReferenceCoordSystemID=1 + $begin 'PointParameters' + KernelVersion=9 + PointX='80mm' + PointY='14.243mm' + PointZ='-55mm' + $end 'PointParameters' + ParentPartID=-1 + ReferenceUDMID=-1 + $end 'Operation' + $end 'GeometryPoint' + $end 'Points' + $begin 'GeometryEntityLists' + $end 'GeometryEntityLists' + $begin 'RegionIdentity' + $begin 'Topology' + NumLumps=1 + NumShells=1 + NumFaces=6 + NumWires=0 + NumLoops=6 + NumCoedges=24 + NumEdges=12 + NumVertices=8 + $end 'Topology' + BodyID=6 + StartFaceID=7 + StartEdgeID=13 + StartVertexID=25 + NumNewFaces=6 + NumNewEdges=12 + NumNewVertices=8 + FaceNameAndIDMap() + EdgeNameAndIDMap() + VertexNameAndIDMap() + IsXZ2DModeler=false + $end 'RegionIdentity' + $begin 'CachedNames' + $begin 'allobjects' + allobjects(-1) + $end 'allobjects' + $begin 'alpha_main_pcb' + alpha_main_pcb(-1) + $end 'alpha_main_pcb' + $begin 'box' + box(1) + $end 'box' + $begin 'capacitor' + capacitor(-1) + $end 'capacitor' + $begin 'capacitor_' + capacitor_(1) + $end 'capacitor_' + $begin 'cpu' + cpu(-1) + $end 'cpu' + $begin 'cpu_monitor' + cpu_monitor(-1) + $end 'cpu_monitor' + $begin 'global' + global(-1) + $end 'global' + $begin 'graphics_card_simple' + graphics_card_simple(-1) + $end 'graphics_card_simple' + $begin 'heat_sink' + heat_sink(-1) + $end 'heat_sink' + $begin 'kb' + kb(-1) + $end 'kb' + $begin 'memory' + memory(1) + $end 'memory' + $begin 'memory1_' + memory1_(1) + $end 'memory1_' + $begin 'memory_monitor' + memory_monitor(-1) + $end 'memory_monitor' + $begin 'meshregion1_subregion' + meshregion1_subregion(-1) + $end 'meshregion1_subregion' + $begin 'meshregion2_subregion' + meshregion2_subregion(-1) + $end 'meshregion2_subregion' + $begin 'model' + model(-1) + $end 'model' + $begin 'plane' + plane(1) + $end 'plane' + $begin 'point' + point(1) + $end 'point' + $begin 'region' + region(-1) + $end 'region' + $begin 'serial_port' + serial_port(-1) + $end 'serial_port' + $end 'CachedNames' + $end 'GeometryOperations' + $begin 'GeometryDependencies' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 5) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 33) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 61) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 89) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 117) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 133) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 149) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 177) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 421) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 449) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 497) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 553) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryBodyOperation', 581) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryOperation', 496) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryOperation', 482) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryOperation', 483) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $begin 'DependencyInformation' + NumParents=1 + DependencyObject('GeometryOperation', 485) + DependencyObject('CoordinateSystem', 1) + $end 'DependencyInformation' + $end 'GeometryDependencies' + $end 'GeometryCore' + $begin 'AssignedEntities' + AssignedObject[7: 62, 90, 150, 178, 422, 554, 582] + $begin 'AssignedFace' + kID=10 + $begin 'FaceData' + ParentObjectID=6 + NormalValid=true + FaceNormal(-1, -0, -0) + $begin 'FaceGeomTopol' + FaceTopol(1, 4, 4, 4) + $begin 'FaceGeometry' + Area=16720 + FcUVMid(-240, 14, -55) + $begin 'FcTolVts' + TolVt(-240, -24, 55, 5e-07) + TolVt(-240, 52, 55, 5e-07) + TolVt(-240, 52, -165, 5e-07) + TolVt(-240, -24, -165, 5e-07) + $end 'FcTolVts' + $end 'FaceGeometry' + $end 'FaceGeomTopol' + $end 'FaceData' + $end 'AssignedFace' + $begin 'AssignedFace' + kID=12 + $begin 'FaceData' + ParentObjectID=6 + NormalValid=true + FaceNormal(1, 0, 0) + $begin 'FaceGeomTopol' + FaceTopol(1, 4, 4, 4) + $begin 'FaceGeometry' + Area=16720 + FcUVMid(80, 14, -55) + $begin 'FcTolVts' + TolVt(80, 52, -165, 5e-07) + TolVt(80, 52, 55, 5e-07) + TolVt(80, -24, 55, 5e-07) + TolVt(80, -24, -165, 5e-07) + $end 'FcTolVts' + $end 'FaceGeometry' + $end 'FaceGeomTopol' + $end 'FaceData' + $end 'AssignedFace' + $begin 'AssignedFace' + kID=155 + $begin 'FaceData' + ParentObjectID=150 + NormalValid=false + $begin 'FaceGeomTopol' + FaceTopol(1, 4, 4, 4) + $begin 'FaceGeometry' + Area=179.2 + FcUVMid(-153.6, 1.6, -102) + $begin 'FcTolVts' + TolVt(-147.2, 1.6, -109, 5e-07) + TolVt(-147.2, 1.6, -95, 5e-07) + TolVt(-160, 1.6, -95, 5e-07) + TolVt(-160, 1.6, -109, 5e-07) + $end 'FcTolVts' + $end 'FaceGeometry' + $end 'FaceGeomTopol' + $end 'FaceData' + $end 'AssignedFace' + $begin 'AssignedFace' + kID=455 + $begin 'FaceData' + ParentObjectID=450 + NormalValid=false + $begin 'FaceGeomTopol' + FaceTopol(1, 4, 4, 4) + $begin 'FaceGeometry' + Area=17600 + FcUVMid(-80, 1.6, -55) + $begin 'FcTolVts' + TolVt(-160, 1.6, 0, 5e-07) + TolVt(0, 1.6, 0, 5e-07) + TolVt(0, 1.6, -110, 5e-07) + TolVt(-160, 1.6, -110, 5e-07) + $end 'FcTolVts' + $end 'FaceGeometry' + $end 'FaceGeomTopol' + $end 'FaceData' + $end 'AssignedFace' + $end 'AssignedEntities' + GroupByMaterial=true + GroupSheetByMaterial=true + GroupCompByDefID=true + DoNotOrganizeUnderGroup=true + DoNotOrganizeUnderComponent=false + OrganizeLightweight=false + ShowGroup=true + $begin 'LastUserInputs' + $end 'LastUserInputs' + $end 'ModelSetup' + $begin '3DComponent' + $begin 'NativeComponentVisualization' + $end 'NativeComponentVisualization' + $end '3DComponent' + $begin 'BoundarySetup' + $begin 'GlobalBoundData' + $end 'GlobalBoundData' + $begin 'Boundaries' + NextUniqueID=6 + MoveBackwards=false + $begin 'Grille1' + ID=0 + BoundType='Grille' + IsComponent=false + Faces(12) + 'Pressure Loss Type'='Coeff' + 'Free Area Ratio'='0.8' + 'Resistance Type'='Perforated Thin Vent' + 'External Rad. Temperature'='AmbientTemp' + 'External Total Pressure'='AmbientPressure' + DimUnits[2: '', ''] + X() + Y() + $end 'Grille1' + $begin 'Opening1' + ID=1 + BoundType='Opening' + IsComponent=false + Faces(10) + Temperature='AmbientTemp' + 'External Rad. Temperature'='AmbientRadTemp' + 'Inlet Type'='Velocity' + 'Static Pressure'='AmbientPressure' + 'X Velocity'='2m_per_sec' + 'Y Velocity'='0m_per_sec' + 'Z Velocity'='0m_per_sec' + 'No Reverse Flow'=false + $end 'Opening1' + $begin 'CPU' + ID=2 + BoundType='Block' + IsComponent=false + Objects(422, 150, 178) + ParentBndID=-1 + 'Block Type'='Solid' + 'Use External Conditions'=false + 'Use Total Power'=true + 'Total Power'='4W' + $end 'CPU' + $begin 'Memory' + ID=3 + BoundType='Block' + IsComponent=false + Objects(62, 90) + ParentBndID=-1 + 'Block Type'='Solid' + 'Use External Conditions'=false + 'Use Total Power'=false + 'Power Density'='5w_per_m3' + $end 'Memory' + $begin 'Source1' + ID=5 + BoundType='Source' + IsComponent=false + Faces(155) + 'Thermal Condition'='Total Power' + 'Total Power'='1W' + 'Surface Heat'='0mW_per_m2' + Temperature='AmbientTemp' + $begin 'Radiation' + Radiate=false + $end 'Radiation' + 'Voltage/Current - Enabled'=false + 'Voltage/Current Option'='Current' + Current='0A' + Voltage='0V' + $end 'Source1' + $end 'Boundaries' + $begin 'ProductSpecificData' + $end 'ProductSpecificData' + $end 'BoundarySetup' + $begin 'Monitor' + $begin 'IcepakMonitors' + NextUniqueID=4 + MoveBackwards=false + $end 'IcepakMonitors' + $end 'Monitor' + $begin 'MeshRegion' + $begin 'MeshSetup' + NextUniqueID=3 + MoveBackwards=false + $begin 'Global' + DType='RegionT' + ID=0 + IsComponent=false + MeshMethod='MesherHD' + UserSpecifiedSettings=true + ComputeGap=true + MaxElementSizeX='16mm' + MaxElementSizeY='3.5mm' + MaxElementSizeZ='11mm' + MinElementsInGap='3' + MinElementsOnEdge='2' + MaxSizeRatio='2' + NoOGrids=false + EnableMLM=true + EnforeMLMType='3D' + MaxLevels='2' + BufferLayers='0' + UniformMeshParametersType='Average' + StairStepMeshing=false + MinGapX='1mm' + MinGapY='1mm' + MinGapZ='1mm' + Objects(6) + StairStepSliderMeshing=false + FacetLevel='3' + ProximitySizeFunction=true + CurvatureSizeFunction=true + EnableTransition=false + OptimizePCBMesh=true + Enable2DCutCell=false + EnforceCutCellMeshing=false + Enforce2dot5DCutCell=false + $end 'Global' + $begin 'MeshRegion1' + DType='RegionT' + ID=1 + IsComponent=false + Enable=true + MeshMethod='MesherHD' + UserSpecifiedSettings=true + MaxElementSizeX='3.35mm' + MaxElementSizeY='1.75mm' + MaxElementSizeZ='2.65mm' + MinElementsInGap='3' + MinElementsOnEdge='2' + MaxSizeRatio='2' + NoOGrids=false + EnableMLM=true + EnforeMLMType='3D' + MaxLevels='2' + BufferLayers='0' + UniformMeshParametersType='Average' + StairStepMeshing=false + '2DMLMType'='2DMLM_None' + MinGapX='1mm' + MinGapY='1mm' + MinGapZ='1mm' + Objects(554) + ProximitySizeFunction=true + CurvatureSizeFunction=true + EnableTransition=false + OptimizePCBMesh=true + Enable2DCutCell=false + EnforceCutCellMeshing=false + Enforce2dot5DCutCell=false + $end 'MeshRegion1' + $begin 'MeshRegion2' + DType='RegionT' + ID=2 + IsComponent=false + Enable=true + MeshMethod='MesherHD' + UserSpecifiedSettings=false + MeshRegionResolution=3 + GeometryBasedMeshing=false + MinGapX='1mm' + MinGapY='1mm' + MinGapZ='1mm' + Objects(582) + ProximitySizeFunction=true + CurvatureSizeFunction=true + EnableTransition=false + OptimizePCBMesh=true + Enable2DCutCell=false + EnforceCutCellMeshing=false + Enforce2dot5DCutCell=false + $end 'MeshRegion2' + $end 'MeshSetup' + $end 'MeshRegion' + $begin 'AnalysisSetup' + $begin 'DesignMeshLink' + ImportMesh=false + $end 'DesignMeshLink' + $begin 'SolveSetups' + NextUniqueID=2 + MoveBackwards=false + $begin 'Setup1' + ID=0 + SetupType='IcepakSteadyState' + Enabled=true + $begin 'MeshLink' + ImportMesh=false + $end 'MeshLink' + 'Flow Regime'='Turbulent' + 'Turbulent Model Eqn'='ZeroEquation' + 'Include Temperature'=true + 'Include Flow'=true + 'Include Gravity'=true + 'Include Solar'=false + 'Solution Initialization - X Velocity'='0m_per_sec' + 'Solution Initialization - Y Velocity'='0m_per_sec' + 'Solution Initialization - Z Velocity'='0m_per_sec' + 'Solution Initialization - Temperature'='AmbientTemp' + 'Solution Initialization - Turbulent Kinetic Energy'='0' + 'Solution Initialization - Turbulent Dissipation Rate'='0' + 'Solution Initialization - Specific Dissipation Rate'='0' + 'Solution Initialization - Use Model Based Flow Initialization'=false + 'Convergence Criteria - Flow'='0.001' + 'Convergence Criteria - Energy'='1e-07' + 'Convergence Criteria - Turbulent Kinetic Energy'='1e-07' + 'Convergence Criteria - Turbulent Dissipation Rate'='1e-07' + 'Convergence Criteria - Specific Dissipation Rate'='0.001' + 'Convergence Criteria - Discrete Ordinates'='1e-06' + 'Convergence Criteria - Joule Heating'='1e-07' + 'GPU Convergence Criteria - Flow'='0.001' + 'GPU Convergence Criteria - Energy'='1e-05' + 'GPU Convergence Criteria - Turbulent Kinetic Energy'='0.001' + 'GPU Convergence Criteria - Turbulent Dissipation Rate'='0.001' + 'GPU Convergence Criteria - Specific Dissipation Rate'='0.001' + 'GPU Convergence Criteria - Discrete Ordinates'='1e-05' + 'GPU Convergence Criteria - Joule Heating'='1e-07' + IsEnabled=false + 'Radiation Model'='Off' + 'Solar Radiation Model'='Solar Radiation Calculator' + 'Solar Enable Participating Solids'=false + 'Solar Radiation - Scattering Fraction'='0' + 'Solar Radiation - North X'='0' + 'Solar Radiation - North Y'='0' + 'Solar Radiation - North Z'='0' + 'Solar Radiation - Day'=1 + 'Solar Radiation - Month'=1 + 'Solar Radiation - Hours'=0 + 'Solar Radiation - Minutes'=0 + 'Solar Radiation - GMT'='0' + 'Solar Radiation - Latitude'='0' + 'Solar Radiation - Latitude Direction'='North' + 'Solar Radiation - Longitude'='0' + 'Solar Radiation - Longitude Direction'='East' + 'Solar Radiation - Ground Reflectance'='0' + 'Solar Radiation - Sunshine Fraction'='0' + 'Under-relaxation - Pressure'='0.3' + 'Under-relaxation - Momentum'='0.7' + 'Under-relaxation - Temperature'='1' + 'Under-relaxation - Turbulent Kinetic Energy'='0.8' + 'Under-relaxation - Turbulent Dissipation Rate'='0.8' + 'Under-relaxation - Specific Dissipation Rate'='0.8' + 'Under-relaxation - Joule Heating'='1' + 'Under-relaxation - Body Force'='1' + 'Under-relaxation - Turbulent Viscosity'='1' + 'Discretization Scheme - Pressure'='Standard' + 'Discretization Scheme - Momentum'='First' + 'Discretization Scheme - Temperature'='First' + 'Secondary Gradient'=false + 'Discretization Scheme - Turbulent Kinetic Energy'='First' + 'Discretization Scheme - Turbulent Dissipation Rate'='First' + 'Discretization Scheme - Specific Dissipation Rate'='First' + 'Discretization Scheme - Discrete Ordinates'='First' + 'Linear Solver Type - Pressure'='flex' + 'Linear Solver Type - Momentum'='flex' + 'Linear Solver Type - Temperature'='flex' + 'Linear Solver Type - Turbulent Kinetic Energy'='flex' + 'Linear Solver Type - Turbulent Dissipation Rate'='flex' + 'Linear Solver Type - Specific Dissipation Rate'='flex' + 'Linear Solver Type - Joule Heating'='F' + 'Linear Solver Termination Criterion - Pressure'='0.1' + 'Linear Solver Termination Criterion - Momentum'='0.1' + 'Linear Solver Termination Criterion - Temperature'='0.1' + 'Linear Solver Termination Criterion - Turbulent Kinetic Energy'='0.1' + 'Linear Solver Termination Criterion - Turbulent Dissipation Rate'='0.1' + 'Linear Solver Termination Criterion - Specific Dissipation Rate'='0.1' + 'Linear Solver Termination Criterion - Joule Heating'='1e-09' + 'Linear Solver Residual Reduction Tolerance - Pressure'='0.1' + 'Linear Solver Residual Reduction Tolerance - Momentum'='0.1' + 'Linear Solver Residual Reduction Tolerance - Temperature'='0.1' + 'Linear Solver Residual Reduction Tolerance - Turbulent Kinetic Energy'='0.1' + 'Linear Solver Residual Reduction Tolerance - Turbulent Dissipation Rate'='0.1' + 'Linear Solver Residual Reduction Tolerance - Specific Dissipation Rate'='0.1' + 'Linear Solver Residual Reduction Tolerance - Joule Heating'='1e-09' + 'Maximum Cycles'='30' + 'Linear Solver Stabilization - Pressure'='None' + 'Linear Solver Stabilization - Temperature'='None' + 'Linear Solver Stabilization - Joule Heating'='None' + 'Coupled pressure-velocity formulation'=false + 'Turn off auto-pairing for grid interface creation'=false + '2D Profile Interpolation Method'='Inverse Distance Weighted' + 'Frozen Flow Simulation'=false + 'TEC Coupling'=false + 'Sequential Solve of Flow and Energy Equations'=false + 'Convergence Criteria - Max Iterations'=100 + $end 'Setup1' + $end 'SolveSetups' + $end 'AnalysisSetup' + $begin 'Optimetrics' + $begin 'OptimetricsSetups' + NextUniqueID=0 + MoveBackwards=false + $end 'OptimetricsSetups' + $end 'Optimetrics' + $begin 'Solutions' + $begin 'FieldsSummarySetting' + $end 'FieldsSummarySetting' + $end 'Solutions' + $begin 'FieldsReporter' + $begin 'FieldsCalculator' + Line_Discretization=1000 + 'Show Stack'=true + $end 'FieldsCalculator' + $begin 'PlotDefaults' + Default_SolutionId=15 + Default_PlotFolder='Automatic' + $end 'PlotDefaults' + $begin 'FieldsPlotManagerID' + NextUniqueID=5 + MoveBackwards=false + NumQuantityType=1 + $begin 'QuantityFolder_1' + PlotFolder='Temperature' + PlotFolderInstance=1 + FolderSettingsType=11 + 'Real time mode'=true + $begin 'ColorMapSettings' + ColorMapType='Spectrum' + SpectrumType='Rainbow' + UniformColor(127, 255, 255) + RampColor(255, 127, 127) + $end 'ColorMapSettings' + $begin 'Scale3DSettings' + unit=80 + m_nLevels=15 + minvalue=20.3477725982666 + maxvalue=57.7943649291992 + log=false + IntrinsicMin=20.3477725982666 + IntrinsicMax=57.7943649291992 + LimitFieldValuePrecision=false + FieldValuePrecisionDigits=4 + dB=false + AnimationStaticScale=false + ScaleType=0 + UserSpecifyValues(16, 20.3477725982666, 22.8442115783691, 25.3406524658203, 27.8370914459229, 30.3335304260254, 32.8299713134766, 35.3264083862305, 37.8228530883789, 40.3192901611328, 42.8157272338867, 45.3121719360352, 47.8086090087891, 50.305046081543, 52.8014907836914, 55.2979278564453, 57.7943649291992) + ValueNumberFormatTypeAuto=1 + ValueNumberFormatTypeScientific=true + ValueNumberFormatWidth=12 + ValueNumberFormatPrecision=4 + $end 'Scale3DSettings' + $begin 'Marker3DSettings' + MarkerType=9 + MarkerMapSize=true + MarkerMapColor=false + MarkerSize=0.25 + $end 'Marker3DSettings' + $begin 'Arrow3DSettings' + ArrowType=1 + ArrowMapSize=true + ArrowMapColor=true + ShowArrowTail=true + ArrowSize=0.25 + ArrowMinMagnitude=19.8477725982666 + ArrowMaxMagnitude=58.2943649291992 + ArrowMagnitudeThreshold=19.8477725982666 + ArrowMagnitudeFilteringFlag=false + ArrowMinIntrinsicMagnitude=19.8477725982666 + ArrowMaxIntrinsicMagnitude=58.2943649291992 + $end 'Arrow3DSettings' + $end 'QuantityFolder_1' + NumPlots=1 + $begin 'PlotDefinition_1' + PlotDefinitionType='Mesh_field_type' + PlotName='Temperature1' + PlotDefinitionId=4 + VersionID=473 + SolutionId=15 + UserSpecifyName=0 + UserSpecifyFolder=0 + QuantityId=1 + PlotFolder='Temperature' + StreamlinePlot=false + AdjacentSidePlot=false + FullModelPlot=false + IntrinsicVar='' + FieldPlotGeometry(1, 128, 2, 1, 455) + FilterIds(0) + $begin 'PlotOnSurfaceSettings' + Filled=false + IsoValType='Fringe' + AddGrid=false + MapTransparency=true + Refinement=0 + Transparency=0 + SmoothingLevel=0 + ShadingType=0 + $begin 'Arrow3DSpacingSettings' + ArrowUniform=true + ArrowSpacing=2.91247320175171 + MinArrowSpacing=1.94164872169495 + MaxArrowSpacing=3.88329744338989 + $end 'Arrow3DSpacingSettings' + GridColor(255, 255, 255) + $end 'PlotOnSurfaceSettings' + EnableGaussianSmoothing=false + SurfaceOnly=false + $end 'PlotDefinition_1' + $end 'FieldsPlotManagerID' + $begin 'Report3dInGeomWnd' + Report3dNum=0 + $end 'Report3dInGeomWnd' + $begin 'Report2dInGeomWnd' + Report2dNum=0 + $end 'Report2dInGeomWnd' + $begin 'AntennaParametersInGeomWnd' + AntennaParametersNum=0 + $end 'AntennaParametersInGeomWnd' + AntennaParametersPlotTablesOrder() + $end 'FieldsReporter' + $begin 'SolutionManager' + $begin 'SimSetup' + TypeName='BaseSetup' + ID=14 + Name='Setup1' + $begin 'Solution' + ID=15 + Name='SteadyState' + $begin 'SimDataExtractor' + $begin 'QuantityIDs' + NextUniqueID=0 + MoveBackwards=false + IDMap() + $end 'QuantityIDs' + SimValue('Temperature', 1, 80, false, SimValueID=1083, 3, 0, 2, 0, false, false, 455, 1, 0, 1, 1, '', 0, 0) + $begin 'Sweeps' + $begin 'Sweep' + Variable='X' + Column='0' + Units='' + $end 'Sweep' + $end 'Sweeps' + $end 'SimDataExtractor' + $end 'Solution' + $end 'SimSetup' + $begin 'Version ID Map' + V=1085 + $begin 'Setup' + N='Setup1' + V=1084 + Soln(N='SteadyState', V=1085) + $end 'Setup' + $end 'Version ID Map' + $begin 'ID Map' + $begin 'Setup' + N='Setup1' + I=14 + Soln(N='SteadyState', I=15) + $end 'Setup' + $end 'ID Map' + ValidationCacheHeader='HDR18F0205928160286062711.tmp' + $end 'SolutionManager' + $begin 'UserDefinedSolutionMgr' + NextUniqueID=1000000 + MoveBackwards=false + $end 'UserDefinedSolutionMgr' + $begin 'DatasetSolutionMgr' + NextUniqueID=2000000 + MoveBackwards=false + $end 'DatasetSolutionMgr' + Notes=$begin_cdata$ $end_cdata$ + $begin 'AnimationSetups' + $end 'AnimationSetups' + CacheHeaderFile='HDR6EE53479217413415443.tmp' + $end 'IcepakModel' + $begin 'DataInstances' + DesignEditor='TopLevel' + Refdes('0', 'U1') + $begin 'CompInstances' + $begin 'Compinst' + ID='0' + Status='Status' + CompName='IcepakDesign1' + GatesInUse() + $begin 'Properties' + TextProp('ID', 'SRID', '', '0') + $end 'Properties' + $begin 'Parameters' + MenuProp('CoSimulator', 'OHD', '', 'DefaultNetlist', 0) + ButtonProp('CosimDefinition', 'OHD', '', 'Edit', 'Edit', 40501, ButtonPropClientData()) + $end 'Parameters' + $end 'Compinst' + $end 'CompInstances' + $begin 'Instance' + DesignEditor='IcepakDesign1' + ID='0' + $begin 'IcepakDesignInstance' + DesignInstanceID=1 + $begin 'WindowPosition' + $begin 'EditorWindow' + Circuit(Editor3d(View('View Orientation Gadget'=1, WindowPos(3, -1, -1, -9, -38, 200, 200, 992, 435), OrientationMatrix(0.00372929591685534, -0.00215311022475362, 0.0030449575278908, 0, 0.00372929591685534, 0.00215311022475362, -0.0030449575278908, 0, 0, 0.00430622044950724, 0.0030449575278908, 0, 0.246133506298065, 0.0344497710466385, -5.28414821624756, 1, 0, -1.55345916748047, 1.55345916748047, -1, 1, 0.520563125610352, 10.9551305770874), Drawings[12: 'Region', 'SERIAL_PORT', 'MEMORY1', 'MEMORY1_1', 'CAPACITOR', 'CAPACITOR_1', 'KB', 'HEAT_SINK', 'CPU', 'ALPHA_MAIN_PCB', 'Box1', 'MeshRegion2_SubRegion'], 'View Data'('Render Mode'=1, 'Show Ruler'=1, 'Coordinate Systems View Mode'=0, 'CS Triad View Mode'=0, 'Render Facets'=1, GridVisible=1, GridAutoAdjust=1, GridAutoExtents=1, GridType='Rect', GridStyle='Line', NumPixels=30, dXForGrid=20, dYForGrid=20, dZForGrid=20, dRForGrid=20, dThetaForGrid=10), ClipPlanes(ClipPlaneOptions(DisableWhenDrawingNewPlane=true, ForceOpqaueForUnclipped=false, ShowClipped=false, Transparency=0, HandleColor=16776960))))) + $end 'EditorWindow' + $end 'WindowPosition' + $begin 'ReportSetup' + $begin 'ReportManager' + $begin 'Reports' + $end 'Reports' + NextUniqueID=0 + MoveBackwards=false + $begin 'NextVersID' + NextUniqueID=0 + MoveBackwards=false + $end 'NextVersID' + $end 'ReportManager' + $begin 'Reports' + $end 'Reports' + $begin 'ReportsWindowInfoList' + $end 'ReportsWindowInfoList' + $end 'ReportSetup' + $begin 'Properties' + $end 'Properties' + $begin 'UserDefinedDocument' + $begin 'Data' + $end 'Data' + $end 'UserDefinedDocument' + $end 'IcepakDesignInstance' + $end 'Instance' + $begin 'SODInfo' + $begin 'IcepakDesign1' + $begin 'CosimDefinition' + CosimDefName='DefaultNetlist' + $begin 'SODInstanceMap' + $end 'SODInstanceMap' + SODComponentList() + $end 'CosimDefinition' + $end 'IcepakDesign1' + $end 'SODInfo' + $end 'DataInstances' + $begin 'WBSystemIDToDesignInstanceIDMap' + $end 'WBSystemIDToDesignInstanceIDMap' + $begin 'WBSysIDSysDetails' + $end 'WBSysIDSysDetails' + $begin 'WBConnIDConnDetails' + $end 'WBConnIDConnDetails' + $begin 'WBMaterialGuidDetails' + WBMaterialGuidMap() + $end 'WBMaterialGuidDetails' + $begin 'MinervaProjectSettingsBlk' + MinervaRemoteFilePath='' + FolderContainerString='' + $end 'MinervaProjectSettingsBlk' +$end 'AnsoftProject' +$begin 'AllReferencedFilesForProject' +$begin 'Design_0.setup/NativeGeometryFiles' +NumFiles= 9 +$begin 'x_b' +Design_0.setup/NativeGeometryFiles/0000034.x_b +BIN000000008453 +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000034.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000034.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZ@@:0yE> +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ DS@@O SDL/TYSA_DENSITYP!"(#TUNIT=mmO"AEDT_EntityName_V1P#$(#S{Gz?O$AEDT_ExtentScale_V1Q%&'F(( $)*2 *+,+{GzMb?Eؿ +>-.+{GzI +?{Gz 2/0I +?{Gz *1V 2n34563/7nQ689:;3<=>? @+/:AB n7.CDMb?{GzC-EF7{GzMb?{GzD/G7H{GzI +?{GzG IJKLDnH0BD0I +?EؿBMN/KHn01LH {GzI +?EؿL OPGE0nQO8LIQRPSTULVWX+EQYLZCnQQ8EO[\Y]^_E@`a+Z[bEcnQ[8ZQdbef?ZghT+c+ZF{GzMb?EؿF,KcCMb?EؿKi?BGFnQi8KMIj?eb@K3 >-e@k@e?fY`_-><3NKUlg+<"N)N<>=BA4V+USPgB>l-lmn>WhngSUTKbh-Sg+TSgPZopq+hrnblstQr~8humvws vn^h-xt:hyz+Mb?Eؿ?y9Wxt+I +?Eؿ?z;{t|+Mb?{Gz?{}n=`~z|<~z.+I +?{Gz?~nJ{W|.=4| ++I +?{Gz4nN `.Qx842`nY4{Qy8`}7`x+Mb?{Gz?6p5+{GzI +?Eؿx8sy+{GzMb?{Gz?pnT-55 n+Mb?Eؿ?n4l5+I +?Eؿ3n+{GzMb?Eؿ?9nfpQ986fe@bEq+qoaZf-qoqLTp-aqE^sf-aoGX--^]YGas+]]_^/J~-_]Y={-JXAG~^+VXVJL-o+AJV/N4=-VAXBPWU-=<N3/_{+WnP~lyQ|8WmP8(#QeWQ{8~}Qm}8lrR/QflmuR.PAQughrS???QhsvuS???Qv8srQi-S???- +nXsp +Q8-vQjpS???Q8p9Qk9S???S???R*R+R,OSDL/TYSA_COLOURQd~Q}z8{R0Qc{}R1Qb`S???Qa4S???Q` 2S???Q2w8 Q_S???n+++1Qv82Q^+S???+ nŽS +1Qu8+Q]S???n+]++1Qt8Q\S???n‘k+k1Qs8Q[kS???kn“)e+)1Qr8kQZ)S???)!nk<,-k1Qq8)S???Qp8R(QnQ&R"P(#Q&RT SERIAL_PORTOAEDT_BODYFlagGroupColor_V1PQQmT SERIAL_PORTP(#QYRPhS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAME2,)) + rh?ʡEͿ?? 1 )2(k,+{GzMb?{Gz2'+{GzI +?Eؿ??2&+{GzI +?{Gz??2%+{Gz rh?ʡEͿ??R'R&R%R$R#R4S???S???OAEDT_EntityID_V1R)R2R3Rw-QM8B:iQI8GiORj9R8Q:8/6MR:R;Rd6R\5RR7R;<*# SJ([&P%8(#T 'Al-ExtrudedOAEDT_MaterialName_V1$end 'x_b' +$begin 'x_b' +Design_0.setup/NativeGeometryFiles/0000062.x_b +BIN000000008450 +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000062.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000062.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZ@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1Q&'(F)) $*+2 +**,+пMb?Q?? >-.+пMb?Q 2/0пMb?(\ +1V 2n3456378nQ69:;<3=>?@A+7;>B0n8,CDп+[YMNfh^+XVS]7Q|+Q=?>JX|]-="3*?=3Q/d-p+>=Q37Y-/@F npodk/qz-qm@Fpz+mmAqBInf+@qA/3?-A@mM4-M[BA4m+feI^B[h-hn[n_Q}9hg3hs+ܿP(#Q'RTMEMORY1OAEDT_BODYFlagGroupColor_V1PQQmTMEMORY1P(#QYRPhS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAME 1 *RC2'+пMb?(\2&l+ܿMb?(\?2(,+gfffffֿ?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000090.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000090.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZ@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1Q&'(F)) $*+2 +*,-+Mb?(\? >./+Mb?(\? 201?@A+0;@B n8+C0I1nQW9B;KX>=Y4BZ[\+="?*Y=?>I]^_+Z`G\>[-[an>5bc\`ZdBT.]+`\ed`\GHfg+Thi]H\.j-.kn\l^ ]hT_BY^-h_,_h]iIVm+^nnY.moQn}9^pkqrmqn_^sto9^uv+?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000118.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000118.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZS@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1QS&'(F)) *+3 +,-+QMb?? $./+QMb??? 01QMb? +2V3n4567489nQ7M:;<=4>??@A+8 <@BCn9C1QMb?C89QMb?1B9 QMb?BDE801nQDO:B<FGEHI@BJKL-0FMB nQFP:0DNMOPQ0A5I-O +J,POJMBRS+QOMJ?.-AH@IM5Q+5TnA.UIHAE0LVR+HAWLXRRBIVP-VYnIKSZRXLL0PS-XR[S;nPV\Q;L:S]Y7^\!S6Z+QMb???6 U\+QMb??Z"V\/+QMb??/#KZ +QMb?K _nJ.V/Q_J:K`aYbJOQP8EK+. an?5K QaI:.cT_d?>448Q.J+>?**enW> f+W2QeC:*ghijWin,*H -+,*22f*k-+QMb? 2 *2k[f+QMb?3-Wf ++QMb??[ln,X k-,2QlF:[mn3o, nn[WO ++[W2QnE:,pilqP:rs(#Qp6t,numvQiD:WuenwRqxQu5tWigpxRwyPtyAQg4t*euzSx???Sz???OySDL/TYSA_COLOURQm7t[lp{|Sv???Q{8t3m}~S|???Q3G:{lTQ}9t5T{cS~???QTH:5}3aQc:t.a}`S???Q`;tK_cS???Q<tVY`]S???QYK:V_;Q]=tS;S???S???R|RROsAEDT_EntityID_V1RowQhB:eRjzQ@hQQrh'RvPr(#Q'RRT CAPACITOROAEDT_BODYFlagGroupColor_V1PQQ?T CAPACITORP(#Q3RPthS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAMERd~Rb}U56+QMb?R^{@HEA84?-RNQ<N:87DRGRR=+ SJ)]F'P&:(#T(Ceramic_materialOAEDT_MaterialName_V1$end 'x_b' +$begin 'x_b' +Design_0.setup/NativeGeometryFiles/0000134.x_b +BIN000000006226 +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000134.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000134.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZS@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1QS&'(F)) *+2 +,-+Mb? $./+Mb??? 01gfffffMb? +2V3n4567489nQ7M:;<=4>??@A+8 <@B1n9C1gfffffMb?CB9Mb?189 Mb?BDE80CnQDO:B<FGEHI@BJKL-0FMB nQFP:0DNMOPQ0A5I-O +JRPOJMBS.+QOMJ?T-AH@IM5Q+5UnATVIHAE0LWS+HA*LXSSBIWP-WYnIK.ZSXLL0P.-XS,.;nPW Q;L:.[Y7\P:]^(#Q[=_.;`aQYK:W`b;cR\Q`<_WYd[eQbJ:KdfYgRcK bnJTWhQd;_Kbi`jQfI:TiUbkRgT fn?5K/Qi:_TfldmQUH:5l3fnRkQl9_5UoipQ3G:oqUrRnQo8_3sltQqF:,su3vRr,qnRX +-R2Qs7_,qwoxQuE:RwyqzRvR un,{O |+,{2Qw6_Ru}s~QyD:{}uRz{ynR*> -+R*2Q}5_{ywQC:*yR*n{H +{2Q4_*}QB:RQ@QQ]'RP](#Q'RRT CAPACITOR_1OAEDT_BODYFlagGroupColor_V1PQQ?T CAPACITOR_1P(#Q3RP_hS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAMEP_AS???OSDL/TYSA_COLOUR3*|-+Mb?? 2 *3|R+Mb??2-{ ++Mb?S???>?{?>448QTJ+JOQP8EK+S~???Sx???St???Sp???Sm???/#T6 +Mb???6"V/+Mb??V!5Z6+gfffffMb?Z WhV+Mb??hKZ+Mb?Sj???Se???Sa???O^AEDT_EntityID_V1@HEA84?-RNQ<N:87DRGRR=+ SJ)[F'P&:(#T(Ceramic_materialOAEDT_MaterialName_V1$end 'x_b' +$begin 'x_b' +Design_0.setup/NativeGeometryFiles/0000150.x_b +BIN000000008435 +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000150.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000150.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZ@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1Q&'(F)) $*+2 +*,-+Mb?gfffff?? >./+㥛 ?q= +ףp? 201Zd;O㥛 ?q= +ףp +2V 3n4./5406nQ5789:4;<=>?+09@A n6/BCZd;OMb?q= +ףpB.DE6㥛 ?q= +ףpC0F61Zd;OMb?gfffffFG<ADCn11AC Zd;O㥛 ?gfffffAHI0F1nQH7A9GJIKLMANOP-KIQLKRIFSTU-MKIR0?VN-NWXP0IO+OYnNZ[\PWN]A^[S+WP_]WPX`abc-^deS`P[]-[fnPOTgSd^UALT+dU,UdSeFhi+TjnS[ikQj}7TlfmnimnUTopk;Tqg+Zd;OMb?gfffff?q:rpk+Mb?gfffff?g<[k/+㥛 ?gfffff?/=g +Mb?q= +ףp?rsncbtqp9iuq+Mb?gfffff?u8bvp+㥛 ?gfffffb +wnaoruv7V\u+Zd;O㥛 ?q= +ףpVxn?.Zv\6Oyv+Zd;O㥛 ?gfffffy5oz\+㥛 ?q= +ףpo {n|ibyz4t}y+Mb?q= +ףp?t8n~rz}3Zz+Zd;OMb?q= +ףp?Zn<VO}Qz7ZxY<;h4FRZL+;4h;=<Uie-RKML<Z-=;4h~t-h`nedU^cr~-ca~`er+~c|=t+~|~ao=+a|cD]b+>En@>D|oa-"@*@?0X.M+>?4|-D XF`BnQ7DGXW]ND@.-` ^DnQ7`+`㥛 ?gfffff,EMb?gfffffE-BMb?q= +ףpP7(#Q7RQ7RROAEDT_EntityID_V1.n@V Qx7.3xQa.Q3w7Qxy7VRQbVxRPAQcZS???QdOYS???QY{7OfQe[flS???Qf|7[YjQlfTjS???QgimlS???Qm~7ij{Qho{S???Q{7omwQibwS???Qw7b{sQjrsS???Qs7rw8Qkt8S???Q87ts5S???RRRRRRROSDL/TYSA_COLOURQ`3Qv73Rn, +,2Q_Qu7,R, nˆQd ++Q2Q^,Qt7QRQn,_K --,_2Q]QQs7_R_nQW +Q2Q\_Qr7Rn_*; +_*2Q[Qq7*R*!n‚ +2QZ*Qp7RQnQ'RP(#Q'RTKBOAEDT_BODYFlagGroupColor_V1PQQmTKBP(#QYRPhS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAMES???2'*+㥛 ?q= +ףp 2 *2&_+㥛 ?gfffff??2(-+#~j?RQ?2-)Q ++Zd;O#~j?RQ?2%+Mb?q= +ףpS???S???S???S???S???S???S???QG7FHRR?>@MVR+RRnQ9705HRJRR:+# SJ)'P&7(#T (Al-ExtrudedOAEDT_MaterialName_V1$end 'x_b' +$begin 'x_b' +Design_0.setup/NativeGeometryFiles/0000178.x_b +BIN000000051253 +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000178.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000178.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZ@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1Q&'(F)) *+2 +J,-+ m9^o%;?x&1Կ ./+ m9^o%;?mݿ 01 m9^o%;?6^I ˿ +2V3n456789:nQ7O;<=>8?@ABCD-9=EFGn:HI m9&:?+HJK: m9^o%;?#~jԿIL:M(\^o%;?V-LdNOPQInMRIS(\&:?+R%TBUVMnSQMW(\&:?V-QbXYLZSnW[S\ m9^o%;?Fxѿ[]^_`Wn\aWb(\&:?%Cacdef\nbg\h m9&:?S㥛пgijklbnhmbn(\^o%;?mݿmWopqrhnnsht(\^o%;?Fxѿs9uvwxnntynz m9^o%;?L7A`y{|}~tnzt(\&:?(\ڿMznz(\^o%;?333333ÿ*UnV(\^o%;?+V$Rknk m9^o%;?S㥛пkVgn(\^o%;?6^I ˿2n m9&:?ؿnUG(\^o%;?)\(U'RnG9 m9^o%;?+G(\^o%;?(\ڿOn m9aÙ?333333ÿ nZ(\&:?L7A`Z`Qn m9aÙ?)\(n1 m9^o%;?ؿ~n1  m9^o%;?x&1ԿJ1nQ[;-`nJHnQ\;JJ-JnQ];+y m9&:?#~jԿxf(\^o%;?%Czx(\&:?"~j̿x6sn{(\^o%;?$CۿQn| m9&:?x&1Կ}(\&:?ؿKn~ m9^o%;?I +nK(\aÙ?)\(nKlH(\&:?S㥛пlgKnQ;lil+lnQ;v+enR(\^o%;?S㥛пQ m9&:?mݿS` m9&:?Fxѿ`[nT(\^o%;?x&1Կ?  + nU  m9&:?I + n V(\&:?I +hP nWe  m9&:?%CeanX(\&:?Sſ.nY m9&:?Sſ4 nZ}! m9^o%;?I +޿}"#$yn![ %(\&:?x&1Կ =&'w!n%\(!) m9^o%;?(\ڿ(*+,%n)]%- m9&:?(\ڿ./()n-^)0(\&:?6^I ˿012-n0_3-4 m9&:?K׿3w560n4`F0 m9^o%;?)\(F78994na4: m9^o%;?%C:b;(\aÙ?333333ÿ <=f:n;c +:>(\^o%;?#~jԿ +A?@;n>dr;A(\&:?mݿrUBCm>nAe>D(\^o%;?L7A`^EFZGAnDfHAI m9&:?$CۿHJK,DnIgGDL(\&:?I +޿G[MNqInLh_IO m9^o%;?"~j̿_PQ0[LnOiLR(\^o%;?Sſ,STOnRjOU m9^o%;?K׿yVW3RnUkRX m9&:?"~j̿mYZ6UnXlqU[(\^o%;?I +޿qY\]GmXn[mwX^(\&:?Fxѿw;_` s[n^n[a(\^o%;?"~j̿4bcx^nao ^d m9&:?6^I ˿ ef0andpag(\^o%;?ؿIhijdngq$dk m9^o%;?mݿ$lm}gnkr,gn m9^o%;?$Cۿ,op(Hknnsqkr(\&:?K׿qEstj@nnrt6nu m9&:?I +޿6rvw3rnuu9rx m9^o%;?333333ÿ9yzFunxvu(\&:?$CۿS{|rxnwjx(\^o%;?K׿jG}~qnQ};jhs~j+u~q+~-~-zn~ij+|i+-Hn…j-"q+FnQ0;DnŠ6+(\^o%;?K׿+(\&:?Fxѿ?6+(\&:?Sſ?6+ m9^o%;?Fxѿn®+ m9aÙ?)\(?n´+ m9^o%;?#~jԿn+ m9^o%;?I +޿n]+(\^o%;?Fxѿ?8n+(\^o%;?L7A`_n+(\&:?L7A`an+(\&:?Sſ/n+(\^o%;?L7A`?]n+(\&:?"~j̿7n+ m9^o%;?+nŒC+ m9^o%;?K׿xn‹+ m9&:?K׿vnt+(\^o%;?Fxѿ:n+ m9^o%;?+n+ m9&:?I +nD+ m9^o%;?I +޿nw.+ m9^o%;?(\ڿn+ m9^o%;?K׿}nŽ+ m9^o%;?ؿni+(\^o%;?"~j̿5n+ m9^o%;?%Cn +(\&:?L7A`? +n   + m9^o%;?(\ڿ n   + m9&:?#~jԿn  +(\^o%;?)\(?&n+ m9^o%;?+n+ m9^o%;?#~jԿn+(\^o%;?ؿ?+ m9^o%;?mݿ np!"#$+(\&:?I +?#%nC&$'+(\^o%;?"~j̿?3(n)$'$*+(\&:?#~jԿ?+n"'*,'-+ m9^o%;?6^I ˿,.n“/!*-0*1+ m9^o%;?Sſ02n345-1-6+ m9^o%;?%C7n89161:+(\&:?ؿ?;n™<6:=6>+ m9&:?S㥛п=?n@:>A:B+ m9^o%;?I +ACnDEF>BG>H+(\^o%;?Sſ?G+InJKBHBL+(\^o%;?#~jԿBMnžNHLH+(\aÙ?)\(?(OnPKLLQ+ m9^o%;?K׿QR+ m9aÙ?333333ÿ?SnT4QRQU+ m9^o%;?x&1ԿVnRU<RW+ m9&:?(\ڿ<Xn‚YUWUZ+(\^o%;?+#[nA\WZ]W^+(\&:?$Cۿ]T_n`abZ^cZd+ m9&:?$Cۿcenfg^d^h+(\&:?Fxѿ<injkdhldm+ m9^o%;?V-lnnopqhmhr+(\^o%;?S㥛пsnt=mrumv+ m9^o%;?$Cۿuwn&Yrvxry+ m9^o%;?SſxznT{|vyCv}+ m9&:?+C~nB#y}y+ m9^o%;?6^I ˿n‚}F}+ m9^o%;?)\(FnA{|+(\^o%;?333333ÿ?|nzx/+ m9&:?I +޿sn+(\^o%;?$Cۿ?Pnb+(\&:?I +޿?qn“+ m9^o%;?I +n—q+(\^o%;?ؿJn˜/+ m9^o%;?"~j̿/nc|,4+ m9^o%;?333333ÿ4nŸ0+(\&:?I +޿\nd+ m9^o%;?6^I ˿n¥5+(\^o%;?(\ڿNn¨Y+ m9^o%;?(\ڿYn¡u<+ m9^o%;?%Cn­+ m9&:?ؿn±+ m9^o%;?x&1Կn¾+ m9&:?"~j̿nnj!+ m9^o%;?Fxѿ!nv,+(\aÙ?333333ÿ? +n½+ m9^o%;?$Cۿnc5+ m9&:?Sſ5n0q+ m9^o%;?V-qnl +(\^o%;?I +޿Zn ++ m9^o%;?L7A`np K+(\aÙ?333333ÿ?K)nG +(\&:?I +in +(\&:?"~j̿?ln+ m9&:?Fxѿn+(\^o%;?I +޿?Xna/+(\^o%;?%Cn9/" + m9^o%;?V-"nO/Q;" +OL"+OQ+Ool-O"-DL+DPA+P-enL-Q+cnQ!;+(\^o%;?V-\+ m9^o%;?S㥛п+(\^o%;?I +gnQ;+RA+P-DA-#-PfDLnQr;PNLP (\^o%;?I +K@(\&:?#~jԿ M + m9^o%;?V-   n +N    m9&:?V- ~ +n O + m9^o%;?Sſ9 nP~  m9&:?L7A`~ y nQg;~{ ~+ Y  po+ YZ-Z -|~+|yF-y-o~p-o l+pnlQ;p n!p"#+ m9&:?L7A`"&$+(\&:?$Cۿ?#a%+(\^o%;?mݿaV&n']#%(#)+ m9aÙ?)\((<n*%)b%++(\^o%;?$CۿbR,n-])+5).+ m9&:?x&1Կ5 /n'+.++ m9&:?V-0nY..1+(\^o%;?I +?1{2+ m9&:?6^I ˿{3n2Fx12k14+(\^o%;?x&1Կk>5n6N2427+(\aÙ?)\(? 8n9474:+(\&:?ؿL;n<7:7=+ m9^o%;?ؿ>n?:=:@+ m9^o%;?L7A`AnF=@E=B+ m9&:?mݿECnCA@B@D+ m9^o%;?"~j̿EnZBDBF+ m9^o%;?S㥛пGnHDFNDI+(\^o%;?#~jԿ?N@Jn¿kFIF+(\^o%;?6^I ˿1KnLIIM+(\&:?#~jԿM@N+ m9^o%;?S㥛п@OnP\=MNM+(\^o%;?Sſ-QnRGNN+ m9aÙ?333333ÿSnT(QSM;U<VTWX+YTF+TZT-W[\XT-X[W]*(-[X^][X\9*-*_PX(+_P`P_8*Ua+_*8T-8_PFF-bU8FP+bEFY+bcEb9@-Y9-dY@+dD-@?89Y-?Ae?A@VE+A?8R+bEVa+aU-aVA-9aP]-9]\+f9=K+\[]W-gT=\W+gThTg9Z+=gK9-g=Tz|J-ziJ9|T+JizTfG+iJjTiJxk+fRJG-Rfk+lRm+knRf-n3on3kTx-nk34m-3np0q+4rm3+mr42R-r4s2rmf{L+r24 q5+ftuL 2{-Ltfl+tLvtLuw,)+lxL-xl)-xxy+)zwcxl+z){wz)0,u-cz)Q/y+zcw_|}+Q~Zy_c/-y~Qx-~Z*~yZx-Z~Q}+j+x-kjl=t+jgP+tg=-tl+tt\+t-s-jw+j +^`s- ^[v!H-`w-`^`+``+n5E'wj-' 56+'+6'5-6 kj+ 6,6+j6k- +N-@+N+ ++J+ +-@-+@Cq +nt@-tq+t3+3t--W3+W-W?-iW+-?+?i-?-?-<+<+<-<-?+/<++/<-/<++Y+/(-+(Y-++pu+---`b+`-r]+p|-b-p,u-|K&-|pH+KfH|&+&nK#u"KC`]--KCfrE'+fCKc+'CEf-'pra`+'p'mm+`m'a-q-dG+m]m+m$p-]q#+]m}.+#w}]-#Nq-wNwG-wN#6+6N+Gd-pa9+da+df--fana+e9-f+8--Fy+Ff+F|+|-Z+8-8e+86-}w-e8+$.-g+.n»g Q ;.gn³c.Q ;geg+ m9^o%;?mݿ9$+ m9&:?%C9n$"+ m9^o%;?x&1Կn$Q;+`---J-[-PkH-Pg@+Hv[+Hk\-\ n@kP@-QC;\[OP;(#Q\Q[B;QOD;@?RQ@OQ?E;=OsRQ=?QsF;?RQsQG;s7RQQ7H;RQ7QI;97RQ9QJ;8RQQ8K;RQ8QL;8SRQURPAQUSS???Q(<US???Q<N;(S7S???ROSDL/TYSA_COLOURS???S???S???S???S???S???S???S???Q[QA;O[RQ QO@; +RQO  Q?;K IO R +Q KQI>;GQR QGI QQ=;IRQQQ<;KQRQQK;;(RQKQ(:;KRQ(Q9;(RQ !Q8; "RQ #$Q7;#%R"Q#& 'Q6;&i(R%Q&)#*Qi5;)5+R(Q)i,&-Q54;k,Ji.R+Q,k5/)0QJ3;N/M51R.Q/NJ2,3QM2;2J4R1Q2M5/6Q1;5M7R4Q528R7Q95:S8???Q9;<S:???Q/;9=Q;>9?S<???Q.;;;@Q>;A;BS????Q;-;>CQAD>ESB???Q,;A;FQDGAHSE???Q+;D,IQGb,JDKSH???Q,*;bG_LQJ]_MGNSK???Q_);]J&,OQMa&PJQSN???Q&(;aM_RQPSMTSQ???Q';P&UQSVPWST???Q&;SXQV~YSZSW???Q%;V[QY}\V]SZ???Q$;Y^Q\|_Y`S]???Q#;\aQ_{\bS`???Q";_cQzd_eSb???QdyfSe???Q ;dgQxhdiSf???QhwjkSi???Q;hlQjvmhnSk???Q;joQmupjqSn???Q;mrQptsmtSq???Q;puQssvpwSt???Q;sxQvryszSw???Q;v{Qyq|v}Sz???Q;y~Q|pyS}???Q;|Qo|S???Q;QnS???Q;QmS???Q;QlqS???Q;qnQkln S???Qn;lQ jpS???Qi S???Q;QhS???Q;QgS???Q;Qf.S???QegS???QdceS???Qe ;cQcS???Q +;eQbS???Q ; Qa S???Q ;Q`S???Q;> Q_>S???Q>;Q^S???Q;>Q]S???Q;Q\S???Q;Q[S???QZS???Q;QYS???Q;GQXGS???QG;EQWES???QE;GQVS???Q;EQUS???Q;QT5S???Q;52QS02S???Q2;0QR4S???Q;4S2QQSS???QS;QPS???Q;SQOS???Q;QNS???Q;QMS???Q;;QL;S???Q;;XQK<XS???QX;<;QJYS???Q;YwXQIuwS???Qw;uQH&S???Q;&%wQG#%S???Q%;#~QFC~S???Q~;C%QES???Q; +~QD +S???Q +;AQCAS???QA; +QBS???Q;0AQA0S???Q0;VQ@VS???QV;0 Q? + S???Q;+V Q +>+ S ???Q+; +Q=" +S ???Q< S???Q ;Q;!S???Q;!. Q:,.S???Q.;,Q9/S???Q;/.Q8|S???Q;|zQ7xz !S???Qz;x3"Q 6{3#$S!???Q3;{ z%Q#5F& 'S$???Q;F#C3(Q&4AC)#*S'???QC;A&C+Q)3EC,&-S*???QC;E)C.Q,2/)0S-???Q;,/C1Q/15/2,3S0???Q/;5/34Q2035/6S3???Q3;27/8Q5/^792:S6???^7n[ ;-2Q7;^5<3=Q9.<>5?S:??? <n^ @-^2Q<;9A7BQ>-AC9DS????An E-2QA;>F<GQC,FH>ISD???!Fn… J+2QF;CKALQH+KMCNSI???jKn O+2QK;HPFQQM*PRHSSN???oPn T+2QP;MUKVQR)UWMXSS???tUn Y-2QU;RZP[QW(Z\R]SX???{Zn† ^+2QZ;W_U`Q\'_aWbS]???_n” c+2Q_;\dZeQa&df\gSb???dn h-2Qd;ai_jQf%ikalSg???inœ m+2Qi;fndoQk$npfqSl???nn¡ r-2Qn;ksitQp#sukvSq???sn¤ w+2Qs;pxnyQu"xzp{Sv???xn§| }-|2Qx;u~sQz!|~uS{???|~n¬e +e2Q~;|zxQ ezS???en|? -|2Q;e~QS???ne -e2Q;QS???n +2Q;QS???n -2Q;QS???n¿ -+2Q;QS???n +2Q;QS???n“ +2Q;QS???n™ -2Q;QS???n +2Q;QS???nº{ +{2Q;Q{S???{njz +j2Q;{QjS???jn{vi +{v2Q;jQvS???vnj`t -j`2Q;vQ`S???`nv_ +v2Q;`QS???n` +`2Q;QS???n +2Q;QS???n±, +,2Q;Q,S???, +n +-2Q;,QS??? n, -,2Q;Q S???nŠ -2Q;Q S???n¶s -s2Q;Q sS???sn–or +o2Q;sQ +oS???onscn -sc2Q;oQ cS???cnob +o2Q;cQS???nch -ch2Q;QhS???hn*g +*2Q;hQ*S???*nh~ -h2Q;* S???Q; +  R Q + Q 'R P(#Q' RT HEAT_SINKOAEDT_BODYFlagGroupColor_V1P QQ +T HEAT_SINKP(#QRPhS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAME2%*r+(\^o%;?"~j̿?? 2 *2r$+ m9^o%;?(\ڿ2&{+Kؿ^o%;?(\ؿ??2'Y+Kؿ&:?(\ؿ??2Y(+ m9^o%;?K׿2)Y+(\^o%;?Fxѿ??2*m+ m9^o%;?mݿ2m+}+Kؿ&:?(\ؿ??2},m+(\^o%;?$Cۿ??2-}+Kؿ^o%;?(\ؿ??2.`J+ m9aÙ?)\(2J/T+(\aÙ?)\(?2T0J+Kؿ&:?(\ؿ??21T+Kؿ^o%;?(\ؿ??22e@+ m9^o%;?+2@3+ m9^o%;?%C24@+Kؿ&:?(\ؿ??25+(\^o%;?#~jԿ??26o+(\^o%;?Sſ??27+(\^o%;?I +޿??28c+Kؿ^o%;?(\ؿ??29+(\^o%;?I +??2:w+Kؿ^o%;?(\ؿ??2w;+Kؿ^o%;?(\ؿ??2<w+Kؿ^o%;?(\ؿ??2=+Kؿ&:?(\ؿ??2>j+Kؿ^o%;?(\ؿ??2?v+ m9^o%;?6^I ˿2@c+(\^o%;?L7A`??2cA+ m9aÙ?333333ÿ??2BcE+Kؿ^o%;?(\ؿ??2ECh+ m9^o%;?S㥛п2hDE;+(\^o%;?ؿ??2;E^hO+KؿaÙ?(\ؿ??2OF;+Kؿ&:?(\ؿ??2GO+ m9^o%;?V-2H|-+Kؿ&:?(\ؿ??2-I ++Kؿ&:?(\ؿ??2#h^r+(\aÙ?333333ÿ??2^"+Kؿ^o%;?(\ؿ??2!s^+Kؿ&:?(\ؿ??RRRRRRRRRRRRRRRRRRRRRRRRRRR|D#d+DBd+B-BDR8C+RRyRtRoRjReR`R[RVRQRLRGRBR=R8TR4SR1RR.QR+PR(OR%NR"MRLRKRJRIRHRFR ER DRCRBRAR@R?R>R=R<R;R:R9R8R7R6R5R4R3R2R1R0R/R.R-R,R+R*R(R'R&R%R$R#R"R!R RRRRRRRRRR~R{RxRuRrRoRl Rg Rc RaR^R[RXRURRRORLRIRFRCR@R=S6???S3???S0???S-???S*???S'???S$???S!???S???S???S???S???S???S???S ???S ???S???S???OAEDT_EntityID_V1vHs^!+}Pj-}|_Z-|}0-q| u+0w _ nQV;0ePQeU; QPW;_]RQ]X;[P RQY;`]!R QZ;"R!R"QT;e#RQS;y$R#QyR;97%R$Q7Q;F=y&R%Q=P;977'R&R'qp5-utf0|-pZq30-Zp94-iTzZ4p+R)RRHfc-(H$np$g-Q(c;Jl)QJb;Ho(*Qld;$("+R)Q"e;}l{,R+Q{f;y"-R,R-Qoa;,*J.R*Q*`;(.o/R.Q._;*0R/Q^;.1R0R1,-(-++,+Q;fc<2Qc;a3Q<;4R2YQ;<5R4XQ;6R5WQ;7R6UR7VQ;ec8R3ZQ;9R8[R9\Q;@s?:Qs;q};Q?; + <R:pQ ;?&=R<oQ&;  _>R=nQ_;w&u?R>mQu;s_@R?lQ;xubAR@kQb;BRAjQ;b1CRBiQ1;DRChQ;1SERDgQS;FREfQ;SGRFeQ;UTHRGdQT;RIRHcQ;VTJRIaQ;kiKRJbQi;gLRK`RL_R;qd-+oq-Dq+RVYQ+ Y-R!Qh;  MRQ i; NRMQ j; ORNQk; PROQl;VQRPQVm;5RRQQ5n;3VvSRRQvo;65YTRSQYp;vURTQq;YVRURVQNs;LXWRQXt;QNXRWQu;ZXEYRXQEv;MZRY~QMw;GE\[RZ}Q\x;qMo\R[|Qoy;m\B]R\{QBz;ro{^R]zQ{{;B_R^yQ|;{`R_xQ};aR`wQ~;bRavQ;hcRbuQh;}dRctRdsR R +RGRRrR]R^RRRR>+ SJ) + 'P&;e(#T (Al-ExtrudedOeAEDT_MaterialName_V1$end 'x_b' +$begin 'x_b' +Design_0.setup/NativeGeometryFiles/0000422.x_b +BIN000000008437 +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000422.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000422.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZ@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1Q&'(F)) $*+2 +**,+zGʿMb?zG >-.+(\aÙ?zG? 2/0(\Mb?zG +1V 2n3456780nQ69:;<7=>?@4A+8;3BCn01D (\aÙ?zGD0EC0zGʿMb?HzGѿE FGHIDnC/8JDzGʿaÙ?zGJ.KLC(\Mb?HzGѿKMNI/JnL-BOJ(\aÙ?HzGѿBPQ8HLnO,IRLzGʿMb?zGI STEKOnR+HOzGʿaÙ?HzGѿHUVBERnQU9HPFWVXG3HYZ[-X3\GX]VE^_`-3XV]8T>+Yab[8VZ+ZcnYdef[aYQHgh^+aYiQa[bBA-j+gkN^B[h-hln[e_m^kg`HG_+k^n`k^NEopq+_rn^hpsQr~9_tluvp un`_wxs<_y.+zGʿMb?HzGѿ?y;z{s+zGʿMb?zG.=es +(\Mb?HzGѿ?e|njZh.Q||9e}cl~jABNeg+jA@jQ-b-j@K+Nk`gKjeo-oqK`p-o/-qoE]w-qI?z-]X3GIqw+w +n]pzQ9wuzn?wy9w{+zGʿMb?HzGѿ8d+zGʿaÙ?zG{:4y+(\Mb?zG?4n7-{Qx942-nQ4d Qy9-dnb-ZQz9dcbaQY>d+>=T78bdY-="7*T=?>I3]-?=7T/z+/@K nQ9/M@A/74?-P9(#QM9KSRQS9IFMRQF9EUSRROAEDT_EntityID_V1*!n\= ++\1Qq9*\n*X +*1 1 *Qr9\ni\ +i\12(\,+zGʿMb?HzGѿ??2'i+Gz׿aÙ?Qۿ??2,) ++Gz׿Mb?Qۿ??nn ,-n1Qv92n n…ik +i1Qu9ninna +n12%n+(\Mb?HzGѿ??2&+(\Mb?zG?Qt9iQ]iQs9RQ\RPAQ[\S???QZ*S???S???OSDL/TYSA_COLOURQ^nS???Q_S???Q`2S???Q2w9Qa4S???Qb-S???QcdS???QdZc}S???Qc{9Z|Q}ee|S???Qfhl}tS???Ql}9h|rQtg_rS???QhputS???Qu9prQiwS???QjzS???Q9z:Qk:S???:n€zQ:96S???R7m+(\Mb?zG?m6hx+(\aÙ?HzGѿ?x5p5m+(\Mb?HzGѿ?54fx+zGʿMb?zG?f3Z5+zGʿaÙ?HzGѿRRRRRRRRQp9RQnQ'RP(#Q'RTCPUOAEDT_BODYFlagGroupColor_V1PQQmTCPUP(#QYRPhS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAMERRRRR~RvQP9B;URWQ;986PRRR<+# SJ)'P&9(#T (Al-ExtrudedOAEDT_MaterialName_V1$end 'x_b' +$begin 'x_b' +Design_0.setup/NativeGeometryFiles/0000450.x_b +BIN000000008459 +**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz************************** +**PARASOLID !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~0123456789************************** +**PART1; +MC=unknown; +MC_MODEL=unknown; +MC_ID=unknown; +OS=unknown; +OS_RELEASE=unknown; +FRU=sdl_parasolid_customer_support; +APPL=Electronics Desktop; +SITE=unknown; +USER=unknown; +FORMAT=binary; +GUISE=transmit; +KEY=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000450.x_b; +FILE=C:/Users/skrishna/AppData/Local/Temp/Gra0F28101217539472302.setup/Design_0.setup/NativeGeometryFiles/0000450.x_b; +DATE=unknown; +**PART2; +SCH=SCH_3601185_36001; +USFLD_SIZE=0; +**PART3; +**END_OF_HEADER***************************************************************** +B3: TRANSMIT FILE created by modeller version 3601185SCH_3601185_36001_13006PART_XMT_BLOCK Part list n_entriesdindex_map_offsetd index_mapRschema_embedding_mapRmesh_offset_dataentries $CCCIlatticeCCCImeshIpolylineCCCCCCCDIownerCCCIboundary_latticeCCCI boundary_meshIboundary_polylineCCCAindex_map_offsetdA index_mapRAnode_id_index_mapRAschema_embedding_mapRAchild Alowest_node_iddAmesh_offset_dataZ@@:0yE>  +   @@:0yE>QF CI list_typeuI +notransmitlCCCDCCDI finger_indexdI finger_blockCZ  CCCCCCIframeCAowner ZVnJCIindex_map_offsetdCCZQQPCCCCCDI legal_ownerslCZ !DS@@O!SDL/TYSA_DENSITYP"#(#TUNIT=mmO#AEDT_EntityName_V1P$%(#S{Gz?O%AEDT_ExtentScale_V1Q&'(F)) $*+2 +*,-+?? >./+? 201 +2V 3n456789:nQ7;<=>8?@A4B-9=CDEn:0F1Mb?F/GH:Mb?11D: Mb?DIJ9G1nQI;D=KLJMNODPQR-GK4DSFnQK;GITU4VWBG8A+S T@G0XnQT;SKYZ@?[8S\]^-0 Y_S` nX,SEaE+9XMb?a-bXHbcN`anH.`aF`de0bHnQd;`Ycfeg^C`Ohi-g\j^g\eSikl+Cge\9B5O-OMJm9ehP+hnnO]Qoipql`^km-pq,qpribms-lpirS[t-k un^vtwmMON`qs+MJxNMmJbRyz+s<nm./Q<;s{|7}.|nzts /=s~ +q= +ףpͿ?~<6/+?nAyv~6;~+Mb?:56+Mb?5nB]9v+Mb??vnWk8]+?]n\5h7yo+ynNQo6h+?5Qwo+ףp= +Mb??QnPhyw4k+3tw+t +n[k.Q;tu|[?A@0ltr+?"A*A?8[G_+rplq0z.-zR_br.q+RzDNyW-_z0A[-_RGWv-WVP4Dv+VWPVBW9JQ+BV4PC5\+\gC^@]+nj*V +j*2Qr;jnxg +x2*!n’? -+22&+gfffffMb?333333ÿ?? 2 *2%+?2'x+??xn‘jM +j22(j-+??2-)* ++Qt;x n,x +,x2Qu;,np +-2Qv;,3P;(#Q_,Q3w;RQ`3Qx;53RQa5Qy;]nRQb]Qnz;hRQchnQ{;QnRQdQQ|;yRQeyQ};RQfQ~;vuRQgvQu;kRQhkuRPAQitS???Qj.|{S???Q|;.<Q{ks<S???S???ROSDL/TYSA_COLOURS???S???S???S???S???S???S???S???Q^S???Q]xS???Q\jS???Qs;jQ[S???QZ*S???Qq;*S???Qp;RQnQ'RP(#Q'RTALPHA_MAIN_PCBOAEDT_BODYFlagGroupColor_V1PQQmTALPHA_MAIN_PCBP(#QYRPhS???OSDL/TYSA_COLOUR_2OAttGS_PS_LayerO SDL/TYSA_NAMEROAEDT_EntityID_V1RRRRR}QY;0TdQc;bdRfRRRZRUQ=;97IRLRR>+# SJ){c'P&;(#T (Al-ExtrudedOAEDT_MaterialName_V1$end 'x_b' +$end 'Design_0.setup/NativeGeometryFiles' +$end 'AllReferencedFilesForProject' +$begin 'ProjectPreview' + IsEncrypted=false + Thumbnail64='/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQICAQECAQEBAgICAgICAgICAQICAgICAgICAgL/2wBDAQEBAQEBAQEBAQECAQEBAgICAgICAgICAg\ +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL/wAARCABgAGADASIAAhEBAxEB/\ +8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQR\ +BRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUp\ +TVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5us\ +LDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAA\ +AECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHB\ +CSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ\ +3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4u\ +Pk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiivzA/b5/ay+O3wg+Kf7Pn7N/wL+EPxA8T/\ +wDDQHw//aB+J3xi+P3wnt/B3j/4p/sofAn9nvxH+zz4e+IPxT+Gn7N3jC0P/DRnxAm/4aC0iz0bSdLX\ +xFrGlaj9m1ux+F/xg+xy/DrXQD7f+Nfx3+Gf7PnhXT/FvxN1TxBBba54gtfCfhXw14G8AfEL4vfEzx5\ +4qutO1XXT4Z+G3wg+EXhbXfFfxL8QW/hbw94o1y+stA0XUbnTvD3g7W/EN/HbaJouq39n8AfDT/grF8\ +Pbnxp+0L4a/au+Bfxg/YL8N/Av4waL8JG+Kn7RV/8ADPXfg0uo6n8Avgf8cbqP4zfHb4E+OfF3w9/Zk\ +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' + $begin 'DesignInfo' + DesignName='IcepakDesign1' + Notes='' + Factory='Icepak' + IsSolved=false + 'Nominal Setups'[1: 'Setup1'] + 'Nominal Setup Types'[1: ''] + 'Optimetrics Setups'[0:] + 'Optimetrics Experiment Types'[0:] + Image64='/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQICAQECAQEBAgICAgICAgICAQICAgICAgICAgL/2wBDAQEBAQEBAQEBAQECAQEBAgICAgICAgICAg\ +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL/wAARCADIAMgDASIAAhEBAxEB/\ +8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQR\ +BRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUp\ +TVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5us\ +LDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAA\ +AECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHB\ +CSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ\ +3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4u\ +Pk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigAooooAKKK8A+On7UfwJ/Zw/wCEWsvix\ +45/s7xb4+/tv/hWnwp8H+GfGPxX+O3xZ/4RX+yJfGX/AAp39n/4T+Htb8bfF7+wdM1zTdS8Q/8ACM6B\ +qv8AYGjvLres/YdItrm9iAPf6K/GH9rvxz/wUVuvhT4T+KI+JPh/9g/wt4g/af8A2IvhHoXw1+E+h/C\ +/4/8A7Ss/hX9pb9tD4Bfs+6/rfxh+Lnxf8E+Ifhv4E8QQfC743+KkvfAXhDwX41ttF8b/AA/0bW9K+O\ +fjDwpPqXhnUfp//hpD42fsyf6P+3do/wAP7/4ZP+50z9sf9nDwR8XYPhZp11F/xONdu/2nPgVqEfi/U\ +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\ +' + $end 'DesignInfo' +$end 'ProjectPreview' diff --git a/tests/system/general/test_01_configuration_files.py b/tests/system/general/test_01_configuration_files.py index 10afac99ebf..871b4015019 100644 --- a/tests/system/general/test_01_configuration_files.py +++ b/tests/system/general/test_01_configuration_files.py @@ -26,12 +26,12 @@ import os import time -import pytest - from ansys.aedt.core import Circuit from ansys.aedt.core import Hfss3dLayout from ansys.aedt.core import Q2d from ansys.aedt.core import Q3d +import pytest + from tests import TESTS_GENERAL_PATH from tests.system.general.conftest import config @@ -76,6 +76,18 @@ def q2dtest(add_app): return app +@pytest.fixture(scope="class") +def icepak_a(add_app): + app = add_app(project_name=ipk_name + "_a", application=Icepak) + return app + + +@pytest.fixture(scope="class") +def icepak_b(add_app): + app = add_app(project_name=ipk_name + "_b", application=Icepak) + return app + + @pytest.fixture(scope="class") def hfss3dl_a(add_app): app = add_app(project_name=diff_proj_name, application=Hfss3dLayout, subfolder=test_subfolder) @@ -174,6 +186,146 @@ def test_03_q2d_export(self, q2dtest, add_app): assert q2dtest.configurations.options.import_parametrics app.close_project(save=False) + def test_04a_icepak(self, icepak_a, aedtapp, add_app): + box1 = icepak_a.modeler.create_box([0, 0, 0], [10, 10, 10]) + icepak_a.monitor.assign_point_monitor_to_vertex(box1.vertices[0].id) + box1.surface_material_name = "Shellac-Dull-surface" + region = icepak_a.modeler["Region"] + icepak_a.monitor.assign_point_monitor_in_object(box1.name) + icepak_a.monitor.assign_face_monitor(box1.faces[0].id) + icepak_a.monitor.assign_point_monitor([5, 5, 5]) + icepak_a.assign_openings(air_faces=region.bottom_face_x.id) + icepak_a.create_setup() + icepak_a.modeler.create_coordinate_system([10, 1, 10]) + icepak_a.mesh.assign_mesh_region([box1.name]) + icepak_a.mesh.global_mesh_region.MaxElementSizeX = "2mm" + icepak_a.mesh.global_mesh_region.MaxElementSizeY = "3mm" + icepak_a.mesh.global_mesh_region.MaxElementSizeZ = "4mm" + icepak_a.mesh.global_mesh_region.MaxSizeRatio = 2 + icepak_a.mesh.global_mesh_region.UserSpecifiedSettings = True + icepak_a.mesh.global_mesh_region.UniformMeshParametersType = "XYZ Max Sizes" + icepak_a.mesh.global_mesh_region.MaxLevels = 2 + icepak_a.mesh.global_mesh_region.BufferLayers = 1 + icepak_a.mesh.global_mesh_region.update() + cs = aedtapp.modeler.create_coordinate_system(name="useless") + cs.props["OriginX"] = 20 + cs.props["OriginY"] = 20 + cs.props["OriginZ"] = 20 + icepak_a.create_dataset( + "test_dataset", + [1, 2, 3, 4], + [1, 2, 3, 4], + z=None, + v=None, + is_project_dataset=False, + x_unit="cel", + y_unit="W", + v_unit="", + ) + filename = icepak_a.design_name + icepak_a.export_3d_model(filename, icepak_a.working_directory, ".x_b", [], []) + assert icepak_a.configurations.options.export_monitor + assert icepak_a.configurations.options.export_native_components + assert icepak_a.configurations.options.export_datasets + conf_file = icepak_a.configurations.export_config() + assert icepak_a.configurations.validate(conf_file) + f = icepak_a.create_fan("test_fan") + idx = 0 + icepak_a.monitor.assign_point_monitor_to_vertex( + list(icepak_a.modeler.user_defined_components[f.name].parts.values())[idx].vertices[0].id + ) + assert icepak_a.configurations.export_config() + f.delete() + file_path = os.path.join(icepak_a.working_directory, filename + ".x_b") + app = add_app(application=Icepak, project_name="new_proj_Ipk_a", just_open=True) + app.modeler.import_3d_cad(file_path) + out = app.configurations.import_config(conf_file) + assert isinstance(out, dict) + assert app.configurations.validate(out) + assert app.configurations.results.global_import_success + # backward compatibility + with open(conf_file, "r") as f: + old_dict_format = json.load(f) + old_dict_format["monitor"] = old_dict_format.pop("monitors") + old_mon_dict = {} + for mon in old_dict_format["monitor"]: + old_mon_dict[mon["Name"]] = mon + old_mon_dict[mon["Name"]].pop("Name") + old_dict_format["monitor"] = old_mon_dict + old_dataset_dict = {} + for dat in old_dict_format["datasets"]: + old_dataset_dict[dat["Name"]] = dat + old_dataset_dict[dat["Name"]].pop("Name") + old_dict_format["datasets"] = old_dataset_dict + old_conf_file = conf_file + ".old.json" + with open(old_conf_file, "w") as f: + json.dump(old_dict_format, f) + app = add_app(application=Icepak, project_name="new_proj_Ipk_a_test2", just_open=True) + app.modeler.import_3d_cad(file_path) + out = app.configurations.import_config(old_conf_file) + assert isinstance(out, dict) + assert app.configurations.results.global_import_success + app.close_project(save=False) + + @pytest.mark.skipif( + config["desktopVersion"] < "2023.1" and config["use_grpc"], + reason="Not working in 2022.2 gRPC", + ) + def test_04b_icepak(self, icepak_b, add_app): + box1 = icepak_b.modeler.create_box([0, 0, 0], [10, 10, 10]) + box1.surface_material_name = "Shellac-Dull-surface" + region = icepak_b.modeler["Region"] + icepak_b.monitor.assign_point_monitor_in_object(box1.name) + icepak_b.monitor.assign_face_monitor(box1.faces[0].id) + icepak_b.monitor.assign_point_monitor([5, 5, 5]) + icepak_b.assign_openings(air_faces=region.bottom_face_x.id) + icepak_b.create_setup() + icepak_b.modeler.create_coordinate_system([10, 1, 10]) + icepak_b.mesh.assign_mesh_region([box1.name]) + icepak_b.mesh.global_mesh_region.MaxElementSizeX = "2mm" + icepak_b.mesh.global_mesh_region.MaxElementSizeY = "3mm" + icepak_b.mesh.global_mesh_region.MaxElementSizeZ = "4mm" + icepak_b.mesh.global_mesh_region.MaxSizeRatio = 2 + icepak_b.mesh.global_mesh_region.UserSpecifiedSettings = True + icepak_b.mesh.global_mesh_region.UniformMeshParametersType = "XYZ Max Sizes" + icepak_b.mesh.global_mesh_region.MaxLevels = 2 + icepak_b.mesh.global_mesh_region.BufferLayers = 1 + icepak_b.mesh.global_mesh_region.update() + cs = icepak_b.modeler.create_coordinate_system(name="useless") + cs.props["OriginX"] = 20 + cs.props["OriginY"] = 20 + cs.props["OriginZ"] = 20 + icepak_b.create_dataset( + "test_dataset", + [1, 2, 3, 4], + [1, 2, 3, 4], + z=None, + v=None, + is_project_dataset=False, + x_unit="cel", + y_unit="W", + v_unit="", + ) + filename = icepak_b.design_name + icepak_b.export_3d_model(filename, icepak_b.working_directory, ".x_b", [], []) + fan = icepak_b.create_fan("test_fan") + icepak_b.modeler.user_defined_components[fan.name].move([1, 2, 3]) + fan2 = icepak_b.modeler.user_defined_components[fan.name].duplicate_along_line([4, 5, 6]) + icepak_b.modeler.user_defined_components[fan.name].rotate("Y") + fan3 = icepak_b.modeler.user_defined_components[fan.name].duplicate_around_axis("Z") + icepak_b.modeler.user_defined_components[fan.name].move([1, 2, 3]) + fan4 = icepak_b.modeler.user_defined_components[fan.name].duplicate_around_axis("Z") + icepak_b.modeler.user_defined_components[fan2[0]].duplicate_and_mirror([4, 5, 6], [1, 2, 3]) + conf_file = icepak_b.configurations.export_config() + assert icepak_b.configurations.validate(conf_file) + file_path = os.path.join(icepak_b.working_directory, filename + ".x_b") + app = add_app(application=Icepak, project_name="new_proj_Ipk", just_open=True) + app.modeler.import_3d_cad(file_path) + out = app.configurations.import_config(conf_file) + assert isinstance(out, dict) + assert app.configurations.validate(out) + assert app.configurations.results.global_import_success + def test_05a_hfss3dlayout_setup(self, hfss3dl_a, local_scratch): setup2 = hfss3dl_a.create_setup("My_HFSS_Setup_2") # Insert a setup. assert setup2.props["ViaNumSides"] == 6 # Check the default value. diff --git a/tests/unit/extensions/test_icepak_model_reviewer.py b/tests/unit/extensions/test_icepak_model_reviewer.py new file mode 100644 index 00000000000..0eb2da4f4e3 --- /dev/null +++ b/tests/unit/extensions/test_icepak_model_reviewer.py @@ -0,0 +1,105 @@ +from textwrap import dedent +from tkinter import TclError +from unittest.mock import patch + +import pytest + +from ansys.aedt.core.extensions.icepak.icepak_model_reviewer import EXTENSION_TITLE +from ansys.aedt.core.extensions.icepak.icepak_model_reviewer import IcepakModelReviewer + + +import pytest +from unittest.mock import patch +import json +from tests import TESTS_UNIT_PATH +import os + +def config_file_load(): + config_file = os.path.join(TESTS_UNIT_PATH, 'extensions','graphics_card.json') + with open(config_file, 'r') as file: + data = json.load(file) + return data + +def mapping_load(): + mapping_file = os.path.join(TESTS_UNIT_PATH, 'extensions','mapping.json') + with open(mapping_file, 'r') as file: + data = json.load(file) + return data + +@pytest.fixture +def patched_loader(): + with patch.object(IcepakModelReviewer, "get_project_data", side_effect=config_file_load) as mock_loader: + yield mock_loader + +@pytest.fixture +def patched_object_id(): + with patch.object(IcepakModelReviewer, "object_id_mapping", side_effect=mapping_load) as mock_loader: + yield mock_loader + +@pytest.fixture +def patched_import_data_to_project(): + with patch.object(IcepakModelReviewer, "import_data_to_project", return_value = None) as mock_loader: + yield mock_loader + +def test_icepak_model_reviewer(mock_icepak_app): + """Test instantiation of the IcepakModelReviewer.""" + extension = IcepakModelReviewer(withdraw=True) + + assert EXTENSION_TITLE == extension.root.title() + assert "light" == extension.root.theme + + extension.root.destroy() + +def test_icepak_model_reviewer_load_project(mock_icepak_app, patched_loader): + extension = IcepakModelReviewer(withdraw=True) + extension.load_button.invoke() + boundary_table = extension.root.boundary_tab.winfo_children()[0] + assert boundary_table.tree is not None + assert len(boundary_table.tree.get_children()) == 3 + +def test_icepak_model_reviewer_table_values(mock_icepak_app, patched_loader): + extension = IcepakModelReviewer(withdraw=True) + extension.load_button.invoke() + boundary_table = extension.root.boundary_tab.winfo_children()[0] + row1 = boundary_table.tree.get_children()[0] + row2 = boundary_table.tree.get_children()[1] + row3 = boundary_table.tree.get_children()[2] + assert boundary_table.tree.column(5)['id'] == 'Value 1' + assert boundary_table.tree.item(row1)['values'][5] == '4W' + assert boundary_table.tree.item(row2)['values'][5] == '5w_per_m3' + assert boundary_table.tree.item(row3)['values'][5] == '1W' + materials_table = extension.root.materials_tab.winfo_children()[0] + assert len(materials_table.tree.get_children()) == 4 + row1 = materials_table.tree.get_children()[0] + row2 = materials_table.tree.get_children()[1] + row3 = materials_table.tree.get_children()[2] + row4 = materials_table.tree.get_children()[3] + assert materials_table.tree.item(row1)['values'][3] == 152 + assert materials_table.tree.item(row2)['values'][4] == '1.1614' + assert materials_table.tree.item(row3)['values'][5] == 2 + assert materials_table.tree.item(row4)['values'][6] == 0 + model_table = extension.root.models_tab.winfo_children()[0] + assert len(model_table.tree.get_children()) == 11 + assert model_table.tree.item(row1)['values'][2] == 'air' + assert model_table.tree.item(row2)['values'][3] == 'Soft Rubber-Gray-surface' + assert model_table.tree.item(row3)['values'][4] == 'True' + assert model_table.tree.item(row3)['values'][5] == 'Model' + +def test_icepak_model_reviewer_table_modification(mock_icepak_app, patched_loader, + patched_import_data_to_project, patched_object_id): + extension = IcepakModelReviewer(withdraw=True) + extension.load_button.invoke() + boundary_table = extension.root.boundary_tab.winfo_children()[0] + row1 = boundary_table.tree.get_children()[0] + row2 = boundary_table.tree.get_children()[1] + row3 = boundary_table.tree.get_children()[2] + boundary_table.tree.set(row1, column='Value 1', value='2W') + boundary_table.tree.set(row2, column='Value 1', value='2w_per_m3') + boundary_table.tree.set(row3, column='Value 1', value='1.5W') + extension.update_button.invoke() + data = extension.root.bc_table.get_modified_data() + assert extension.combined_data['boundaries']['CPU']['Total Power'] == '2W' + assert extension.combined_data['boundaries']['Memory']['Power Density'] == '2w_per_m3' + assert extension.combined_data['boundaries']['Source1']['Total Power'] == '1.5W' + +