Приклад метаданих робочого процесу DFT
Цей завершений приклад показує, як робочий процес теорії функціоналу густини може бути задокументований як послідовність взаємопов'язаних обчислювальних кроків. Він записує мету кожного кроку, його вхідні та вихідні дані, програмне забезпечення, параметри, залежності, стан виконання та результати контролю якості. У прикладі застосовуються вибрані елементи профілю метаданих для наборів даних DFT та розширюються описами кроків робочого процесу, зв'язками вхід-вихід та походженням виконання.
Інформація про ресурс
Тип ресурсу
Приклад метаданих завершеного робочого процесу
Цільові користувачі
Дослідники в галузі обчислювальної техніки, автори наборів даних, куратори та розробники робочих процесів
Рекомендоване використання
Документація робочого процесу, фіксація походження, FAIR-пакування та навчання
Статус
Ілюстративний приклад Центру компетенцій, що стосується конкретної предметної області
Завантажте приклад пакета робочого процесу
Завантажте повний приклад пакета або перевірте окремі файли робочого процесу, походження та маніфесту.
Що представляє цей приклад?
Цей приклад представляє обчислювальний робочий процес, який використовується для підготовки та перевірки розрахунку DFT для кубічного карбіду кремнію. Робочий процес починається з початкової кристалічної структури, перевіряє числові параметри, оптимізує структуру, виконує остаточний самоузгоджений розрахунок та упаковує основні вхідні дані, виходи та метадані.
Кожен крок робочого процесу розглядається як окрема діяльність з визначеними вхідними даними, виходами, програмним забезпеченням, параметрами, залежностями та результатами перевірки результатами.
Метадані робочого процесу описують, як були отримані результати
Профіль метаданих набору даних DFT описує опублікований набір даних в цілому. У цьому прикладі робочого процесу записано послідовність операцій, які використовували та генерували файли, що містяться в цьому наборі даних.
Огляд робочого процесу
Приклад містить п'ять пов'язаних обчислювальних та документаційних кроків.
1. Підготовка структури
Виберіть та задокументуйте початкову кристалічну структуру 3C-SiC.
2. Перевірка збіжності
Визначте відповідні енергетичні обмеження та вибірку k-точок.
3. Оптимізуйте геометрію
Релаксуйте положення атомів та параметри елементарної комірки.
4. Обчисліть результати
Виконайте остаточне самоузгоджене обчислення, використовуючи перевірені налаштування.
5. Вихідні дані пакета
Витягніть основні результати та підготуйте пакет даних FAIR.
Підсумок кроків робочого процесу
Кожен крок має постійний внутрішній ідентифікатор та явні зв'язки вхід-вихід.
| Крок | Мета | Основні вхідні дані | Основні виходи | Залежить від |
|---|---|---|---|---|
structure_preparation |
Підготовка та перевірка початкової структури 3C-SiC | Вихідна структура та довідкова інформація | structures/initial_3c_sic.cif |
Немає |
convergence_testing |
Виберіть числові налаштування, що використовуються для подальших розрахунків | Початкова структура, псевдопотенціали та тестові вхідні дані | Таблиці збіжності граничних значень та k-точок | structure_preparation |
geometry_optimisation |
Оптимізуйте положення атомів та параметри елементарної комірки | Початкова структура та вибрані числові налаштування | Журнал розслабленої структури та оптимізації | convergence_testing |
final_scf |
Обчисліть кінцевий основний електронний стан | Розслаблена структура та перевірені налаштування | Вихідні дані SCF, загальна енергія, сили та напруження | оптимізація_геометрії |
упаковка_результатів |
Вилучення результатів та підготовка пакета публікації | Вихідні дані SCF, структури та докази конвергенції | Таблиці, метадані, README, маніфест та запис про походження | final_scf |
Метадані, записані для кожного кроку робочого процесу
Поля рівня робочого процесу описують порядок виконання, залежності та використання та створення цифрових об'єктів.
| Поле | Призначення | Приклад |
|---|---|---|
step_id |
Стабільний внутрішній ідентифікатор кроку робочого процесу | geometry_optimisation |
step_order |
Позиція кроку в робочому процесі | 3 |
step_type |
Категорія обчислювальної або документаційної діяльності | Оптимізація геометрії DFT |
опис |
Наукова мета кроку | Оптимізація структури 3C-SiC |
програмне забезпечення |
Програмне забезпечення та версія, що використовуються для виконання кроку | Quantum ESPRESSO 7.3 |
параметри |
Чисельні та методологічні налаштування, специфічні для кроку | PBE, 60 Ry, k-точкова сітка 8 × 8 × 8 |
входи |
Файли або цифрові об'єкти, що використовуються кроком | structures/initial_3c_sic.cif |
виходи |
Файли або цифрові об'єкти, згенеровані кроком | structures/relaxed_3c_sic.cif |
depends_on |
Попередній крок, який необхідно виконати першим | convergence_testing |
execution_status |
Операційний стан step | Завершено |
валідація |
Результат контролю якості або конвергенції | Критерій примусової конвергенції виконано |
execution_record |
Журнал, запис завдання або запис про походження, пов'язаний з виконанням | provenance/step_03.json |
Приклад JSON завершеного робочого процесу
Наведений нижче скорочений запис ілюструє структуру файлу метаданих робочого процесу, який можна завантажити.
{
"workflow": {
"workflow_id": "dft-3c-sic-example",
"title": "Робочий процес DFT для кубічного карбіду кремнію",
"workflow_type": "Розрахунок теорії функціоналу густини",
"version": "1.0",
"description": "Ілюстративний робочий процес для підготовки, перевірки та виконання розрахунку DFT для 3C-SiC.",
"subject": {
"material_name": "Карбід кремнію",
"chemical_formula": "SiC",
"phase_or_polymorph": "3C-SiC"
},
"software_environment": {
"primary_software": "Квантовий ESPRESSO",
"software_version": "7.3",
"operating_environment": "Linux",
"execution_mode": "MPI"
},
"steps": [
{
"step_id": "structure_preparation",
"step_order": 1,
"step_type": "Підготовка структури",
"description": "Підготувати та перевірити початкову кристалічну структуру 3C-SiC.",
"inputs": [
{
"path": "source/reference_structure.cif",
"role": "вихідна структура"
}
],
"outputs": [
{
"path": "structures/initial_3c_sic.cif",
"role": "перевірена початкова структура"
}
],
"depends_on": [],
"execution_status": "завершено",
"validation": {
"status": "пройдено",
"checks": [
"хімічний склад перевірено",
"періодичність перевірено"
]
}
},
{
"step_id": "convergence_testing",
"step_order": 2,
"step_type": "Чисельне тестування збіжності",
"description": "Оцінити збіжність за енергією та k-точкою.",
"software": {
"name": "Квантовий ЕСПРЕСО",
"version": "7.3"
},
"inputs": [
{
"path": "structures/initial_3c_sic.cif",
"role": "атомна структура"
},
{
"path": "псевдопотенціали/Si.upf",
"role": "кремнієвий псевдопотенціал"
},
{
"path": "псевдопотенціали/C.upf",
"role": "вуглецевий псевдопотенціал"
}
],
"parameters_tested": {
"energy_cutoffs_Ry": [40, 50, 60, 70],
"k_point_grids": [
"4 x 4 x 4",
"6 x 6 x 6",
"8 x 8 x 8"
]
},
"selected_parameters": {
"energy_cutoff": {
"value": 60,
"unit": "Ry"
},
"k_point_grid": "8 x 8 x 8"
},
"outputs": [
{
"path": "convergence/cutoff_test.csv",
"role": "результати збіжності граничних значень"
},
{
"path": "convergence/kpoint_test.csv",
"role": "результати збіжності k-точок"
}
],
"depends_on": [
"structure_preparation"
],
"execution_status": "завершено",
"validation": {
"status": "пройдено",
"критерій": "Зміна повної енергії нижче вибраного порогу"
}
},
{
"step_id": "geometry_optimisation",
"step_order": 3,
"step_type": "Оптимізація геометрії DFT",
"description": "Оптимізувати положення атомів та параметри елементарної комірки.",
"software": {
"name": "Квантовий ЕСПРЕСО",
"version": "7.3"
},
"method": {
"exchange_correlation_functional": "PBE",
"basis_representation": "плоскі хвилі",
"energy_cutoff": {
"value": 60,
"unit": "Ry"
},
"k_point_grid": "8 x 8 x 8"
},
"inputs": [
{
"path": "structures/initial_3c_sic.cif",
"role": "початкова структура"
},
{
"шлях": "вхід/relax.in",
"роль": "вхідні дані для обчислення"
}
],
"виходи": [
"шлях": "вихід/relax.out",
"роль": "журнал обчислення"
},
"шлях": "структури/relaxed_3c_sic.cif",
"роль": "розслаблена структура"
}
],
"depends_on": [
"тестування_конвергенції"
],
"статус_виконання": "завершено",
"валідація": {
"статус": "пройдено",
"статус_конвергенції": "конверговано",
"поріг_форсування": {
"значення": 0.0001,
"одиниця": "Рай/Бор"
}
}
},
"ідентифікатор_кроку": "final_scf",
"step_order": 4,
"step_type": "Обчислення самоузгодженого DFT",
"description": "Обчислити кінцевий основний електронний стан.",
"inputs": [
{
"path": "structures/relaxed_3c_sic.cif",
"role": "розслаблена структура"
},
{
"path": "input/scf.in",
"role": "Вхід SCF"
}
],
"outputs": [
{
"path": "output/scf.out",
"role": "Вихід SCF"
},
{
"path": "results/energies.csv",
"role": "витягнуті результати енергії"
},
{
"path": "results/forces.csv",
"role": "витягнуті атомні сили"
}
],
"depends_on": [
"geometry_optimisation"
],
"execution_status": "завершено",
"validation": {
"status": "пройдено",
"electronic_convergence": "1e-8 Ry"
}
},
{
"step_id": "result_packaging",
"step_order": 5,
"step_type": "Упаковка даних FAIR",
"description": "Підготувати документацію, метадані, походження та інвентаризацію файлів.",
"inputs": [
{
"path": "output/scf.out",
"role": "вихідні дані основного розрахунку"
},
{
"path": "results/energies.csv",
"role": "отриманий результат"
},
{
"path": "structures/relaxed_3c_sic.cif",
"role": "кінцева структура"
}
],
"outputs": [
{
"path": "README.md",
"role": "документація пакета"
},
{
"path": "manifest.csv",
"role": "інвентаризація файлів"
},
{
"path": "metadata.json",
"role": "метадані набору даних"
},
{
"path": "provenance/provenance.json",
"role": "походження робочого процесу"
}
],
"depends_on": [
"final_scf"
],
"execution_status": "завершено",
"validation": {
"status": "пройдено",
"checks": [
"всі шляхи маніфесту вирішено",
"необхідні метадані присутні",
"контрольна сума основних файлів підрахована"
]
}
}
]
}
Зв'язки походження
Записи походження пояснюють, які дії використовували або генерували кожен цифровий об'єкт і як пізніші результати були отримані з попередніх файлів.
Використані
Визначає файли, структури або параметри, що використовуються кроком робочого процесу кроком.
Згенеровано
Визначає файли та результати, згенеровані кроком робочого процесу.
Було похідним від
З'єднує результат або перетворений файл з його вихідним цифровим об'єктом.
Залежить від
Записує залежність виконання між двома кроками робочого процесу.
Приклад запису про походження
Це спрощене представлення пов'язує дії робочого процесу з цифровими об'єктами, які вони використовують та створюють.
{
"діяльність": [
{
"activity_id": "оптимізація_геометрії",
"використано": [
"structures/initial_3c_sic.cif",
"input/relax.in"
],
"згенеровано": [
"output/relax.out",
"structures/relaxed_3c_sic.cif"
]
},
{
"activity_id": "final_scf",
"використано": [
"structures/relaxed_3c_sic.cif",
"input/scf.in"
],
"згенеровано": [
"output/scf.out",
"results/energies.csv",
"results/forces.csv"
]
}
],
"виведення": [
{
"сутність": "структури/relaxed_3c_sic.cif",
"було_виведено_з": "структури/ініціальний_3c_sic.cif"
},
{
"сутність": "результати/енергії.csv",
"було_виведено_з": "вихід/scf.вихід"
}
]
Рекомендований приклад структури пакета
dft-workflow-example/ │ ├── README.md ├── manifest.csv ├── metadata.json ├── workflow.json │ ├── source/ │ └── reference_structure.cif │ ├── structures/ │ ├── initial_3c_sic.cif │ └── relaxed_3c_sic.cif │ ├── псевдопотенціали/ │ ├── Si.upf │ └── C.upf │ ├── вхід/ │ ├── cutoff_test.in │ ├── kpoint_test.in │ ├── relax.in │ └── scf.in │ ├── вихід/ │ ├── relax.out │ └── scf.out │ ├── збіжність/ │ ├── cutoff_test.csv │ └── kpoint_test.csv │ ├── результати/ │ ├── енергії.csv │ └── сили.csv │ ├── скрипти/ │ └── extract_results.py │ ├── середовище/ │ └── software_environment.yml │ └── походження/ └── povenance.json
Як використовувати приклад
1. Розгляньте
Перегляньте, як у прикладі розділено кроки робочого процесу, файли та зв'язки походження.
2. Копіювати
Скопіюйте структуру робочого процесу та видаліть значення, що стосуються прикладу.
3. Адаптуйте
Замініть кроки прикладу операціями, що використовуються у вашому власному розрахунку.
4. З'єднайте
Зв'яжіть кожен крок з фактичними вхідними, вихідними та похідними файлами.
5. Перевірка
Перевірте порядок виконання, шляхи до файлів, залежності та метадані узгодженість.
Важливі примітки
- Розглядайте цей ресурс як ілюстративний приклад, а не як обов'язкову універсальну специфікацію робочого процесу.
- Замініть усі параметри прикладу, версії програмного забезпечення та шляхи до файлів значеннями з фактичного розрахунку.
-
Надайте кожному кроку робочого процесу унікальний та стабільний
step_id. - Записуйте фактичний порядок виконання окремо від концептуального порядку, коли робочий процес містить ітерації або паралельні гілки.
- Пов'яжіть кожен оголошений вхідний та вихідний дані з існуючим файлом або цифровим об'єктом у пакеті.
- Відрізняйте вхідний файл програмного забезпечення від наукової структури або набору даних, на який посилається цей файл.
- Записуйте невдалі, повторні або виключені обчислення, коли вони є релевантними для інтерпретації кінцевого результату.
- Не повідомляйте про крок як про збіжний, якщо його задокументований критерій не був виконаний.
- Забезпечте відповідність шляхів робочого процесу структурі каталогів маніфесту та пакета.
- Не включайте паролі, токени доступу, конфіденційну інформацію кластера або інші значення, що стосуються безпеки.