নোট

এই পৃষ্ঠাটি docs/tutorials/02_vibrational_structure.ipynb -থেকে বানানো হয়েছে।

কম্পন গঠন#

ভূমিকা#

মলিকুলার বা আণবিক হ্যামিল্টোনিয়ান হলো

\[\mathcal{H} = - \sum_I \frac{\nabla_{R_I}^2}{M_I} - \sum_i \frac{\nabla_{r_i}^2}{m_e} - \sum_I\sum_i \frac{Z_I e^2}{|R_I-r_i|} + \sum_i \sum_{j>i} \frac{e^2}{|r_i-r_j|} + \sum_I\sum_{J>I} \frac{Z_I Z_J e^2}{|R_I-R_J|}\]

যেহেতু ইলেকট্রনের চেয়ে নিউক্লিয়াস বা কেন্দ্র বেশি ভারী, তাই তারা একই সময় স্কেলে স্থানপরিবর্তন করে না। তাই নিউক্লিয়াস এবং ইলেকট্রনের ধর্মকে ডিকাপ্লিং বা পৃথক করা যায়। এটি হল বর্ন-ওপেনহাইমার অনুমান।

বর্ন-ওপেনহাইমার অনুমান সাপেক্ষে, একটি আণবিক তরঙ্গ ফাংশনকে একটি ইলেকট্রনিক অংশ, যেটি ইলেকট্রনিক শ্রডিঙ্গার সমীকরণ এর সমাধান এবং একটি ভিব্রিও-রোটেশনাল অংশ, যা বিভিন্ন জ্যামিতির জন্য ইলেকট্রনিক শ্রডিঙ্গার সমীকরণের স্বকীয়মান (আইগেনভ্যালু) প্রতিস্থাপন দ্বারা নির্মিত স্থিতিশক্তিতলে নিউক্লিয়ার শ্রডিঙ্গার সমীকরণের সমাধান এর গুণফল রূপে প্রকাশ করা যায়।

নিউক্লিয়ার শ্রডিঙ্গার সমীকরণ সাধারণত দুটো ধাপে সমাধান করা হয়, অনেকটা এর ইলেকট্রনিক অংশ এর মতো। একটি একক-কণা (সিঙ্গেল-পার্টিকেল) বেসিস বা ভিত্তি(এই ভিত্তি ফাংশনগুলিকে এক্ষেত্রে মডালস বলা হয়) হয় পিইএস(PES)এ হারমোনিক অনুমান এর দ্বারা, নয়তো ভাইব্রেশনাল স্ব-স্থায়ী ক্ষেত্র (VSCF) গননার দ্বারা নির্ধারন করা হয়। ভাইব্রেশনাল অ্যানহারমোনিক অনুবন্ধগুলি যুক্তিপূর্ণ ভাবে পার্টার্বেটিভ বা পরিবর্তনশীল (ভ্যারিয়েশনাল) পদ্ধতির দ্বারা যুক্ত করা হয়। খুব নিখুঁত অ্যানহারমোনিক শক্তির ক্ষেত্রে ভাইব্রেশনাল যান্ত্রিক বিন্যাস (কনফিগারেশন) মিথষ্ক্রিয়া (ইন্টারেকশন) এবং ভাইব্রেশনাল যুগলিকৃত ক্লাস্টার শেষেরটি অন্তর্ভুক্ত। অন্যান্য পদ্ধতি(যেমন পার্টারবেশন তত্ত্ব) র ওপর ভিসিআই এবং ভিসিসি র মূল সুবিধা হল যে প্রদত্ত পিইএস এর জন্য তাদের যথাযথতা সম্পূর্ণ ভিত্তি সেট সীমার দিকে নিয়মানুসারে বৃদ্ধি করা যায়। যাইহোক, তাদের প্রয়োগ সিস্টেম আয়তনের প্রতিকূল স্কেলিং এর কারণে ১০টি বা তার চেয়ে কম পরমানু সংখ্যাবিশিষ্ট ছোট অনুর মধ্যে সীমাবদ্ধ।

স্কেলিং এর সমস্যাকে দূরীভূত করতে আমরা কোয়ান্টাম অ্যালগোরিদম ব্যাবহার করব।

নিউক্লিয়ার শ্রডিঙ্গার সমীকরণ হল

\[\mathcal{H}_{\text{vib}} |\Psi_{n}\rangle = E_{n} |\Psi_{n}\rangle\]

তথাকথিত ওয়াটসন হ্যামিল্টোনিয়ান(ভাইব্রিও- রোটেশনাল যুগল পদগুলিকে উপেক্ষা করে) হল

\[\mathcal{H}_\text{vib}(Q_1, \ldots, Q_L) = - \frac{1}{2} \sum_{l=1}^{L} \frac{\partial^2}{\partial Q_l^2} + V(Q_1, \ldots, Q_L)\]

যেখানে math:Q_l হল হারমোনিক ভর-তুল্য (মাস-ওয়েটেড) লম্ব স্থানাঙ্ক।

\(\mathcal{H}_\text{vib}\) অবশ্যই এমন একটি অপারেটরের সাথে চিত্রায়ন করতে হবে যা কোয়ান্টাম হার্ডওয়্যারের উপর তার eigenfunction-গুলি গণনা করার জন্য \(N_q\) কিউবিটদের একটি প্রদত্ত সেটের অবস্থাগুলিতে কাজ করে। বৈদ্যুতিন কাঠামোর গণনায়, অ-আপেক্ষিক ইলেকট্রনিক হ্যামিল্টোনিয়ানকে দ্বিতীয় কোয়ান্টাইজেশনে প্রকাশ করে, \textit{i.e.} একটি প্রদত্ত (সসীম) কক্ষপথসমূহের (অরবিটাল) সেট দ্বারা উৎপন্ন অ্যান্টিসিমিট্রাইজড (antisymmetrized) অকুপেশন নম্বর ভেক্টর (ONV) এর সম্পূর্ণ সেটের উপর তুলে ধরে ম্যাপিং (চিত্রায়ন) অর্জন করা হয়। একটি অনুরূপ দ্বিতীয় কোয়ান্টাইজেশন অপারেটরে কম্পন হ্যামিল্টোনিয়ান সংকেতায়ন করতে, আমরা \(n\)-বডি সম্প্রসারণের সাথে সম্ভাব্য \(V(Q_1, \ldots, Q_L)\) কে নিম্নরূপ প্রসারিত করি:

