foamonmac-min

نحوه نصب اپنفوم ۵ روی سیستم عامل مک

همانطور که میدانید نرم افزار اپنفوم هر روز در حال گسترده شدن و کاربردی تر شدن است. بنابراین این نیاز حس خواهد شد که هر فرد این نرم افزار را روی سیستم شخصی خود نصب کند. حال این سیستم می تواند ویندوز باشد، لینوکس باشد یا حتی مک.

از آنجایی که آموزش نصب اپنفوم را روی سیستم عامل مک، به ندرت می توان در سایت های دیگر یافت، دراینجا به صورت کامل برای دوستان آماده شده است. چیزی که در ابتدا به آن نیاز است، این است که شما باید با مفهومی به نامContainer در مک آشنا باشید. وظیفه Container ها این است که شما برای اجرای نرم افزار خود نیازی به سیستم عامل خاصی نداشته باشید. مثلا شما برای اجرای اپنفوم به معماری لینوکس نیاز دارید اما اکثرا لپتاپ های موجود، دارای سیستم عامل مک یا ویندوز هستند؛ از طرفی هم استفاده از ماشین های مجازی به دلیل افت سرعت، منطقی نیست. پس بهترین راه، استفاده ازContainer هاست تا کاهش سرعتی در شبیه سازی ها نداشته باشید. حال به سراغ نصب می رویم.

در قدم اول ، از لینک زیر نرم افزارDocker رو نصب کنید:

توجه کنین که نسخه Stable آن را نصب کنید. سپس برای دانلود پکیج های اپنفوم این دستور را در ترمینال مک وارد کنید:

و سپس :

برای تنظیم Case Sensitive Filing System نیز این دستورات را به ترتیب در ترمینال وارد کنید:

در حالت پیشفرض، فضای ۱۰ گیگابایتی برای اپن فوم در آدرس زیر در نظر گرفته میشود:

برای مثال برای ایجاد ۲۰ گیگ فضا ، دستورات زیر در ترمینال وارد کنید:

در مرحله ی بعد برای اجرای اپن فوم دستورات زیر را وارد کنید :

منتظر بمانید تا دانلود تمام شود .
نصب تمام شد و حالا اپن فوم اماده است . برای تست دستورات زیر را اجرا کنید :

تبریک ! شما اولین شبیه سازی را با مک انجام دادید!
نکته ای که باید اشاره شود این است که برای استفاده از نرم افزار پاراویو، بهتر است تا از لینک زیر نسخه مربوط به مک را دانلود و برای دیدن نتایج از آن استفاده کنید.

در این صورت کافیست تا از دستور touch بعد از حل کیس خود استفاده کنید و از نرافزار پاراویو برای باز کردن فایل نتایج استفاده کنید.

openfoam-v5-featured-800x400-min

از نسخه ۵ اپنفوم عقب نمانید!

نسخه ۵ نرم افزار متن باز اپن فوم در تاریخ ۲۶ جولای منتشر شد. این نسخه، قابلیت های جدید و پیشرفته ی عمده ای را بر روی کد های موجود ایجاد کرده است.

این قابلیت ها شامل مدل سازی امواج و بازنویسی الگوریتم های مسیریابی ذرات می شوند. همچنین قابلیت استفاده از snappyHexMesh بهبود یافته است. مدل های انتقال، توربولانسی، ترمودینامیکی و احتراق جدیدی در این نسخه از اپن فوم ارائه شده اند. همچنین توسعه های چشمگیری در حل عددی جریان های چندفازی و تراکم پذیر ایجاد شده است. از طرفی نسخه جدید نرم افزار  ParaView 5.4.0 با این نسخه همراه شده است. در زیر به برخی از مهمترین تغییرات و اضافات در این نسخه از اپن فوم می پردازیم:

برای مشاهده لیست کامل به اینجا مراجعه کنید.

چندفازی برای مهندسی دریایی:

  • مدل سازی موج: اجرای شرایط مرزی برای اعمال امواج در یک ورودی مطابق با استانداردهای بالای کیفیت در کدنویسی
  • مقداردهی اولیه موج: ابزار setWaves جدید برای مقداردهی اولیه موج.
  • دمپ کردن امواج: استفاده از fvOption جدید verticalDamping برای جلوگیری از بازگشت موج در خروجی و ایجاد خطا

چندفاز در حالت کلی:

  • بالا بردن پایداری حل در حلگرهای چندفازی به لطف شرایط مرزی جدید در ورودی و خروجی
  • مدل سازی کشش سطحی: چارچوب جدید برای مدل های کشش سطحی با قابلیت انتخاب زمان اجرا (Runtime-selectable) در کتابخانه interfaceProperties .
  • دستیابی راحت تر به تنش سطحی وابسته به دما از طریق کلاس liquidProperties.
  • مدل سازی فیلم سیال: یک سالور چندفازی آزمایشگاهی جدیدی compressibleInterFilmFoam که انتقال بین کپچرکردن سطح تماس حجم سیال و تخمین لایه را دربر می گیرد.

مدل سازی انتقال و آشفتگی:

  • مدل سازی ویسکوزیته: مدل عمومی جدید غیر نیوتنی strainRateFunction که کاربر می تواند تابعی را در زمان اجرا با استفاده از توابع Function1مانند tablecsvFilepolynomial و غیره انتخاب کند مانند مدل جدید Casson برای رئولوژی خون.
  • مدل سازی آشفتگی : مدل توربولانسی RSM در VoFو سالورهای دیگر چندفازی تراکم ناپذیر.

ذرات و مسیریابی:

  • تزریق ذرات: ایجاد توزیع ذرات massRosinRammler برای اعمال تعداد مختلف از هر دسته از ذرات برای دسته ذرات جرم ثابت.
  • بهینه سازی: اضافه کردن solveFlow به منظور فریز کردن میدان جریان با حفظ حرکت ذرات در sprayFoam .

اطلاعات بیشتر در  “OpenFOAM Barycentric Tracking”

احتراق:

  • TDAC/ISAT: مدل شیمیایی جدید TDAC (Tabulation of Dynamic Adaptive Chemistry) را در TDACChemistryModel  فراهم می کند.
  • مدل جدید احتراق آشفته EDC (Eddy Dissipation Concept) شامل پشتیبانی برای       TDAC/ISAT      برای شیمی کاربردی.

شبکه بندی و مش ها:

  • BlockMesh: قابلیت جدید تصویر کردن نقاط و خطوط روی سطوح. همچنین اصافه شدن قابلیت Multi-grading در ابزار.
  • refineMesh: عملیات موازی اصلاح شده.
  • Mesh Motion: اضافه شدن امکان داشتن چندین مش متحرک به صورت همزمان در یک مساله، مصلا داشتن دو حرکت چرخشی مخالف هم به صورت AMI در یک مساله.

انرژی، انتقال حرارت و مدل سازی ترموفیزیک:

  • مدل سازی ترموفیزیکی مایع: اضافه شدن معادله حالت برای تقریب بوزینسک برای جریان های شناور.
  • حل گرهای تراکم پذیر: ایجاد rhoSimpleFoam (جریان پایا) که با هر مدل ترموفیزیکی شامل مایعات با ثبات بیشتری کار می کند.
  • اضافه شدن تشعشع به صورت fvOption برای هر حلگری که انرژی را حل می کند.

موازی :

  • فرمت فایل جدید Collocated برای جمع آوری همه دیتا و مش برای هر میدان decompose شده درون یک فایل.
  • امکان نوشته شدن دیتا به صورت موازی که به پردازشگر اجازه میدهد در حین ذخیره دیتا به حل ادامه دهد.

بهره وری و قابلیت استفاده:

  • ورودی کاربر: نحوه ورودی fvOptions بسیار کاربرپسند ساخته شده است.
  • Function1: اضافه شدن گستره ای از توابع صعودی از جمله توابع خطی، درجه دوم، ربع سینوسی و ربع کسینوسی که می تواند به هر تابع دیگری با استفاده از مقیاس اضافه شود.
  • “Limiting” fvOptions: برای محدودکردن حداکثر سرعت، به عنوان مثال برای جلوگیری از سرعت های غیرفیزیکی بیش از حد تولید شده در حین ضربه زدن.
of5onU1604-min

نحوه نصب اپنفوم ۵ روی اوبونتو ۱۶٫۰۴

نسخه جدید OpenFOAM یعنی نسخه ۵ که در۲۶ جولای سال ۲۰۱۷ منتشر شده است، قابلیت های جدید و پیشرفت های عمده ای بر روی کدهای موجود ایجاد کرده است. شبیه سازی امواج به این نسخه اضافه شده و امکانات ابزار snappyHexMesh بیشتر شده است. همچنین قابلیت های جدید در ابزارblockMesh  به عنوان تولید کننده مش پس زمینه، حل مسائل با مش چرخشی را بهبود داده است. مدل های انتقال، توربولانسی، ترمودینامیکی و احتراقی جدید دراین نسخه از اپن فوم ارائه شده اند. همچنین بهبود چشم گیری درحل عددی جریان های چندفازی وتراکم پذیر ایجاد شده است. نسخه جدید نرم افزار Paraview 5.4.0 نیز با این نسخه همراه شده است. به دلیل اهمیت موضوع، دراین پست به نحوه ی نصب اپن فوم ۵ برروی ابونتو ۱۶٫۰۴ می پردازیم. برای نصب اپن فوم در ابونتو مراحل زیر را به ترتیب در ترمینال لینوکس کپی و پیست کنید.

ابتدا لازم است که پکیج نرم افزار به لیست پکیج های اوبونتوی شما وارد  شود:

حال باید پکیج های اوبونتو آپدیت شود، که یکی ازاین پکیج ها همان اپن فوم است:

حال نوبت به دانلود نرم افزار اپن فوم می­رسد:

یکی از مزیت های خوب این نسخه ی اپن فوم این است که درکنار نصب نرم افزار،  paraviewOpenFOAM 5.4 نیز همراه اپن فوم نصب شده و دیگر نیازی به نصب جداگانه ی آن نیست.

هنگام نصب نرم افزار ممکن است به خطایی مشابه خطای زیر برخورد کنید:

در این مواقع دانلود کامل نشده و یکی ازعلت های این خطا ممکن است به علت مشکلات مربوط به خط اینترنت شما باشد؛ اگر با این خطا مواجه شدید دستور نصب اپن فوم را مجددا تکرار کنید و از دانلود کامل پکیج اپن فوم اطمینان حاصل کنید.

حال برای کامل شدن فرایند نصب دستورات زیر را درترمینال وارد کنید:

بعد از باز شدن فایل دستور زیر را به انتهای آن اضافه کنید و در نهایت فایل را بسته وآن را ذخیره کنید.

نصب دراین مرحله به پایان می­رسد. برای اطمینان ازنصب نرم افزار دستور زیر را اجرا کنید:

درادامه لازم است پوشه ی مربوط به کاربر جهت قرار دادن مثال های آموزشی تشکیل شود، به این منظور دستور زیر را به ترتیب در ترمینال وارد کنید:

همچنین بهتر است پوشه حاوی همه مثال های از پیش آماده شده اپنفوم را در پوشه run خود کپی کنید. دستور زیر را وارد کنید:

حال برای  حل یک مثال ساده، دستورات زیر را اجرا کنید:

bashOnWindows

نحوه نصب اپنفوم روی ویندوز ۱۰

ُسلام!

طبق یک نظرسنجی که در گروه تلگرامی سایت برگزار شد، تصمیم بر این شد که در این پست آموزش “نحوه نصب اپنفوم روی ویندوز ۱۰” رو داشته باشیم. خوشبختانه بعد از مدت ها سایت رسمی اپنفوم به صورت رسمی نحوه نصب اپنفوم رو در ویندوز ۱۰ قرار داد. فقط باید دقت کنید که این کار فقط روی ویندوز ۱۰ امکان پذیر هست و فعلا آپدیتی برای ویندوزهای دیگه برای داشتن این قابلیت ارائه نشده. در واقع ویندوز ۱۰ قابلیتی پیدا کرده (البته نه در ورژن های قدیمیش) که می تونید به وسیله اون، Terminal اوبونتو رو در ویندوز خودتون داشته باشید. داشتن Terminal برای یک “لینوکس گیک” (!) به معنی در اختیار داشتن تمام امکانات سیستم عامل لینوکس هست! 🙂

افراد خیلی زیادی شاید مشکل در نصب لینوکس به صورت Dual Boot با ویندوز داشتند و یا به هر دلیلی نمی خواستند لینوکس رو نصب بکنند. این افراد مجبور بودند تا اوبونتو رو به صورت مجازی در سیستم خودشون نصب بکنند و بعد اپنفوم رو روی اون نصب کنند. این کار باعث کاهش فوق العاده زیاد سرعت اوبونتو میشد و عملا کار با اپنفوم رو خیلی سخت میکرد. اما با این عرضه سایت اپنفوم، میشه خیلی راحت و با سرعت بالا کیس های اپنفوم رو ران کرد. طبق ادعای سایت اپنفوم، تغییر محسوسی در سرعت این نسخه با نسخه لینوکسی وجود نداره. البته که من بازهم نسخه لینوکسی رو ترجیح میدم! به خاطر خیلی دلایل که شاید بعدا بهشون اشاره کردیم 😉

یک نکته همون اول کار بگم که این کار نیاز به دانلود داره! اونطور که من تخمین زدم شما باید نزدیک به ۴۶۰ مگابایت (شاید هم بیشتر) از اینترنت دیتا دانلود کنید. البته در این عدد، حجم اپنفوم هم حساب شده. خب کار رو شروع می کنیم:

در مرحله اول شما باید مطمئن بشید که آیا نسخه ویندوز ۱۰ شما قابلیت اضافه کردن ترمینال لینوکس رو به خودش داره یا خیر. برای این کار وارد محیط برنامه Settings ویندوز بشید:

و بعد از داخل اون، وارد قسمت System بشید:

حالا تو اینجا Build مربوط به ویندوز خودتون رو پیدا کنید:

اگر این مقدار طبق گفته سایت ماکروسافت از ۱۴۳۱۶ بیشتر باشه، ویندوز شما قابلیت مورد نظر رو داره و می تونید ادامه بدید. در غیر این صورت باید برید و از قسمت Update Windows این قابلیت رو دانلود و نصب کنید. آپدیتی که باید دنبالش باشید نامش Feature update to Windows 10, version 1607 هست.

خب حالا اگر مورد بالا، مشکلی نداشت ادامه کار رو به این صورت طی می کنیم. شما باید برید و این قابلیت رو در ویندوز خودتون فعال کنید. برای این کار دوباره وارد قسمت Settings بشید، ولی این بار به قسمت Updates & Security برید. حالا در این قسمت روی قسمت For Developers کلیک کنید و گزینه Developer Mode رو انتخاب کنید:

احتمالا با انتخاب این گزینه به شما میگه که ویندوز شما احتیاج به یک رستارت داره. ویندوز رو رستارت کنید. بعد از انجام این کار حالا به Control Panel سیستم برید و وارد قسمت Programs بشید.

در این قسمت Turn Windows Features On or Off رو انتخاب کنید:

در این صورت پنجره ای باز خواهد شد که به شما اجازه میده یک سری از قابلیت های ویندوز رو روشن/خاموش کنید. در گزینه های آخر، گزینه مربوط به Windows Subsystem for Linux (Beta) رو فعال کنید و کامپیوتر رو رستارت کنید:

بعد از رستارت این قابلیت به ویندوز شما اضافه شده و شما می تونید با باز کردن Start Menu و تایپ Bash برنامه Bash on Ubuntu on Windows رو مشاهده و باز کنید:

حالا ترمینال لینوکس در اختیار شماست! 🙂 وقتی برای اولین بار این برنامه رو باز می کنید از شما می خواد تا دانلود اوبونتو روی ویندوز رو تایید کنید. در واقع یک اوبونتوی کوچک روی سیستم شما همراه با همه فایل های ضروری نصب خواهد شد. برای ادامه کار باید حرف Y رو وارد کنید و Enter بزنید:

با انجام این کار دانلود شروع خواهد شد و اگر سرعت پایینی دارید، کمی حوصله کنید؛ شاید نزدیک به یک ساعت. بعد از اتمام دانلود، ویندوز پیغامی مبنی بر رستارت خواهد داد، اما فعلا رستارت نکنید! اجازه بدید تا Bash کاملا نصب و ستاپ بشه. در پایان می بینید که از شما یک اسم User و Password برای اوبونتو میپرسه. نام User رو وارد کنید (که میتونه هر اسمی باشه) و بعد دو بار به ترتیبی که خواسته شده Password رو وارد کنید. البته در ورژن های قدیمیتر ویندوز  مرحله آخر یعنی وارد کردن نام کاربری و رمز عبور نشون داده نمیشه و شما با عنوان کاربر root به لینوکس معرفی خواهید شد. با اتمام این مرحله، پیغامی مبنی بر اتمام مراحل نصب در ترمینال برای شما نشون داده میشه و شما می تونید دستورات Bash رو وارد کنید:

حالا رایانه رو رستارت کنید. 🙂 خب تا اینجا مرحله نصب ترمینال Bash به پایان رسیده و می تونیم کار رو برای نصب اپنفوم و پاراویو ادامه بدیم. اما قبلش یک نکته کوچک: شاید این سوال برای شما هم پیش بیاد که الان پوشه HOME لینوکس کجای کامپیوتر شماست؟ این پوشه رو می تونید در آدرس زیر پیدا کنید:

که در واقع همون اینجاست:

Username هم نام کاربری شما در ویندوز هست. برای نصب اپنفوم کافیه از دستورات همیشگی نصب اپنفوم استفاده کنید. یعنی:

دقت کنید که در اینجا برای کپی پیست کردن شاید با کمی مشکل مواجه بشید. برای پیست کردن داخل ترمینال کافیه فقط یکبار از راست کلیک موس استفاده کنید. اگر دیدید با انجام این کار یک سری حروف بی مفهوم در ترمینال پیست شد، نگران نباشید. کافیه یکبار تکست مربوطه رو داخل یک Notepad پیست کنید و دوباره از اونجا به ترمینال کپی کنید. در این صورت مشکل حل خواهد شد. باز هم نشد؟ ;/ حتما زبان ویندوز روی “فا” قرار گرفته. اون رو En کنید تا مشکل حل بشه 😉 خلاصه بعد از همه اینها و اجرای دستورات بالا نزدیک به ۳۱۳ مگابایت برای اپنفوم نسخه ۴ دانلود خواهد شد.

احتمال داره در میانه نصب خطای Unable to Fetch… بده و متوقف بشه. کافیه دوباره دستور نصب اپنفوم رو وارد کنید. دقت کنید که در این صورت حتما فقط باید دستور آخر از چهار دستور بالا رو اجرا کنید. اگر باز هم نشد، اینترنت خودتون رو عوض کنید و دوباره امتحان کنید. کار نشد نداره 😉

وقتی دانلود و نصب اپنفوم تمام شد، مراحل همیشگی پایانی رو انجام بدید:

و بعد:

فینیشد، حالا نصب اپنفوم شما تکمیل شده ولی فعلا یک قدم به انتهای مسیر مونده. در ادامه کار لازمه تا نرم افزاری رو روی ویندوز نصب کنیم تا بتونه نرم افزارهای گرافیکی لینوکس رو برای ما اجرا کنه. تابحال گمبیت نصب کردید؟ Exceed هم باهاش نصب کردید، درسته؟ نرم افزار Exceed در واقع نرم افزار تبدیل محیط لینوکسی گمبیت به ویندوز هست. بله بله! گمبیت مخصوص لینوکسه 🙂 آموزش نصب اون رو هم روی لینوکس خواهیم داشت ;). خب برای این کار شما باید نرم افزاری به نام Xming رو از آدرس زیر دانلود، نصب و بعد اجرا کنید:

بعد از اجرا، دوباره وارد محیط ترمینال بشید. حالا باید تنظیم کنیم که در صورت باز شدن نرم افزار پاراویو، این نرم افزار از Xming برای نمایش محتوای گرافیکی خودش استفاده بکنه. پس بنابراین این کار رو هم انجام بدین:

نصب نرم افزار تموم شده و می تونید از اپنفوم استفاده بکنید. برای شروع پوشه run رو تولید کنید و tutorials رو داخلش کپی کنید:

و حالا ران کردن اولین کیس:

که در نهایت:

هَو فان 🙂

telegram-group

راه اندازی کانال تلگرام و ایجاد تغییرات

بعد از مدت ها دوباره سلام.

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

اما در این پست می خوایم اعلام کنیم که گروه تلگرامی سایت راه اندازی شد و شما می تونید ازین به بعد در گروه سوالات خودتون رو مطرح بکنید. صفحه پرسش و پاسخ قبلی سایت رو حذف کردیم چرا که کارایی لازم رو در مقابل گروه تلگرامی نداشت. در گروه تلگرامی اهداف متعددی رو دنبال خواهیم کرد:

– اشتراک گذاری تجربیات در زمینه CFD
– توسعه نرم افزارهای متن باز از جمله OpenFOAM
– تهیه آموزش، مستند سازی و بایگانی تجربیات در قالب پکیج های آموزشی
– رفع مشکلات CFD
– تشکیل کارگروه های مطالعاتی
– استخدام و فرصت های شغلی مهندسین شبیه سازی

همچنین:

– دوستان هر مشکلی در زمینه CFD، OpenFOAM و یا نرم افزارهای دیگه داشته باشند می تونند مطرح کنند. تمرکز بیشتر روی نرم افزار OpenFOAM هست.
– به مرور اقدام به تشکیل کارگروه های مطالعاتی در زمینه های خاص خواهیم کرد و یک بانک اطلاعاتی در همان زمینه توسط دوستان علاقه مند تولید خواهد شد.
– نتیجه این کارگروه ها حل مسائل/بنچمارک های معمول و پیچیده و در عین حال توسعه/کدنویسی نرم افزار OpenFOAM خواهد بود.

برای عضویت در گروه لطفا روی عکس زیر کلیک کنید:

همچنین برای عضویت در کانال تلگرامی شرکت سیمیکو و با خبر شدن از اخبار و مطالب CFD می تونید روی عکس زیر کلیک کنید:

به زودی با پست های جدید با شما خواهیم بود …
درود.

of_course

دوره آموزش ویدئویی اپنفوم

خوشبختانه تیم سیمیکو شروع به برگزاری دوره کامل آموزشی نرم افزار اپنفوم به صورت ویدئویی و آنلاین کرده است. این دوره تمامی مطالب مقدماتی و متوسطه اپنفوم را در بر خواهد داشت و امیدواریم که تاثیر خوبی در روند پیشرفت نرم افزار متن باز اپنفوم در کشور داشته باشد.

جلسات دوره، به صورت تدریجی روی سایت شرکت سیمیکو قرار خواهند گرفت و شما به محض قرار گرفتن ویدئوها می توانید آنها را خرید و مورد استفاده قرار دهید. همچنین تمامی مطالب به صورت ریز و جداگانه قرار می گیرند تا شما بتوانید بنا به نیاز خود و فقط در مورد موضوع مورد نظر از محتویات آموزشی بهره ببرید.

برای استفاده از این دوره به این صفحه مراجعه کنید.

contract

راه اندازی بخش ثبت درخواست

سلام!

خوشبختانه از امروز قسمت ثبت درخواست سایت راه اندازی شد. شما از امروز به بعد می تونید با مراجعه به این قسمت و ثبت انواع درخواست در زمینه CFD، تمام نیازهای خودتون رو برطرف کنید. شما قادرید تا هر نوع درخواستی در زمینه CFD داشته باشید. درخواست ها توسط تیم سیمیکو بررسی و ارزیابی میشند. بعد با شما تماس گرفته شده و در مورد ادامه کار صحبت می کنند. شرکت سیمیکو تیم قدرتمندی متشکل از اساتید هیئت علمی، دانشجویان دکتری، کارشناسی ارشد و کارشناسی رو در اختیار داره که می تونه به بهترین نحو نیازهای شما رو در زمینه CFD برطرف کنه. به زودی با این تیم بیشتر آشنا خواهید شد ;). باید اشاره کنیم که در این قسمت، علاوه بر نرم افزار اپنفوم، تمامی نرم افزارهای CFD دیگه هم مد نظر قرار داده شده اند؛ بنابراین هیچ محدودیتی از نظر نرم افزاری وجود نداره. می تونید هر نوع درخواستی رو برای هر نرم افزاری داشته باشید. حتی درخواست ورکشاپ های آموزشی، درخواست کدنویسی به زبان های مختلف و غیره.

انواع درخواست ها:

  • طراحی حلگرهای جدید: طراحی حلگرها برای حل مسائل مختلف و معادلات جدید مخصوصا در اپنفوم چیزی هست که امروزه بسیار بهش نیاز هست.
  • اضافه کردن مدل های جدید: در بسیاری از اوقات لازم هست که شما مدل های جدیدی رو به مساله خودتون اضافه بکنید. مثلا اضافه کردن یک مدل توربولانسی جدید، تعریف یک شرط مرزی جدید، اضافه کردن یک مدل تشعشعی جدید و غیره.
  • شبکه بندی: بحث شبکه و کیفیت اون از جمله مباحثی هست که باید خیلی بهش توجه کرد. کیفیت شبکه اونقدر مهم هست که نزدیک به ۶۰ تا ۷۰ درصد از زمان یک متخصص CFD رو به خودش اختصاص میده. در اینجا متخصصین می تونند بهترین کیفیت برای انواع شبکه (ساختاریافته و یا غیر ساختاریافته همراه با شبکه های لایه مرزی) رو برای شما مهیا کنند.
  • UDF: بحث UDF نویسی در فلوئنت، باعث میشه تا شما به ابزارهای بسیار بیشتری برای بررسی مسائل خودتون دسترسی داشته باشید.
  • ویدئوهای آموزشی: یکی از مهمترین ابزارهای آموزشی ویدئو هست. شما می تونید انواع ویدئوی آموزشی مورد نیاز خودتون در با انتخاب این گزینه درخواست کنید.
  • اسناد آموزشی: اگر نیاز به فایل های متنی و عکس برای یاد گرفتن مطالب دارید، می تونید از این گزینه استفاده کنید.
  • پروژه های صنعتی و همکاری های آکادمیک: اگر به دنبال انجام کامل یک پروژه تمام عیار CFD توسط متخصصین این زمینه هستید، پس معطل نشید! پروژه خودتون رو با اطمینان خاطر به تیم سیمیکو بسپارید.
  • برگزاری ورکشاپ: تیم سیمیکو این قابلیت رو داره که در تمامی دانشگاه های کشور برای شما، همکلاسی ها و یا همکاران شما، ورکشاپ ها و دوره های CFD برگزار بکنه. این تیم قادر به تشکیل کلاس برای هر نوع آموزشی شامل نرم افزارهای اپنفوم، فلوئنت، سی اف ایکس، کامسول، استار سی سی ام و غیره هست. قیمت خوب در مقابل کیفیت خوب!
  • از این به بعد شما می تونید از صفحه اول سایت، در زیر قسمت پست های اخیر، به بخش ثبت درخواست دسترسی داشته باشید. همچنین لینک صفحه در منوی اصلی سایت نیز قرار داده شده.

به امید ارتقای دانش CFD و استفاده عملی از این دانش مفید در کشور.

bb

پردازش موازی در اپنفوم

مدت زمان انجام یک کار به‌ وسیله رایانه، به عوامل متعددی بستگی دارد که اولین آنها، سرعت پردازشگر رایانه‌ یا همان تعداد هسته های لپتاپتان است. یکی از قابلیت های مهم اپنفوم  امکان پردازش موازی آن است که باعث افزایش چشمگیر سرعت انجام محاسبات شما خواهد شد. اپنفوم از کتابخانه قدرتمند OpenMPI برای اجرای موازی بهره میگیرد.

decomposePar دستوری است که در اپنفوم میتوان با آن امکان پردازش موازی را فراهم کرد. برای اینکار نیازمند تولید و اعمال تغییرات در فایلی مشابه با همین نام، (decomposeParDict) در پوشه ی سیستم میباشیم. این دستور با تقسیم دامنه محاسباتی به چندین زیر دامنه سرعت حل شما را در مسائل سنگین بالا میبرد. در مسائل با حل موازی، دیتای مساله برای حل بین پردازشگرها تقسیم میشود.

نمونه ای از فایل system/decomposeParDict به شکل زیر است:

برای انجام عمل decompose می توان از چندین روش استفاده کرد. راحت ترین روش که دامنه را با توجه به جهات مختلف تقسیم بندی می کند روش simple نام دارد. دقت کنید که در روش simple ضرب عناصر بردار n باید دقیقا برابر با مقدار کلیدواژه numberOfSubdomains باشد. برای دیدن روش های دیگر می توانید از Banana Trick استفاده کنید. در روش Manual شما خودتان قادر به اختصاص دادن قسمت های مختلف دامنه حل به پردازشگرها هستید. این روش مخصوصا در زمانی به کار می آید که شما از کلاسترها برای حل مساله خود استفاده می کنید.

