Перейти до основного вмісту

HI-VQE Chemistry — функція Qiskit від Qunova Computing

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-catalog qiskit-ibm-runtime
# This cell is hidden from users
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
instance = service.active_account()["instance"]
backend_name = service.least_busy(operational=True, min_num_qubits=16).name
примітка

Функції Qiskit є експериментальною можливістю, доступною лише користувачам IBM Quantum® Premium Plan, Flex Plan та On-Prem (через IBM Quantum Platform API) Plan. Вони перебувають у статусі попереднього випуску і можуть змінюватися.

Огляд

У квантовій хімії задача електронної структури полягає у знаходженні розв'язків електронного рівняння Шрьодінґера — квантових хвильових функцій, що описують поведінку електронів системи. Ці хвильові функції є векторами комплексних амплітуд, де кожна амплітуда відповідає внеску можливої конфігурації електронів.

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

Ітераційний варіаційний квантовий власний солвер з передачею (HI-VQE) — це інноваційний гібридний квантово-класичний метод для точного оцінювання основного стану молекулярних систем. Він інтегрує квантове апаратне забезпечення з класичними обчисленнями, використовуючи квантові процесори для ефективного дослідження кандидатних конфігурацій електронів та обчислення відповідної хвильової функції на класичних комп'ютерах. Генеруючи компактні, але хімічно точні хвильові функції, HI-VQE сприяє дослідженням і відкриттям у квантовій хімії та матеріалознавстві.

Зображення, що показує огляд алгоритму HI-VQE від Qunova

HI-VQE зменшує обчислювальну складність задачі електронної структури, ефективно оцінюючи основний стан з високою точністю. Він зосереджується на ретельно відібраній підмножині найбільш релевантних конфігурацій електронів, оптимізуючи як точність, так і ефективність.

Поєднуючи переваги класичних і квантових комп'ютерів, HI-VQE ітераційно вдосконалює й покращує поточну оцінку хвильової функції. Його унікальні техніки побудови підпростору допомагають зробити вибір конфігурацій ефективнішим, надаючи користувачам більший обчислювальний контроль та покращену точність у квантово-хімічних симуляціях.

Якщо хочеш детальніше дізнатися про алгоритм, можеш прочитати відповідну дослідницьку статтю.

Опис

Кількість конфігурацій електронів для молекулярної системи зростає експоненційно зі збільшенням розміру системи. Однак для певних електронних станів, таких як основний стан, зазвичай лише невелика частка конфігурацій суттєво впливає на енергію стану. Методи вибраної конфігураційної взаємодії (SCI) використовують цю розрідженість для зменшення обчислювальних витрат, ідентифікуючи та зосереджуючись на найбільш релевантних конфігураціях. Ця підмножина конфігурацій називається підпростором.

HI-VQE використовує притаманну квантовим комп'ютерам ефективність при поданні молекулярних систем для допомоги в пошуку підпростору. Він інтегрує класичні та квантові підпрограми для розв'язання задачі електронної структури з високою точністю. На відміну від існуючих квантових SCI-методів, HI-VQE поєднує варіаційне навчання, ітераційну побудову підпростору та попереднє діагоналізаційне відсіювання конфігурацій для підвищення ефективності шляхом зменшення кількості квантових вимірювань, ітерацій і витрат на класичну діагоналізацію. Тому HI-VQE можна застосовувати до більших молекулярних систем, які вимагають більше кубітів, і зменшує вартість розв'язання задачі заданого розміру до однакового ступеня точності.

Зображення з детальним описом кожного кроку в алгоритмі HI-VQE від Qunova.

Для обчислення основного стану системи HI-VQE спочатку використовує класичний хімічний пакет PySCF для генерації молекулярного представлення з наданих користувачем вхідних даних, таких як молекулярна геометрія та інша молекулярна інформація. Потім він входить у гібридний квантово-класичний цикл оптимізації, ітераційно вдосконалюючи підпростір для оптимального представлення основного стану, мінімізуючи кількість включених конфігурацій. Цикл продовжується до виконання критеріїв збіжності, таких як розмір підпростору або стабільність енергії, після чого виводяться обчислена хвильова функція основного стану та енергія. Ці результати можна використовувати для побудови точних поверхонь потенційної енергії та проведення подальшого аналізу системи.