\[V(Q_1, \ldots, Q_L) = V_0 + \sum_{l=1}^L V^{[l]}(Q_l) + \sum_{l<m}^L V^{[l,m]}(Q_l, Q_m) + \sum_{l<m<n}^L V^{[l,m,n]}(Q_l, Q_m, Q_n) + \ldots\]

যেখানে \(V_0\) হল রেফারেন্স জ্যামিতির ইলেকট্রনিক শক্তি, এক-মোড শব্দ \(V^{[l]}(Q_l)\) ভারসাম্যপূর্ণ অবস্থান থেকে \(l\)-তম স্বাভাবিক স্থানাঙ্ক পরিবর্তনের পরে PES এর বৈচিত্র্যকে প্রতিনিধিত্ব করে। একইভাবে, দ্বি-শরীরের সম্ভাব্য \(V^{[l,m]}(Q_l, Q_m)\), \(l\)-তম এবং \(m\)-তম স্থানাঙ্কগুলির সাথে একযোগে স্থানচ্যুতিতে সঠিক PES- এর পরিবর্তনের প্রতিনিধিত্ব করে। প্রায়শই, \(L\)-বডি সম্প্রসারণে থ্রি -বডি পর্যন্ত পদগুলি সহ প্রায় 1~cm\(^{-1}\) এর নির্ভুলতা পাওয়ার জন্য যথেষ্ট। আমরা হাইলাইট করি যে ওয়াটসন হ্যামিল্টোনিয়ান সংজ্ঞায়িত সম্ভাব্য অপারেটরের বহু-দেহের সম্প্রসারণে ইচ্ছাকৃতভাবে উচ্চ সংযোজন পদ রয়েছে। অ-আপেক্ষিক বৈদ্যুতিন-কাঠামো হ্যামিল্টোনিয়ানের তুলনায় এটি একটি গুরুত্বপূর্ণ পার্থক্য যা কেবল জোড়া যুক্ত মিথস্ক্রিয়া ধারণ করে।

ওয়াটসন হ্যামিল্টোনিয়ানের একটি নমনীয় দ্বিতীয় কোয়ান্টাইজেশন ফর্ম তথাকথিত এন-মোড উপস্থাপনার মধ্যে পাওয়া যায়। আসুন আমরা ধরে নিই যে প্রতিটি মোড \(l\) একটি \(N_l\)- ডাইমেনশনাল ভিত্তিক সেট \(S_l\) দ্বারা বর্ণনা করা হয়েছে যা নিম্নরূপ সংজ্ঞায়িত করা হয়েছে:

\[\mathcal{S}_l = \{ \phi_1^{(l)} (Q_l) , \ldots , \phi_{N_l}^{(l)} (Q_l) \} \, ।\]

\(n\)- মোড ওয়েভ ফাংশনটি পণ্যের ভিত্তিতে \(\mathcal{S} = \otimes_{i=1}^L \mathcal{S}_i\) নিম্নোক্ত CI- এর মত সম্প্রসারণ করা যেতে পারে:

\[|\Psi\rangle = \sum_{k_1=1}^{N_1} \cdots \sum_{k_L=1}^{N_L} C_{k_1,\ldots,k_L} \phi_{k_1}^{(1)}(Q_1) \cdots \phi_{k_L}^{(L)}(Q_L) \, ,\]

মনি-বডি বেস ফাংশন \(\phi_{k_1}^{(1)}(Q_1) \cdots \phi_{k_L}^{(L)}(Q_L)\) তথাকথিত \(n\)-মোড সেকেন্ড কোয়ান্টাইজেশনের মধ্যে পেশা-সংখ্যা ভেক্টর (ONVs) হিসাবে এনকোড করা হয়েছে:

\[\phi_{k_1}(Q_1) \cdots \phi_{k_L}(Q_L) \equiv |0_1 \cdots 1_{k_1} \cdots 0_{N_1}, 0_1 \cdots 1_{k_2} \cdots 0_{N_2}, \cdots , 0_1 \cdots 1_{k_L} \cdots 0_{N_L}\rangle \, .\]

উপরে সংজ্ঞায়িত ONV, তাই, \(L\) মোড-নির্দিষ্ট ONV গুলির পণ্য, প্রত্যেকে একটি পৃথক মোড বর্ণনা করে। যেহেতু প্রতিটি মোড এক এবং শুধুমাত্র একটি ভিত্তি ফাংশন দ্বারা বর্ণনা করা হয়েছে, প্রতিটি মোড-নির্দিষ্ট ONV এর পেশা এক। তাত্ত্বিক দৃষ্টিকোণ থেকে, প্রতিটি মোডকে একটি পৃথক আধা-কণা হিসাবে ব্যাখ্যা করা যেতে পারে (কঠিন-রাষ্ট্র পদার্থবিজ্ঞানে ফোনন হিসাবে সংজ্ঞায়িত)। পৃথক পৃথকীকরণ এই সত্য থেকে উদ্ভূত হয় যে PES দুটি মোডের ক্রমবর্ধমান দ্বারা অপরিবর্তনীয় নয়, এই ক্ষেত্রে দুটি সমান কণার মধ্যে কুলম্ব মিথস্ক্রিয়া থেকে ভিন্ন। এই দৃষ্টিকোণ থেকে, একটি অণু কে \(L\) পৃথকযোগ্য কণার সংগ্রহ হিসাবে ব্যাখ্যা করা যেতে পারে যা PES অপারেটরের মাধ্যমে যোগাযোগ করে।

এই দ্বিতীয় কোয়ান্টাইজেশন উপস্থাপনার উপর ভিত্তি করে আমরা এক জোড়া সৃষ্টি এবং ধ্বংসের অপারেটর প্রতি মোড \(l\) \textit{and} প্রতি ভিত্তি ফাংশন \(k_l\) হিসাবে সংজ্ঞায়িত করি:

\[\begin{split}\begin{aligned} a_{k_l}^\dagger |\cdots, 0_1 \cdots 0_{k_l} \cdots 0_{N_l}, \cdots\rangle &= | \cdots, 0_1 \cdots 1_{k_l} \cdots 0_{N_l}, \cdots\rangle \\ a_{k_l}^\dagger | \cdots, 0_1 \cdots 1_{k_l} \cdots 0_{N_l}, \cdots\rangle &= 0 \\ a_{k_l} | \cdots, 0_1 \cdots 1_{k_l} \cdots 0_{N_l}, \cdots\rangle &= | \cdots, 0_1 \cdots 0_{k_l} \cdots 0_{N_l}, \cdots\rangle \\ a_{k_l} | \cdots, 0_1 \cdots 0_{k_l} \cdots 0_{N_l}, \cdots\rangle &= 0 \\ \end{aligned}\end{split}\]

সাথে বা সঙ্গে

\[\begin{split}\begin{aligned} \left[ a_{k_l}^\dagger, a_{h_m}^\dagger \right] &= 0 \\ \left[ a_{k_l}, a_{h_m} \right] &= 0 \\ \left[ a_{k_l}^\dagger, a_{h_m} \right] &= \delta_{l,m} \, , \delta_{k_l,h_m} \end{aligned}\end{split}\]

সম্ভাব্যতা প্রকাশ করে দ্বিতীয় পরিমাপ গঠনটি পাওয়া যায়

\[\begin{split}\begin{aligned} \mathcal{H}_\text{vib}^{SQ} =& \sum_{l=1}^L \sum_{k_l,h_l}^{N_l} \langle \phi_{k_l} | T(Q_l) + V^{[l]}(Q_l) | \phi_{h_l} \rangle a_{k_l}^+ a_{h_l} \\ +& \sum_{l<m}^L \sum_{k_l,h_l}^{N_l} \sum_{k_m,h_m}^{N_m} \langle \phi_{k_l} \phi_{k_m} | V^{[l,m]}(Q_l, Q_m) | \phi_{h_l} \phi_{h_m} \rangle a_{k_l}^+ a_{k_m}^+ a_{h_l} a_{h_m} + \cdots \end{aligned}\end{split}\]

আমরা উপরে বর্ণিত অপারেটর এবং বৈদ্যুতিন কাঠামোর মধ্যে পার্থক্য এখানে তুলে ধরছি। প্রথমত, যেমনটি আমরা ইতিমধ্যেই উল্লেখ করেছি, সম্ভাব্য (নীতিগতভাবে) তিনটি এবং উচ্চতর শরীরের সংযোজন পদ রয়েছে যা ছয় (বা তার বেশি) দ্বিতীয়-পরিমান অপারেটরগুলির সাথে স্ট্রিংয়ের দিকে পরিচালিত করে। তদুপরি, হ্যামিল্টোনিয়ান প্রতিটি মোডের জন্য কণার সংখ্যা সংরক্ষণ করে, যেমনটি দেখা যায় যে প্রদত্ত মোডের জন্য সৃষ্টি এবং ধ্বংসের অপারেটরগুলির সংখ্যা প্রতিটি পদে একই। তা সত্ত্বেও, বিভিন্ন মোড দুটি (এবং উচ্চতর) বডি টার্ম দ্বারা সংযুক্ত করা হয় যার মধ্যে বিভিন্ন মোডের SQ অপারেটর রয়েছে \(l\) এবং \(m\)

তথ্যসূত্র (রেফারেন্স): Ollitrault, Pauline J., et al., arXiv:2003.12578 (2020)।

ইলেকট্রনিক সম্ভাবনা গণনা করা

PES ফাংশন পেতে বিভিন্ন পারমাণবিক কনফিগারেশনের জন্য ESE সমাধান করা \(V(Q_1, \ldots, Q_L)\)। এখন পর্যন্ত Qiskit একটি কোয়ার্টিক ফোর্স ক্ষেত্রের সাথে PES এর আনুমানিক সম্ভাবনা দেয়।

\[V(Q_1, \ldots, Q_L) = \frac{1}{2} \sum_{ij} k_{ij} Q_i Q_j + \frac{1}{6} \sum_{ijk} k_{ijk} Q_i Q_j Q_k + \frac{1}{16} \sum_{ijkl} k_{ijkl} Q_i Q_j Q_k Q_l\]

PES এর জন্য এই ধরনের ফর্মের সুবিধা হল যে anharmonic force ক্ষেত্রগুলি (\(k_{ij}\), \(k_{ijk}\), \(k_{ijkl}\)) সসীম দ্বারা গণনা করা যায় -পার্থক্য পদ্ধতি যেসব পদ্ধতির জন্য পারমাণবিক শক্তি হেসিয়ানকে প্রতিক্রিয়া তত্ত্ব-ভিত্তিক পদ্ধতি (যেমন এইচএফ এবং ডিএফটি) দিয়ে বিশ্লেষণাত্মকভাবে গণনা করা যায়, কোয়ার্টিক বল ক্ষেত্রটি আধা-সংখ্যাসূচক অন্তরীকরণ দ্বারা গণনা করা যেতে পারে:

\[k_{ijk} = \frac{H_{ij}(+\delta Q_k) - H_{ij}(-\delta Q_k)}{2\delta Q_k}\]

এবং

\[k_{ijkl} = \frac{H_{ij}(+\delta Q_k+\delta Q_l) - H_{ij}(+\delta Q_k-\delta Q_l) -H_{ij}(-\delta Q_k+\delta Q_l) + H_{ij}(-\delta Q_k+\delta Q_l)} {4\delta Q_k \delta Q_l}\]

উদাহরণস্বরূপ, এই ধরনের সংখ্যাগত পদ্ধতি গাউসিয়ান স্যুটের নির্দেশমালায় প্রয়োগ করা হয়।

বাস্তবে এটি Qiskit-এর সাথে গাউসিয়ানফোর্সড্রাইভার(GaussianForceDriver) ব্যবহার করে করা যেতে পারে।

[1]:
from qiskit_nature.second_q.drivers import GaussianForcesDriver

# if you ran Gaussian elsewhere and already have the output file
driver = GaussianForcesDriver(logfile="aux_files/CO2_freq_B3LYP_631g.log")

# if you want to run the Gaussian job from Qiskit
# driver = GaussianForcesDriver(
#                 ['#p B3LYP/6-31g Freq=(Anharm) Int=Ultrafine SCF=VeryTight',
#                  '',
#                  'CO2 geometry optimization B3LYP/6-31g',
#                  '',
#                  '0 1',
#                  'C  -0.848629  2.067624  0.160992',
#                  'O   0.098816  2.655801 -0.159738',
#                  'O  -1.796073  1.479446  0.481721',
#                  '',
#                  ''
[2]:
from qiskit_nature.second_q.problems import HarmonicBasis

basis = HarmonicBasis([2, 2, 2, 2])

কিউবিট হ্যামিল্টোনিয়ানে চিত্রায়ন করা#

Now that we have an approximation for the potential, we need to write the Hamiltonian in second quantization. To this end we need to select a modal basis to calculate the one-body integrals \(\langle\phi_{k_i}| V(Q_i) | \phi_{h_i} \rangle\), two-body integrals \(\langle\phi_{k_i} \phi_{k_j}| V(Q_i,Q_j) | \phi_{h_i} \phi_{h_j} \rangle\)

সহজতম ক্ষেত্রে, \(\phi\) ফাংশনগুলি প্রতিটি মোডের জন্য হারমোনিক-অসিলেটর(harmonic-oscillator) eigenfunction। এই পছন্দের প্রধান সুবিধা হ’ল টেলর(Taylor) সম্প্রসারণ হিসাবে প্রকাশিত পিইএস-এর অবিচ্ছেদ্য অংশগুলি এই জাতীয় ভিত্তির সাথে গণনা করা সহজ। এই অবিচ্ছেদ্য গুলি গণনা করার জন্য একটি রুটিন Qiskit-এ প্রয়োগ করা হয়েছে।

বোসনিক অপারেটর, \(\mathcal{H}_\text{vib}^{SQ}\), তারপর তৈরি হয় এবং একটি কিউবিট অপারেটরে চিত্রায়ন করা আবশ্যক হয়। এই পাঠসমূহের প্রথম বিভাগে প্রবর্তিত সরাসরি ম্যাপিং(চিত্রায়ন)-টি Qiskit-এ নিম্নরূপ ব্যবহার করা যেতে পারে:

[3]:
from qiskit_nature.second_q.problems import VibrationalStructureProblem
from qiskit_nature.second_q.mappers import DirectMapper

vibrational_problem = driver.run(basis=basis)
vibrational_problem.hamiltonian.truncation_order = 2
main_op, aux_ops = vibrational_problem.second_q_ops()

সমস্যাটির জন্য কম্পন অপারেটর এখন এইভাবে পড়া যায়:

[4]:
print(main_op)
Vibrational Operator
number modes=4, number modals=[2, 2, 2, 2], number terms=50
  (1268.0676746875001+0j) * ( +_0_0 -_0_0 )
