К содержимому
NEOBRIDGE INSIGHTПо вопросамinfo@neobridge.kz
⌕
Технические модули

ASE: атомные структуры, подключаемые вычислители и единые расчётные сценарии

Atomic Simulation Environment (ASE) — модульная Python-библиотека и инструменты для подготовки, запуска, визуализации и анализа атомистических расчётов. Центральный объект Atoms описывает атомную структуру, а подключаемый calculator предоставляет энергию, силы и, если поддерживает, напряжения. Сохранённый сайт прямо сообщает о выпуске 3.29.0 21 июня 2026 года.

·142 источников·По описаниям проекта ↗
Концептуальная иллюстрация к обзору: ASE: атомные структуры, подключаемые вычислители и единые расчётные сценарии
Концептуальная иллюстрация · создана с помощью ИИ
ОБСУДИТЬ И ПОДЕЛИТЬСЯ

Хорошая идея становится полезнее в разговоре.

01
КЛЮЧЕВЫЕ СВЕДЕНИЯ

Паспорт проекта

По первоисточникам
Тип
Технические модули
Задача
Заявленная цель — подготовка, управление и анализ атомистических симуляций в одной Python-среде.
Для кого
Пользователи, которые строят и исследуют атомистические модели через Python, GUI или CLI, и разработчики новых расчётных сценариев и модулей.
Технологии
Python / PostgreSQL / SQLite / CLI / JSON
Что потребуется
Текущие сохранённые README и install.rst требуют Python 3.11+, NumPy, SciPy и Matplotlib; Tkinter нужен для GUI, Flask — для web-интерфейса ase.db, spglib —…
Основание
142 первоисточников
02
СУТЬ

За 30 секунд

01 / Зачем

Заявленная цель — подготовка, управление и анализ атомистических симуляций в одной Python-среде.

02 / Как

Создаёт молекулы, кристаллы, поверхности и другие структуры; подключает расчётный backend; управляет локальной оптимизацией по силам и молекулярной динамикой.

03 / Результат

Результаты представлены обновлёнными Atoms, доступными у backend энергиями, силами и напряжениями, траекторией состояний оптимизации или динамики и журналом времени, энергий и температуры.

03
ПОСЛЕДОВАТЕЛЬНОСТЬ

Как это работает

01

На входе

Python

Исходные данные — химические символы или атомные номера, координаты, ячейка и периодичность Atoms; при необходимости массы, импульсы, заряды и начальные магнитные моменты. Их можно задать в Python или прочитать через ase.io. Далее выбирают calculator и его параметры, критерий fmax для оптимизации, шаг времени и выбранный ансамбль, а при необходимости термостат для динамики; NEB требует начального и конечного состояний и отдельных копий промежуточных структур. Для внешнего кода нужны его команда и файлы, а у Espresso параметры сохраняют единицы Quantum ESPRESSO.

02

Механизм

Создаёт молекулы, кристаллы, поверхности и другие структуры; подключает расчётный backend; управляет локальной оптимизацией по силам и молекулярной динамикой. NEB связывает начальное и конечное состояния цепочкой изображений для поиска пути перехода и энергетического барьера. ASE читает и пишет структуры, сохраняет траектории, даёт GUI для их просмотра и редактирования и базу атомных конфигураций с результатами и поисковыми метками. Возможности конкретного расчёта зависят от calculator.

03

Результат

Результаты представлены обновлёнными Atoms, доступными у backend энергиями, силами и напряжениями, траекторией состояний оптимизации или динамики и журналом времени, энергий и температуры. NEB формирует путь и барьер; базу можно пополнять конфигурациями, параметрами calculator, уже рассчитанными свойствами и пользовательскими ключами. GUI визуализирует и преобразует файлы. Колебательные и термохимические расчёты дают производные величины только в рамках выбранной модели и качества исходных сил/частот.

04
ПОДРОБНОСТИ

Что важно понять

01

Техническое устройство