Цикл оптимізації зосереджується на налаштуванні параметрів квантової схеми для генерації якісного підпростору. HI-VQE пропонує три варіанти квантових схем: excitation_preserving, efficient_su2 та LUCJ. Оптимізація ініціалізується поблизу референсного стану Гартрі–Фока завдяки його загальній придатності. Потім схема виконується на квантовому пристрої, і конфігурації вибираються з отриманого квантового стану перед поверненням у вигляді бінарних рядків. Через шуми квантового пристрою деякі відібрані конфігурації можуть бути фізично недійсними, не зберігаючи кількість електронів або спін. HI-VQE вирішує це за допомогою процесу відновлення конфігурацій з пакету qiskit-addon-sqd, щоб користувачі могли або виправити недійсні конфігурації, або відкинути їх.

Дійсні конфігурації потім проходять необов'язковий крок відсіювання для видалення тих, що, за прогнозами, дають мінімальний внесок. Це зменшує розмірність підпростору, тим самим знижуючи вартість кроку діагоналізації. Якщо відсіювання увімкнено, то будується попередній підпросторовий гамільтоніан із дійсних конфігурацій і виконується діагоналізація з дуже м'якими критеріями завершення. Хоча точність отриманих амплітуд для кожної конфігурації є низькою, це ефективно для прогнозування, які конфігурації слід виключити з підпростору на даній ітерації, і обчислюється швидко.

Вибрані конфігурації додаються до підпростору, і гамільтоніан системи проєктується у цей підпростір. Підпростір оновлюється ітераційно, зберігаючи найбільш релевантні конфігурації між ітераціями. Цей підхід відрізняється від альтернативних методів тим, що квантова схема не потребує апроксимації повного основного стану на кожному кроці.

Далі підпросторовий гамільтоніан класично діагоналізується для отримання найменшого власного значення та відповідного власного вектора, що представляють апроксимацію основного стану та його енергії. З покращенням якості підпростору через ітерації обчислений основний стан краще апроксимує істинний основний стан. На цьому етапі може виконуватися додатковий крок відсіювання для видалення з підпростору конфігурацій, що не мають суттєвого внеску в обчислений основний стан. Цей крок забезпечує максимальну компактність підпростору, що переноситься до наступної ітерації. Це оцінюється на основі амплітуд, що повертаються діагоналізацією, оскільки вони представляють важливість внеску кожної конфігурації в обчислений основний стан.

Перевірка збіжності потім визначає, чи подальше навчання покращить результати. Якщо так, виконується необов'язковий крок класичного розширення, параметри квантової схеми оновлюються для подальшої мінімізації обчисленої енергії, і процес повторюється. Крок класичного розширення генерує додаткові конфігурації для підпростору, доповнюючи конфігурації, відібрані з квантового пристрою. Спочатку він визначає конфігурацію з найбільшою амплітудою в результатах діагоналізації, а потім генерує нові конфігурації з одиничними та подвійними збудженнями від визначеної конфігурації. Потрібна кількість цих конфігурацій потім додається до підпростору.

Як тільки визначається, що ітерації збіглись, HI-VQE повертає обчислений основний стан (у формі станів у підпросторі та їхніх амплітуд у хвильовій функції основного стану), його енергію та міру дисперсії енергії, що дає уявлення про те, чи є обчислений стан власним станом гамільтоніана системи.

Користувачі можуть вибирати квантову схему та кількість знімків для кожної квантової схеми, а також контролювати розмір підпростору або вмикати класичну генерацію додаткових конфігурацій на допомогу конфігураціям, згенерованим квантовим способом. Таким чином користувачі можуть налаштовувати поведінку HI-VQE відповідно до своїх цільових застосувань.