+ (3813.8767834375008+0j) * ( +_0_1 -_0_1 )
+ (705.8633818750002+0j) * ( +_1_0 -_1_0 )
+ (-46.025705898886045+0j) * ( +_1_0 -_1_1 )
+ (-46.025705898886045+0j) * ( +_1_1 -_1_0 )
+ (2120.1145593750007+0j) * ( +_1_1 -_1_1 )
+ (238.31540750000005+0j) * ( +_2_0 -_2_0 )
+ (728.9613775000003+0j) * ( +_2_1 -_2_1 )
+ (238.31540750000005+0j) * ( +_3_0 -_3_0 )
+ (728.9613775000003+0j) * ( +_3_1 -_3_1 )
+ (4.942542500000002+0j) * ( +_0_0 -_0_0 +_1_0 -_1_0 )
+ (-88.20174216876333+0j) * ( +_0_0 -_0_0 +_1_0 -_1_1 )
+ (-88.20174216876333+0j) * ( +_0_0 -_0_0 +_1_1 -_1_0 )
+ (14.827627500000007+0j) * ( +_0_0 -_0_0 +_1_1 -_1_1 )
+ (14.827627500000007+0j) * ( +_0_1 -_0_1 +_1_0 -_1_0 )
+ (-264.60522650629+0j) * ( +_0_1 -_0_1 +_1_0 -_1_1 )
+ (-264.60522650629+0j) * ( +_0_1 -_0_1 +_1_1 -_1_0 )
+ (44.482882500000024+0j) * ( +_0_1 -_0_1 +_1_1 -_1_1 )
+ (-10.205891250000004+0j) * ( +_2_0 -_2_0 +_0_0 -_0_0 )
+ (-30.617673750000016+0j) * ( +_2_0 -_2_0 +_0_1 -_0_1 )
+ (-4.194299375000002+0j) * ( +_2_0 -_2_0 +_1_0 -_1_0 )
+ (42.67527310283147+0j) * ( +_2_0 -_2_0 +_1_0 -_1_1 )
+ (42.67527310283147+0j) * ( +_2_0 -_2_0 +_1_1 -_1_0 )
+ (-12.582898125000007+0j) * ( +_2_0 -_2_0 +_1_1 -_1_1 )
+ (-30.61767375000002+0j) * ( +_2_1 -_2_1 +_0_0 -_0_0 )
+ (-91.85302125000007+0j) * ( +_2_1 -_2_1 +_0_1 -_0_1 )
+ (-12.582898125000007+0j) * ( +_2_1 -_2_1 +_1_0 -_1_0 )
+ (128.02581930849442+0j) * ( +_2_1 -_2_1 +_1_0 -_1_1 )
+ (128.02581930849442+0j) * ( +_2_1 -_2_1 +_1_1 -_1_0 )
+ (-37.74869437500002+0j) * ( +_2_1 -_2_1 +_1_1 -_1_1 )
+ (-10.205891250000004+0j) * ( +_3_0 -_3_0 +_0_0 -_0_0 )
+ (-30.617673750000016+0j) * ( +_3_0 -_3_0 +_0_1 -_0_1 )
+ (-4.194299375000002+0j) * ( +_3_0 -_3_0 +_1_0 -_1_0 )
+ (42.67527310283147+0j) * ( +_3_0 -_3_0 +_1_0 -_1_1 )
+ (42.67527310283147+0j) * ( +_3_0 -_3_0 +_1_1 -_1_0 )
+ (-12.582898125000007+0j) * ( +_3_0 -_3_0 +_1_1 -_1_1 )
+ (7.0983500000000035+0j) * ( +_3_0 -_3_0 +_2_0 -_2_0 )
+ (21.29505000000001+0j) * ( +_3_0 -_3_0 +_2_1 -_2_1 )
+ 0j * ( +_3_0 -_3_1 +_2_0 -_2_1 )
+ 0j * ( +_3_0 -_3_1 +_2_1 -_2_0 )
+ 0j * ( +_3_1 -_3_0 +_2_0 -_2_1 )
+ 0j * ( +_3_1 -_3_0 +_2_1 -_2_0 )
+ (-30.61767375000002+0j) * ( +_3_1 -_3_1 +_0_0 -_0_0 )
+ (-91.85302125000007+0j) * ( +_3_1 -_3_1 +_0_1 -_0_1 )
+ (-12.582898125000007+0j) * ( +_3_1 -_3_1 +_1_0 -_1_0 )
+ (128.02581930849442+0j) * ( +_3_1 -_3_1 +_1_0 -_1_1 )
+ (128.02581930849442+0j) * ( +_3_1 -_3_1 +_1_1 -_1_0 )
+ (-37.74869437500002+0j) * ( +_3_1 -_3_1 +_1_1 -_1_1 )
+ (21.29505000000001+0j) * ( +_3_1 -_3_1 +_2_0 -_2_0 )
+ (63.88515000000004+0j) * ( +_3_1 -_3_1 +_2_1 -_2_1 )

In the previous cell we defined a bosonic transformation to express the Hamiltonian in the harmonic modal basis, with 2 modals per mode with the potential truncated at order 2 and the 'direct' boson to qubit mapping. The calculation is then ran as:

[5]:
qubit_mapper = DirectMapper()
qubit_op = qubit_mapper.map(main_op)

print(qubit_op)
4854.200029687493 * IIIIIIII
- 618.5645973437502 * IIIIIIIZ
- 1860.5306717187502 * IIIIIIZI
- 349.48563468750024 * IIIIIZII
- 25.864048912543417 * IIIIXXII
- 25.864048912543417 * IIIIYYII
- 1049.719110937499 * IIIIZIII
- 111.85586312500007 * IIIZIIII
- 342.57516687500015 * IIZIIIII
- 111.85586312500007 * IZIIIIII
- 342.57516687500015 * ZIIIIIII
+ 1.2356356250000005 * IIIIIZIZ
+ 22.050435542190833 * IIIIXXIZ
+ 22.050435542190833 * IIIIYYIZ
+ 3.706906875000002 * IIIIZIIZ
+ 3.706906875000002 * IIIIIZZI
+ 66.1513066265725 * IIIIXXZI
+ 66.1513066265725 * IIIIYYZI
+ 11.120720625000006 * IIIIZIZI
- 2.551472812500001 * IIIZIIIZ
- 7.654418437500004 * IIIZIIZI
- 1.0485748437500004 * IIIZIZII
- 10.668818275707867 * IIIZXXII
- 10.668818275707867 * IIIZYYII
- 3.1457245312500017 * IIIZZIII
- 7.654418437500005 * IIZIIIIZ
- 22.963255312500017 * IIZIIIZI
- 3.1457245312500017 * IIZIIZII
- 32.006454827123605 * IIZIXXII
- 32.006454827123605 * IIZIYYII
- 9.437173593750005 * IIZIZIII
- 2.551472812500001 * IZIIIIIZ
- 7.654418437500004 * IZIIIIZI
- 1.0485748437500004 * IZIIIZII
- 10.668818275707867 * IZIIXXII
- 10.668818275707867 * IZIIYYII
- 3.1457245312500017 * IZIIZIII
+ 1.7745875000000009 * IZIZIIII
+ 5.323762500000003 * IZZIIIII
- 7.654418437500005 * ZIIIIIIZ
- 22.963255312500017 * ZIIIIIZI
- 3.1457245312500017 * ZIIIIZII
- 32.006454827123605 * ZIIIXXII
- 32.006454827123605 * ZIIIYYII
- 9.437173593750005 * ZIIIZIII
+ 5.323762500000003 * ZIIZIIII
+ 15.97128750000001 * ZIZIIIII