Atoms хранит геометрию и состояние системы. Оптимизатор или интегратор меняет координаты, calculator вычисляет необходимые свойства, а наблюдение сохраняется в траекторию или базу. Для файлового внешнего backend ASE генерирует входы, запускает программу и читает результаты обратно; поддерживаемые socket-backend используют протокол i-PI с постоянным процессом, которому ASE передаёт координаты и получает энергию/силы/напряжения. Это может уменьшить повторный запуск и I/O, но не является универсальной гарантией ускорения. BFGS оценивает Hessian по последовательности сил и сохраняет его для restart.

02

Для чего создано

Заявленная цель — подготовка, управление и анализ атомистических симуляций в одной Python-среде. Модульность и сценарии позволяют составлять последовательности расчётов, в том числе циклы, без изменения кода самой ASE; GUI и командная строка дополняют Python-интерфейс.

03

Для кого

Пользователи, которые строят и исследуют атомистические модели через Python, GUI или CLI, и разработчики новых расчётных сценариев и модулей. Доступ к библиотеке не заменяет знаний выбранного движка, единиц и критериев сходимости: внешние коды имеют собственные требования, а интерпретация термодинамики зависит от корректных колебательных данных.

04

Сценарии использования

Создать структуру и выполнить релаксацию BFGS до выбранного fmax, сохраняя траекторию; запустить MD с заданным шагом и журналом; построить NEB между двумя состояниями; просмотреть и изменить геометрию в GUI; при создании стандартной геометрии через Setup получить Python-код её повторного построения; хранить конфигурации и результаты серий в ase.db с резервированием задач. Для долгих последовательностей с поддерживаемым backend можно использовать SocketIOCalculator. BFGSLineSearch несовместим с NEB, а выбор и настройку алгоритма нельзя переносить между задачами без проверки.

05

Идея решения

Отделить представление атомной системы и алгоритм её изменения от выбранного вычислителя энергии и сил. Один workflow Atoms → calculator → optimizer/MD → trajectory/db позволяет использовать Python-алгоритмы ASE с разными движками, включая отдельные встроенные потенциалы. Это самостоятельный интерфейсный и алгоритмический слой; Espresso-wrapper запускает pw.x, а наличие I/O helpers для других программ QE не означает запуск всего комплекса Quantum ESPRESSO.

06

Какую задачу описывает источник

Документация прямо описывает неэффективность запуска нового внешнего процесса на каждом атомном шаге: теряются полезные предыдущие состояния либо нужен значительный I/O. Socket driver сохраняет процесс и позволяет переиспользовать волновые функции. Для серий расчётов также предложена reservation-строка базы, чтобы параллельные задачи не взяли одну работу. Измеренный выигрыш и распространённость этих проблем в пакете не доказаны.

05
ГОТОВНОСТЬ К ПРОВЕРКЕ

Что известно из описания

Полнота описанияЗапуск не проверялся
МеханизмОписано
ТребованияОписано
ОграниченияОписано

Что потребуется

  • Текущие сохранённые README и install.rst требуют Python 3.11+, NumPy, SciPy и Matplotlib; Tkinter нужен для GUI, Flask — для web-интерфейса ase.db, spglib — для отдельных симметрийных функций.
  • Сторонние движки, их лицензии, псевдопотенциалы и команды запуска приобретаются или настраиваются отдельно: ASE, например, не поставляет VASP.
  • Общая конфигурация calculator читается из ~/.config/ase/config.ini либо путей ASE_CONFIG_PATH.
  • JSON/SQLite работают без серверной установки; PostgreSQL/MySQL/MariaDB требуют сервера и отдельно вынесенных backend.
  • Источники обозначают LGPL, но точную применимую редакцию лицензии следует проверять по поставляемым COPYING/COPYING.LESSER.

Что учитывать

  • Единый интерфейс не означает одинаковой поддержки всех свойств и научной точности.
  • Встроенный Python EMT предназначен для быстрых демонстраций/тестов; Gromacs-wrapper прямо назван предварительным и слишком медленным для production.
  • DFTD3 сам по себе не полный потенциал и трактует 1D/2D периодичность как 3D; PLUMED не наследует выбор PBC ASE автоматически.
  • Слишком большой шаг MD делает динамику неустойчивой; Andersen не годится для динамических свойств вроде диффузии, Berendsen NVT не даёт правильного NVT sampling.
  • Фононы не включают LO–TO nonanalytic contribution.
  • ase._4 — незавершённые прототипы, не production-возможности.
