Програмне забезпечення
Отримання новітніх наукових результатів вимагає як певного теоретичного підґрунтя, так і володіння комп’ютерними технологіями. Останні мають кілька основних спрямувань. По-перше, це комп’ютерний експеримент. Значно дешевший натурного, він дозволяє аналізувати фізичні системи в широких інтервалах параметрів і отримувати дані, які дуже складно чи напряму неможливо визначити з практики. По-друге, різноманітні спеціалізовані пакети програм дозволяють суттєво спростити і організувати рутинну технічну роботу.
Нижче наводиться кілька списків програм, які (або їх аналоги) знаходять активне застосування в RiTM-team і є рекомендованими до оволодіння.
Повсякденна робота
(читається латех, оскільки останні три літери є грецькими)
- Це – професійна система підготовки (верстки) документів. LaTeX є найбільш могутньою і найпоширенішою системою для підготовки документів, що містять багато математичних формул. Отже, це необхідний інструмент для фізиків-теоретиків. Програмно він складається з набору бібліотек і “компілятору”, який перетворює текстовий файл, записаний відповідним синтаксисом, в документ PDF.
Для користувачів операційних систем Microsoft Windows оптимальний варіант – це зв’язка MiKTeX (конкретна реалізація TeX/LaTeX під Windows) + TeXstudio (кросплатформене інтегроване середовище для підготовки LaTeX-документів). Під Linux/Unix стандартом вважається TeX Live.
Для підготовки презентацій використовується той самий LaTeX Beamer class. Для прихильників Microsoft PowerPoint існує зручний плагін, який дозволяє набирати формули в форматі TeX.
- JabRef
- Підготовка наукової публікації супроводжується обробкою великої кількості вже опублікованих статей та книг. Ця програма є менеджером бібліографічних даних, що дозволяє зручно шукати, додавати, читати бібліографію, а також легко вставляти посилання на статті в TeX-файли. Для найкращої сумісності при спільному використанні нашою групою радимо використовувати JabRef v.4.3.1.
- Системи коп’ютерної алгебри
- Теоретична фізика пов’язана з великою кількістю аналітичних розрахунків. Рутинна робота може бути суттєво спрощена використанням програм, відомих під загальною назвою CAS (computer algebra systems). Відомими прикладами є Wolfram Mathematica (разом з web-додатком Wolfram Alpha), Maxima, Scilab і пакет SymPy для мови Python.
- Комп’ютерна графіка
- Існує велика кількість пакетів програм, які зручно використовувати для побудови графіків і схем при підготовці публікацій чи презентацій. Дво- і тривимірні графіки/діаграми зручно готувати з використанням PGFPlots в
або Gnuplot. Для підготовки графіка також можна використовувати Matematica з додатковим пакетом MaTeX, який дає можливість використовувати шрифти
. В нагоді часто стають Inkscape і Blender при роботі з дво- і тривимірною графікою.
- Зокрема для спрощення роботи над ілюстраціями за допомогою
було створено пакет pgffigure.
Організація роботи
- Git
- Системи контролю версій є потужними інструментами для одноосібної та сумісної роботи над текстовими файлами, за змінами в яких необхідно слідкувати (наприклад, зберігати кілька версій тексту статті для вибору кращого варіанту).
- Наразі, ми користуємось кількома схожими сервісами (історично це спричинено зміною безкоштовного функціоналу та самих можливостей сервісів). Для сумісної роботи над ПЗ та деякими текстами використовується GitLab. Зручною є інтеграція онлайн-редактором LaTeX Overleaf, який підтримує Git через інтеграцію з GitHub (аналог GitLab з обмеженою кількістю співавторів приватних репозиторіїв) та зручний у співпраці з авторами, які не користуються LaTeX. В блозі групи можна знайти поради по використанню Git в цілому та його інтеграції з TeXstudio. Також див. як включати інформацію про поточний коміт у латехівський докумет.
- Для роботи з Git взагалі варто відзначити програми Sourcetree під Win/Mac та Smartgit під Linux. Іншим зручним рішеннями, яке вбудовується у провідник Windows є TortoiseGit.
- Google Drive
- Колективна робота часто має на увазі спільне використання певних файлів. Так збірку всіх публікацій, які використовуються в роботі зручно зберігати у хмарному сховищі, до якого є доступ в усіх членів групи замість того, щоб щоразу пересилати один одному статті для обговорення. Ми використовуємо Google Drive у якості такого спільного сховища. Він зручний наявністю доступу з веб-інтерфейсу та можливістю синхронізації з локальними каталогами на комп’ютері “на льоту”. Під Windows існує безкоштовний оригінальний клієнт синхронізації (щоправда, на момент написання цієї статті він вміє працювати лише з одним аккаунтом). Також існує комерційний кросс-платформенний кліент Insync із суттєво ширшими можливостями та зручною роботою під Linux (pricing).
- Google Calendar
- Для планування зустрічей, інформування один одного про вільні та зайняті години ми використовуємо спільний календар Google.
- Trello
- Це планувальник завдань, який підтримує колективну роботу над проектами.
Комп’ютерний експеримент
Обчислення фізичних систем як правило, потребують потужних обчислювальних ресурсів і тому переносяться з персональних комп’ютерів на комп’ютерні кластери, які, як правило, працюють під управлінням того чи іншого дистрибутиву з сімейства GNU Linux. Зокрема, це стосується обчислювальних кластерів Київського національного університету імені Тараса Шевченка та Інституту теоретичної фізики ім. М. М. Боголюбова. Для роботи з ними варто мати рівень користувача-початківця Linux. Існує велика кількість дистрибутивів, які можна встановити на комп’ютер паралельно з Windows, або на віртуальну машину: Ubuntu, Linux Mint, Fedora тощо. Типово, відмінності між дистрибутивами стосуються особливостей адміністрування в той час як робота з консоллю (bash) та користувацькими програмами є однотипною. Для автоматизації рутинних дій чи аналізу розрахунків варто володіти основами хоча б одної з поширених скриптових мов програмування. Ми радимо звернути увагу на Python.
Майже в кожній області фізики є своє спеціалізоване програмне забезпечення, орієнтоване на особливості конкретних фізичних систем. У RiTM-group знаходять активне застосування наступні.
- OOMMF
- Класичний пакет мікромагнітних моделювань на основі методу скінченних різниць для здійснення інтегрування по об’єму зразка. Має дуже широкі можливості опису різних матеріалів, але застосовний лише для пласких зразків. Вхідні дані пишуться у вигляді скриптів мовою Tcl. Для обробки моделювань існує велика кількість допоміжних пакетів, радимо модуль для Wolfram Mathematica.
- SLaSi
- Пакет спін-ґраткових моделювань, який процює з моделлю гайзенберґівського гамільтоніану з врахуванням додаткових взаємодій. Написаний мовою C.
- Magpar
- Пакет мікромагнітних моделювань, одною з переваг якого є можливість статичного аналізу систем, в яких напрямок осі магнітної анізотропії залежить від координати. На поточний момент не підтримується автором. Написаний мовою C.
- NMag
- Пакет мікромагнітних моделювань, який широко застосовується в задачах спінтроніки. Вхідні дані пишуться у вигляді скриптів мовою Python.
- MUMAX3
- Пакет мікромагнітних моделювань, суттєвою перевагою якого є використання обчислення на графічних картах, що дає прискорення в 100 разів по відношенню до CPU-обчислень.
Magpar і NMag здійснюють інтегрування за об’ємом зразка методом скінченних елементів, що дозволяє зручно описувати в них магнітні зразки довільної форми. Підготовка геометричних даних для них здійснюється в програмі Gmsh, а перегляд результатів розрахунків – у Paraview.
Поради в роботі над науковим текстом
На певному етапі роботи виникає необхідність зібрати до купи результати і оформити їх у вигляді статті/звіту/диплому і т.і.
Корисні поради на цю тему є в статтях математиків С. Б. Стечкина “Как писать работы” і
П. Р. Халмоша “Как писать математические тексты“.