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 خود کپی کنید. دستور زیر را وارد کنید:

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

Nu

نحوه محاسبه عدد ناسلت متوسط روی یک مرز

اعداد بی ‌بعد به دلیل کاهش حجم محاسبات و ساده ترکردن تحلیل نتایج اهمیت ویژه ای را درعلوم مهندسی به خود اختصاص داده اند. از جمله اعداد بی بعد مهم در بحث انتقال حرارت عدد ناسلت می باشد.

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

عدد ناسلت نسبت انتقال حرارت جابه جایی به انتقال حرارت هدایتی را درون یک فیلم بیان می کند. اعداد ناسلت بزرگتر، بیانگر انتقال حرارت جابجایی بزرگتر هستند که در جریان های توربولانسی اتفاق می افتد. عدد ناسلت یک برای یک فیلم سیال، بیان کننده این است که نرخ انتقال حرارت هدایت و جابجایی یکسان است.

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

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

انتقال حرارت جابه جایی به سیال

Q_y=hA(T_s-T_∞)

انتقال حرارت رسانش درصفحه

Q_y=-KA ∂/∂y(T-T_s)|_(y=0)

روی صفحه انتقال حرارت جابه جایی با انتقال حرارت رسانش برابر بوده و رابطه محاسبه عدد ناسلت از برابر قراردادن دورابطه فوق به دست می آید:

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

در اپنفوم برای محاسبه فرمول بالا در هر گام زمانی باید از Function Object مناسب استفاده کرد. چون تابع مربوطه به صورت پیش فرض در اپنفوم موجود نیست باید از پکیج Swak4Foam برای این منظور استفاده کنیم. در نهایت کد مربوطه را در فایل controlDict در پوشه ی سیستم (در داخل دیکشنری Functions، که اگر نبود خودمان اضافه می کنیم) به صورت زیر وارد می کنیم:

در اینجا از تابع نوع patchExpression استفاده شده است که به کاربر این امکان را می دهد هر فرمولی را روی مرز محاسبه کرده و متوسط، مینیموم، ماکزیموم و … را بدست آورد. همانطور که مشاهده می شود عدد ناسلت، مشابه رابطه بدست آمده تعریف شده است. T_inf همان T_∞ در رابطه به دست آمده است، که مقدار آن مطابق مساله مورد نظر تعیین می شود. درقسمت Patches نام مرزی که به دنبال محاسبه ی عدد ناسلت متوسط روی آن هستیم نوشته می شود. L نیز طول مشخصه مساله است. در اینجا قسمت Accumulations عمل مورد نیاز کاربر را مشخص می کند که در اینجا متوسط روی مرز (Average) در نظر گرفته شده است. با کمی دقت در فرمول وارد شده می توان فهمید که در swak4Foam گرادیان روی یک مرز با عبارت:

تعریف می شود.

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

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

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

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

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

tecplot1

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

مهم ترین و اصلی ترین کار بعد از انجام محاسبات در هر نرم افزار CFD ، پس پردازش نتایج محاسبات مربوطه است. همواره یکی از مشکلات کاربران در استفاده از نرم افزار اوپن فوم، پیچیدگی و سختی پس پردازش نتایج محاسبات نسبت به سایر نرم افزار های تجاری است. به طوری که در موارد متعددی کاربران ناچار به نصب نرم افزار های جانبی مانند Swak4Foam می شوند. البته نرم افزار Paraview که همراه با اوپن فوم نصب و استفاده می شود بسیار قدرت مند و پرکاربرد است. ولی به دلیل پیچیدگی زیاد و نا آشنایی کاربران با آن، استفاده از آن برای بسیاری از کاربران ( از جمله بنده ) سخت و در مواردی ناممکن است. از آنجایی که بسیاری از کاربران اوپن فوم آشنایی خوبی با نرم افزار Tecplot دارند، استفاده از این نرم افزار جهت پس پردازش اطلاعات اوپن فوم می تواند انتخابی خوب، آسان و لذت بخش باشد. هدف ما در این آموزش این است که به زبانی ساده نحوه وارد کردن نتایج محاسبات اوپن فوم به Tecplot را توضیح دهیم. در این آموزش ما نتایج حل مثال pitzDaily را با استفاده ار روش های بیان شده وارد نرم افزار Tecplot360 می کنیم. به طور کلی جهت وارد کردن نتایج محاسبات اوپن فوم به Tecplot سه راه وجود دارد:
۱-    وارد کردن مستقیم نتایج محاسبات اوپن فوم به Tecplot با استفاده از Data loader مخصوص اوپن فوم در Tecplot
۲-    استفاده از ابزار foamToTecplot360 جهت تبدیل نتایج محاسبات اوپن فوم به فرمت استاندارد Tecplot ( .plt )
۳-    استفاده از ابزار foamDataToFluent و foamMeshToFluent و استفاده از Data loader مخصوص فلوئنت در Tecplot

