Програмне забезпечення, корисні поради…

Програмне забезпечення

Отримання новітніх наукових результатів вимагає як певного теоретичного підґрунтя, так і володіння комп’ютерними технологіями. Останні мають кілька основних спрямувань. По-перше, це комп’ютерний експеримент. Значно дешевший натурного, він дозволяє аналізувати фізичні системи в широких інтервалах параметрів і отримувати дані, які дуже складно чи напряму неможливо визначити з практики. По-друге, різноманітні спеціалізовані пакети програм дозволяють суттєво спростити і організувати рутинну технічну роботу.

Нижче наводиться кілька списків програм, які (або їх аналоги) знаходять активне застосування в RiTM-group і є рекомендованими до оволодіння.

Повсякденна робота

\LaTeX (читається латех, оскільки останні три літери є грецькими)
Це професійна система підготовки (верстки) документів. LaTeX є найбільш могутньою і найпоширенішою системою для підготовки документів, що містять багато математичних формул. Отже, це необхідний інструмент для фізиків-теоретиків. Програмно він складається з набору бібліотек і “компілятору”, який перетворює текстовий файл, записаний відповідним синтаксисом, в документ PDF.

Для користувачів операційних систем Microsoft Windows оптимальний варіант – це зв’язка MiKTeX (конкретна реалізація TeX/LaTeX під Windows) + TeXstudio (кросплатформене інтегроване середовище для підготовки LaTeX-документів). Під Linux/Unix стандартом вважається TeX Live.

Для підготовки презентацій використовується той самий LaTeX Beamer class. Для прихильників Microsoft PowerPoint існує зручний плагін, який дозволяє набирати формули в форматі TeX.

JabRef
Підготовка наукової публікації супроводжується обробкою великої кількості вже опублікованих статей та книг. Ця програма є менеджером бібліографічних даних, що дозволяє зручно шукати, додавати, читати бібліографію, а також легко вставляти посилання на статті в TeX-файли.
Системи коп’ютерної алгебри
Теоретична фізика пов’язана з великою кількістю аналітичних розрахунків. Рутинна робота може бути суттєво спрощена використанням програм, відомих під загальною назвою CAS (computer algebra systems). Відомими прикладами є Wolfram Mathematica (разом з web-додатком Wolfram Alpha), Maxima, Scilab і пакет SymPy для мови Python.
Комп’ютерна графіка
Існує велика кількість пакетів програм, які зручно використовувати для побудови графіків і схем при підготовці публікацій чи презентацій. Дво- і тривимірні графіки/діаграми зручно готувати з використанням PGFPlots в \LaTeX або Gnuplot. Для підготовки графіка також можна використовувати Matematica з додатковим пакетом MaTeX, який дає можливість використовувати шрифти \LaTeX. В нагоді часто стають Inkscape і Blender при роботі з дво- і тривимірною графікою.
Зокрема для спрощення роботи над ілюстраціями за допомогою \LaTeX було створено пакет pgffigure.

Організація роботи

