ElemCo.jl: A Julia package for electron-correlation methods
تقدم هذه الورقة ElemCo.jl، وهي حزمة مفتوحة المصدر بلغة Julia توفر واجهة سهلة الاستخدام تعتمد على الماكرو لمجموعة واسعة من طرق ارتباط الإلكترونات المتقدمة، بما في ذلك أساليب التفكك الموتر والأساليب متعددة المراجع الفريدة، إلى جانب أداة رسومية (JLmol) وواجهات مرنة لأكواد الكيمياء الكمية الخارجية.
المؤلفون الأصليون:Daniel Kats, Charlotte Rickert, Thomas Schraivogel, Kristoffer Simula, Denis Usvyat, Fangcheng Wu
لفهم عالم الجزيئات، غالبًا ما يبدأ العلماء بتخيلها كمجموعات من الجسيمات الصغيرة المشحونة — البروتونات والإلكترونات — التي تتفاعل عبر قوى غير مرئية. الطريقة الأكثر أساسية لوصف هذه التفاعلات هي معاملة كل إلكترون كأنه يتحرك بشكل مستقل في مجال متوسط ناتج عن جميع الإلكترونات الأخرى، وهو تبسيط يعمل بشكل جيد في كثير من الحالات، ولكنه يفشل عندما تبدأ الإلكترونات في التفاعل مع حركات بعضها البعض المحددة. هذا التفاعل، المعروف باسم "الارتباط الإلكتروني"، هو المفتاح لفهم كيفية كسر الروابط الكيميائية، وكيفية تغير أشكال الجزيئات، وكيفية امتصاص الضوء. ولعقود من الزمن، كانت الطريقة الأكثر دقة لحساب هذه التأثيرات هي مجموعة من التقنيات الرياضية المعقدة تسمى طرق "العناقيد المترابطة" (coupled cluster methods). وبينما تُعتبر هذه الطرق المعيار الذهبي للدقة، فإن البرمجيات التي تشغلها بُنيت تقليديًا على لغات برمجة قديمة يصعب على العلماء الجدد تعديلها. وهذا يخلق حاجزًا: إذا أراد باحث اختبار فكرة جديدة أو تطويع البرمجيات لمشكلة فريدة، فإنه غالبًا ما يواجه منحنى تعلم حاد أو يضطر للانتظار حتى يقوم المطورون الأصليون بإجراء التغييرات.
لقد أصدر فريق من الباحثين الآن أداة جديدة مصممة لإزالة هذه الحواجز مع الحفاظ على أعلى مستويات الدقة العلمية. لقد بنوا حزمة برمجية تسمى "ElemCo"، مكتوبة بالكامل بلغة برمجة حديثة تُعرف باسم "جوليا" (Julia)، والتي تجمع بين سهولة الاستخدام وسرعة الأداء الخام للأكواد التقليدية عالية الأداء. تتيح هذه الحزمة للعلماء إجراء حسابات متطورة على الجزيئات ببضع أوامر بسيطة، تمامًا مثل ملء نموذج قصير، مع منح الخبراء أيضًا الحرية لبناء طرق جديدة تمامًا دون إعادة كتابة المحرك الأساسي. لم يكتفِ المطورون بجعل التقنيات الراسخة سهلة الاستخدام فحسب، بل قدموا أيضًا عدة طرق جديدة لحل مشكلات كانت في السابق صعبة للغاية أو بطيئة جدًا للتعامل معها، بما في ذلك الطرق التي يمكنها وصف الجزيئات ذات البنى الإلكترونية غير العادية أو تلك التي تتفاعل مع الضوء بطرق معقدة.
إن قلب هذه البرمجية الجديدة هو قدرتها على التعامل مع مشكلة "الارتباط" بمرونة ملحوطة. في الماضي، كان على العلماء الاختيار بين استخدام برنامج سهل الاستخدام ولكنه محدود في ما يمكنه حسابه، أو برنامج يمكنه حساب أي شيء ولكنه معقد للغاية بحيث لا يستطيع لمسه إلا قلة من الخبراء. تسد "ElemCo" هذه الفجوة باستخدام نظام من "الماكرو" (macros)، وهي في الأساس أوامر مختصرة تتوسع لتصبح حسابات كاملة. يمكن للمستخدم كتابة بضعة أسطر من النص لتحديد شكل الجزيء ونوع الحساب المطلوب، وتتولى البرمجية الباقي. وبالنسبة لأولئك الذين يحتاجون إلى مزيد من التحكم، توفر البرمجية وظائفها الداخلية مباشرة، مما يسمح للمستخدمين بخلط ومزج نهج رياضية مختلفة لإنشاء حلول مخصصة. هذا التصميم يعني أن الطالب يمكنه إجراء حساب قياسي في دقائق، بينما يمكن لمطور الطريقة تجربة نظرية جديدة في نفس البيئة دون الحاجة لتعلم لغة مختلفة أو التنقل في قاعدة بيانات ضخمة وغير واضحة.
أحد أهم الإنجازات في هذا العمل هو التنفيذ الناجح والاختبار لطريقة جديدة لحساب "الحالات المثارة"، وهي مستويات الطاقة التي تصل إليها الجزيئات عندما تمتص الضوء. قارن الباحثون نهجهم الجديد، المسمى "معادلة العنقود المتميز في حركة الزمن" (distinguishable cluster equation-of-motion)، مقابل طريقة مرجعية موثوقة للغاية تُعرف باسم CC3. وفي اختبار شمل 150 حالة مثارة مختلفة لجزيئات متنوعة، أثبت النهج الجديد أنه أكثر دقة بشكل ملحوظ من النهج القياسي القديم، حيث قلل متوسط الخطأ بأكثر من النصف. على سبيل المثال، في جزيء معين، كان النهج القديم مخطئًا بأكثر من نصف إلكترون فولت، وهو خطأ ملحوظ في هذا المجال، بينما كان النهج الجديد مخطئًا بأقل من الربع. يأتي هذا التحسن دون عقوبة ثقيلة في وقت الحوسبة، مما يجعل التنبؤات عالية الدقة للجزيئات الماصة للضوء أكثر سهولة من ذي قبل.
بعيدًا عن الجزيئات القياسية، تعالج هذه البرمجية بعض السيناريوهات الأكثر تحديًا في الكيمياء الكمومية، مثل الأنظمة التي لا تكون فيها الإلكترونات "مهذبة" أو حيث تُكسر قواعد التماثل الرياضي. تتضمن الحزمة طرقًا فريدة يمكنها التعامل مع هذه الحالات الصعبة، بما في ذلك التقنيات التي تفكك المشكلات الرياضية الضخمة إلى قطع أصغر يمكن إدارتها لتوفير الذاكرة والوقت. وقد أظهر الباحثون هذه القدرة من خلال دراسة عيب في شريحة من الفوسفور، وهي مادة تُستخدم في الإلكترونيات المتقدمة. قاموا بحساب الطاقة المطلوبة لإنشاء ذرة مفقودة في هذه الشريحة، وهي عملية تتضمن تفاعلات معقدة بين آلاف الإلكترونات. وباستخدام أدواتهم الجديدة، تمكنوا من إظهار أن التصحيحات الأكثر تقدمًا لحساباتهم كانت صغيرة جدًا، مما يشير إلى أن مستوى نظريًا أبسط قليلاً كان كافيًا بالفعل لهذه المشكلة المحددة. هذه القدرة على التحديد السريع لما إذا كان النموذج الأبسط كافيًا توفر على الباحثين إضاعة الوقت في التعقيد غير الضروري.
كما تفتح البرمجية الباب لدراسة الأنظمة التي لا تتبع القواعد القياسية للفيزياء، مثل تلك التي تتضمن "هاملتونيات غير هيرميتية" (non-Hermitian Hamiltonians)، وهي أوصاف رياضية تُستخدم في النظريات المتقدمة حيث لا يتم حفظ الطاقة بشكل صارم بالمعنى التقليدي. ومن خلال دعم هذه الأشكال الرياضية الغريبة، تسمح الحزمة للعلماء باستكشاف نظريات كانت محبوسة سابقًا في أكواد متخصصة وصعبة الاستخدام. علاوة على ذلك، دمج الفريق أداة مرئية تساعد المستخدمين على بناء ملفات الإدخال الخاصة بهم ورؤية أشكال الجزيئات وسحبها الإلكترونية، مما يجعل عملية إعداد الحساب أكثر سهولة وبداهة. الحزمة بأكملها مفتوحة المصدر، مما يعني أن أي شخص يمكنه فحص الكود، أو التعلم منه، أو المساهمة بتحسيناته الخاصة. ومن خلال الجمع بين الأداء العالي والتصميم المفتوح والمرن، يوفر هذا العمل منصة جديدة للاكتشافات القادمة في كيفية سلوك المادة على المستوى الذري.
ملخص تقني لـ ElemCo.jl: حزمة لغة Julia لطرق ارتباط الإلكترونات
بيان المشكلة لطالما هيمنت البرمجيات المكتوبة بلغة Fortran أو C/C++ (مثل Molpro وOrca وCfour) على مجال الكيمياء الكمومية. وبينما توفر هذه الأكواد أداءً عاليًا وتحسينات تراكمت عبر عقود، إلا أن شفرتها المصدرية غالبًا ما تكون صعبة الفهم أو التكيف أو التوسيع، لا سيما للعلماء في مقتبل مسيرتهم المهنية والمنظرين التجريبيين الذين يستكشفون مفاهيم جديدة. ومن ناحية أخرى، نجحت الحزم القائمة على لغة Python (مثل PySCF) في تحسين سهولة قراءة الكود وقابليته للتوسع، لكنها تعاني من "مشكلة اللغتين"، حيث تتطلب النوى ذات الأداء الحرج لغات مجمعة (compiled)، مما يخلق فجوة بين واجهة المستخدم والجوهر الحسابي. هناك حاجة إلى حزمة تجمع بين التفاعلية والقدرة التعبيرية للغات الديناميكية مع أداء اللغات المجمعة، مع تقديم قاعدة كود شفافة لتطوير الطرق وقدرات فريدة للهاميلتونيان غير الهيرميتية (non-Hermitian Hamiltonians).
المنهجية والتصميم ElemCo.jl هي حزمة مفتوحة المصدر للكيمياء الكمومية مكتوبة بالكامل بلغة Julia (الإصدار ≥1.9). وهي تستفيد من التجميع في الوقت المناسب (JIT) ونموذج التوزيع المتعدد (multiple-dispatch) في Julia لتحقيق أداء يضاهي C/Fortran دون التضحية بقابلية قراءة الكود.
واجهة المستخدم: تستخدم الحزمة واجهة قائمة على الماكرو (مثل @hf و @cc) التي تتوسع إلى استدعاءات دالة قياسية عند التحليل (parse time)، مما يضمن عدم وجود عبء إضافي أثناء التشغيل (zero runtime overhead). يتيح ذلك بدء الحسابات الروتينية عبر سكربتات قصيرة مع الاحتفاظ بالوصول الكامل إلى تدفق التحكم وهياكل البيانات في Julia. ويساعد برنامج التصور المرافق، JLmol، في إنشاء المدخلات وتصور المدارات.
محرك التنسور (Tensor Engine): تم تنفيذ طرق البنية الإلكترونية باستخدام ماكرو اختزال الجمع الأينشتايني (@mtensor) الطبقي على TensorOperations.jl. يقوم هذا بتوجيه عمليات الضرب (contractions) إلى روتينات BLAS المحسنة (مثل MKL). الكود مكتوب بشكل عام بالنسبة لنوع العنصر، مما يدعم العمليات الحسابية الحقيقية (Float64) والمركبة (ComplexF64) بسلاسة، وهو أمر بالغ الأهمية للهاميلتونيان غير الهيرميتية.
التعامل مع التكاملات: تدعم ElemCo.jl التكاملات المحسوبة عبر libcint أو المقروءة من ملفات FCIDUMP. وهي تستخدم تقنيات ملاءمة الكثافة (Density Fitting - DF) وتفكيك تشوليسكي (Cholesky decomposition) لتقليل تكلفة التخزين والحوسبة. بالنسبة للمسارات التي لا تستخدم DF، تستخدم نهج "AO-direct" حيث يتم بث تكاملات المدارات الذرية (AO) من القرص، لتجنب تكوين مجموعات كاملة من تكاملات المدارات الجزيئية (MO). تتعامل الحزمة مع التكاملات غير الهيرميتية (مثل هاميلتونيان transcorrelated) عن طريق تخزينها كـ "± supermatrices" للحفاظ على التناظرات الضرورية.
إدارة الذاكرة: يتم تخزين الوسائط الكبيرة في الذاكرة الممسوحة (memory-mapped) على القرص، مما يسمح لنفس مسارات الكود بالتعامل مع الأنظمة داخل الذاكرة (in-core) وخارجها (out-of-core).
المساهمات الرئيسية والطرق المنفذة توفر ElemCo.jl مجموعة شاملة من طرق ارتباط الإلكترونات، والعديد منها فريد من نوعه في الحزمة أو غير متوفر حاليًا في الأدوات مفتوحة المصدر الأخرى:
الارتباط المزدوج (Coupled Cluster - CC) والارتباط المتميز (Distinguishable Cluster - DC): تنفذ الحزمة طرق CC القياسية (CCSD، CCSD(T)، CCSDT) ومتغيراتها من نوع DC (DCSD، DC-CCSDT) في أشكال مقيدة مغلقة الشحنة (restricted closed-shell)، ومقيدة مفتوحة الشحنة (restricted open-shell)، وغير مقيدة (unrestricted). يعمل تقريب DC على إزالة حدود التبادل التربيعية لتحسين الدقة في حالات الارتباط الاستاتيكي وكسر الروابط مع الحفاظ على الامتداد الحجمي (size extensivity).
الطرق المفككة بالتنسور (Tensor-Decomposed Methods): لتوسيع نطاق الطرق عالية الدقة لتشمل أنظمة أكبر، تنفذ ElemCo.jl متغيرات التحلل للقيمة المفردة (SVD) لطرق DC (وهي SVD-DCSD و SVD-DC-CCSDT). تمثل هذه الطرق سعات التجمع في أساس SVD مدمج، مما يقلل من التدرج الاسمي لـ DC-CCSDT من O(N8) إلى O(N6).
طرق المرجع المتخصصة: تتضمن الحزمة طرق المرجع الثنائي (2D-CCSD، 2D-DCSD) والمرجع الثابت (FR-CCSD، FR-DCSD، FR-CCSDT) المصممة لحالات السبين الصعبة وأنظمة الـ biradical.
التفاعل التكويني المختار (Selected CI - CIPHI): طريقة CI مختارة مبتكرة تعتمد على خوارزميات CIPSI و Heat-Bath CI (HCI). تقوم باختيار المحددات تكراريًا باستخدام معيار Heat-bath متبوعًا بالتحسين الاضطرابي، مما يوفر بديلًا فعالًا لـ Full CI (FCI) للمساحات النشطة الكبيرة.
الحالات المثارة: تتوفر متغيرات معادلة الحركة (Equation-of-Motion - EOM) لكل من طرق CC و DC (مثل EOM-CCSD و EOM-DCSD).
الهاميلتونيان غير الهيرميتية والمركبة: ميزة هامة هي الدعم المنهجي للهاميلتونيان غير الهيرميتية، مما يتيح تطبيقات في نظريات transcorrelated (مثل xTC Hamiltonians) وأنظمة الإلكترون-بوزيترون المختلطة.
التوافق التشغيلي: تتصل الحزمة بالأكواد الخارجية عبر تنسيق FCIDUMP (الذي يدعم التنسيقات غير الهيرميتية والثنائية NPY) وملفات MOLDEN. كما توفر واجهة لـ ITensors.jl لحسابات DMRG.
النتائج والاختبارات المعيارية
دقة EOM-DCSD: تختبر الورقة دقة EOM-DCSD مقابل CC3 باستخدام مجموعة اختبار QUEST3 (150 طاقة إثارة رأسية). تُظهر EOM-DCSD دقة فائقة مقارنة بـ EOM-CCSD، حيث قللت متوسط الانحراف المطلق (MAD) من 0.17 إلكترون فولت (EOM-CCSD) إلى 0.07 إلكترون فولت بالنسبة لـ CC3. وكان أقصى انحراف لـ EOM-DCSD هو 0.25 إلكترون فولت، مقارنة بـ 0.54 إلكترون فولت لـ EOM-CCSD.
الأداء: تُظهر توقيتات جزيء الفينول (50 إلكترون، 460 دالة أساس) أن DCSD أسرع قليلاً من CCSD بسبب إهمال مخططات التبادل المكلفة. أما طريقة SVD-DC-CCSDT، مع عتبة تفكيك قدرها 10−5، فقد حققت وقت تشغيل يقارب تصحيح (T) الاضطراري لـ CCSD(T)، رغم تضمينها لـ triples تكرارية، مما يثبت كفاءة النهج المفكك بالتنسور.
حالة تطبيقية: استُخدمت الحزمة لحساب مساهمة الارتباط في طاقة التكوين لثغرة سالبة الشحنة في الفوسفورين باستخدام نموذج عيب غير دوري. وجدت الدراسة أن تصحيحات post-CCSD(T) كانت صغيرة (حوالي -0.011 إلكترون فولت)، مما يشير إلى أن CCSD(T) كافٍ لهذا النظام. وقد حققت طريقة SVD-DC-CCSDT التقارب مع تصحيح post-CCSD(T) بعتبة 10−5 بتكلفة حسابية مماثلة لـ CCSD(T).
الأهمية والادعاءات يزعم المؤلفون أن ElemCo.jl نجحت في سد الفجوة بين سهولة الاستخدام/التوسع وبين الأداء العالي. وبما أنها مكتوبة بالكامل بلغة Julia، فهي تسمح للمستخدمين باستدعاء الدوال الداخلية مباشرة لإنشاء نماذج أولية لطرق جديدة دون تعديل الكود المصدر الأساسي. وتكتسب الحزمة أهميتها من:
توفير وصول مفتوح لطرق فريدة وحديثة (SVD-DC-CCSDT، CIPHI، وطرق DC ذات المرجع الثابت) غير متاحة مجانًا في مكان آخر.
تقديم دعم منهجي للهاميلتونيان غير الهيرميتية، مما يجعلها منصة طبيعية لنظرية البنية الإلكترونية transcorrelated.
إثبات أن EOM-DCSD بديل دقيق للغاية وفعال حسابيًا لـ EOM-CCSD للحالات المثارة.
العمل كمنصة متعددة الاستخدامات لكل من مطوري الطرق والممارسين، مما يسهل دراسة الأنظمة المعقدة (مثل العيوب الدورية) من خلال واجهات قوية مع الحلول الخارجية.
تخلص الورقة إلى أن ElemCo.jl تمثل أداة حديثة ومرنة وعالية الأداء لحسابات البنية الإلكترونية الجزيئية، مع تركيز التطوير المستمر على المزيد من توسيع الطرق، والتوازي، والتدرجات التحليلية.