/
Zlalex
/
PLASMA_SIM
Обзор
Документация
Войти
/
Zlalex
/
PLASMA_SIM
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev_univers
Analyze.py
88 строк
4 KB
Zlalex
Configure boundary conditions test
23 фев 2025, 15:01
23 фев 2025, 15:01
a9b52ac
Код
Авторство
О чём код?
import numpy as np import matplotlib.pyplot as plt import os import Config as CFG # Задайте путь к основной директории, где находятся папки с данными base_directory = 'Data/' # Замените на ваш путь threshold = 5e7 # Пороговое значение для максимальной температуры flow_values = [] # Список для хранения значений потока times = [] # Список для хранения времени, когда максимальная температура больше порога Impulse_arr = [] Force_arr = [] # Проход по всем папкам в основной директории for folder in os.listdir(base_directory): if folder.startswith('Flow_'): flow_value = float(folder.split('_')[1]) # Извлечение значения потока из названия папки flow_values.append(flow_value) # Путь к файлу temperature.npy в текущей папке file_path = os.path.join(base_directory, folder, 'temperature.npy') # Проверка существования файла if os.path.exists(file_path): data = np.load(file_path) # Загрузка данных dt = 1/data.shape[0] # Временной интервал t_end = 0 for t, i in zip(np.linspace(0, 1, data.shape[0]),range( data.shape[0])): if np.max(data[i]) > threshold: if t > t_end: t_end = t time_above_threshold = t_end times.append(time_above_threshold) else: print(f"Файл {file_path} не найден.") pressure_path = os.path.join(base_directory, folder, 'pressure.npy') try: pressure = np.load(pressure_path) Force_arr.append( np.average(pressure[:,:,-2]) * np.pi * (CFG.Lx/2)**2) except FileNotFoundError: print(f"Файл pressure.npy не найден в папке {folder}.") # n_D_path, n_T_path, n_He_path = os.path.join(base_directory, folder, 'n_D.npy'), os.path.join(base_directory, folder, 'n_T.npy'), os.path.join(base_directory, folder, 'n_He.npy') # velocity_Path = os.path.join(base_directory, folder, 'velocity_magnitude.npy') # try: # n_D = np.load(n_D_path) # n_T = np.load(n_T_path) # n_He = np.load(n_He_path) # vel = np.load(velocity_Path) # Impulse = 0 # for i in range(n_D.shape[0]): # mass_D = n_D[i,:,-2] * CFG.m_D # mass_T = n_T[i,:,-2] * CFG.m_T # mass_He = n_He[i,:,-2] * CFG.m_He # m_sum = mass_D + mass_T + mass_He # dImp = m_sum * vel[i,:,-2] / np.sqrt(1 - np.power(vel[i,:,-2],2)/(3e8*3e8)) # Impulse += np.sum(dImp) # Impulse_arr.append(Impulse) # except FileNotFoundError: # print(f"Файлы n_D.npy, n_T.npy, n_He.npy не найдены в папке {folder}.") # Построение графика зависимости времени от потока plt.plot(flow_values, times) #plt.title('Зависимость времени Горения от потока') plt.xlabel('Поток, частиц') plt.ylabel('Временной интервал, в сек') plt.grid() plt.savefig('Time_Flow.png') # plt.plot(flow_values, Impulse_arr) # #plt.title('Зависимость времени от потока') # plt.xlabel('Поток, частиц') # plt.ylabel('') # plt.grid() # plt.savefig('impulse.png') plt.plot(flow_values, Force_arr) #plt.title('Зависимость времени от потока') plt.xlabel('Поток, частиц') plt.ylabel('Тяга, Н') plt.grid() plt.savefig('Force.png')