-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsteady_state_extraction.py
29 lines (23 loc) · 1.22 KB
/
steady_state_extraction.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from ansys.mapdl.reader import read_binary
class SteadyStateExtractor:
def __init__(self, file_path, node_number, load_step, sub_step):
self.file_path = file_path
self.node_number = node_number
self.load_step = load_step - 1 # Adjust for zero-based index
self.sub_step = sub_step - 1 # Adjust for zero-based index
def extract_data(self):
try:
rth = read_binary(self.file_path)
num_results = rth.nsets
if self.load_step >= num_results:
raise RuntimeError(f"There are only {num_results} result(s) in the result file.")
node_numbers, temperatures = rth.nodal_temperature(self.load_step)
if self.node_number in node_numbers:
node_index = list(node_numbers).index(self.node_number)
return temperatures[node_index]
else:
raise RuntimeError(f"Node number {self.node_number} not found in the results.")
except FileNotFoundError:
raise RuntimeError(f"The file '{self.file_path}' was not found.")
except Exception as e:
raise RuntimeError(f"An error occurred: {e}")