06
СМОТРИМ ГЛУБЖЕ

Комментарий NeoBridge

Общая справка

  • Atoms — Объект, объединяющий атомную структуру и связанные параметры состояния.
  • Calculator — Вычислительный интерфейс, через который алгоритм запрашивает энергию, силы и другие поддерживаемые свойства.
  • NEB — Nudged Elastic Band: поиск пути между состояниями через связанную цепочку конфигураций.
  • MD — Молекулярная динамика: численное интегрирование движения атомов для выбранной модели сил.
  • Hessian — Матрица вторых производных энергии по координатам, используемая в ряде оптимизаторов.
  • JSON — Текстовый формат для передачи данных: значения записываются в виде полей, списков и вложенных объектов.

Что стоит уточнить

  • Какие точные версии ASE, Python, calculator и внешнего движка зафиксированы для целевой среды? Документы разных лет содержат изменившиеся требования и вынесенные пакеты.
  • Какие контрольные расчёты подтвердят сходимость, единицы, периодичность и физическую корректность выбранного workflow? Единый интерфейс и примеры не гарантируют научную пригодность результата.
  • Как изолировать рабочие каталоги, сохранить исходные файлы и безопасно перенести старые траектории? Backend могут удалять или перезаписывать файлы; старый pickle-формат небезопасен для недоверенных данных.

Основания и справочные материалы

JSON ↗
↗
ОСНОВАНИЯ

Из первоисточников

142 ссылок

Редакционный обзор NeoBridge Insight по материалам источников ниже. Права на исходные тексты, код и изображения принадлежат их правообладателям. Условия использования указаны в первоисточниках.

Независимое тестирование проекта не проводилось.