Початок роботи

Спочатку запроси доступ до функції. Потім автентифікуйся за допомогою свого API-ключа IBM Quantum® і, якщо ти вже зберіг свій обліковий запис у локальному середовищі, вибери функцію Qiskit таким чином:

import reprlib
from qiskit_ibm_catalog import QiskitFunctionsCatalog

catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")

function = catalog.load("qunova/hivqe-chemistry")

Вхідні дані

Дивись наступну таблицю з усіма вхідними параметрами, які приймає функція. Наступні розділи Параметри молекули та Параметри HI-VQE містять детальнішу інформацію про ці аргументи.

НазваТипОписОбов'язковийЗа замовчуваннямПриклад
geometryUnion[List[List[Union[str, Tuple[float, float, float]]]], str]Може бути рядком або структурованими списками, що містять пари атом–координати. Якщо задано як рядок, це має бути геометрія молекули у форматі декартових координат. Якщо задано як список, це має бути список списків, кожен з яких містить рядок атома та кортеж координат.ТакN/A[['O', (0, 0, 0)], ['H', (0, 1, 0)], ['H', (0, 0, 1)]] або "O 0 0 0; H 0 1 0; H 0 0 1"
backend_namestrНазва бекенду для виконання запиту.ТакN/Aibm_fez
max_statesintМаксимальна розмірність підпростору для діагоналізації. Менша кількість станів використовується, якщо число не є точним квадратом.ТакN/A100
max_expansion_statesintМаксимальна кількість класично-генерованих CI-станів, що включаються в кожну ітерацію.ТакN/A10
molecule_optionsdictПараметри, пов'язані з молекулою, що використовується як вхідні дані для HI-VQE. Докладніші відомості містяться в розділі Параметри молекули.НіДивись розділ Параметри молекули.{"basis": "sto3g", "unit": "angstrom" }
hivqe_optionsdictПараметри, що контролюють поведінку алгоритму HI-VQE. Докладніші відомості містяться в розділі Параметри HI-VQE.НіДивись розділ Параметри HI-VQE.{"shots": 10_000, "max_iter": 10 }

Параметри молекули

Наступна таблиця містить деталі про всі ключі та значення, які можна задати в словнику molecule_options, а також їхні типи даних і значення за замовчуванням. Всі ключі є необов'язковими.