وارد کردن مستقیم نتایج محاسبات اوپن فوم به Tecplot با استفاده از Data loader مخصوص اوپن فوم در Tecplot

خوشبختانه در نرم افزار Tecplot360 نسخه ۲۰۱۳ و  نسخه های جدیدتر، Data loader مخصوص اوپن فوم تعبیه شده است که با استفاده از آن می توان به سادگی نتایج محاسبات اوپن فوم را وارد Tecplot کرد.
مراحل کار:
–    فولدر اصلی نتایج محاسبات اوپن فوم ( شامل پوشه های زمانی، Constant و System )  را در مکان مناسبی که نرم افزار Tecplot بتواند به آن دسترسی پیدا کند کپی می کنیم.
–    نرم افزار Tecplot را اجرا می کنیم و به مسیر File>Load Data Files می رویم.
–    در پنجره باز شده، در منوی Files of Types گزینه OpenFOAM را انتخاب می کنیم.
–    به فولدر اصلی نتایج محاسبات اوپن فوم می رویم، فایل ControlDict موجود در پوشه System را انتخاب می کنیم و دکمه Open را می زنیم.

untitled-1

–    حال تمام نتایج محاسبات اوپن فوم در تمام زمان های موجود در فولدر اصلی، در نرم افزار Tecplot قابل مشاهده است.
نکته: متاسفانه Data Loader مخصوص اوپن فوم موجود در Tecplot360 دارای مشکلاتی ( مانند خطاهای غیرموجه  هنگام باز کردن بعضی از نتایج محاسبات اوپن فوم،  نمایش مقادیر اشتباه در کانتور ها به خصوص هنگام ایجاد Slice در Tecplot ، عدم توانایی در بازکردن هندسه های دو بعدی که دارای شرط مرزی wedge هستند و…. ) است. به همین دلیل ممکن است در موارد متعددی در استفاده از این Data Loader به مشکل بر بخوریم. در اینگونه موارد می توان از دو روش دیگر ( توضیحات در ادامه این مطلب ) استفاده کرد.

استفاده از ابزار foamToTecplot360 جهت تبدیل نتایج محاسبات اوپن فوم به فرمت استاندارد Tecplot ( .plt )

این ابزار به طور پیشفرض همراه اوپن فوم نصب نیست و باید به صورت جداگانه نصب شود.
جهت آموزش نصب ابزار foamToTecplot360 به آدرس زیر مراجعه فرمایید:

https://github.com/wyldckat/localFoamToTecplot360/blob/master/README.mediawiki

با استفاده از این ابزار می توان فایل های نتایج اوپن فوم را به فایل های استاندارد Tecplot360 با فرمت .plt تبدیل نمود. تمام نسخه های قدیمی و جدیدتر Tecplot 360 توانایی بازکردن فایل های با فرمت .plt را دارند.
مراحل کار:
–    ابتدا با استفاده از لینک بالا نرم افزار foamToTecplot360 را نصب می کنیم.
–    جهت اطمینان از نصب این نرم افزار ، دستور foamToTecplot360 را در محیط ترمینال وارد می کنیم.. اگر این ابزار در کنار نرم افزار  اوپن فوم نصب باشد، باید خروجی ترمینال خطایی به فرم زیر باشد:

untitled-2

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

untitled-3

–    در پنجره ترمینال دستور foamToTecplot360 را وارد می نماییم.

–    مشاهده می شود که یک پوشه با نام Tecplot360 در پوشه اصلی نتایج نرم افزار اوپن فوم ایجاد شده است که حاوی فایل هایی با پسوند .plt است. این پوشه را به محلی که نرم افزار Tecplot بتواند به آن دسترسی پیدا کنید کپی می کنیم.
–    این پوشه دارای سه گروه فایل است:
۱- فایل شبکه
۲- فایل های مقادیر نقاط داخلی
۳- فایل های مقادیر نقاط روی مرز ها
که این فایل ها ها باید با ترتیب مشخصی در نرم افزار Tecplot باز شوند.
–    نرم افزار Tecplot را اجرا کنید و به مسیر File>Load Data Files می رویم.
–    در پنجره باز شده، در منوی Files of Types گزینه Tecplot Data Loader را انتخاب می کنیم.
–    به پوشه Tecplot360 را که از داخل پوشه اصلی نتایج اوپن فوم در محل مناسب کپی کرده ایم می رویم.
–    ابتدا فایل grid را را با دو بار کلیک کردن به لیست additional files اضافه می کنیم.
–    سپس مابقی فایل های داخل پوشه Tecplot360 ( به استثنا فایل های داخل پوشه boundary mesh ) را به ترتیب شماره با دابل کلیک به لیست additional files اضافه کنید.
untitled-4
نکته: فایل grid حتما باید در لیست additional files در اولین سطر ( مقدم بر بقیه ) باشد.
–    حال دکمه open را میزنیم. با این کار فایل شبکه و مقادیر نقاط داخلی هندسه به Tecplot وارد شده اند.
–    مجددا با استفاده از File>Load Data Files تمام فایل های موجود در پوشه Tecplot360>boundaryMesh را با دابل کلیک به لیست additional files ااضافه می کنیم و دکمه open را می زنیم.
untitled-5
–    سپس در پنجره باز شده دکمه append را می زنیم.
–    حال مقادیر نقاط مرزی به Tecplot وارد شده اند.
نکته: یک خبر خوب اینکه نسخه لینوکسی تکپلات هم موجود هست و شما می تونید مستقیما اون رو در داخل اوبونتو نصب و استفاده کنید. بنابراین برای انجام کارهای پس پردازشی نیاز به تغییر سیستم عامل خود به ویندوز را ندارید.

