$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
נוזלים ונמסים הם וקטורי הובלה כימיים ופיזיים פעילים בסביבות טבעיות. השיעורים הגבוהים של דיפוזיה אטומית מעדיפים חילופי כימיקלים ותגובות, הצמיגות הנמוכה בשילוב עם ציפה משתנה מעדיפים העברת מסה גדולה, ויחסי צפיפות הפשרה בגביש מעדיפים שכבות בתוך גופים פלנטריים. היעדר סריג תקופתי, טמפרטורות גבוהות טיפוסיות הנדרשות כדי להגיע למצב המותך, ואת הקושי להרוות להפוך את הקביעה הניסיונית של סדרה של תכונות ברורות, כמו צפיפות, דיפוזיה, וצמיגות, מאתגר מאוד. קשיים אלה הופכים שיטות חישוביות חלופיות לכלים חזקים ושימושיים לחקירת סוג זה של חומרים.
עם הופעת כוח המחשוב והזמינות של מחשבי-על, שתי טכניקות אטומיסטיות מספריות עיקריות משמשות כיום לחקר המצב הדינמי של מערכת אטומית לא גבישית, מונטה קרלו1 ודינמיקה מולקולרית (MD)1,2. בסימולציות מונטה קרלו נדגם באופן אקראי המרחב התצורה; שיטות מונטה קרלו מראות קנה מידה ליניארי במקביל אם כל תצפיות הדגימה אינן תלויות זו בזו. איכות התוצאות תלויה באיכות מחולל המספרים האקראיים ובנציגות הדגימה. שיטות מונטה קרלו מראות קנה מידה ליניארי במקביל אם הדגימה אינה תלויה זו בזו. בדינמיקה מולקולרית (MD) המרחב התצורלי נדגם על ידי מסלולים אטומיים תלויי זמן. החל מתצורה נתונה, המסלולים האטומיים מחושבים על ידי שילוב משוואות התנועה הניוטון. ניתן לחשב את הכוחות הבין-אטומיים באמצעות מודלים של פוטנציאלים בין-אטומיים (ב-MD קלאסי) או בשיטות של עקרונות ראשונים (ב-AB initio, או בעקרונות הראשונים, MD). איכות התוצאות תלויה באורך המסלול וביכולתו לא להימשך למינימה מקומית.
סימולציות דינמיקה מולקולרית מכילות שפע של מידע, הכל קשור להתנהגות הדינמית של המערכת. תכונות ממוצעות תרמודינמיות, כמו אנרגיה פנימית, טמפרטורה ולחץ, הן סטנדרטיות למדי לחישוב. ניתן לחלץ מהם מקובץ הפלט של הסימולציות ולהיחשב בממוצע, בעוד שכמויות הקשורות ישירות לתנועת האטומים כמו גם לקשר ההדדי שלהם צריכות להיות מחושבות לאחר הפקת המיקום והמהירויות האטומיות.
כתוצאה מכך, הרבה מאמץ הוקדש להדמיית התוצאות, וחבילות שונות זמינות היום, בפלטפורמות שונות, בקוד פתוח או לא [Ovito3, VMD4, Vesta5, Travis6 וכו ']. כל כלי ההדמיה הללו מתמודדים ביעילות עם מרחקים בין-אטומיים, וככאלה, הם מאפשרים חישוב יעיל של פונקציות התפלגות זוגות ומקדמי דיפוזיה. לקבוצות שונות המבצעות סימולציות דינמיקה מולקולרית בקנה מידה גדול יש תוכנה קניינית לנתח מאפיינים שונים אחרים הנובעים מהסימולציות, לפעמים ב- shareware או בצורות אחרות של גישה מוגבלת לקהילה, ולעתים מוגבלות בהיקפן ובשימושן בחבילות מסוימות ספציפיות. אלגוריתמים מתוחכמים לחילוץ מידע על מליטה בין-אטומית, דפוסים גיאומטריים ותרמודינמיקה מפותחים ומיושמים בחלק מהחבילות הללו3,4,5,6,7 וכו '.
כאן אנו מציעים את חבילת UMD - חבילת קוד פתוח שנכתבה בפייתון כדי לנתח את הפלט של סימולציות דינמיקה מולקולרית. חבילת UMD מאפשרת חישוב של מגוון רחב של מאפיינים מבניים, דינמיים ותרמודינמיים (איור 1). החבילה זמינה דרך אתר GitHub (https://github.com/rcaracas/UMD_package) ובאמצעות דף ייעודי (http://moonimpact.eu/umd-package/) של פרויקט ERC IMPACT כחבילת גישה פתוחה.
כדי להפוך את הטיפול לאוניברסלי וקל יותר, הגישה שלנו היא קודם כל לחלץ את כל המידע הקשור למצב התרמודינמי ולמסלולים האטומיים מקובץ הפלט של הריצה המולקולרית-דינמית בפועל. מידע זה מאוחסן בקובץ ייעודי, שתבניתו אינה תלויה בחבילת MD המקורית שבה בוצעה הסימולציה. אנו קוראים לקבצים אלה קבצי "umd", אשר מייצג דינמיקה מולקולרית אוניברסלית. בדרך זו, חבילת UMD שלנו יכולה לשמש בקלות על ידי כל קבוצת ab initio עם כל תוכנה, כל עם מאמץ מינימלי של הסתגלות. הדרישה היחידה להשתמש בחבילה הנוכחית היא לכתוב את הניתח המתאים מהפלט של תוכנת MD מסוימת לתבנית הקובץ umd, אם זה עדיין לא קיים. לעת עתה, אנו מספקים מנתחים כאלה עבור VASP8 ואת חבילות QBox9 .

איור 1: תרשים זרימה של ספריית UMD.
המאפיינים הפיזיים הם בכחול, וסקריפטים גדולים של פייתון והאפשרויות שלהם באדום. אנא לחץ כאן כדי להציג גירסה גדולה יותר של איור זה.
קבצי umd הם קבצי ASCII; הרחבה אופיינית היא "umd.dat" אך לא חובה. כל רכיבי הניתוח יכולים לקרוא קבצי ASCII בתבנית umd, ללא קשר לסיומת השם בפועל. עם זאת, חלק מהסריפטים האוטומטיים שנועדו לבצע סטטיסטיקה מהירה בקנה מידה גדול על פני מספר סימולציות מחפשים במיוחד קבצים עם הסיומת .dat umd. כל מאפיין פיזי מבוטא בשורה אחת. כל שורה מתחילה במילת מפתח. בדרך זו התבנית ניתנת להתאמה רבה ומאפשרת להוסיף מאפיינים חדשים לקובץ umd, תוך שמירה על הקריאות שלו לאורך גירסאות. 30 השורות הראשונות של קובץ umd של סימולציה של פירוליט ב 4.6 GPa ו 3000 K, בשימוש להלן בדיון, מוצגים באיור 2.

איור 2: תחילתו של קובץ umd המתאר סימולציה של פירוליט נוזלי ב 4.6 GPa ו 3000 K.
לאחר הכותרת מופיע התיאור של כל תמונה. כל מאפיין כתוב בשורה אחת, המכילה את שם המאפיין הפיזי, הערך והיחידות, כולם מופרדים באמצעות רווחים. אנא לחץ כאן כדי להציג גירסה גדולה יותר של איור זה.
כל קבצי umd מכילים כותרת המתארת את התוכן של תא הסימולציה: מספר האטומים, האלקטרונים וסוגי האטום, כמו גם פרטים עבור כל אטום, כגון סוגו, סמל כימי, מספר האלקטרונים הערכיים ומסתו. שורה ריקה מסמנת את סוף הכותרת ומפרידה אותה מהחלק הראשי של קובץ umd.
אז כל שלב של הסימולציה מפורט. ראשית, הפרמטרים התרמודינמיים המיידיים ניתנים, כל אחד על קו אחר, המציין (i) את שם הפרמטר, כמו אנרגיה, לחצים, לחץ הידרוסטטי שווה ערך, צפיפות, נפח, פרמטרי סריג וכו ', (ii) הערך שלו, ו -(iii) יחידותיו. שולחן המתאר את האטומים מגיע הבא. קו כותרת מעניק את האמצעים השונים, כגון מיקומים קרטזיים, מהירויות, מטענים וכו ', והיחידות שלהם. ואז כל אטום מפורט בשורה אחת. לפי קבוצות של שלושה, המתאימים לשלושת צירי x, Y, z , הערכים הם: המיקום המופחת, מיקומי הקרטזי מקופלים לתא הסימולציה, עמדות הקרטזיות (שלוקחות בחשבון כראוי את העובדה שאטומים יכולים לחצות מספר תאי יחידה במהלך סימולציה), המהירויות האטומיות והכוחות האטומיים. שני הערכים האחרונים הם סקלרים: מטען ורגע מגנטי.
שתי ספריות עיקריות מבטיחות את תפקודה התקין של החבילה כולה. ספריית umd_process.py עוסקת בקבצי umd, כגון קריאה והדפסה. ספריית crystallography.py עוסקת בכל המידע הקשור למבנה האטומי בפועל. הפילוסופיה הבסיסית של הספרייה crystallography.py היא להתייחס לסריג כאל מרחב וקטורי. הפרמטרים של תא היחידה יחד עם הכיוון שלהם מייצגים את וקטור הבסיס. "החלל" יש סדרה של תכונות סקלריות (נפח ספציפי, צפיפות, טמפרטורה, ומספר ספציפי של אטומים), תכונות תרמודינמיות (אנרגיה פנימית, לחץ, קיבולת חום, וכו '), וסדרת תכונות טנזוריות (מתח וגמישות). אטומים מאכלסים את החלל הזה. כיתת "הסריג" מגדירה הרכב זה, לצד חישובים קצרים שונים, כגון נפח ספציפי, צפיפות, קבלת הסריג ההדדי מהישיר וכו '. כיתת "אטומים" מגדירה את האטומים. הם מאופיינים בסדרה של תכונות סקלריות (שם, סמל, מסה, מספר אלקטרונים וכו ') וסדרת תכונות וקטוריות (המיקום בחלל, ביחס לבסיס הווקטורי המתואר במחלקת הסריג, או ביחס לקואורדינטות קרטזיות אוניברסליות, מהירויות, כוחות וכו '). מלבד שתי מחלקות אלה, ספריית crystallography.py מכילה סדרה של פונקציות לביצוע מגוון בדיקות וחישובים, כגון מרחקים אטומיים או כפל תאים. הטבלה המחזורית של הרכיבים כלולה גם כמילון.
הרכיבים השונים של חבילת umd כותבים מספר קבצי פלט. ככלל, הם כולם קבצי ASCII, כל הערכים שלהם מופרדים באמצעות כרטיסיות, והם נעשים הסבר עצמי ככל האפשר. לדוגמה, הם תמיד מציינים בבירור את המאפיין הפיזי ואת היחידות שלו. הקבצים .dat umd תואמים באופן מלא לכלל זה.