КлючТип значенняЗначення за замовчуваннямДопустимий діапазонПояснення
"charge"int0РізніЦіле число, що вказує повний електричний заряд молекулярної системи. Значення за замовчуванням — 0; однак це може бути будь-яке ціле число.
"basis"str'sto-3g'РізніРядок, що задає тип базису; передається до pyscf. (напр.: "sto-3g", "3-21g", "6-31g", "cc-pvdz")
"active_orbitals"List[int]Кожен індекс орбіталі.Індекси просторових орбіталей, допустимі для задачі.Список індексів активних орбіталей у діапазоні [0, n), де n — кількість кубітів, що використовуються в задачі. Якщо це задано, аргумент frozen_orbitals також має бути задано.
"frozen_orbitals"List[int]Без індексів.Індекси просторових орбіталей, допустимі для задачі, за винятком активних орбіталей.Список індексів заморожених орбіталей у тому самому діапазоні, що й active_orbitals. Якщо задано, active_orbitals також має бути задано. Зауваж, що заморожувати слід тільки зайняті орбіталі, оскільки кількість активних електронів зменшується на 2 для кожної зайнятої орбіталі, що заморожується.
"orbital_coeffs"List[List[float]]Молекулярні орбіталі Гартрі–Фока.Різні.Коефіцієнти для просторових орбіталей, що використовуються при обчисленні інтегралів електронного відштовхування для системи. Деякі допустимі приклади — молекулярні орбіталі Гартрі–Фока, натуральні орбіталі та орбіталі AVAS.
"symmetry"Union[str, bool]FalseTrue або FalseВикористовується для застосування симетрії точкової групи при початкових молекулярних обчисленнях для побудови адаптованого до симетрії орбітального базису. Ці адаптовані до симетрії орбіталі використовуються як базисні функції для наступних SCF-обчислень. Значення за замовчуванням — False; якщо встановлено True, то симетрія буде застосована і довільні точкові групи будуть автоматично виявлені та використані. Якщо призначена певна симетрія, наприклад symmetry = "Dooh", то буде виникнуто помилку, якщо молекулярна геометрія не має цієї необхідної симетрії.
"symmetry_subgroup"Optional[str]NoneДивись документацію pyscf.Може використовуватися для генерації підгрупи виявленої симетрії. Не має ефекту при задані симетрії через ключовий аргумент symmetry.
"unit"str"angstrom"Дивись документацію pyscf.Вказує одиницю вимірювання для атомних координат і відстаней. За замовчуванням використовуються ангстреми.
"nucmod"Optional[Union[dict, str]]NoneДивись документацію pyscf.Вказує ядерну модель, яку слід використовувати. За замовчуванням використовується точкова ядерна модель, а інші значення вмикають гаусівську ядерну модель. Якщо задано функцію, вона буде використовуватися з гаусівською ядерною моделлю для генерації значення розподілу ядерного заряду 'zeta'.
"pseudo"Optional[Union[dict, str]]NoneДивись документацію pyscf.Вказує псевдопотенціал для атомів у молекулі. За замовчуванням це None, що означає відсутність псевдопотенціалів і явне включення всіх електронів в обчислення.
"cart"boolFalseДивись документацію pyscf.Вказує, чи використовувати декартові GTO як кутово-імпульсні базисні функції в обчисленні. Значення за замовчуванням False використовуватиме сферичні GTO.
"magmom"Optional[List[Union[int, float]]]NoneДивись документацію pyscf.Встановлює коліарний спіновий магнітний момент кожного атома. За замовчуванням це None і кожен атом ініціалізується зі спіном нуль.
"avas_aolabels"Optional[List[str]]Noneнапр. ["H 1s", "O 2p"] для H2OВизначає атомні орбіталі, що включаються до схеми AVAS. Дивись документацію AVAS.
"avas_threshold"float0.2Від 0.0 до 2.0Вказує граничне значення, що використовується для визначення, які атомні орбіталі (AO) зберігаються в активному просторі.
"noons_level"Optional[str]None"mp2" або "ccsd"Визначає теоретичний підхід для підготовки натуральних орбіталей і вибору активних орбіталей на основі схеми чисел заповнення натуральних орбіталей (NOON). Дивись документацію NOONs. Обидва індекси активних і заморожених орбіталей мають бути надані для контролю кількості орбіталей (і кількості кубітів).

Параметри HI-VQE

Наступна таблиця містить деталі про всі ключі та значення, які можна задати в словнику hivqe_options, а також їхні типи даних і значення за замовчуванням. Всі ключі є необов'язковими.