প্রতি মোডে বিভিন্ন সংখ্যক মোডালের জন্য:

[6]:
basis = HarmonicBasis([3, 3, 3, 3])

vibrational_problem = driver.run(basis=basis)
vibrational_problem.hamiltonian.truncation_order = 2
main_op, aux_ops = vibrational_problem.second_q_ops()

qubit_mapper = DirectMapper()

qubit_op = qubit_mapper.map(main_op)

print(qubit_op)
10788.71998265624 * IIIIIIIIIIII
- 599.2280473437502 * IIIIIIIIIIIZ
- 42.382439413480455 * IIIIIIIIIXIX
- 42.382439413480455 * IIIIIIIIIYIY
- 1802.5210217187503 * IIIIIIIIIIZI
- 3015.487755468749 * IIIIIIIIIZII
- 345.17806437499996 * IIIIIIIIZIII
- 29.42804386641884 * IIIIIIIXXIII
- 29.42804386641884 * IIIIIIIYYIII
- 9.18025376111823 * IIIIIIXIXIII
- 9.18025376111823 * IIIIIIYIYIII
- 1036.7963999999984 * IIIIIIIZIIII
- 74.16262749999993 * IIIIIIXXIIII
- 74.16262749999993 * IIIIIIYYIIII
- 1730.9391493749995 * IIIIIIZIIIII
- 102.72856234375004 * IIIIIZIIIIII
- 13.324103454983607 * IIIXIXIIIIII
- 13.324103454983607 * IIIYIYIIIIII
- 315.1932645312502 * IIIIZIIIIIII
- 541.6731217187498 * IIIZIIIIIIII
- 102.72856234375004 * IIZIIIIIIIII
- 13.324103454983597 * XIXIIIIIIIII
- 13.324103454983597 * YIYIIIIIIIII
- 315.1932645312502 * IZIIIIIIIIII
- 541.6731217187498 * ZIIIIIIIIIII
+ 1.2356356250000005 * IIIIIIIIZIIZ
+ 22.050435542190833 * IIIIIIIXXIIZ
+ 22.050435542190833 * IIIIIIIYYIIZ
- 1.7474526590263566 * IIIIIIXIXIIZ
- 1.7474526590263566 * IIIIIIYIYIIZ
+ 3.706906875000002 * IIIIIIIZIIIZ
+ 31.184025000000005 * IIIIIIXXIIIZ
+ 31.184025000000005 * IIIIIIYYIIIZ
+ 6.178178125000002 * IIIIIIZIIIIZ
- 1.7474526590263566 * IIIIIIIIZXIX
- 1.7474526590263566 * IIIIIIIIZYIY
- 31.184025000000013 * IIIIIIIXXXIX
- 31.184025000000013 * IIIIIIIYYXIX
- 31.184025000000013 * IIIIIIIXXYIY
- 31.184025000000013 * IIIIIIIYYYIY
+ 2.471271250000001 * IIIIIIXIXXIX
+ 2.471271250000001 * IIIIIIYIYXIX
+ 2.471271250000001 * IIIIIIXIXYIY
+ 2.471271250000001 * IIIIIIYIYYIY
- 5.24235797707907 * IIIIIIIZIXIX
- 5.24235797707907 * IIIIIIIZIYIY
- 44.100871084381666 * IIIIIIXXIXIX
- 44.100871084381666 * IIIIIIYYIXIX
- 44.100871084381666 * IIIIIIXXIYIY
- 44.100871084381666 * IIIIIIYYIYIY
- 8.737263295131783 * IIIIIIZIIXIX
- 8.737263295131783 * IIIIIIZIIYIY
+ 3.706906875000002 * IIIIIIIIZIZI
+ 66.1513066265725 * IIIIIIIXXIZI
+ 66.1513066265725 * IIIIIIIYYIZI
- 5.24235797707907 * IIIIIIXIXIZI
- 5.24235797707907 * IIIIIIYIYIZI
+ 11.120720625000006 * IIIIIIIZIIZI
+ 93.55207500000002 * IIIIIIXXIIZI
+ 93.55207500000002 * IIIIIIYYIIZI
+ 18.534534375000007 * IIIIIIZIIIZI
+ 6.178178125000003 * IIIIIIIIZZII
+ 110.25217771095417 * IIIIIIIXXZII
+ 110.25217771095417 * IIIIIIIYYZII
- 8.737263295131783 * IIIIIIXIXZII
- 8.737263295131783 * IIIIIIYIYZII
+ 18.53453437500001 * IIIIIIIZIZII
+ 155.920125 * IIIIIIXXIZII
+ 155.920125 * IIIIIIYYIZII
+ 30.89089062500001 * IIIIIIZIIZII
- 2.551472812500001 * IIIIIZIIIIIZ
+ 3.608327455463727 * IIIIIZIIIXIX
+ 3.608327455463727 * IIIIIZIIIYIY
- 7.654418437500004 * IIIIIZIIIIZI
- 12.757364062500006 * IIIIIZIIIZII
- 1.0485748437500004 * IIIIIZIIZIII
- 10.668818275707867 * IIIIIZIXXIII
- 10.668818275707867 * IIIIIZIYYIII
+ 1.4829087651944997 * IIIIIZXIXIII
+ 1.4829087651944997 * IIIIIZYIYIII
- 3.1457245312500017 * IIIIIZIZIIII
- 15.087987500000002 * IIIIIZXXIIII
- 15.087987500000002 * IIIIIZYYIIII
- 5.242874218750002 * IIIIIZZIIIII
+ 3.608327455463727 * IIIXIXIIIIIZ
+ 3.608327455463727 * IIIYIYIIIIIZ
- 5.102945625000002 * IIIXIXIIIXIX
- 5.102945625000002 * IIIXIXIIIYIY
- 5.102945625000002 * IIIYIYIIIXIX
- 5.102945625000002 * IIIYIYIIIYIY
+ 10.82498236639118 * IIIXIXIIIIZI
+ 10.82498236639118 * IIIYIYIIIIZI
+ 18.04163727731863 * IIIXIXIIIZII
+ 18.04163727731863 * IIIYIYIIIZII
+ 1.4829087651944997 * IIIXIXIIZIII
+ 1.4829087651944997 * IIIYIYIIZIII
+ 15.087987500000006 * IIIXIXIXXIII
+ 15.087987500000006 * IIIXIXIYYIII
+ 15.087987500000006 * IIIYIYIXXIII
+ 15.087987500000006 * IIIYIYIYYIII
- 2.097149687500001 * IIIXIXXIXIII
- 2.097149687500001 * IIIXIXYIYIII
- 2.097149687500001 * IIIYIYXIXIII
- 2.097149687500001 * IIIYIYYIYIII
+ 4.4487262955835 * IIIXIXIZIIII
+ 4.4487262955835 * IIIYIYIZIIII
+ 21.337636551415734 * IIIXIXXXIIII
+ 21.337636551415734 * IIIXIXYYIIII
+ 21.337636551415734 * IIIYIYXXIIII
+ 21.337636551415734 * IIIYIYYYIIII
+ 7.4145438259724985 * IIIXIXZIIIII
+ 7.4145438259724985 * IIIYIYZIIIII
- 7.654418437500005 * IIIIZIIIIIIZ
+ 10.824982366391183 * IIIIZIIIIXIX
+ 10.824982366391183 * IIIIZIIIIYIY
- 22.963255312500017 * IIIIZIIIIIZI
- 38.27209218750002 * IIIIZIIIIZII
- 3.1457245312500017 * IIIIZIIIZIII
- 32.006454827123605 * IIIIZIIXXIII
- 32.006454827123605 * IIIIZIIYYIII
+ 4.4487262955835 * IIIIZIXIXIII
+ 4.4487262955835 * IIIIZIYIYIII
- 9.437173593750005 * IIIIZIIZIIII
- 45.26396250000001 * IIIIZIXXIIII
- 45.26396250000001 * IIIIZIYYIIII
- 15.728622656250007 * IIIIZIZIIIII
- 12.757364062500006 * IIIZIIIIIIIZ
+ 18.04163727731863 * IIIZIIIIIXIX
+ 18.04163727731863 * IIIZIIIIIYIY
- 38.27209218750002 * IIIZIIIIIIZI
- 63.786820312500026 * IIIZIIIIIZII
- 5.242874218750002 * IIIZIIIIZIII
- 53.34409137853934 * IIIZIIIXXIII
- 53.34409137853934 * IIIZIIIYYIII
+ 7.414543825972498 * IIIZIIXIXIII
+ 7.414543825972498 * IIIZIIYIYIII
- 15.728622656250007 * IIIZIIIZIIII
- 75.43993750000001 * IIIZIIXXIIII
- 75.43993750000001 * IIIZIIYYIIII
- 26.21437109375001 * IIIZIIZIIIII
- 2.551472812500001 * IIZIIIIIIIIZ
+ 3.608327455463727 * IIZIIIIIIXIX
+ 3.608327455463727 * IIZIIIIIIYIY
- 7.654418437500004 * IIZIIIIIIIZI
- 12.757364062500006 * IIZIIIIIIZII
- 1.0485748437500004 * IIZIIIIIZIII
- 10.668818275707867 * IIZIIIIXXIII
- 10.668818275707867 * IIZIIIIYYIII
+ 1.4829087651944997 * IIZIIIXIXIII
+ 1.4829087651944997 * IIZIIIYIYIII
- 3.1457245312500017 * IIZIIIIZIIII
- 15.087987500000002 * IIZIIIXXIIII
- 15.087987500000002 * IIZIIIYYIIII
- 5.242874218750002 * IIZIIIZIIIII
+ 1.7745875000000009 * IIZIIZIIIIII
- 2.509645710117766 * IIZXIXIIIIII
- 2.509645710117766 * IIZYIYIIIIII
+ 5.323762500000003 * IIZIZIIIIIII
+ 8.872937500000004 * IIZZIIIIIIII
- 2.8170754092577175 * IXXXXIIIIIII
- 2.8170754092577175 * IXXYYIIIIIII
- 2.8170754092577175 * IYYXXIIIIIII
- 2.8170754092577175 * IYYYYIIIIIII
+ 3.608327455463727 * XIXIIIIIIIIZ
+ 3.608327455463727 * YIYIIIIIIIIZ
- 5.102945625000002 * XIXIIIIIIXIX
- 5.102945625000002 * XIXIIIIIIYIY
- 5.102945625000002 * YIYIIIIIIXIX
- 5.102945625000002 * YIYIIIIIIYIY
+ 10.82498236639118 * XIXIIIIIIIZI
+ 10.82498236639118 * YIYIIIIIIIZI
+ 18.04163727731863 * XIXIIIIIIZII
+ 18.04163727731863 * YIYIIIIIIZII
+ 1.4829087651944997 * XIXIIIIIZIII
+ 1.4829087651944997 * YIYIIIIIZIII
+ 15.087987500000006 * XIXIIIIXXIII
+ 15.087987500000006 * XIXIIIIYYIII
+ 15.087987500000006 * YIYIIIIXXIII
+ 15.087987500000006 * YIYIIIIYYIII
- 2.097149687500001 * XIXIIIXIXIII
- 2.097149687500001 * XIXIIIYIYIII
- 2.097149687500001 * YIYIIIXIXIII
- 2.097149687500001 * YIYIIIYIYIII
+ 4.4487262955835 * XIXIIIIZIIII
+ 4.4487262955835 * YIYIIIIZIIII
+ 21.337636551415734 * XIXIIIXXIIII
+ 21.337636551415734 * XIXIIIYYIIII
+ 21.337636551415734 * YIYIIIXXIIII
+ 21.337636551415734 * YIYIIIYYIIII
+ 7.4145438259724985 * XIXIIIZIIIII
+ 7.4145438259724985 * YIYIIIZIIIII
- 2.509645710117766 * XIXIIZIIIIII
- 2.509645710117766 * YIYIIZIIIIII
+ 3.5491750000000017 * XIXXIXIIIIII
+ 3.5491750000000017 * XIXYIYIIIIII
+ 3.5491750000000017 * YIYXIXIIIIII
+ 3.5491750000000017 * YIYYIYIIIIII
- 7.528937130353299 * XIXIZIIIIIII
- 7.528937130353299 * YIYIZIIIIIII
- 12.54822855058883 * XIXZIIIIIIII
- 12.54822855058883 * YIYZIIIIIIII
- 7.654418437500005 * IZIIIIIIIIIZ
+ 10.824982366391183 * IZIIIIIIIXIX
+ 10.824982366391183 * IZIIIIIIIYIY
- 22.963255312500017 * IZIIIIIIIIZI
- 38.27209218750002 * IZIIIIIIIZII
- 3.1457245312500017 * IZIIIIIIZIII
- 32.006454827123605 * IZIIIIIXXIII
- 32.006454827123605 * IZIIIIIYYIII
+ 4.4487262955835 * IZIIIIXIXIII
+ 4.4487262955835 * IZIIIIYIYIII
- 9.437173593750005 * IZIIIIIZIIII
- 45.26396250000001 * IZIIIIXXIIII
- 45.26396250000001 * IZIIIIYYIIII
- 15.728622656250007 * IZIIIIZIIIII
+ 5.323762500000003 * IZIIIZIIIIII
- 7.528937130353299 * IZIXIXIIIIII
- 7.528937130353299 * IZIYIYIIIIII
+ 15.97128750000001 * IZIIZIIIIIII
+ 26.618812500000015 * IZIZIIIIIIII
+ 2.8170754092577175 * XXIIXXIIIIII
+ 2.8170754092577175 * XXIIYYIIIIII
+ 2.8170754092577175 * YYIIXXIIIIII
+ 2.8170754092577175 * YYIIYYIIIIII
- 12.757364062500006 * ZIIIIIIIIIIZ
+ 18.04163727731863 * ZIIIIIIIIXIX
+ 18.04163727731863 * ZIIIIIIIIYIY
- 38.27209218750002 * ZIIIIIIIIIZI
- 63.786820312500026 * ZIIIIIIIIZII
- 5.242874218750002 * ZIIIIIIIZIII
- 53.34409137853934 * ZIIIIIIXXIII
- 53.34409137853934 * ZIIIIIIYYIII
+ 7.414543825972498 * ZIIIIIXIXIII
+ 7.414543825972498 * ZIIIIIYIYIII
- 15.728622656250007 * ZIIIIIIZIIII
- 75.43993750000001 * ZIIIIIXXIIII
- 75.43993750000001 * ZIIIIIYYIIII
- 26.21437109375001 * ZIIIIIZIIIII
+ 8.872937500000003 * ZIIIIZIIIIII
- 12.548228550588828 * ZIIXIXIIIIII
- 12.548228550588828 * ZIIYIYIIIIII
+ 26.61881250000001 * ZIIIZIIIIIII
+ 44.36468750000001 * ZIIZIIIIIIII