در آموزش بعدی “استفاده از ابزار foamDataToFluent و foamMeshToFluent و استفاده از Data loader مخصوص فلوئنت در Tecplot” را فرا خواهید گرفت.

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 که مختص ران کردن فایل های اجرایی در اپنفوم است، از حل موازی استفاده کنید:

درود.

of4

انتشار نسخه ۴٫۰ اپنفوم

نسخه ۴٫۰ اپنفوم در روز ۲۸ ژوئن ۲۰۱۶ منتشر شد. برخلاف بقیه نسخه های اپنفوم، شماره این نسخه فقط از دو رقم تشکیل شده. شماره اول (۴) Major Version و شماره دوم (۰) Patch Version هست. بیش از حدود ۹۰۰ تغییر در این نسخه از اپنفوم نسبت به نسخه قبلی اعمال شده. همین موضوع باعث شده در بعضی از مثال ها نحوه تنظیم مساله با نسخه ۳ متفاوت باشه و در نتیجه نمی توان در این مثال ها از همان فایل های نسخه ۳ استفاده کرد. البته که با تغییر جزئی در فایل های نسخه های قبلی می توان آنها را به نسخه ۴ تبدیل کرد. مثل همیشه این نسخه از اپنفوم نیز به دو صورت Pre-compiled Package و Source Code منتشر شده. در زیر مهمترین تغییرات و اضافات در این نسخه از اپنفوم آورده شده. برای مشاهده لیست کامل به اینجا مراجعه کنید.

  • مدیریت کیس
    – ابزار foamDictionary برای تغییر یا اضافه کردن دیکشنری ها درون فایل ها توسط Command Line
    – ابزار foamListTimes برای لیست کردن همه پوشه های زمان به جز زمان ۰٫ مهمترین کاربرد این دستور پاک کردن این زمان ها توسط دستور foamListTimes -rm هست که در Automation بسیار به درد بخور هست.
  • پردازش در حین حل و پس پردازش
    – استفاده از نرم افزار پس پردازش Paraview نسخه ۵
    – انجام اعمال پس پردازش و در حین حل پردازش، توسط Command Line:‌ اپنفوم اخیرا تمامی دستورات مربوط به پس پردازش رو در چند ابزار جامع و کامل جمع کرده که می توان سریع تر و حرفه ای تر این کارها رو انجام داد. برای اطلاعات بیشتر به اینجا مراجعه کنید.
  • شرایط مرزی
    – شرط مرزی fixedProfile برای در نظر گرفتن یک پروفیل یک بعدی در ورودی جریان از روی داده های تجربی
    – شرایط مرزی وابسته به زمان: استفاده از پارامتر زمان در شرایط مرزی TimeVarying. برای انجام این کار قبلا باید از Swak4Foam استفاده میشد.
  • دینامیک جسم صلب
    – کتابخانه جدید برای اجسام با n درجه آزادی به صورت موازی
    – کتابخانه جدید برای حرکت شبکه برای چندین جسم صلب همراه با مفاصل و قید و بندها
  • دیگر مدل ها و قابلیت ها
    – اضافه شدن مدل آشفگی جدید kOmegaSSTDES
    – اضافه کردن چشمه به معادلات آشفتگی توسط fvOptions
    مدیدیرت نرم افزار و توسعه آن
    – راحت تر شدن آپدیت کردن نسخه Source نرم افزار با Allwmake -update
    – آپدیت شدن User Guide اپنفوم
  • کارکرد
    – بهبود کدهای Decompose و Recunstruct در حل موازی. اضافه شدن نسخه موازی ابزار mapFields به نام mapFieldsPar
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 استفاده خواهیم کرد. نحوه استفاده بسیار سادست. کافیه به جای دستورات قبلی برای اجرای حلگر، اینبار همانند زیر عمل کنیم:

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

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

شاد باشید! 🙂