Git
Системи контролю версій є потужними інструментами для одноосібної та сумісної роботи над текстовими файлами, за змінами в яких необхідно слідкувати (наприклад, зберігати кілька версій тексту статті для вибору кращого варіанту). Ми користуємось онлайн-сервісом Overleaf для сумісної праці над текстовими документами LaTeX, який забезпечує взаємодію за допомогою системи контролю версій Git. Ми користуємось репозиторіями GitLab для сумісної роботи над текстами та ПЗ (Overleaf з 2019 р. не надає безкоштовних приватних репозиторіїв). В блозі групи можна знайти поради по використанню Git в цілому та його інтеграції з TeXstudio. Також див. як включати інформацію про поточний коміт у латехівський докумет. Іншим зручним сервісом для створення багатоцільових репозиторіїв є Bitbucket.
Для роботи з Git взагалі варто відзначити програми Sourcetree під Win/Mac та Smartgit під Linux. Іншим зручним рішеннями, яке вбудовується у провідник Windows є TortoiseGit.
Google Drive
Колективна робота часто має на увазі спільне використання певних файлів. Так збірку всіх публікацій, які використовуються в роботі зручно зберігати у хмарному сховищі, до якого є доступ в усіх членів групи замість того, щоб щоразу пересилати один одному статті для обговорення. Ми використовуємо Google Drive у якості такого спільного сховища. Він зручний наявністю доступу з веб-інтерфейсу та можливістю синхронізації з локальними каталогами на комп’ютері “на льоту”. Під Windows існує безкоштовний оригінальний клієнт синхронізації (щоправда, на момент написання цієї статті він вміє працювати лише з одним аккаунтом). Також існує комерційний кросс-платформенний кліент Insync із суттєво ширшими можливостями та зручною роботою під Linux (на момент написання статті підключення акаунту коштує 30USD).
Google Calendar
Для планування зустрічей, інформування один одного про вільні та зайняті години ми використовуємо спільний календар Google.
Trello
Це планувальник завдань, який підтримує колективну роботу над проектами.

Комп’ютерний експеримент

Обчислення фізичних систем як правило, потребують потужних обчислювальних ресурсів і тому переносяться з персональних комп’ютерів на комп’ютерні кластери, які, як правило, працюють під управлінням того чи іншого дистрибутиву з сімейства GNU Linux. Зокрема, це стосується обчислювальних кластерів Київського національного університету імені Тараса Шевченка та Інституту теоретичної фізики ім. М. М. Боголюбова. Для роботи з ними варто мати рівень користувача-початківця Linux. Існує велика кількість дистрибутивів, які можна встановити на комп’ютер паралельно з Windows, або на віртуальну машину: Ubuntu, Linux Mint, Debian, Open SUSE, Red Hat, Fedora, Gentoo тощо. Типово, відмінності між дистрибутивами стосуються особливостей адміністрування в той час як робота з консоллю (bash) та користувацькими програмами є однотипною. Для автоматизації рутинних дій чи аналізу розрахунків варто володіти основами хоча б одної з поширених скриптових мов програмування. Ми радимо звернути увагу на Python.

Майже в кожній області фізики є своє спеціалізоване програмне забезпечення, орієнтоване на особливості конкретних фізичних систем. У RiTM-group знаходять активне застосування наступні.

OOMMF
Класичний пакет мікромагнітних моделювань на основі методу скінченних різниць для здійснення інтегрування по об’єму зразка. Має дуже широкі можливості опису різних матеріалів, але застосовний лише для пласких зразків. Вхідні дані пишуться у вигляді скриптів мовою Tcl. Для обробки моделювань існує велика кількість допоміжних пакетів, радимо модуль для Wolfram Mathematica.
SLaSi
Пакет спін-ґраткових моделювань, який процює з моделлю гайзенберґівського гамільтоніану з врахуванням додаткових взаємодій. Написаний мовою C.
Magpar
Пакет мікромагнітних моделювань, одною з переваг якого є можливість статичного аналізу систем, в яких напрямок осі магнітної анізотропії залежить від координати. На поточний момент не підтримується автором. Написаний мовою C.
NMag
Пакет мікромагнітних моделювань, який широко застосовується в задачах спінтроніки. Вхідні дані пишуться у вигляді скриптів мовою Python.

Magpar і NMag здійснюють інтегрування за об’ємом зразка методом скінченних елементів, що дозволяє зручно описувати в них магнітні зразки довільної форми. Підготовка геометричних даних для них здійснюється в програмі Gmsh, а перегляд результатів розрахунків – у Paraview.

Поради в роботі над науковим текстом

На певному етапі роботи виникає необхідність зібрати до купи результати і оформити їх у вигляді статті/звіту/диплому і т.і.

Корисні поради на цю тему є в статтях математиків С. Б. Стечкина “Как писать работы” і
П. Р. Халмоша “Как писать математические тексты“.

Leave a Reply