آموزش ساخت ورودی برای نرم افزار محاسباتی ان دابلیو کم (NWChem)
- توضیحات
- منتشر شده در شنبه, 12 مهر 1393 07:59
- نوشته شده توسط حسین حجی آبادی
- بازدید: 8602
در مقاله قبل فایل ورودی نرم افزار Gaussian معرفی و بخشهای مختلف آن توضیح داده شد. علاوه بر Gaussian نرم افزارهای محاسباتی دیگری نیز وجود دارند که هر کدام دارای مزایای خاص خود هستند. با این وجود این نرم افزارها در ایران کمتر شناخته شده اند و بسیار کم مورد استفاده قرار می گیرند. یکی از این نرم افزارها که جزء بهترین نرم افزارهای محاسباتی دنیاست نرم افزار NWChem است. NWChem نرم افزاری است که با هدف فراهم کردن ابزارهای محاسباتی در زمینه های شیمی، بیوشیمی و فیزیک حالت جامد ایجاد شده است. این نرم افزار که در آزمایشگاه ملی پاسفیک نورث وست (PNNL) وابسته به دپارتمان انرژی ایالات متحده توسعه یافته، قابلیت حل مسائل علمی بزرگ و استفاده بهینه از منابع سخت افزاری بزرگ مانند کلاسترها و ابررایانه ها را دارد.
به صورت خلاصه NWChem توانایی انجام انواع محاسبات کوانتومی، کلاسیکی، روش های ترکیبی، انواع شبیه سازی های دینامیک مولکولی و آثار نسبیتی را دارد. این روش ها روی طیف گسترده ای از ساختارها شامل مولکولهای زیستی، نانو ساختارها و مواد حالت جامد در حالات پایه و برانگیخته قابل اعمال اند. همچنین طیف بسیار بزرگی از توابع پایه شامل انواع توابع گوسی شکل و موج مسطح در این نرم افزار قابل دسترس هستند.
همانطور که در مقاله قبل گفته شد، اولین مرحله برای انجام یک محاسبه علمی ساخت فایل ورودی است. در این مقاله معماری و قالب (فرمت) فایل ورودی نرم افزار NWChem معرفی خواهد شد.
NWChem از ماژول های مستقلی ساخته شده است که هر کدام از این ماژول ها وظایف خاص خود را انجام می دهند. به عنوان مثال تفسیر فایل ورودی، محاسبه انرژی SCF، محاسبه گرادیان SCF، محاسبه انرژی DFT و غیره هر کدام توسط ماژول خاص خود انجام می شود. این ماژول ها تنها از طریق فایل هایی که روی دیسک ذخیره می شوند اطلاعات را با یکدیگر مبادله می کنند. بر همین اساس فایل ورودی NWChem متشکل از دستورهای مجزایی است، که دایرکتیو (directive) نامیده می شوند. این دایرکتیوها اطلاعات خاصی (همانند توابع پایه، مختصات مولکولی و نام فایل) را برای نرم افزار تعریف و یا انجام کار خاصی روی این داده ها درخواست می کنند. بسیاری از دایرکتیوها مخصوص یک ماژول هستند و اطلاعات مورد نیاز همان یک ماژول را فراهم می کنند. با این حال چند دایرکتیو خاص که دایرکتیوهای سطح بالا (top-level Directive) نامیده می شوند، تمام ماژول ها را تحت تاثیر خود قرار می دهند. به عنوان مثال دایرکتیو Charge با تعیین مجموع بار سیستم می تواند تمام ماژول ها را تحت تاثیر قرار دهد. از نظر دستوری دایرکتیوها می توانند ساده و یا ترکیبی باشند. دایرکتیوهای ساده تنها از یک خط تشکیل می شوند ولی می توانند شامل چند قسمت باشند. دایرکتیوهای ترکیبی چند خطی اند و از تعدادی دایرکتیو ساده تشکیل شده اند که به طریقی به هم مربوط هستند. دایرکتیوهای ترکیبی همواره باید به یک دایرکتیو END ختم شوند. همچنین هر دایرکتیو ساده در فایل ورودی باید با یک علامت پایان خط (دکمه Enter و یا Return) و یا علامت ; از دایرکتیو بعدی جدا شود.
به استثناء چند دایرکتیو خاص که دایرکتیوهای راه انداز (start-up) نامیده می شوند، سایر دایرکتیوها به همان ترتیبی که در فایل ورودی نوشته شده اند پردازش می شوند. دایرکتیوهای راه انداز که قبل از تمام دایرکتیوها پردازش می شوند، اطلاعاتی ضروری درباره نحوه کنترل محاسبه را فراهم می کنند. این دایرکتیوها عبارتند از:START, RESTART, SCRATCH_DIR, PERMANENT_DIR, MEMORY و ECHO. پس از پردازش دایرکتیوهای راه انداز نرم افزار دوباره فایل را از ابتدا پردازش می کند ولی اینبار آنها را در نظر نمی گیرد. ورودی NWChem حساس به حروف بزرگ و کوچک نیست و مکان دایرکتیوها به استثناء دایرکتیو TASK اهمیتی ندارد. دایرکتیو TASK یک محاسبه خاص را از نرم افزار درخواست می کند. یک فایل ورودی می تواند شامل چندین دایرکتیو TASK باشد که هر یک از آنها محاسبه ای خاص را فراخوانی می کند. با این حال تمام اطلاعات مربوط به یک محاسبه باید قبل از دایرکتیو TASK مربوط به آن آورده شده باشد. قالب کلی استفاده از دایرکتیو TASK به صورت زیر است:
Task theory operation
به این ترتیب که بعد از عبارت Taskنام روش و سپس نوع محاسبه آورده خواهد شد. به عنوان مثال برای انجام یک محاسبه فرکانس با استفاده از نظریه mp2 به صورت زیر دایرکتیو Task استفاده می کنیم:
Task mp2 freq
توجه کنید که بیشتر دایرکتیوها دارای مقادیر پیش فرضی هستند بنابراین لازم نیست تمام دایرکتیوها در فایل ورودی مشخص شود. مقدار یک دایرکتیو تنها زمانی باید مشخص شود که دایرکتیو فاقد پیش فرض باشد و یا به مقداری متفاوت با مقدار پیش فرض نیاز باشد.
برای درک بهتر مطالب بالا، به چند نمونه فایل ورودی NWChem توجه کنید:
یک: محاسبه انرژی مولکول نیتروژن
همانطور که مشاهده می کنید در این مثال اطلاعات بسیار کمی از طریق ورودی به برنامه داده شده و برای بسیاری از تنظیمات از مقادیر پیش فرض استفاده شده است. در این فایل دایرکتیو title یک دایرکتیو ساده است که عنوان محاسبه را تعیین می کند. استفاده از این دایرکتیو ضروری نیست با این حال باعث واضح تر شدن اطلاعات خروجی خواهد شد. دایرکتیوهای geometry و basis دو دایرکتیو ترکیبی هستند که به ترتیب مختصات مولکولی و نوع توابع پایه را تعیین می کنند. توجه کنید که این دایرکتیوهای ترکیبی به دایرکتیو end ختم شده اند. همانطور که مشاهده می کنید در این فایل مختصات مولکول در سیستم کارتزین آورده شده است. عبارت “n library cc-pvdz” ، در داخل دایرکتیو ترکیبی basis ، به نرم افزار می گوید برای اتم های نیتروژن از توابع پایه cc-pvdz استفاده کند، که این توابع در کتابخانه داخلی نرم افزار موجود اند. کتابخانه توابع پایه NWChem شامل طیف بسیار گسترده ای از توابع پایه است با این حال علاوه بر این توابع، دایرکتیو basis امکان تعریف صریح توابع پایه را نیز فراهم می کند. در پایان دایرکتیو task یک محاسبه انرژی با استفاده از نظریه هارتری-فوک از نرم افزار درخواست می کند. توجه کنید که تمام دایرکتیوهای مربوط به این محاسبه قبل از دایرکتیو task آورده شده اند. دایرکتیوها قبل از task به هر ترتیب دیگری می توانستند آورده شوند.
دو: محاسبه ساختار بهینه کاتیون آب
سه دایرکتیو اول در این فایل جزء دایرکتیوهای راه انداز هستند و قبل از سایر دایرکتیوها پردازش می شوند. توجه کنید که لزومی برای اول نوشته شدن این دایرکتیوها وجود ندارد و این دایرکتیو ها می توانند در هر جایی قبل از دایرکتیو task قرار بگیرند. دایرکتیو start به نرم افزار میگوید که محاسبات باید از ابتدا انجام شود و اطلاعات مربوط به محاسبه در فایلهایی با پیشوند h2o ذخیره شوند. دایرکتیو scratch_dir و Memory به ترتیب، آدرس پوشه ای که فایل های اسکرچ در آن ذخیره خواهد شد و میزان حافظه مورد استفاده برای انجام محاسبه را تعیین می کنند. در خط بعد میزان بار کل سیستم توسط دایرکتیو charge تعیین شده است. پس از این خط مختصات سیستم توسط دایرکتیو geometry تعیین شده است. توجه کنید که این دایرکتیو می تواند از واحدهای مختلفی استفاده کند که در اینجا از واحد آنگستروم استفاده شده است.
در خط دوازدهم، دایرکتیو basis توابع پایه مورد نیاز برای انجام محاسبه را تعیین کرده است. با استفاده از این دایرکتیو می توان برای هر یک از اتمهای ساختار توابع پایه متفاوت تعریف کرد، با این حال در اینجا عبارت * library 6-31g** بدین معنی است که برای تمام اتمها از توابع پایه 6-31g** استفاده شود، که در کتابخانه نرم افزار موجود است. در خط بعد دایرکتیو ترکیبی scf تنظیماتی مربوط به این نظریه را اعمال می کند. عبارت uhf تعیین می کند که از روش هارتری-فوک نامحدود برای انجام محاسبه استفاده شود. استفاده از این روش الزامی است با توجه به اینکه سیستم کاتیون و دارای یک الکترون جفت نشده است. عبارت doublet مشخص می کند که چندگانگی سیستم برابر با 2 است.
مانند مثال قبل دایرکتیو title عنوان کار را مشخص کرده است و در پایان دایرکتیو task یک محاسبه بهینه سازی ساختار با استفاده از روش mp2 از نرم افزار درخواست می کند.
سه: بهینه سازی ساختار و محاسبه فرکانس مولکول استن با استفاده از نظریه DFT
همانطور که مشاهده می کنید در این فایل سه دایرکتیو Task وجود دارد بنابراین سه محاسبه مختلف روی سیستم صورت خواهد گرفت. در مرحله اول محاسبه بهینه سازی ساختار روی مولکول استون با استفاده از توابع پایه 3-21g صورت خواهد گرفت. دایرکتیو ترکیبی DFT برای تعیین پارامترهای مربوط به این روش به کار گرفته شده. عبارت xc b3lyp مشخص می کند که برای محاسبه همبستگی و تبادل الکترون(exchange-correlation) باید از روش b3lyp استفاده شود. عبارت iterations 100 حداکثر تعداد سیکلها در هر گام DFT و عبارت DIRECT روش مواجهه با انتگرالها را مشخص می کنند. در مرحله دوم بهینه سازی ساختار روی همین مولکول با استفاده از توابع پایه بزرگتر 6-311+g** انجام خواهد شد. توجه کنید که برای انجام محاسبه دوم تنها دو دایرکتیو basis و title وجود دارند. بنابراین مقادیر سایر گزینه ها مانند محاسبه قبل خواهد بود. همچنین ساختار مولکول و توابع موج از نتایج محاسبه قبلی گرفته خواهند شد. در محاسبه سوم به همین صورت، مختصات مولکولی، توابع موج، توابع پایه و سایر تنظیمات از مراحل قبل اخذ خواهد شد و سپس یک محاسبه فرکانس انجام خواهد شد.
در پایان لازم به ذکر است که برای ساخت مختصات یک ترکیب شیمیایی برای NWChem می توان از هر نرم افزار رسم ساختار مولکولی استفاده کرد. برای انجام این کار کافی است که مختصات ترکیب را به صورت کارتزین (xyz) ذخیره و سپس سایر بخش های فایل ورودی را به آن اضافه کنید. NWChem در اولین مرحله مختصات کارتزین را به مختصات درونی خاص خود تبدیل خواهد کرد بنابراین استفاده از مختصات کارتزین تاثیری روی بازدهی محاسبه نخواهد داشت.
دیدگاهها
سلام و وقت بخیر
با شماره همراه انتهای سایت تماس حاصل فرمایید.
امکانش هست کسی که با نرم افزار آشنایی داره و کار میکنه رو معرفی بفرمایید.
به عنوان نمونه سینتکس صادر کردن دستور nwchem به این صورت است.
nwchem input.nw > output.out
سلام
احتمالا دستوری که برای اجرای نرمافزار صادر کردید اشتباهه! به چه صورت دستور رو صادر میکنید؟
میشه راهنمایی کنید که دلیلش چی هست
سلام. مرسی از لطف شما.
nwchem نرمافزار بسیار قویه و کاربردیه. بهتون توصیه میکنم حتما امتحانش کنید. در مورد سوال شما هم باید بگم که:
بله امکانش هست میتونید با استفاده از openbabel خروجی گوسین رو به ورودی nwchem تبدیل کنید. یا اینکه خروجی گوسین رو با استفاده از گوسویو باز کنید و دوباره به صورت فایل gjf ذخیره کنید. هنگام ذخیره کردن گزینه Write Cartesians رو تیک بزنید. بعد این فایل رو باز کنید و مختصات سیستم رو از داخل فایل به فایل ورودی nwchem خودتون کپی کنید.
من تا به حال با این نرم افزار کار نکردم ولی بسیار علاقمند به کار کردن با آن هستم. فقط سوالی که داشتم می توانیم قسمت geometry رو از ساختاری که با گوسین بهینه نمودیم برداشت کنیم؟
سلام
اینکه از یک نرمافزار در ایران کمتر استفاده میشه دلیل بر بد بودن اون نیست. در ایران بسیاری از محققین از همون نرمافزاری استفاده میکنند که از اساتیدشون یادگرفتن و به دنبال آشنایی با سایر نرمافزارها نیستند. در هر صورت nwchem یک نرمافزار معتبر بینالمللی است که تحقیقات بسیاری با استفاده از اون صورت گرفته. برای آشنایی با این تحقیقات کافیه در پایگاههای مقالات علمی اسم نرمافزار رو جستجو کنید!
برای مشاهده گرافیکی فایلهای خروجی و ورودی nwchem میتونید از نرمافزار gabedit استفاده کنید. علاوهبراین nwchem این قابلیت رو داره که مختصات مولکولی رو از فایلهای pdb بخونه. بسیاری از نرمافزارهای گرافیک مولکولی مثل gaussview قابلیت تولید فایل pdb رو دارند.
برای اطلاع از برنامههای آموزشی نیکوپرداش میتونید با شماره شرکت تماس بگیرید.
با احترام
ممنونم از زحماتتون
نرم افزار NWChem به نظر نرم افزار خوبی می رسه ولی چرا تو ایران کسی از اون استفاده نمی کنه اگه جایی رو سراغ دارید بگید. آیا مرکز شما برا آموزش نرم افزار هم فعالیتی داره؟
آیا نرم افزار گرافیکی هم با این نرم افزار کار میکنه برا ساخت فایل ورودی یا دیدن نتایج؟
ممنونم