КлючТип значенняЗначення за замовчуваннямДопустимий діапазонПояснення
"shots"int1_000Від 1 до 10 000.Кількість знімків для використання на квантовому пристрої за ітерацію.
"max_iter"int25Від 1 до 50.Максимальна кількість ітерацій для оптимізації ансацу. Алгоритм може використовувати менше ітерацій, якщо збіжність досягнута раніше.
"initial_basis_states"List[str]Стан Гартрі–Фока.Бінарні рядки з кількістю бітів, що відповідає необхідній кількості кубітів для задачі.Може використовуватися для перезапуску алгоритму з класичними станами з попереднього результату.
"ansatz"str"epa""epa", "hea" або "lucj"Вказує квантовий ансац для оптимізації з метою генерації нових станів. "epa" вибирає ансац, що зберігає збудження. "hea" вибирає апаратно-ефективний ансац. "lucj" вибирає локальний унітарний кластерний ансац Жастрова.
"convergence_count"int3Щонайменше 2.Кількість ітерацій без суттєвої зміни обчисленої енергії, що мають пройти до того, як алгоритм вважатиметься збіжним.
"convergence_abstol"float1e-4Більше 0 і щонайбільше 1.Величина зміни обчисленої енергії, що вважається суттєвою для перевірки збіжності.
"reset_convergence_count"boolTrueTrue або FalseЯкщо True, convergence_count ітерацій мають відбутися без переривання суттєвою зміною, щоб кваліфікуватися як збіжність. Якщо False, алгоритм зупиниться після convergence_count, якщо несуттєві зміни відбувались в будь-яких ітераціях під час процесу оптимізації.
"configuration_recovery"boolTrueTrue або False.Чи використовувати відновлення конфігурацій з пакету qiskit-addon-sqd. Якщо True, недійсні стани, відібрані з квантового пристрою, коригуються класично. Якщо False, вони відкидаються.
"ansatz_entanglement"str"circular"Будь-яке з "linear", "reverse_linear", "pairwise", "circular", "full" або "sca". При використанні ансацу "lucj" також доступний "lucj_default".Вказує схему заплутування, яку слід використовувати в квантовій схемі, відповідно до загальних конвенцій Qiskit та конвенцій ffsim для ансацу LUCJ.
"ansatz_reps"int2Більше 0.Кількість повторень кожного шару в квантовій схемі.
"amplitude_screening_tolerance"Union[float,int]0Щонайменше 0 і менше 1.Допуск для вирішення, які стани слід відсіяти з підпростору після діагоналізації. Визначає поріг включення для станів підпростору на основі їхніх обчислених амплітуд.
"overlap_screening_tolerance"float1e-2Від 1e-4 до 1e-1 включно.Допуск для прогнозування, які стани слід відсіяти з підпростору перед діагоналізацією. Контролює точність прогнозованих амплітуд для кожного стану: менше значення дає точніші прогнози.

Вихідні дані

Функція повертає словник з чотирма ключами та значеннями. Ключі та значення задокументовані в наступній таблиці:

КлючТип значенняПояснення
"energy"floatАпроксимована енергія основного стану молекули.
"states"List[str]Вибрані детермінанти, що утворюють підпростір для знаходження енергії. Вони представлені у форматі альфа-бета, що чергується.
"eigenvector"List[float]Власний вектор, що відповідає основному стану підпростору, складеного з "states".
"energy_variance"floatДисперсія енергії основного стану підпростору, складеного з "states", що дає уявлення про якість розв'язку. Це значення невід'ємне, і менше значення означає, що основний стан підпростору точніше апроксимує власний стан гамільтоніана системи.
"energy_history"List[float]Енергії, обчислені на кожній ітерації під час гібридного процесу оптимізації, у порядку їх обчислення. За ітерацію обчислюються дві енергії як частина процесу оптимізації SPSA.

Приклад

Перший приклад показує, як обчислити енергію основного стану молекули NH3 за допомогою алгоритму HI-VQE.

Визначення молекулярної геометрії та параметрів

Молекулярна геометрія NH3 задається декартовими координатами, розділеними символом ";" для кожного атома.

# Define the molecule geometry
geometry = """
N -0.85188 -0.02741 0.03141;
H 0.16545 0.00593 -0.01648;
H -1.16348 -0.39357 -0.86702;
H -1.16348 0.94228 0.06281;
"""

Додаткові параметри можна визначити та надати для молекулярної системи у наступному форматі словника.

# Configure some options for the job.
molecule_options = {"basis": "sto3g"}
hivqe_options = {"shots": 100, "max_iter": 20}

Виконай функцію з вхідними даними геометрії та параметрів.

# Run HI-VQE
job = function.run(
geometry=geometry,
# `backend_name` is the name of a backend with at least 16 qubits, for example, "ibm_marrakesh".
backend_name=backend_name,
max_states=2000,
max_expansion_states=10,
molecule_options=molecule_options,
hivqe_options=hivqe_options,
)

Варто роздрукувати ідентифікатор завдання функції, щоб його можна було надати у запитах на підтримку у разі виникнення проблем.

print("Job ID:", job.job_id)
Job ID: 128ee399-7cfc-4be2-91e9-c4abd22b97c7

Цей приклад використовує 16 кубітів з 8 орбіталями базису sto3g для молекули NH3. Перевіряй статус свого навантаження функції Qiskit або отримуй результати таким чином:

print(job.status())
QUEUED

Після завершення завдання результати можна отримати за допомогою екземпляра result().

result = job.result()

# Output can be long, so we display a shortened representation
shortened_result = reprlib.repr(result)
print(shortened_result)
{'eigenvector': [0.9824200343205695, 0.009520846167419264, 6.365368845740147e-08, 3.6832123006425615e-07, 0.0012869941182066654, 2.3403891050875465e-05, ...], 'energy': -55.521146537970466, 'energy_history': [-55.52091922342852, -55.52113695367561, -55.521146537970466, -55.52114653864798, -55.521146537970466, -55.521146537970466, ...], 'energy_variance': 9.788555455342562e-12, ...}

Для доступу до енергії основного стану використовуй ключ "energy". Ключ "eigenvector" надає CI-коефіцієнти з відповідними позначеннями конфігурацій електронів у вигляді бітових рядків, збережених у "states" результатів.

fci_energy = -55.521148034704126  # the exact energy using FCI method
hivqe_energy = result["energy"]
print(
f"|Exact Energy - HI-VQE Energy|: {abs(fci_energy - hivqe_energy) * 1000} mHa"
)
print(f"Sampled Number of States: {len(result['states'])}")
|Exact Energy - HI-VQE Energy|: 0.0014967336596782843 mHa
Sampled Number of States: 1936

Вихідні дані:

|Exact Energy - HI-VQE Energy|: 0.077237504 mHa Sampled Number of States: 1936

Продуктивність

У цьому розділі наведено продемонстровані еталонні обчислення HI-VQE для випадку з 24 кубітами для Li2S, випадку з 40 кубітами для молекули N2 та випадку з 44 кубітами для системи FeP-NO.

Крива поверхні дисоціативної потенційної енергії для молекули Li2S з 24 кубітами

Крива PES показана з референсом FCI та початковим наближенням RHF, а також похибкою енергії від референсу FCI.

Зображення, що показує, що HI-VQE дає розв'язки в межах хімічної точності класичної референсної кривої PES для системи Li2S.

Обчислення проводилися з такими геометріями та параметрами.

# This cell is hidden from users
backend_name = service.least_busy(operational=True, min_num_qubits=38).name
# Define Li2S geometries
Li2S_geoms = {
"Li2S_1.51": "S -1.239044 0.671232 -0.030374;Li -1.506327 0.432403 -1.498949;Li -0.899996 0.973348 1.826768;",
"Li2S_2.40": "S -1.741432 0.680397 0.346702;Li -0.529307 0.488006 -1.729343;Li -1.284307 0.989409 2.177209;",
"Li2S_3.80": "S -2.707255 0.674298 0.909161;Li 0.079218 0.552012 -1.671656;Li -0.927010 0.931502 1.557063;",
}

# Configure some options for the job.
molecule_options = {
"basis": "sto3g",
}
hivqe_options = {
"shots": 100,
"max_iter": 20,
}

results = []
for geom in ["Li2S_1.51", "Li2S_2.40", "Li2S_3.80"]:
# Run HI-VQE
job = function.run(
geometry=Li2S_geoms[geom],
backend_name=backend_name, # can use any device with at least 38 qubits
max_states=2000,
max_expansion_states=10,
molecule_options=molecule_options,
hivqe_options=hivqe_options,
)
results.append(job.result())

Червоні точки представляють результати розрахунків HI-VQE для шести різних геометрій, а три геометрії, що відповідають 1.51, 2.40 та 3.80 ангстремам, надані як вхідні дані у наведеній вище комірці.

Крива дисоціативної PES для молекули N2 з 40 кубітами

Молекула азоту ідентифікована як мультиреференсна система з великими внесками кореляційної енергії, що виходять за межі стану Гартрі–Фока. Ми провели еталонні обчислення для молекули N2 з базисом cc-pvdz, (20o,14e) з використанням вибору активних орбіталей homo-lumo. Число повного активного простору (CAS) для представлення цієї задачі становить 6 009 350 400. Неможливо отримати розв'язок задачі на власні значення (для енергії та електронної структури) з такою кількістю станів на потужному настільному комп'ютері (16 ЦП/64 ГБ). За допомогою HI-VQE користувачі можуть ефективно шукати в підпросторі станів CAS для отримання хімічно точних результатів при значній економії обчислювальних ресурсів. Наступні графіки показують криву PES 40-кубітних обчислень HI-VQE для дисоціації молекули N2.

Зображення, що показує, що HI-VQE дає розв'язки в межах хімічної точності класичної референсної кривої PES для системи N2.

Крива дисоціативної PES для п'ятикоординованого заліза(II)-порфірину з системою NO з 44 кубітами

Ще одна цікава хімічна система — це комплекс заліза(II)-порфірину (FeP) з координованим лігандом монооксиду азоту (NO), який являє собою біологічно значиму металопорфіринову систему, що відіграє ключову роль у різних фізіологічних процесах. У цьому прикладі HI-VQE використовувався для оцінки точної кривої поверхні потенційної енергії міжмолекулярної взаємодії між FeP та NO (енергія основного стану для геометрій з різними відстанями). Комбінована система має 450 орбіталей і 202 електрони (450o,202e) з базисом 6-31g(d) в цілому. Вибір активних орбіталей homo-lumo використовувався для обчислення меншого випадку від реального з (22o,22e). З наступних еталонних результатів нам вдалося досягти хімічної точності (> 1.6 мГа) порівняно з найсучаснішим класичним хімічним обчисленням CASCI(DMRG) (22o,22e) як референсом.

Зображення, що показує, що HI-VQE дає розв'язки в межах хімічної точності класичної референсної кривої PES для системи FeP-NO.

Еталонні показники

  • Точний розмір матриці — це кількість детермінантів для точного розв'язку, наприклад FCI та CASCI.
  • Обчислення HI-VQE вибирає та обчислює підпростір (тобто розмір матриці HI-VQE).
  • Загальний час включає час виконання на QPU та запуски функції Qiskit з CPU.
  • Точність оцінюється за різницею енергії від точного розв'язку.
Хімічна системаКількість кубітівТочний розмір матриціРозмір матриці HI-VQEE(diff) від точного (мГа)Кількість ітераційЗагальний часВикористання QPU
NH3NH_3 (8o,10e)16313619360.08637 с34 с
Li2SLi_2S (10o,10e)206350439690.605250 с50 с
NH3NH_3 (15o,10e)309018009497290.905354 с54 с
N2N_2 (16o,14e)3213087360017982811.1096531 с121 с
3H2O3H_2O (18o,24e)363446220963994240.90245174 с130 с
N2N_2 (20o,14e)40600935040090120041.202146547 с258 с

Отримання повідомлень про помилки

Якщо твоє навантаження завершиться з помилкою, статус буде ERROR, а виклик job.result() викличе виключення:

job = function.run(
geometry="invalid-geometry", # This will cause an error
backend_name=backend_name,
max_states=2000,
max_expansion_states=15,
molecule_options=molecule_options,
hivqe_options=hivqe_options,
)

job.result()
job.status()
'ERROR'

Отримати підтримку

Ти можеш надіслати електронного листа на адресу qiskit.support@qunovacomputing.com для отримання допомоги з цією функцією.

Якщо тобі потрібна допомога з усуненням конкретної помилки, будь ласка, надай ідентифікатор завдання функції для завдання, що зіткнулось з помилкою.

Наступні кроки