پس از تنظیم فایل decomposeParDict نوبت به اجرای دستورات مورد نیاز برای حل موازی می رسد. در ابتدای کار شما باید از این نکته اطمینان حاصل کنید که مساله شما در حالت عادی و بدون استفاده از پردازش موازی به خوبی ران شده و مراحل تکرار ادامه می یابد. در صورتی که ازین مرحله مطمئن نیستید به هیچ وجه وارد مرحله پردازش موازی نشوید. در مرحله بعد باید دامنه حل خود را با توجه به تنظیماتی که قبلا در فایل decomposeParDict انجام داده بودید به چند قسمت تقسیم کنید. این کار توسط دستور زیر قابل انجام است:

حال می توانید به راحتی حلگر خود را به صورت موازی اجرا کنید:

که در آن nProce تعداد پردازنده ها و foamExec نوع حلگر میباشد. با استفاده از عبارت > log، خروجی ترمینال را به فایلی به نام log منتقل کرده ایم تا در صورت نیاز برای کارهای دیگر از آن استفاده کنیم. همچنین کاراکتر & در آخر دستور باعث خواهد شد تا این دستور در پس زمینه سیستم عامل اجرا شود و در نتیجه ما قابلیت وارد کردن دستورات دیگر در ترمینال را داریم.

اگر از پیچیدگی و زمخت بودن دستور بالا شاکی هستید، دستور دیگری به شما معرفی می کنیم که دقیقا همان کاربرد بالا را دارد اما اینبار بسیار خلاصه تر است:

خوبی دستور دوم علاوه بر سادگی آن این است که خروجی حلگر، هم در ترمینال نمایش داده می شود و هم در داخل فایل log ذخیره می شود. خوبی این روش این است که شما هروقت اراده کنید می توانید بدون فوت وقت به خروجی های حلگر مثل مانده ها، ضرایب درگ، خروجی توابع و غیره در ترمینال دسترسی داشته باشید.

همچنین اگر از pyFoam استفاده می کنید، می توانید توسط دستور pyFoamPlotRunner.py که مختص ران کردن فایل های اجرایی در اپنفوم است، از حل موازی استفاده کنید:

درود.

SFO_post

پروژه SFO (StarCCM+ Fluent OpenFOAM)

با سلام خدمت دوستان.

در این پست قصد معرفی یک پروژه بسیار مفید رو دارم که به صورت آنلاین توسط آقای دکتر تیمور جواهرچی از دانشگاه واشنگتن ارائه شده. ایشون توسط تیمی، آموزش هایی رو در رابطه با سه نرم افزار دینامیک سیالات محاسباتی (StarCCM+ و Fluent و OpenFOAM) به صورت آنلاین در سایت Jupyter قرار دادند و همه می تونند به صورت رایگان از این آموزش های بسیار مفید استفاده کنند.

sfoبه لطف جناب دکتر جواهرچی، من هم به عنوان کوچکترین عضو این تیم، آموزشی رو در رابطه با نرم افزار OpenFOAM (مساله جریان حول استوانه در حال چرخش) به صورت آنلاین تدوین کردم. شما می تونید برای مشاهده همه آموزش های این پروژه به اینجا مراجعه کنید.

هر آموزش شامل چهار مرحله هست. این مراحل به ترتیب زیر هست:

۱- فیزیک مساله

۲- هندسه و شبکه بندی

۳- تنظیمات مربوط به شبیه سازی

۴- پس پردازش و نتایج

به امید خدا آموزش های بیشتری در رابطه با هر سه نرم افزار طی مدت زمان توسط این تیم اضافه خواهد شد که می تونید استفاده بکنید. لینک صفحه اصلی پروژه SFO به صورت دایمی در قسمت چپ سایت قرار داده شده تا بتونید در هر زمان به راحتی به آموزش ها دسترسی داشته باشید.

با تشکر از آقای دکتر جواهرچی که چنین گنجینه ارزشمندی رو برای همه CFD کارها تهیه کردند.

درود.

All Flavours in One

استفاده همزمان از چندین نسخه اپنفوم

از آنجا که نرم افزار های متن باز قابلیت بروزرسانی بیشتری نسبت به سایر نرم افزار ها دارند، بنابراین بروزرسانی آنها کاربردی تر و سریعتر از سایر نرم افزار های دیگر انجام می پذیرد. اپنفوم نیز از این قاعده مستثنا نیست . در نسخه های بروزرسانی شده میتوانید حلگر ها و مثال های جدیدتری که در نسخه های قدیمی تر وجود نداشت را بیابید و این بسیار سودمند است. برای مثال در نسخه ی ۳٫۰٫۱ شاهد حلگر driftFluxFoam بودیم که در حل مسائل دوفازی (بحث آلاینده ها) بسیار کاربردی است.

برای استفاده از آپدیت های جدید، شما دو راه دارید :

الف) نسخه قدیمیتر را همزمان با نسخه ی جدید داشته باشید (که اغلب همینطور است):

برای این منظور شما نیاز به دستور alias (اسامی مستعار) و ایجاد تغییراتی در فایل /.bashrc   دارید که به وسیله ی این دستور میتوانیم دستورهای شخصی خود رو درست کنیم و انرا نامگذاری کنیم.

برای این کار نیاز به فراخوانی مجزای دستورات هرکدام از نسخه های مختلف اپنفوم دارید. این کار توسط تغییر در فایل bashrc و استفاده از دستور alias انجام می گیرد. در هنگام نصب اپنفوم و در مرحله آخر شما عبارتی را به فایل $HOME/.bashrc اضافه کردید. می دانید که فایل bashrc دستورات و پارامترهای مختلف لینوکس را در هنگام بوت سیستم عامل فراخوانی می کند. در واقع ما فایلی را به خورد bashrc داده ایم که در هنگام بوت لینوکس، دستورات اپنفوم را فراخوانی کند! این عبارت به شکل زیر بود:

در واقع bashrc بدون هیچ دستور خاصی تمام دستورات اپنفوم نسخه ۳٫۰٫۱ را در هنگام بوت لینوکس، فراخوانی می کند. حال فرض کنید شما نسخه دیگری از نرم افزار نصب کرده اید و می خواهید دستورات آن نیز فراخوانی شوند. یعنی می خواهید چنین عبارتی را به انتهای فایل bashrc خود اضافه کنید:

اما آیا به نظر شما دستورات دو نسخه با هم قاتی نمی شوند؟ پس بنابراین باید به نحوی این مشکل را حل کنیم. باید کاری کنیم که با وارد کردن دو دستور مختلف، هرکدام از این نسخه ها فراخوانی شوند. برای این کار از دستور alias استفاده می کینم. دستور alias کمک را به کاربر می دهد که بتواند دستورات جدید برای خود تعریف کند. مثلا فرض کنید دستوری به شکل زیر تعریف می کنیم و این کد را در انتهای فایل bashrc قرار می دهیم:

کاری که این دستور (که همان OpenFOAM است) انجام می دهد تغییر آدرس ترمینال به پوشه OpenFOAM است، همین! خب حالا می خواهیم از دستورات جدید برای فراخوانی اپنفوم های مختلف استفاده کنیم. دستور مربوط به فراخوانی اپنفوم را که در بالا دیدید. کافیست به آن یک alias نسبت دهیم. مثلا برای نسخه ۳۰۱ دستور OF301 را در نظر می گیریم:

حالا اگر یک ترمینال جدید باز کنید (تا فایل bashrc را از نو لود کند)، و با وارد کردن دستور زیر:

دستورات مربوط به اپنفوم ۳۰۱ فراخوانی می شوند. کافیست مثلا وارد کنید:

تا نسخه حلگر icoFoam را ببینید. حال می توانید به تعداد دلخواه خود اپنفوم نصب کرده و به هرکدام در فایل bashrc یک alias اختصاص دهید. یعنی مثلا:

ب) فقط نسخه ی جدیدتر را داشته باشید:

رفتن به این قسمت از سایت اپنفوم برای آپگرید کردن و یا دانلود نسخه ی جدید. معمولا این کار توصیه نمی شود چرا که گاهی باعث عدم آپگریدینگ مناسب و اشکال در دستورات می شود.

شاد باشید!

coffee

How to sense in CFD

چگونه در CFD به جواب درست برسیم؟ قسمت سوم: Monitoring

[su_label type=”important”]تست شده در همه نسخه ها[/su_label]

در قسمت سوم و شاید آخرین قسمت از سری پست های “چگونه در CFD به جواب درست برسیم؟” به اهمیت Monitoring در CFD و همچنین نحوه انجام این کار در اپنفوم می پردازیم.

مانیتورینگ یعنی مشاهده لحظه به لحظه یک مقدار در حین حل CFD نسبت به زمان مساله. برای مثال فرض کنید شما در حال حل جریان حول یک استوانه هستید. همونطور که می دونید، در رینولدزهای بالاتر از حدود ۴۷ در پشت استوانه گردابه های فون کارمن تشکیل میشه. اما اگر تابحال این شبیه سازی رو در CFD انجام داده باشید، متوجه خواهید شد که چنین اتفاقی در ابتدای حل رخ نمیده. ابتدا جریان به سیلندر برخورد می کنه، سپس دو گردابه بزرگ حبابی شکل به صورت متقارن در پشت استوانه تشکیل میشند و در نهایت به تدریج با انحراف یکی از این حباب ها، فرآیند تشکیل گردابه ها شروع میشه. اگر شما قبل از شروع تشکیل گردابه ها حل رو متوقف بکنید، یعنی به چیزی می خواستید، هنوز دست پیدا نکردید. پس چطور می تونیم در حین حل ببینیم که آیا تشکیل گردابه ها آغاز شده یا نه. آیا هنوز باید حل رو ادامه بدیم؟

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

