נמס ונוזלים הם וקטורים בכל מקום של הובלת המונים במערכות טבעיות. פיתחנו חבילת קוד פתוח לניתוח סימולציות מולקולריות-דינמיות של AB initio של מערכות כאלה. אנו מחשבים תכונות מבניות (מליטה, קיבוץ, דגימה כימית), תחבורה (דיפוזיה, צמיגות) ומאפיינים תרמודינמיים (ספקטרום רטט).
פיתחנו חבילת קוד פתוח מבוססת פייתון כדי לנתח את התוצאות הנובעות מסימולציות של דינמיקה מולקולרית של AB initio של נוזלים. החבילה מתאימה ביותר ליישומים במערכות טבעיות, כמו סיליקט ותחמוצות נמסות, נוזלים על בסיס מים ונוזלים סופר-ביקורתיים שונים. החבילה היא אוסף של סקריפטים של פייתון הכוללים שתי ספריות מרכזיות העוסקות בפורמטי קבצים ועם קריסטלוגרפיה. כל קבצי ה- Script מופעלים בשורת הפקודה. אנו מציעים תבנית פשוטה לאחסון המסלולים האטומיים והמידע התרמודינמי הרלוונטי של הסימולציות, שנשמר בקבצי UMD, עומד עבור דינמיקה מולקולרית אוניברסלית. חבילת UMD מאפשרת חישוב של סדרה של תכונות מבניות, הובלה ותרמודינמית. החל בפונקציית חלוקת הזוגות הוא מגדיר אורכי קשר, בונה מטריצת קישוריות בין-אטומית, ובסופו של דבר קובע את ההפרטציה הכימית. קביעת חיי המין הכימי מאפשרת לבצע ניתוח סטטיסטי מלא. לאחר מכן סקריפטים ייעודיים מחשבים את ההעתקים הריבועיים הממוצעים עבור האטומים, כמו גם עבור המינים הכימיים. ניתוח המתאם העצמי המיושם של המהירויות האטומיות מניב את מקדמי הדיפוזיה ואת ספקטרום הרטט. אותו ניתוח המיושם על הלחצים מניב את הצמיגות. החבילה זמינה דרך אתר GitHub ובאמצעות דף ייעודי משלה של פרויקט ERC IMPACT כחבילת גישה פתוחה.
נוזלים ונמסים הם וקטורי הובלה כימיים ופיזיים פעילים בסביבות טבעיות. השיעורים הגבוהים של דיפוזיה אטומית מעדיפים חילופי כימיקלים ותגובות, הצמיגות הנמוכה בשילוב עם ציפה משתנה מעדיפים העברת מסה גדולה, ויחסי צפיפות הפשרה בגביש מעדיפים שכבות בתוך גופים פלנטריים. היעדר סריג תקופתי, טמפרטורות גבוהות טיפוסיות הנדרשות כדי להגיע למצב המותך, ואת הקושי להרוות להפוך את הקביעה הניסיונית של סדרה של תכונות ברורות, כמו צפיפות, דיפוזיה, וצמיגות, מאתגר מאוד. קשיים אלה הופכים שיטות חישוביות חלופיות לכלים חזקים ושימושיים לחקירת סוג זה של חומרים.
עם הופעת כוח המחשוב והזמינות של מחשבי-על, שתי טכניקות אטומיסטיות מספריות עיקריות משמשות כיום לחקר המצב הדינמי של מערכת אטומית לא גבישית, מונטה קרלו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 תואמים באופן מלא לכלל זה.
חבילת UMD תוכננה לעבוד טוב יותר עם סימולציות AB initio, שבהן מספר התמונות מוגבל בדרך כלל לעשרות עד מאות אלפי תמונות, עם כמה מאות אטומים לתא יחידה. סימולציות גדולות יותר ניתנות למתיחה בתנאי שלמכונה שבה פועל לאחר העיבוד יש מספיק משאבי זיכרון פעילים. הקוד מבדיל את עצמו על ידי מגוון המאפיינים שהוא יכול לחשב ועל ידי רישיון הקוד הפתוח שלו.
הקבצים .dat umd מתאימים להרכבים המשמרים את מספר החלקיקים ללא שינוי לאורך הסימולציה. חבילת UMD יכולה לקרוא קבצים הנובעים מחישובים שבהם הצורה והנפח של תיבת הסימולציה משתנים. אלה מכסים את החישובים הנפוצים ביותר, כמו NVT ו- NPT, שם מספר החלקיקים, N, טמפרטורה T, נפח, V, ו / או לחץ, P, נשמרים קבועים.
במשך הזמן להתחיל את פונקציית התפלגות הזוג, כמו גם את כל הסקריפטים הדרושים כדי להעריך את המרחקים הבין-אטומיים, כמו סקריפטים speciation, לעבוד רק עבור תאי יחידה אורתוגונלית, כלומר עבור תאים מעוקבים, טטרגונאלי, אורתודומבי, שבו הזוויות בין הצירים הם 90°.
קווי הפיתוח העיקריים של גרסה 2.0 הם הסרת הגבלת האורתוגונליות למרחקים והוספת תכונות נוספות עבור סקריפטים speciation: לנתח קשרים כימיים בודדים, לנתח את הזוויות הבין-אטומיות, וליישם את ספירת התיאום השנייה. בעזרת שיתוף פעולה חיצוני, אנו עובדים על העברת הקוד למעבד גרפי לניתוח מהיר יותר במערכות גדולות יותר.
The authors have nothing to disclose.
עבודה זו נתמכה על ידי מועצת המחקר האירופית (ERC) במסגרת תוכנית המחקר והחדשנות Horizon 2020 של האיחוד האירופי (מספר הסכם מענק 681818 IMPACT ל- RC), על ידי אגף הפיזיקה והכימיה האקסטרים של מצפה הכוכבים Deep Carbon, ועל ידי מועצת המחקר של נורבגיה באמצעות תוכנית מימון מרכזי המצוינות שלה, מספר הפרויקט 223272. אנו מכירים בגישה למחשבי העל GENCI באמצעות סדרת stl2816 של מענקי מחשוב eDARI, למחשב העל איירין AMD באמצעות פרויקט PRACE RA4947, ולמחשב העל Fram באמצעות UNINETT Sigma2 NN9697K. FS נתמך על ידי פרויקט מארי Skłodowska-Curie (הסכם מענק ABISSE מס ‘750901).
getopt library | open-source | ||
glob library | open-source | ||
matplotlib library | open-source | ||
numpy library | open-source | ||
os library | open-source | ||
Python software | The Python Software Foundation | Version 2 and 3 | open-source |
random library | open-source | ||
re library | open-source | ||
scipy library | open-source | ||
subprocess library | open-source | ||
sys library | open-source |