gitlab.com

  1. ase/ase
  2. README.rst
  3. doc/about.rst
  4. doc/ase/ase.rst
  5. doc/ase/atom.rst
  6. doc/ase/atoms.rst
  7. doc/ase/build/build.rst
  8. doc/ase/build/connected.rst
  9. doc/ase/build/surface.rst
  10. doc/ase/build/tools.rst
  11. doc/ase/calculators/FHI-aims.rst
  12. doc/ase/calculators/abinit.rst
  13. doc/ase/calculators/ace.rst
  14. doc/ase/calculators/amber.rst
  15. doc/ase/calculators/calculators.rst
  16. doc/ase/calculators/castep.rst
  17. doc/ase/calculators/checkpointing.rst
  18. doc/ase/calculators/cp2k.rst
  19. doc/ase/calculators/crystal.rst
  20. doc/ase/calculators/demon.rst
  21. doc/ase/calculators/demonnano.rst
  22. doc/ase/calculators/dftb.rst
  23. doc/ase/calculators/dftd3.rst
  24. doc/ase/calculators/dmol.rst
  25. doc/ase/calculators/eam.rst
  26. doc/ase/calculators/elk.rst
  27. doc/ase/calculators/emt.rst
  28. doc/ase/calculators/espresso.rst
  29. doc/ase/calculators/exciting.rst
  30. doc/ase/calculators/fd.rst
  31. doc/ase/calculators/fleur.rst
  32. doc/ase/calculators/gamess_us.rst
  33. doc/ase/calculators/gaussian.rst
  34. doc/ase/calculators/gromacs.rst
  35. doc/ase/calculators/gulp.rst
  36. doc/ase/calculators/harmonic.rst
  37. doc/ase/calculators/jacapo.rst
  38. doc/ase/calculators/kim.rst
  39. doc/ase/calculators/lammps.rst
  40. doc/ase/calculators/lammpslib.rst
  41. doc/ase/calculators/lammpsrun.rst
  42. doc/ase/calculators/loggingcalc.rst
  43. doc/ase/calculators/mixing.rst
  44. doc/ase/calculators/mopac.rst
  45. doc/ase/calculators/nwchem.rst
  46. doc/ase/calculators/octopus.rst
  47. doc/ase/calculators/onetep.rst
  48. doc/ase/calculators/openmx.rst
  49. doc/ase/calculators/orca.rst
  50. doc/ase/calculators/others.rst
  51. doc/ase/calculators/plumed.rst
  52. doc/ase/calculators/psi4.rst
  53. doc/ase/calculators/qchem.rst
  54. doc/ase/calculators/qmmm.rst
  55. doc/ase/calculators/siesta.rst
  56. doc/ase/calculators/socketio/socketio.rst
  57. doc/ase/calculators/tersoff.rst
  58. doc/ase/calculators/test.rst
  59. doc/ase/calculators/turbomole.rst
  60. doc/ase/calculators/vasp.rst
  61. doc/ase/cell.rst
  62. doc/ase/cluster/cluster.rst
  63. doc/ase/collections.rst
  64. doc/ase/constraints.rst
  65. doc/ase/data.rst
  66. doc/ase/db/db.rst
  67. doc/ase/dft/bader.rst
  68. doc/ase/dft/bandgap.rst
  69. doc/ase/dft/dft.rst
  70. doc/ase/dft/dos.rst
  71. doc/ase/dft/kpoints.rst
  72. doc/ase/dft/stm.rst
  73. doc/ase/dft/wannier.rst
  74. doc/ase/dimer.rst
  75. doc/ase/eos.rst
  76. doc/ase/filters.rst
  77. doc/ase/formula.rst
  78. doc/ase/geometry.rst
  79. doc/ase/gui/basics.rst
  80. doc/ase/gui/calculate.rst
  81. doc/ase/gui/edit.rst
  82. doc/ase/gui/gui.rst
  83. doc/ase/gui/setup.rst
  84. doc/ase/gui/tools.rst
  85. doc/ase/gui/view.rst
  86. doc/ase/io/io.rst
  87. doc/ase/io/opls.rst
  88. doc/ase/io/trajectory.rst
  89. doc/ase/io/ulm.rst
  90. doc/ase/lattice.rst
  91. doc/ase/md.rst
  92. doc/ase/mep.rst
  93. doc/ase/neb.rst
  94. doc/ase/neighborlist.rst
  95. doc/ase/optimize.rst
  96. doc/ase/parallel.rst
  97. doc/ase/phasediagram/phasediagram.rst
  98. doc/ase/phonons.rst
  99. doc/ase/spacegroup/spacegroup.rst
  100. doc/ase/spectrum/doscollection.rst
  101. doc/ase/spectrum/dosdata.rst
  102. doc/ase/spectrum/spectrum.rst
  103. doc/ase/symbols.rst
  104. doc/ase/thermochemistry/thermochemistry.rst
  105. doc/ase/transport/transport.rst
  106. doc/ase/units.rst
  107. doc/ase/utils.rst
  108. doc/ase/vibrations/H2O_EMT_summary.txt
  109. doc/ase/vibrations/franck_condon.rst
  110. doc/ase/vibrations/infrared.rst
  111. doc/ase/vibrations/modes.rst
  112. doc/ase/vibrations/raman.rst
  113. doc/ase/vibrations/vibrations.rst
  114. doc/ase/visualize/visualize.rst
  115. doc/ase/xrdebye.rst
  116. doc/cmdline.rst
  117. doc/contact.rst
  118. doc/development/addingexamples.rst
  119. doc/development/bugs.rst
  120. doc/development/calculators.rst
  121. doc/development/contribute.rst
  122. doc/development/development.rst
  123. doc/development/licenseinfo.rst
  124. doc/development/making_movies.rst
  125. doc/development/newrelease.rst
  126. doc/development/proposals/calculators.rst
  127. doc/development/proposals/labels.rst
  128. doc/development/proposals/proposals.rst
  129. doc/development/python_codingstandard.rst
  130. doc/development/tests.rst
  131. doc/development/translate.rst
  132. doc/development/vibecoding.rst
  133. doc/development/writing_changelog.rst
  134. doc/development/writing_documentation_ase.rst
  135. doc/faq.rst
  136. doc/gettingstarted/external_calculators/ext_intro.rst
  137. doc/gettingstarted/gettingstarted.rst
  138. doc/gettingstarted/tut02_h2o_structure/h2o.rst
  139. doc/index.rst
  140. doc/install.rst
  141. doc/releasenotes.rst
  142. doc/tips.rst
← Вернуться к проектам Продолжить исследование ↗