Solving the VibrationalStructureProblem#

In the following, we will compute the ground-state of our problem instance. To learn more about the individual components that go into the GroundStateSolver, please refer to the corresponding tutorials.

[7]:
# for simplicity, we will use the smaller basis again
vibrational_problem = driver.run(basis=HarmonicBasis([2, 2, 2, 2]))
vibrational_problem.hamiltonian.truncation_order = 2
[8]:
from qiskit_algorithms import NumPyMinimumEigensolver
from qiskit_nature.second_q.algorithms import GroundStateEigensolver

solver = GroundStateEigensolver(
    qubit_mapper,
    NumPyMinimumEigensolver(filter_criterion=vibrational_problem.get_default_filter_criterion()),
)
[9]:
result = solver.solve(vibrational_problem)
print(result)
=== GROUND STATE ===

* Vibrational ground state energy (cm^-1): 2432.106954036546
The number of occupied modals for each mode is:
- Mode 0: 1.0
- Mode 1: 1.0
- Mode 2: 1.0
- Mode 3: 1.0
[10]:
import qiskit.tools.jupyter

%qiskit_version_table
%qiskit_copyright

Version Information

Qiskit SoftwareVersion
qiskit-terra0.24.0.dev0+2b3686f
qiskit-aer0.11.2
qiskit-ibmq-provider0.19.2
qiskit-nature0.6.0
System information
Python version3.9.16
Python compilerGCC 12.2.1 20221121 (Red Hat 12.2.1-4)
Python buildmain, Dec 7 2022 00:00:00
OSLinux
CPUs8
Memory (Gb)62.50002670288086
Thu Apr 06 08:54:06 2023 CEST

This code is a part of Qiskit

© Copyright IBM 2017, 2023.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.