ИСПОЛЬЗОВАНИЕ КОДА CHIANTI В АСТРОФИЗИЧЕСКИХ РАСЧЕТАХ
ИСПОЛЬЗОВАНИЕ КОДА CHIANTI В АСТРОФИЗИЧЕСКИХ РАСЧЕТАХ
Сапралиев Михаил Евгеньевич
мл. науч. сотр., Калмыцкий государственный университет, имени Б. Б. Городовикова,
РФ, г. Элиста
Харлдаев Лиджи Николаевич
мл. науч. сотр., Калмыцкий государственный университет, имени Б. Б. Городовикова,
РФ, г. Элиста
Михаляев Олег Николаевич
мл. науч. сотр., Калмыцкий государственный университет, имени Б. Б. Городовикова,
РФ, г. Элиста
Каталаев Борис Эдуардович
инженер - исследователь, Калмыцкий государственный университет, имени Б. Б. Городовикова,
РФ, г. Элиста
Велегурин Тимофей Владимирович
инженер - исследователь, Калмыцкий государственный университет, имени Б. Б. Городовикова,
РФ, г. Элиста
Нагадинов Александр Вячеславович
инженер - исследователь, Калмыцкий государственный университет, имени Б. Б. Городовикова,
РФ, г. Элиста
Сарангова Гиляна Викторовна
учитель физики и математики, Лаганская многопрофильная гимназия,
РФ, г. Лагань
USING THE CHIANTI CODE IN THE ASTROPHYSICAL CALCULATIONS
Mikhail Sapraliev
junior researcher, Kalmyk State University named after B. B. Gorodovikov,
Russia, Elista
Lidzhi Kharldaev
junior researcher, Kalmyk State University named after B. B. Gorodovikov,
Russia, Elista
Oleg Mikhalyaev
junior researcher, Kalmyk State University named after B. B. Gorodovikov,
Russia, Elista
Boris Katalaev
research engineer, Kalmyk State University named after B. B. Gorodovikov,
Russia, Elista
Timofey Velegurin
research engineer, Kalmyk State University named after B. B. Gorodovikov,
Russia, Elista
Aleksandr Nagadinov
research engineer, Kalmyk State University named after B. B. Gorodovikov,
Russia, Elista
Giliana Sarangova
teacher of physics and mathematics, Lagan multidisciplinary gymnasium,
Russia, Lagan
АННОТАЦИЯ
Современная база атомных данных CHIANTI применяется в спектроскопической диагностике астрофизической плазмы. На текущей момент существуют две версии на языках IDL и Python. В данной статье будет рассматриваться установка и использование библиотеки ChiantyPy реализованной на языке Python. Будут продемонстрированы возможности работы кода.
ABSTRACT
Modern atomic database CHIANTI is used in spectroscopic diagnostics of astrophysical plasma. There are currently two versions in IDL and Python. This article will cover the installation and use of the ChiantyPy library implemented in Python. The functionality of the code will be demonstrated.
Ключевые слова: астрофизика, база атомных данных, CHIANTI, ChiantiPy.
Keywords: astrophysics, atomic database, CHIANTI, ChiantiPy.
Статья во многом будет основана на официальной документации ChiantiPy [1], рассматриваемая версия 0.15.0. С настоящего момента будем полагать, что у конечного пользователя установлена операционная система Windows 10 x64, проделать аналогичные действия для Unix систем не составят особого труда.
Установка базы данных
CHIANTI — это совместный проект с участием исследователей из Кембриджского университета (Великобритания), Центра космических полетов имени Годдарда НАСА (США), Университета Джорджа Мейсона. (США) и Мичиганского университета (США). Пакет CHIANTI состоит из критически оцененного набора атомных данных (уровни энергии, длины волн, вероятности радиационных переходов и данные возбуждения) для большого числа ионов, представляющих астрофизический интерес.
На первом шаге скачаем базу астрономических данных с официального сайта [2], актуальная на момент написания статьи версия 10.0.2. Распакуем в произвольную папку, например C:\CHIANTI. Необходимо будет установить переменную окружения XUVTOP, чтобы библиотека смогла корректно определить расположение базы. Распишем по пунктам, как проделать данную процедуру:
- Нажать комбинацию Win+R
- Ввести и запустить SystemPropertiesAdvanced
- В свойствах системы нажать кнопку «Переменные среды»
- В верхнем списке - переменные среды пользователя добавить новое значение по кнопке «создать»
- Указать имя переменной XUVTOP и значение переменной C:\CHIANTI
Установка Python
Python — интерпретируемый, интерактивный, объектно-ориентированный язык программирования. Python сочетает в себе выдающуюся мощь с очень ясным синтаксисом. Python бесплатный и открытый проект. Сообщество Python огромно, существуют множество библиотек, расширяющих возможности языка. Python является кроссплатформенным, т.е. он работает на всех популярных операционных системах.
На втором шаге установим Python скачав и запустив дистрибутив с официального сайта [3]. На странице загрузок для Windows можно выбрать более старые версии, в том числе последнюю версию скомпилированного Python 3.8 — текущая версия разработки ChiantiPy, чтоб избежать возможных проблем с обратной совместимостью. При установке используем параметры по умолчанию.
Установка библиотек
ChiantiPy зависит от следующих библиотек:
- Numpy версии 1.20
- SciPy версии 1.6
- Matplotlib версии 3.3.4
- PyQt5 (Требуемая GUI библиотека для Matplotlib)
- IPython Parallel (ipyparallel)
Для установки указанных библиотек потребуется предустановленная утилита pip, запущенная в командной строке с соответствующими параметрами. Проделаем следующие шаги:
- Нажать комбинацию Win+R
- Ввести и запустить cmd(запуск командной строки)
- Далее последовательно выполнять команды:
- pip install numpy==1.20
- pip install scipy==1.6
- pip install matplotlib==3.3.4
- pip install pyqt5
- pip install ipyparallel
- pip install ChiantiPy
После установки останется только отредактировать файл с настройками Matplotlib — matplotlibrc. Его расположение можно узнать так:
- Запустим интерпретатор введя в командную строку python
- Уже в интерпретаторе выполним:
- import matplotlib
- matplotlib.matplotlib_fname()
- Получим строку, содержащую расположение искомого файла. Здесь же можно увидеть директорию Python. С помощью любого текстового редактора найдем и изменим параметр backend, установив значение Qt5Agg.
- Проверим в интерпретаторе изменения вызвав:
- matplotlib.get_backend()
- Возможна ошибка при отрисовке графических элементов Qt. В этом случае необходимо создать переменную среды по уже известному алгоритму с именем переменной QT_PLUGIN_PATH и значением <директория Python>\Python38\Lib\site-packages\PyQt5\Qt5\plugins, где вместо <директория Python> подставляем известное из пункта 3 значение.
- Перезагружаем компьютер и система будет готова к работе
Расчет значения функции радиационных потерь
Функция RadLoss, считает коэффициент радиационных потерь как функцию температуры(temperature) и плотности(eDensity). Есть возможность указывать список конкретных элементов(elementList) и ионов(ionList). Таблица содержания элементов(abundance), используемая в расчетах, выбирается из файлов базы CHIANTI. Кроме того, можно ускорить расчет, указав минимальное содержание элемента(minAbund) и исключив элементы с низким содержанием. Итоговое значение формируется сложением четырех функций: функции энергетических потерь свободно-свободного перехода(freeFreeLoss), связанно-свободного перехода(freeBoundLoss), связанно-связанного перехода (boundBoundLoss), двухфотонного излучения(twoPhotonLoss) только для водородоподобных и гелиеподобных ионов.
Вызовем интерактивный редактор IDLE (Python 3.8 64-bit) и введем следующий код:
import ChiantiPy.core as ch
import numpy as np
import matplotlib.pyplot as plt
temperature = 10.**(4+0.05*np.arange(81))#Выбираем диапазон температур
density = 1.e+9#Задаем плотность частиц
elementList=['h', 'he']#список элементов, в данном случае водород и гелий
rl = ch.radLoss(temperature, density, elementList, abundance='sun_coronal_2012_schmelz_ext')
rl.saveData('radloss_test.pkl')#сохраняем данные
with open('Temp_test.txt','w') as f:
for i in range(len(temperature)):
f.write('{:.18e}'.format(temperature[i])+';')
with open('Energy_test.txt','w') as f:
for i in range(len(temperature)):
f.write('{:.18e}'.format(rl.RadLoss['rate'][i])+';')
plt.figure()#строим график
rl.radLossPlot()
plt.show()
Запустим программу и увидим результат (рис. 1).
Рисунок 1. Функция радиационных потерь
Температуры в диапазоне от 104 до 108 K, с плотностью электронов в 109 см-3. Выбрана таблица содержания для солнечной короны из статьи Дж. Т. Шмельц, Д. В. Римс, Р. фон Штайгер и С. Басу 2012 года [4]. Расчеты проводятся только для указанных в списке водорода и гелия. Результаты работы кода сохраняются в файлы 'radloss_test.pkl' или в текстовые файлы 'Temp_test.txt' и 'Energy_test.txt'. В самом конце строится график.
Вывод
Освоен навык установки и настройки программного обеспечения для астрофизических исследований. Данная инструкция была применена многими сотрудниками кафедры теоретической физики Калмыцкого государственного университета имени Б. Б. Городовикова. Рассчитанные таблицы значений функции радиационных потерь были использованы при исследовании солнечной короны, а результаты были опубликованы в различных статьях.
Другой пример работы программы – построение спектра иона железа (рис. 2).
Рисунок 2. Спектр иона Fe XIV, температура 2 МК, плотность 109 см-3
Работа выполнена в рамках госзадания Минобрнауки РФ (№075-03-2022-119/1 «Разработка новых наблюдательных и теоретических подходов в прогнозе космической погоды по данным наземных наблюдений»).
Список литературы:
- https://chiantipy.readthedocs.io
- https://www.chiantidatabase.org
- https://www.python.org/downloads/windows
- J. T. Schmelz, D. V. Reames, R. von Steiger, and S. Basu. Composition of the solar corona, solar wind and solar energetic particles // The Astrophysical Journal, 2012. 755. 33.