برای انجام مانیتورینگ شما لازم هست تا کدهایی رو به انتهای فایل controlDict کیس خودتون اضافه بکنید. در اینجا دو تا از معروف ترین این توابع رو معرفی میکنیم: Probes و forceCoeffs. تابع اول برای مشاهده مقدار نقطه ای یک پارامتر در میدان و تابع دوم برای مشاهده ضرایب نیرو مورد استفاده قرار میگیره.

فرض کنید شما در حال بررسی جریان حول یک ساختمان هستید. از طرفی می خواهید ببینید که کی جریان به حالت پایا می رسد. کافیست چند نقطه در آشفته ترین قسمت جریان (که معمولا در قسمت Wake قرار دارد) قرار بدید. اگر این نقطات به حالت پایا برسند به احتمال زیاد نقاط دیگر نیز پایا خواهند بود. مثلا فرض کنید مختصات این نقطات برابر با (۰ ۱۰ ۲۰) و (۰ ۱۲ ۲۰) هست. در این صورت ما می تونیم یک تابع برای بررسی پارامترهای U و p در این نقطه ایجاد کنیم:

می بینید که تعریف بسیار سادست. کافیست کد بالا را به فایل controlDict خود اضافه کنید. حالا اگر مساله خودتون رو ران بگیرید پوشه ای به نام postProcessing در کیس ایجاد خواهد شد که حاوی اطلاعات مورد نیاز شما نسبت به زمان است. مثلا:

شما می تونید این داده ها را با استفاده از gnuplot رسم کنید. بسیار ساده. یک اسکریپت gnuplot آماده کنید و کد زیر را داخل آن قرار بدید. اسم فایل رو هم مثلا بگذارید plot.

حالا خیلی راحت از کیس اصلی دستور زیر رو در حین حل (از یک ترمینالی به غیر از ترمینالی که در حال ران کردن مساله شماست) نمودار رو رسم کنید:

می بینید که در حین حل، نمودار برای شما رسم خواهد شد. هروقت نمودار به حالت ثابت و یا پریودیک رسید یعنی جریان شما در این قسمت پایا شده.

1

برای کنسل کردن نمودار باید از Ctrl+C استفاده کنید.

تابع دیگر forceCoeffs نام دارد. مساله جریان حول استوانه را که در ابتدا گفتیم به یاد بیاورید. می خواهیم ضرایب درگ و لیفت روی استوانه را مانیتور کنیم. بنابراین داریم:

کد بالا رو در داخل دیکشنری functions در فایل controlDict قرار میدیم. به مقادیر موجود در تابع توجه کنید. این مقادیر را باید حتما با توجه به مساله خودتون تغییر بدید. بعد از ران و همانند قبل و با تنظیم یک فایل اسکریپت gnuplot می تونید نمودار زیبای زیر رو بعد از یک مدت مشاهده بکنید:

2

نکته آخر اینکه شاید شما قبل از ران کردن کیس فراموش کردید تا Function Object رو در نظر بگیرید. در این صورت می تونید خیلی راحت با استفاده از دستور زیر فقط Function Object های تازه اضافه شده رو از زمان ابتدا تا انتها سریعا ران کنید. البته در این حالت شاید شما بپرسید چطور با عدم تمام شدن حل و عدم وجود اطلاعات در دسترس، اپنفوم قصد استخراج اطلاعات مربوط به هر تایم استپ را دارد؟ اتفاقا حق با شماست. اپنفوم چنین کاری نمی تونه انجام بده. اپنفوم فقط اطلاعات مربوط به گام های زمانی رو استخراج می کنه که در دیسک رایت شدند. Write Interval که در ControlDict یادتون هست؟

بنابراین اگر نیاز به رسم نمودار خیلی خوب دارید و Write Interval های شما در حین ران خیلی ریز نبودند، باید بگم که شما مجبورید دوباره ران بگیرید و اینبار از Function Object در ControlDict استفاده بکنید.

فینیشد. شاد باشد.

قهوه قراموش نشود 😉

coffee

residual

چگونه در CFD به جواب درست برسیم؟ قسمت دوم: رسم نمودار مانده ها توسط PyFOAM

[su_label type=”important”]تست شده در همه نسخه ها[/su_label]

در این پست به صورت خلاصه به نحوه اجرای یک حلگر همراه با رسم نمودار مانده ها می پردازیم. شاید بشه گفت در حین حل یک مساله CFD، مشاهده نمودار مانده ها مهمترین ابزار بررسی روند حل هست. این نمودار، متوسط خطای پارامترها رو در هر گام زمانی نسبت به گام زمانی قبل محاسبه و به شکل بی بعد ارائه می کنه. در نتیجه باید انتظار داشته باشیم که رفته به رفته خطاها کم شده و در نتیجه نمودار مانده ها به مقدار صفر نزدیک بشند. پایا و ناپایا بودن مساله، سادگی و پیچیدگی هندسه، مدل های استفاده شده، شبکه به کار رفته، همه از جمله عواملی هستند که روی نمودار مانده ها تاثیر گذارند. متخصصان CFD با دیدن نمودار مانده ها می توانند رفتار حلگر رو نسبت به مساله تشخیص بدند و در نتیجه تا حدودی از صحت و یا عدم صحت حل مطمئن بشند. در نرم افزارهای تجاری، این نمودار معمولا با شروع به حل، به صورت خودکار رسم میشه، اما در نرم افزارهای متن باز و به خصوص اپنفوم، این نمودار به صورت خودکار رسم نمیشه. اما راه حل آن بسیار ساده است. می توان از دو روش برای این کار استفاده کرد. روش اول استفاده از خروجی های داده شده در فایل log حلگر و روش دوم استفاده از پکیج سودمند PyFOAM که به صورت مجزا برای اپنفوم به صورت غیر رسمی منتشر میشه. روش دوم بسیار ساده تر و قوی تر از روش اول است. در نتیجه ما هم در اینجا از همین روش استفاده می کنیم.
ابتدا لازم هست که شما این ابزار رو نصب بکنید، تا در ادامه بتونیم از اون برای رسم نمودار استفاده بکنیم. قبل از نصب لازم هست شما دو پکیج از پکیج های لینوکس نصب بکنید. پکیج اول، ابزار gnuplot هست که برای رسم نمودارهای مختلف به کار میره. پکیج دوم python-numpy هست که pyFoam از اون برای محاسبات استفاده می کنه. بنابراین قبل از همه چیز:

حالا کد PyFOAM رو از این لینک دانلود بکنید و اون رو در پوشه OpenFOAM قرار بدید. البته مهم نیست که فایل در کجا قرار داشته باشه، ولی بهتر هست برای حفظ نظم اون رو داخل پوشه $HOME/OpenFOAM قرار بدیم. فایل دانلود شده شما یک فایل زیپ شده با پسوند tar.gz هست. بنابراین ابتدا فایل رو باید از حالت زیپ خارج کنیم:

و سپس با دستور زیر، PyFOAM رو نصب می کنیم:

نصب PyFOAM چند ثانیه بیشتر طول نمیکشه. بعد از نصب، شما می تونید از خیل عظیم ابزارهای PyFOAM استفاده کنید. برای دیدن ابزارهای وسیع PyFOAM می تونید به اینجا مراجعه کنید. همچنین آقای Bernhard Gschaider سازنده PyFOAM و Swak4Foam، در یک PDF بسیار کاملی ابزارهای مختلف PyFOAM رو توضیح دادند. می تونید این PDF رو هم از اینجا دانلود کنید.
اما ما برای رسم نمودار مانده از ابزار pyFoamPlotRunner.py استفاده خواهیم کرد. نحوه استفاده بسیار سادست. کافیه به جای دستورات قبلی برای اجرای حلگر، اینبار همانند زیر عمل کنیم:

می خواید پردازش موازی انجام بدید؟ مشکلی نیست:

با اجرای حلگرها توسط این ابزار، می بینید که به صورت خودکار نمودار مانده ها هم رسم خواهد شد.

شاد باشید! 🙂

pipe2

مقدمه و حل جریان توسعه یافته داخل لوله – قسمت ۲/۲

[su_label type=”important”]تست شده در OF 2.3[/su_label]

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

  • تنظیم شرط مرزی از نوع Mapped
  • حل مساله و مشاهده نتایج در پاراویو
  • وارد کردن شبکه از گمبیت به اُپنفوم

اما از مساله ای که در قسمت اول بحث شد، فعلا فقط شبکه آن آماده شده است. لازم است تا در این قسمت شرایط مرزی و همچنین تنظیمات مربوط به حل، اعمال شوند. شرایط مرزی یک مساله در اُپنفوم در داخل پوشه ۰ قرار می گیرد. این پوشه در پوشه اصلی مساله قرار دارد. در حالت کلی یک مساله اُپنفوم باید حاوی سه پوشه باشد. پوشه های ۰، constant و system. در پوشه صفر همانطور که گفته شد، شرایط مرزی تعریف می شوند. در پوشه constant علاوه بر شبکه (که قبلا توضیح داده شد) یک سری ثوابت و تنظیمات دیگر اعمال می شوند. مثلا تعیین مقدار ویسکوزیته سینماتیک، آرام یا آشفته بودن جریان و غیره. پوشه system نیز حاوی تنظیمات اصلی حلگر و همچنین اسکیم های گسسته سازی معادلات می باشد.

  • تعریف شرایط مرزی

برای تعریف شرایط مرزی، هر پارامتر (مثل فشار یا سرعت) دارای فایل مخصوص به خود در پوشه ۰ است. در هرکدام از این فایل ها، شرایط مرزی مربوط به هرکدام از مرزها تعریف می شوند. در مساله حاضر که از حلگر icoFoam برای حل استفاده می کند، تنها دو پارامتر فشار (p) و سرعت (U) موجودند. شرایط مرزی بسیار زیادی در اُپنفوم موجود است. کاربر باید با تجربه ای که به مرور زمان کسب می کند و همچنین با دانشی که از CFD در اختیار دارد، بهترین شرط مرزی را انتخاب کند. در مساله حاضر تنها سه مرز موجودند و برای هرکدام باید شرایط مرزی مربوط به فشار و سرعت داده شوند. اما شروط مرزی برای فشار به شکل زیر خواهند بود:

برای فشار در ورودی و روی دیوارها معمولا از شرط مرزی گرادیان صفر استفاده می شود. یعنی هیچ شار فشاری از درون این مرزها عبور نمی کند. اما برای خروجی از شرط مرزی دیریکله با مقدار ثابت استفاده می شود. این مقدار در اینجا صفر در نظر گرفته شده اما می توان از هر مقداری برای آن استفاده کرد. دلیل این امر این است که در مسائل غیر قابل تراکم تنها اختلاف فشار مهم است و نه مقدار مطلق آن. حال فرض کنید می خواستیم این مساله را به صورت عادی و بدون استفاده از شرط مرزی Mapped حل کنیم. در این صورت شرط مرزی سرعت برای این سه مرز به شکل زیر تعریف میشد:

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

در ابتدا لازم است تا در داخل فایل boundary موجود در پوشه polyMesh نوع شرط مرزی inlet (ورودی) تغییر داده شود. قبلا گفته شد که در این فایل تنها ۶ شرط مرزی کلی تعریف می شوند. اما در این مساله خاص، به استثناء از یک شرط مرزی دیگری به نام MappedPatch استفاده خواهد شد. این شرط مرزی به این شکل تعریف می شود:

همانطور که مشاهده می شود در این شرط مرزی از یک Offset برای نمونه گیری استفاده می شود. در این شرط مرزی گفته شده که اطلاعات از یک سطح به فاصله ۱ متری در جهت z روی مرز inlet قرار داده شود. این ۱ متر در حقیقت همان فاصله بین ورودی از خروجی لوله است. اما قسمت بعدی مربوط به فایل U موجود در پوشه ۰ می شود. در این فایل در ورودی لازم است تا از شرط مرزی Mapped استفاده شود:

اما در اینجا باید مقدار سرعت ورودی نیز به مساله داده شود. در قسمت value و average لازم است به ترتیب مقدار سرعت ورودی و متوسط آن (که به دلیل یکنواخت بودن سرعت در ورودی همان برابر با سرعت ورودی خواهد بود) به شرط مرزی داده شود. حال مساله آماده حل برای استفاده از این نوع شرط مرزی است.

اما در پوشه constant علاوه بر اینکه شبکه در داخل پوشه polyMesh قرار گرفته، لازم است تا مقدار ویسکوزیته سینماتیک که یک ثابت در معادله مومنتوم می باشد تعیین شود. این مقدار در داخل فایلی به نام transportPeroperties تعیین می شود.

همچنین دقت شده است که در اینجا جریان آرام باشد. در داخل لوله جریان وقتی آرام است که عدد رینولدز کمتر از ۲۳۰۰ باشد. با محاسبه قطر هیدرولیکی برای مقطع مستطیلی خواهیم داشت:

سپس با استفاده از فرمول عدد رینولدز داریم:

بنابراین جریان آرام است.و اما در انتها و در پوشه system، سه فایل اساسی یک مساله اُپنفوم قرار دارند. فایل اول controlDict به عنوان مهمترین فایل مساله، حاوی حلگر مورد استفاده، گام زمانی، نحوه ذخیره سازی گام ها و بسیاری از تنظیمات دیگر است که به مرور در آموزش ها به آنها اشاره خواهد شد. همچنین این فایل حاوی Function Object های تعریف شده توسط کاربر خواهد بود. در اینجا مقدار گام زمانی، گام زمانی شروع به حل و همچنین مقدار زمان حل مشخص می شوند. برای پایا شدن حل لازم است تا مقدار زمان انتهایی، مناسب در نظر گرفته شود. معیار محاسبه گام زمانی نیز عدد کورانت می باشد که بهتر است در حین حل مساله کمتر از یک باشد.

در فایل دوم، fvSchemes، اسکیم های گسسته سازی معادلات تعیین می شوند. در حلگر icoFoam تنها یک معادله ناویر استوکس حل خواهد شد. لازم است برای همه جمله های موجود در این معادله اعم از گرادیان فشار، پخشندگی (Laplacian) و جابجایی (divSchemes) اسکیم های گسسته سازی تعیین شوند. اما فعلا لزومی ندارد کاربر با انواع مختلف اسکیم های گسسته سازی دست و پنجه نرم کند. فعلا می توان از همین اسکیم های در نظر گرفته شده برای مساله cavity برای مساله حاضر نیز استفاده کرد.

فایل آخر، fvSolution حاوی تنظیمات مربوط به حلگر های ماتریس است. همانطور که می دانید در حل یک معادله به روش عددی ابتدا اسکیم های گسسته سازی، معادلات حل را به یک سری معادلات جبری محدود درون هر یک المان تبدیل می کنند. این کار باعث به وجود آمدن معادلات جبری چند مجهولی خواهند بود که می توان آنها را به شکل ماتریس نوشت. این ماتریس ها را می توان به روش های مختلف، مثلا روش گاوس سیدل، حل کرد. در فایل fvSolution این حلگرها تعیین می شوند. همچنین مقدار خطای حل (Tolerance) برای هرکدام پارامترهای تعیین می شود. در ادامه و در فایل fvScehmes، تنظیمات مربوط به الگوریتم کوپلینگ سرعت و فشار نیز تعیین می شوند. برای نموه از این الگوریتم ها می توان به SIMPLE و یا PIMPLE اشاره کرد. همچنین در انتهای این فایل معمولا Relaxation Factor ها نیز تعریف می شوند.

حال مساله آماده حل است.

  • حل مساله و مشاهده نتایج در پاراویو

برای حل مساله کافیست تا نام حلگر وارد شود. یعنی بعد از وارد شدن به پوشه مساله توسط ترمینال، کافیست دستور زیر وارد شود:

حال مساله شروع به حل خواهد کرد. پس از حدود ۲۰ ثانیه، مساله پایا خواهد شد. برای دیدن نتایج از پاراویو استفاده خواهیم کرد:

حال لازم است تا ابتدا مثل قبل، تمام مرزهای هندسه انتخاب شوند. در ادامه لازم است هر دو پارامتر فشار و سرعت انتخاب شوند. با کلیک بر روی دکمه Apply، هندسه و پارامترها لود خواهند شد. حال می توان به راحتی و با استفاده از ابزارهای مختلف نرم افزار پاراویو نتایج را مشاهده کرد. برای دیدن پروفیل سرعت در داخل لوله می توان از ابزار Slice استفاده کرد. با انتخاب این ابزار، جهت برش را در جهت عمود بر z قرار خواهیم داد:

7

7_2

پس از اعمال این ابزار با دکمه Apply لازم است تا به گام زمانی انتهایی برویم تا نتایج را در انتهای حل مشاهده کنیم.

8

حال می توان از بین پارامتر های موجود (فشار یا سرعت) یکی برای دیدن نتایج آن، انتخاب کرد.

9

در نهایت نتیجه به شکل زیر خواهد بود:

10

  • وارد کردن یک شبکه از گمبیت به اُپنفوم

در این قسمت یک شبکه تولید شده توسط گمبیت را وارد اُپنفوم خواهیم کرد. اینبار هندسه یک لوله با مقطع یک دایره حفره دار مورد بررسی قرار خواهد گرفت. در گمبیت این شبکه تولید شده و آماده ورود به اُپنفوم است. شاید سوال پیش آید که شرایط مرزی در گمبیت باید چگونه تعیین شوند. در گمبیت کافیست دقیقا همانند زمانی که برای فلوئنت شبکه آماده میشد، شرایط مرزی تعیین شوند. یعنی برای مرز لوله، شرط مرزی Wall، برای مرز ورودی، شرط مرزی Velocity Inlet و برای مرز خروجی، شرط مرزی Outflow انتخاب شوند. با وارد کردن شبکه به اُپنفوم، به صورت خودکار شروط مرزی wall و patch به مرزها داده خواهد شد.

لازم است تا یک کپی از مساله قبلی تنظیم شده در اینجا گرفته شود. بنابریان کافیست از پوشه های ۰، constant و system کپی گرفته شده و در یک پوشه جدید دیگر، اینبار مثلا به نام pipeDevelopedFlowAnnular قرار گیرند. خود این پوشه مادر در پوشه run قرار خواهد داشت.

اما نحوه وارد کردن شبکه به اُپنفوم بسیار ساده است. کافیست ابتدا شبکه به شکل فایل با فرمت .msh در گمبیت ذخیره شده و سپس در پوشه اصلی مساله در کنار پوشه های ۰، constant و system قرار داده شود. از طرفی لازم است تا پوشه polyMesh که شبکه قبلی در آن قرار دارد، پاک شود. سپس در ترمینال و در پوشه اصلی مساله کافیست دستور زیر وارد شود:

در اینجا نام pipe.msh همان نام شبکه است. با اجرای این دستور دیده می شود که شبکه در داخل پوشه constant/polyMesh ایجاد می شود. حال لازم است تا فایل boundary دوباره تغییر داده شود. اگر این کار انجام شود خواهیم داشت:

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

11

دانلود فایل های مساله دوم بدون شبکه:

[su_members message=”این قسمت فقط برای اعضا قابل مشاهده است. لطفا %login% شوید.” login_text=”وارد” login_url=”http://openfoam.ir/%d9%88%d8%b1%d9%88%d8%af-%d8%a7%d8%b9%d8%b6%d8%a7/”][su_button url=”http://cdn.persiangig.com/preview/olRk7YJSaU/pipeDevelopedFlowAnnular.zip” target=”blank” background=”#229620″ radius=”10″ icon=”icon: arrow-down”]دانلود[/su_button][/su_members]

دانلود شبکه گمبیت:

[su_members message=”این قسمت فقط برای اعضا قابل مشاهده است. لطفا %login% شوید.” login_text=”وارد” login_url=”http://openfoam.ir/%d9%88%d8%b1%d9%88%d8%af-%d8%a7%d8%b9%d8%b6%d8%a7/”][su_button url=”http://cdn.persiangig.com/preview/c492X5zK0p/pipe.msh” target=”blank” background=”#229620″ radius=”10″ icon=”icon: arrow-down”]دانلود[/su_button][/su_members]

Pipe

مقدمه و حل جریان توسعه یافته داخل لوله – قسمت ۱/۲

[su_label type=”important”]تست شده در OF 2.3[/su_label]

اولین آموزش مربوط به نرم افزار اُپنفوم را اختصاص خواهیم داد به حل جریان داخل یک لوله. این لوله می تواند مقاطع مختلفی داشته باشد. در این مساله یاد خواهیم گرفت:

  • تولید یک شبکه بسیار ساده در بلاکمش برای یک لوله با مقطع مستطیلی
  • ایجاد و تنظیم یک مساله جدید در اُپنفوم
  • مشاهده شبکه در پاراویو

اما همانطور که می دانید، نوع پروفیل جریان در داخل لوله ها، با توجه به مقطع آنها متفاوت است. برای مثال جریان بین دو صفحه بی نهایت به صورت دو بعدی و سهموی می باشد. از طرفی جریان در داخل یک لوله دایروی به شکل سهموی سه بعدی می باشد. اما تعیین دقیق پروفیل سه بعدی برای مقاطع مختلف کار ساده نیست. مخصوصا اگر این مقاطع، دارای هندسه ساده ای نباشند. اما به راحتی می توان به روش عددی این پروفیل ها را به دست آورد. در این مثل ابتدا پروفیل سرعت توسعه یافته در یک لوله با مقطع مستطیلی مورد بررسی قرار می گیرد. سپس شبکه مربوط به مساله جریان درون یک کانال حفره دار از گمبیت وارد شده و پروفیل سرعت توسعه یافته برای آن بدست خواهد آمد.

در این مساله از روشی جالب برای به دست آوردن پروفیل سرعت توسعه یافته استفاده خواهد شد. همانطور که می دانید، برای ایجاد توسعه یافتگی، جریان داخل لوله باید مسیری را طی کند. به این مسیر طی شده به اصطلاح، طول توسعه یافتگی می گویند. اما با محاسبه مقدار این طول با استفاده از فرمول های موجود، مشاهده خواهد شد که در اکثر موارد و در رینولدزهای گوناگون، مقدار این طول نسبت به قطر استوانه بسیار زیاد است. در نتیجه تعداد المان های موجود در شبکه نیز زیاد خواهد بود و در نتیجه زمان حل بسیار بالا خواهد رفت. اما می توان به روش جالبی این مدت زمان را به مقدار بسیار زیادی کاهش داد. این روش چیزی نیست جز استفاده از شرط مرزی Mapped. وظیفه این شرط مرزی قرار دادن اطلاعات موجود در یک مرز روی مرز دیگر است. حال فرض کنید در مساله، پروفیل سرعت (میدان سرعت) در مرز خروجی، در هر گام زمانی روی مرز ورودی اعمال شود. اگر این روند به صورت مداوم در چند گام زمانی تکرار شود، در نهایت پروفیل سرعت به صورت توسعه یافته خواهد شد. در اینجا دیگر نیاز به در نظر گرفتن طول زیاد برای لوله نیست، بلکه با در نظر گرفتن یک طول لوله کوتاه که به جریان اجازه داده شود کمی از ورودی تا خروجی جریان پیدا کرده و لایه مرزی آن افزایش یابد، کافی است.

1

  • ایجاد مساله جدید و تولید شبکه لوله توسط بلاکمش

و اما بلاکمش! این ابزار اولین ابزار ارائه شده توسط اُپنفوم برای تولید شبکه های ساختاریافته است. اهمیت شبکه های ساختار یافته به خوبی برای همه متخصصین CFD واضح است. در آینده به طور خیلی مفصلی به بحث شبکه های ساختاریافته پرداخته خواهد شد. اما بلاکمش ابزاری بسیار ساده و در عین حال قدرتمند برای تولید چنین شبکه هایی محسوب می شود. تمام تنظیمات این ابزار اعم از نقاط، لبه ها، بلوک ها، تعداد المان ها و شرایط مرزی داخل فایلی به نام blockMeshDict ذخیره می شود. گاهی افراد گله می کنند که عدم وجود محیطی گرافیکی برای این ابزار از نقاط ضعف آن محسوب می شود، اما این مشکل را می توان به راحتی برطرف نمود. این ابزار از شما تنها مختصات نقاط را خواهد خواست. در ادامه هر تنظیماتی که انجام می شود بر اساس همین نقاط خواهد بود. بنابراین کافیست تا با استفاده از روشی مختصات نقاط را به دست آوریم. برای مسائل خیلی ساده می توان به صورت ذهنی هم مختصات نقاط را حساب کرد. اما برای مسائل پیچیده تر بازم هم هیچ مشکلی نیست! مگر سالیدورکس مرده است؟! پیچیده ترین هندسه خود را در یک نرم افزار CAD مثل سالیدورکس طراحی کنید و نقاط را از آن استخراج کنید! همین!

و اما تنظیم همانطور که گفته شد برای استفاده از این ابزار لازم است تا فایل blockMeshDict آن تنظیم شود. این فایل تا نسخه ۲٫۴ از اُپنفوم در داخل پوشه contant/polyMesh قرار دارد و در نسخه بعدی آن یعنی نسخه ۳٫۰ در داخل پوشه system قرار می گیرد. اما این فایل از قسمت هایی تشکیل شده است که به صورت خلاصه در حین شبکه بندی، در اینجا مطرح می شود.

برای شروع هر مساله اُپنفوم لازم است تا ابتدا فایل های ضروری آن ایجاد شوند. برای این کار به هیچ وجه لازم نیست تمام فایل ها از ابتدا توسط کاربر تولید شوند، کافیست فایل ها از نزدیک ترین مثال به مثال حاضر کپی شده و در پوشه run که پوشه اصلی کاربر است کپی شود. پوشه run در داخل پوشه زیر قرار دارد:

که در آن user، همان نام کاربر است. این پوشه مهمترین پوشه مورد استفاده کاربر است. حتی الامکان باید همه مسائل کاربر در این پوشه قرار گیرند. برای دستیابی به این پوشه در ترمینال، کافیست دستور زیر اجرا شود:

به همین راحتی، شما به پوشه run وارد خواهید شد. بنابراین قرار دادن مسائل در این پوشه به سریع تر شدن روند دسترسی به فایل ها کمک می کند. به هیج وجه من الوجوه (!) مسائل خود را روی دسکتاپ لینوکس قرار ندهید! همچنین پوشه مربوط به مثال های آموزشی خود اُپنفوم که tutorials نام دارند در داخل پوشه run قرار گرفته است. و اما سوال اینجاست که از کجا بدانیم کدام مثال آموزشی اُپنفوم نزدیکترین مثال به مساله ماست. سوال بسیار بجایی است اما جواب بسیار خشنی در انتظار شماست! یک تحقیق، دو کسب تجربه. هیچ کسی نمی تواند صد در صد به شما بگوید که کدام مثال به مساله شما نزدیک تر است. این خود شما هستید که این تشخیص را خواهید. هرچه تشخیص شما نزدیکتر باشد، تنظیم کردن مساله راحت تر خواهد بود. برای مثال اگر شما به دنبال حل یک مساله ناپایا هستید، به هیچ وجه نباید به سراغ مثال های آماده یک مساله پایا بروید! همین قضیه برای تمام مباحث برقرار است. اولین قدم برای تشخیص درست مثال ها، مطالعه اجمالی بر روی انواع حلگرهای اُپنفوم است. این حلگرها را می توانید در اینترنت و یا در قسمت ۳٫۵ موجود در User Guide نرم افزار بیابید. اما User Guide کجاست. این فایل PDF در محل نصب اُپنفوم شما قرار دارد:

در لینوکس / به معنای پوشه ریشه (Root) می باشد. برای دسترسی به آن کافیست در یک پنجره باز شده، گزینه Computer انتخاب شود.

2

بنابراین قبل از هر کاری، سعی کنید تا جای ممکن حلگرهای اُپنفوم را بیابید. در اُپنفوم هیچ کس به اندازه خودتان قادر نیست به شما کمک کند! وقتی تا حدودی با حلگرها آشنا شدید، حال لازم است تا مثال های معروف مربوط به حلگرهای مهم را نیز یاد بگیرید. مثلا همه فومِر ها (حتی مبتدی ترین آنها) مثال Cavity مربوط به حلگر icoFoam را می شناسد. او می داند که اولا این حلگر، یک حلگر ناپایا برای حل جریان های آرام است. ثانیا او می داند که این مساله از ابزار بلاکمش برای شبکه بندی هندسه خود استفاده کرده است. بنابراین در هر مساله ای از جمله مساله حاضر که دارای چنین ویژگی هایی باشد می توان از این مثال آموزشی به عنوان مثال نمونه استفاده کرد. البته مساله حاضر را می توان با استفاده از حلگرهای پایا نیز حل کرد. پس برای شروع کار لازم است تا یک کپی از مثال Cavity در پوشه run کاربر قرار داده شود. مثال Cavity در آدرس زیر قرار دارد:

با کپی آن پوشه اصلی مثال ما در حال حاضر این خواهد بود:

اما ما ترجیح میدهیم نامی برای مثال خود انتخاب کنیم. بنابراین نام پوشه را مثلا به pipeDevelopedFlow تغییر می دهیم. بنابراین تا اینجای کار:

هشدار: لینوکس و از جمله ترمینال آن به حروف بزرگ و کوچک حساس هستند.

حال باید شروع به تغییر فایل های داخل این مثال کنیم تا مساله مورد نظر خود را آماده کنیم. خب هندسه Cavity تا مقدار زیادی شباهت به مساله حاضر دارد. چرا که هر دو مساله از یک بلوک واحد تشکیل یافته اند. تنها کافیست مختصات نقاط بلوک در فایل blockMeshDict تغییر داده شوند تا هندسه مورد نظر ما ایجاد شود. این فایل در داخل پوشه constant/polyMesh قرار دارد.

نکته: شبکه اُپنفوم به صورت چندین فایل در داخل پوشه polyMesh قرار میگیرد. این فایل ها شامل نقاط، سطوح، المان ها، CellZone ها و … هستند. بنابراین اگر نیاز به پاک کردن شبکه دارید کافیست این فایل ها را حذف کنید. البته دقت کنید که در میان این فایل ها فایل blockMeshDict حذف نشود. چرا که این داخل این تنظیمات مربوط به ابزار بلاکمش قرار دارد که برای شبکه بندی مجدد لازم است. البته این برای زمانی است که شما از ابزار بلاکمش استفاده می کنید. برای دیگر حالت ها، هیچ نیازی به وجود فایل blockMeshDict نیست و می توانید برای حذف شبکه، خود پوشه polyMesh را حذف کنید.

در این مثال نیاز است تا قبل از شروع شبکه بندی، شبکه قبلی ایجاد شده حذف شود. معمولا بعد از نصب اُپنفوم برای تست صحت کارکرد آن یکبار مساله Cavity اجرا می شود که این منجر بخ وجود فایل های شبکه در داخل پوشه polyMesh خواهد شد.

اما فایل blockMeshDict دارای قسمت های مختلفی است. در ابتدای این فایل مشخص می شود که آیا نیازی هست تا اعداد موجود در این دیکشنری به متر تبدیل شوند یا خیر؟ فرض کنید در ادامه و در زمان تعیین مختصات نقاط شما ترجیح می دهید که اعداد به میلیمتر وارد شوند، در این صورت حتما باید در کلیدواژه convertToMeters مقدار ۰٫۰۰۱ درج شود. این به این خاطر است که اُپنفوم بر اساس واحد های SI کار می کند.

در قسمت بعد نوبت به تعیین مختصات نقاط می رسد. در دیکشنری vertices مختصات نقاط باید به ترتیب وارد شوند. ترتیب این نقاط از آنجایی مهم است که در ادامه و در هنگام تعیین بلوک ها و لبه ها، نیاز به شماره این نقاط خواهیم داشت. این نقاط به ترتیب از صفر شماره گذاری می شوند. برای مثال در زیر اولین نقطه دارای شماره صفر، دومین نقطه دارای شماره ۱ و همینطور ادامه می یابد. در اینجا تنها کافیست مختصات نقاط به مختصات مورد نظر ما تغییر داده شوند. فرض کنید لوله در جهت z قرار خواهد گرفت و سطح مقطع آن نیز همانطور که گفته شد به شکل مستطیل خواهد بود. بنابراین مختصات نقاط را به شکل زیر وارد می کنیم.

نکته: هیچ محدودیتی در ترتیب نقاط وجود ندارد. اما باید بدانید که نقاط به ترتیب شماره گذاری خواهند شد و شما در ادامه از این شماره ها استفاده خواهید کرد.

در ادامه نیاز است تا بلوک ها تعیین شوند. در مبحث شبکه های ساختاریافته کل بحث روی همین بلوک هاست. اما اینجا به این مبحث اشاره نمی شود. بلوک از ۸ نقطه تشکیل می شود. لازم است تا با استفاده از نقاط بالا یک بلوک بسازیم. اما ترتیب نقاط برای تعریف یک بلوک در اُپنفوم مهم است. باید ابتدا نقاط موجود روی یک وجه بلوک به صورت پادساعتگرد شمرده شوند، سپس به همین ترتیب برای وجه روبرویی تکرار شود. نحوه شمردن این نقاط و انتخاب وجه (به دلخواه کاربر) منجر به تعریف مختصات مساله خواهد شد.

3

همانطور که در بالا مشاهده می شود، امتداد اتصال نقطه اول و دوم، مختصات اول (x1) خواهد بود. امتداد اتصال نقطه دوم و سوم، مختصات دوم (x2) خواهد بود. امتداد منتهی به وجه روبرویی نیز مختصات سوم (x3) خواهد بود (شاید بگویید مگر مختصات سوم از ضرب خارجی دو مختصات اول به دست نمی آید؟ با تجربه شخصی، این مورد به اشتباه گاهی در این ابزار رعایت نمی شود). در نتیجه بلوک به شکل زیر باید تعریف شود:

اما پرانتز دوم مربوط به تعداد المان ها در هر امتداد مختصات است. همچنین پرانتز سوم مربوط به Grading است که در هر جهت باید تعیین شود. Grading به معنی جمع شدگی شبکه در یک طرف و یا جتی در دوطرف است. در اینجا برای ریزتر شدن شبکه ها در مجاور لوله، از Grading در جهات y و z استفاده شده است.

قسمت بعدی edges، مربوط به تعریف کمان ها و یا Spline هاست. در صورتی که در مساله چنین لبه هایی موجود نباشد، این قسمت خالی گذاشته می شود.

اما قسمت آخر مربوط به تعریف شرایط مرزی می باشد. شرایط مرزی در اُپنفوم در کل سه نوع می باشد. نوع اول، نوع Basic نام دارد که تنها شامل شش عنوان patch، wall، symmetry، cyclic، empty و processor می شود. شما فعلا تنها کافیست دو نوع شرط مرزی patch و wall را بشناسید. شرط مرزی patch برای مرزهای ورودی و خروجی استفاده می شود و شرط مرزی wall برای دیوارها. البته می توان از شرط مرزی patch برای مرز دیوار، اما فقط در جریان های آرام نیز استفاده کرد. اما نحوه تعیین شرایط مرزی با تعیین نوع مرز برای سطوح بلوک انجام می گیرد. در اینجا نیز سطوح با شماره نقاط سازنده آنها مشخص می شود. در اینجا یک ورودی، یک خروجی و یک مرز مربوط به لوله وجود دارد. مرز لوله خود از چهار سطح تشکیل شده است. بنابراین خواهیم داشت:

بنابراین تا اینجای کار تنظیم ابزار بلاکمش پایان یافته و می توان شبکه را تولید کرد. برای تولید شبکه باید دستور بلاکمش اجرا شود. اما برای اجرای این دستور حتما باید در پوشه اصلی مساله باشید. بنابراین با استفاده از ترمینال لینوکس لازم است تا وارد این پوشه شوید. خب پس کافیست یک ترمینال با کلید های میانبر Ctrl+Alt+T باز کنیم. سپس برای وارد شدن به پوشه run کافیست دستور زیر را وارد کنیم:

حالا کافیست وارد پوشه مساله شویم. دستور cd مخفف Change Directory این کار را برای ما انجام خواهد داد. کافیست دستور زیر را در ترمینال وارد کنیم:

نکته: برای نوشتن نام یک فایل یا پوشه در ترمینال لازم نیست تمام حروف آن را خودتان تایپ کنید. کافیست چند حرف ابتدایی نام را وارد کنید سپس با فشردن کلید Tab، ترمینال به صورت خودکار نام آن را برای شما کامل خواهد کرد. در صورتی که نام کامل نشد یا فایلی به این نام موجود نیست و یا حداقل دو فایل با حروف نوشته شما شما موجود است. بنابراین حرف بعدی را وارد کنید و باز Tab بزنید.

حالا در پوشه اصلی مساله قرار گرفته ایم. کافیست با دستور زیر شبکه را تولید کنیم:

اگر سری به پوشه constant/polyMesh بزنیم خواهیم دید که شبکه در آن ذخیره شده است.

  • مشاهده شبکه در نرم افزار پاراویو

خب چگونه شبکه مان را به صورت گرافیکی ببینیم؟ برای این کار کافیست در ترمینال دستور زیر را وارد کنید. این دستور نرم افزار پاراویو را برای شما باز خواهد کرد.

نکته: به تفاوت بین paraFoam و paraview دقت کنید. paraview نام نرم افزاری است برای انجام اعمال پس پردازشی، اما paraFoam یک اسکریپت نوشته شده برای اُپنفوم است که به وسیله آن می توان مستقیم مساله اُپنفوم را در پاراویو باز کنید.

با باز شدن نرم افزار پاراویو باید هندسه خود را برای لود شدن انتخاب کنید. قبل از کلیک بر روی دکمه Apply لازم است دو کار انجام دهید. اول باید تمام شرایط مرزی را انتخاب کنید. برای اینکار فقط یک بار روی گزینه تیک موجود در بالای تمام شرایط مرزی کلیک کنید. اما از طرفی چون هنوز شرایط مرزی تنظیم نشده اند و به دلیل عدم مطابقت نام شرایط مرزی شبکه با نام های ذکر شده در پوشه صفر مساله، لازم است تا تیک مربوط به لود کردن میدان های فشار (p) و سرعت (U) برداشته شود:

4-5

حالا می توانید با کلیک بر روی دکمه Apply شبکه را لود کنید برای دیدن المان های شبکه می توانید از قسمت بالای پاراویو آن را روی حالت wireframe تنظیم کنید:

6

فایل های آموزشی مساله اول

[su_members message=”این قسمت فقط برای اعضا قابل مشاهده است. لطفا %login% شوید.” login_text=”وارد” login_url=”http://openfoam.ir/%d9%88%d8%b1%d9%88%d8%af-%d8%a7%d8%b9%d8%b6%d8%a7/”][su_button url=”http://cdn.persiangig.com/preview/Bx4ZjySAdl/pipeDevelopedFlow.zip” target=”blank” background=”#229620″ radius=”10″ icon=”icon: arrow-down”]دانلود[/su_button][/su_members]

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