بخشی از مقاله

چکیده

در این مقاله یک نرمافزار متنباز براي حل عددي معادلات سیال با روش تفاضل محدود روي شبکههاي باسازمان معرفی میگردد. طراحی ساختار داده در نرمافزار به گونهاي است که از شبکههاي باسازمان با ابعاد فضایی دلخواه پشتیبانی مینماید. نرمافزار قابلیت تقسیم شبکه عددي به چندین شبکه کوچکتر جهت پردازش موازي را دارد. نرمافزار با استفاده از قابلیتهاي جدید زبان سیپلاسپلاس توسعه یافته است طوري که امکان محاسبه کارآمد عبارات حسابی و تفاضل محدود را به نحو سادهاي براي متغیرهاي میدان فراهم میآورد.

علاوه بر روشهاي تفاضل محدود خطی که به سادگی پیادهسازي میشوند، روشهاي غیرخطی نظیر روشهاي تسخیر شوك ضرورتاً غیرنوسانی وزندار پیادهسازي شدهاند. همچنین امکان استفاده از روشهاي تفاضل محدود فشرده که منجر به دستگاه معادلات سهقطري میشوند، در نرمافزار وجود دارد. تعریف و اعمال شرایط مرزي مختلف در نرمافزار پیشبینی گردیدهاست. با استفاده از چندین آزمون از جریانهاي تراکمناپذیر و تراکمپذیر و نیز از جریانهاي لزج و غیرلزج قابلیت نرمافزار نشان داده میشود.

-1 مقدمه

نرمافزارهاي متنباز امروزه در میان محققان جهت شبیهسازهاي عددي بسیار رایج شدهاست. علاوه بر رایگان بودن، اصلیترین مزیت این نرمافزارها متنباز بودن آنها میباشد که کاربران آن را با توجه به نیازهاي خاص خود تنظیم و یا تغییر میدهند، نیازهایی که ممکن است در نرم افزارهاي تجاري موجود در بازار پیشبینی نشده باشد. غالب نرمافزارهاي تجاري و متنباز موجود براي شبیهسازهاي عددي بر مبناي روش حجم محدود1 یا اجزاي محدود2 میباشند. در زمینه دینامیک سیالات محاسباتی میتوان به نرمافزارهایی همانند اُپنفوم2] 3،[1،اسیو4] 4،[3 و کیوا[5] 5اشاره کرد.

برخی نظیر کیوا با زبانُفرترن و برخی دیگر نظیر اُپنفوم واسیو با استفاده از قابلیت شیءگرایی6 با زبان سیپلاسپلاس توسعه یافتهاند. هرچند روش تفاضل محدود بر خلاف روشهاي حجم محدود و اجزاي محدود براي هندسههاي پیچیده به سادگی قابل استفاده نیست، اما براي هندسههاي ساده کارایی بهتري دارد طوري که میتوان روشهاي مرتبه بالا با سرعت اجراي مناسب را به سادگی استفاده نمود.

در این مقاله یک نرمافزار متنباز بومی براي حل معادلات سیالات با شبکههاي باسازمان با استفاده از روشهاي تفاضل محدود معرفی میشود. نرمافزار با استفاده از قابلیت شیءگرایی در زبان سیپلاسپلاس و نیز با استفاده از قابلیتهاي جدید در این زبان توسعه یافتهاست 8]،7،.[6 ساختار داده به گونهاي طراحی شدهاست که شبکههاي باسازمان در ابعاد فضایی دلخواه را پشتیبانی مینماید. با استفاده از کتابخانه امپیآي7 قابلیت تقسیم شبکه عددي به شبکههاي کوچکتر براي پردازش موازي وجود دارد.

تعریف عملگرهاي تفاضل محدود خطی در نرمافزار فراهم گردیدهاست. همچنین امکان تعریف روشهاي غیرخطی همانند روشهاي تسخیر شوك8 ضرورتاً غیرنوسانی وزندار9 وجود دارد. علاوه بر آن امکان استفاده از روشهاي تفاضل محدود فشرده10 که منجر به حل دستگاه معادلات سهقطري میشوند در نرمافزار وجود دارد. تعریف و اعمال شرایط مرزي نیز به سادگی امکانپذیر میباشد. بهزودي این نرمافزار پس از راهاندازي سایت میزبان، در اختیار محققان قرار میگیرد.

-2 شرح نرمافزار

براي حل یک مسأله در نرمافزار در حالت کلی گامهاي زیر نیاز میباشد:

- 1  تعریف پارامترهاي مسأله و مقداردهی آنها در داخل برنامه یا از روي یک فایل

- 2  تعریف یک شبکه عددي

- 3  تقسیم شبکه به شبکههاي کوچکتر

- 4  تعریف متغیرهاي میدان روي شبکه تعریف شده

- 5  تعریف وصلهها11 براي نقاط درون میدان و نقاط مرزي

- 6  تعریف عملگرهاي تفاضل محدود

- 7  ایجاد حلقه براي تکرار یا پیمایش زمانی

- 8  اعمال عملگرهاي تفاضل محدود مرتبط براي نقاط درون میدان یا اعمال شرایط مرزي

- 9  انتقال دادهها براي بروزسازي متغیرهاي میدان میان شبکهها

- 10 خروجی گرفتن و ذخیرهسازي نتایج روي یک فایل براي تمامی مراحل فوق در نرمافزار ابزارهاي مورد نیاز در نظر گرفته شدهاست. در ادامه براي یک مسأله ساده یک برنامه کامل که شامل تمام مراحل فوق میباشد آورده شدهاست.  براي حل این معادله با استفاده از نرمافزار برنامه زیر - که در دو ستون نمایش داده شده - نوشته شدهاست. براي توضیح برنامه برخی خطوط شمارهگذاري شدهاند. ابتدا در خط 1 یک شبکه باسازمان تعریف و در خط 2 این شبکه براي تقسیمبندي به یک تقسیمکننده داده شدهاست. در خط 3 پس از تعریف ابعاد و اندازه شبکه، تقسیمبندي شبکه با توجه به تعداد پردازندهها صورت میگیرد.

در خطوط 4 تا 6 متغیرهاي میدان تعریف شدهاند. در خط 7 تخصیص حافظه براي متغیر مکان و سپس در خط 8 مقداردهی آن صورت میگیرد. در خطوط 9 تا 13 وصلههایی براي نقاط مرزي و نقاط درونی تعریف میشوند و در خطوط 14 تا 18 این وصلهها نقاط مرتبط را یافته و ذخیره مینمایند. در خطوط 19 تا 21 عملگرهاي تفاضلی پسرو در دوجهت عمودي و افقی تعریف میشوند. خط 22 نیز حلقه پیمایش زمانی میباشد. در خط 24 رابطه تفاضل محدود - 2 - به نقاط درونی اعمال شدهاست. خطوط 25 تا 28 براي اعمال شرایط مرزي میباشد. در خط 29 انتقال دادهها براي متغیر تعیین شده انجام میگیرد. خطوط 30 و 31 نیز براي خروجی گرفتن از نتایج روي یک فایل میباشد.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید