منابعی که برای شروع به کار با اپنفوم باید بخوانید

در تاریخ 20 خرداد 98 آپدیت شد.

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

برای اینکه با کارکرد اپن فوم آشنا شویم نیاز هست که درکی از زبان برنامه نویسی ++C و شیئ گرایی (Object-Oriented Programming) داشته باشیم؛ همچنین باید کمی هم به کد های اصلی (Source Code) و منابع متن باز اپن فوم سرک بکشیم. برای اینکه بتوانیم به نتایج دقیق و قابل اتکایی از این نرم افزار برسیم نیاز است تا به دانش عمومی دینامیک سیالات محاسباتی مسلط باشیم ( انواع روش های عددی، الگوریتم های گسسته سازی و…) و همچنین تجربه کافی در این زمینه را داشته باشیم ( انجام مدل سازی های متنوع با حلگر های متفاوت)

منابع یادگیری اپن فوم

  • راهنمای کاربران (User’s Guide) که همراه اپن فوم ارائه میشود.
  • راهنمای برنامه نویسان (Programmer’s Guide) که همراه اپن فوم ارائه میشود. البته این راهنما بیشتر به عنوان مباحث تکمیلی راهنمای کاربران (User’s Guide) شناخته میشود و اگر هنوز به ++C مسلط نیستید با دیدن این راهنما نگران نشوید.
  • دوره آموزشی اپن فوم برای دوره دکتری که توسط هاکان نیلسون (Håkan Nilsson) در دانشگاه چالمرز (Chalmers University) ارائه شده است. این دوره شامل اطلاعات متنوعی در همه بخش های اپن فوم است. این آموزش ها رو می تونید از این لینک مشاهده کنید.
  • کتاب The OpenFOAM Technology Primer که توسط ماریک و همکاران ( Maric, J. Höpken and K. Mooney) تالیف شده است.
  • کتاب Getting started with OpenFOAM 1.4 نوشته دلفین لروکس (Delphine Leroux).
  • کتاب Tensoral approach to computational continuum mechanics using object-oriented techniques  نوشته وبر و همکاران (G. Weller, G. Tabor, H. Jasak and C. Fureby).
  • پایان نامه دکتری آقای یاساک (Hrvoje Jasak)، بنیانگذار اپنفوم
  • پایان نامه دکتری آقای روشه (Henrik Rusche)
  • پایان نامه دکتری آقای اوبینک (Onno Ubbink)
  • مقاله OpenFOAM for computational Fluid Dynamics نوشته چن و همکاران ( Chen, Q. Xiong, P. J. Morris, E. G. Paterson, A. Sergeev, and Y.-C. Wang)
  • اسلاید های Running OpenFOAM Tutorials نوشته لوچینی (Tommaso Luchini)
  • کتاب Snappy Wiki که مختص مبحث تولید شبکه بندی با استفاده از ابزار snappyHexMesh است.
  • کتاب فارسی ” مدلسازی جریان و انتقال حرارت با OpenFOAM “ تالیف نیما سام خانیانی انتشارات اندیشه سرا
  • پروژه SFO، یادگیری آنلاین CFD ارائه شده توسط تیم آقای دکتر جواهرچی در دانشگاه ایالتی واشنگتن آمریکا
  • ویکی معروف اپنفوم حاوی مطالب متنوع و مفید
  • مطالب آموزشی ارزشمند جمع آوری شده توسط گروه تحقیقاتی CFD مستقر در دانشگاه فنی مهندسی وین اتریش
  • بانک منابع ورکشاپ های رسمی اپنفوم در سراسر دنیا. این ورکشاپ هر سال یک بار در یک کشور برگزار می گردد. تمامی مطالب عنوان شده در این ورکشاپ ها اعم از چکیده، فایل های ارائه، تست کیس های اپنفوم و پوستر ها برای همه ورکشاپ ها در سایت SourceForge قرار داده می شوند. (این سایت برای کشور ایران محدود شده است، البته که شما قطعا بهتر از بنده نحوه دور زدن آن را بلدید ;))
  • Tutorial ها، Validation Case ها و آموزش های رایگان ارائه شده توسط شرکت Wolf Dynamics همراه با کلیه فایل های کیس ها که بسیار ارزشمند هستند.
  • سری پست های چگونه در CFD به جواب درست برسیم که در زیر می توانید آنها را مطالعه کنید.


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

امروز، به بررسی نحوه رسیدن به یک جواب درست در CFD و روند حل یک مساله به روش استاندارد می پردازیم. این آموزش به صورت منظم در چند بخش برای شما تنظیم شده که به مرور زمان در سایت قرار میگیره. بسیاری از افرادی که CFD کار می کنند، نحوه درست حل یک مساله رو…

7 comments

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

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

5 comments

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

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

7 comments

 

منابع یادگیری زبان برنامه نویسی ++C

لیست کاملی از منابع آموزش مقدماتی ++C در سایت (Stack Overflow) وجود دارد. چون هر شخص انتظارات متفاوتی از کتاب های آموزشی دارد پیشنهاد یک کتاب آموزش مقدماتی برای یک زبان برنامه نویسی کار ساده ای نیست. یک اپن فوم کار برای اینکه بتواند بصورت حرفه ای کار شروع به کار بکند نیازمند تسلط به گستره وسیعی از مطالب و ویژگی های زبان ++C مسلط است. به هر ترتیب بنظر، کتاب آموزشی مقدماتی   ++C  برای کاربران اپن فوم باید این ویژگی ها رو داشته باشد:

  • مثال هایی تا حد ممکن کوتاه داشته باشد.
  • فقط ساختار زبان کافی نیست، ضرب المثل های زبان برنامه نویسی هم باید پوشش داده شده باشد.

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

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

  • برای شروع بکار با اپن فوم به زبان فارسی، می تونید از سری ویدئو های آموزشی تهیه شده توسط مهندس امیراصلان پور استفاده کنید در سطوح مقدماتی و متوسطه در همین سایت ارائه می شوند.
  • اگر به ویدیوهای انگلیسی زبان علاقه دارید می توانید به سراغ کانال آقای Nagy در یوتیوب بروید و یا سری به کانال بسیار خوب دوست ما، آقای Holzmann بزنید.
  • ویدئوهای ارائه شده توسط پروفسور Hrojve Jasak بنیانگذار اپنفوم در دانشگاه Ghent همراه با Test Case ها.

منابع یادگیری طراحی نرم افزار

اینکه یاد بگیریم چطور با ++C کد بنویسیم و به قابلیت و ویژگی های این زبان مسلط باشیم یک مهارت است و مهارت مهمتر این است که بتوانیم یک کد تمیز (با شخصیت!) و با قابلیت استفاده مجدد بنویسیم که در این صورت باید با کدنویسی پیمانه ای متشکل از بخش های مجزا و مستقل آشنا باشیم. در این بخش منابعی رو معرفی می کنیم تا بتوانید این توانایی ها یعنی طراحی نرم افزار را کسب کنید.

اپنفوم از الگوی طراحی شیء گرا استفاده میکنه. قابلیت هایی مثل Object Registery یا Run-time Type Selection  معجزات جدیدی از ++C نیستند که صرفا برای سی اف دی توسعه داده شده باشند این قابلیت ها صرفا الگوهای طراحی نرم افزاری هستند.

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

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

  • Code Complete, by Steve McConnell
  • Clean Code, by Robert C. Martin
  • Growing Object-Oriented Software, Guided by Tests, by Steve Freeman and Nat Pryce,
  • Design Patterns. Elements of Reusable Object-Oriented Software, by von Erich Gamma, Richard Helm, Ralph E. Johnson and John Vlissides,
  • Head First Design Patterns, by Eric Freeman, Elisabeth Robson, Bert Bates und Kathy Sierra,
  • UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition) by Martin Fowler

منبع یادگیری زبان اسکریپت نویسی Bash

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

منابع آنلاین زیادی برای یادگیری Bash وجود دارد ولی یکی از بهترین کتابهایی که تمام موارد مهم را بصورت منظم ارائه کرده کتاب زیر است:

–  Pro Bash Programming by Chris F.A. Johnson

البته پشنهاد شخصی من استفاده از Bash به صورت تجربی و یادگیری آنلاین است. شما هر چیزی را اراده کنید برای Bash خواهید یافت و به هر مشکلی هم که برخورید راه حل آن را در سایت هایی نظیر StackOverflow.com  و  unix.stackexchange.com پیدا خواهید کرد.

 منابع یادگیری دینامیک سیالات محاسباتی (CFD)

منابع بسیار ارزشمندی در سایت CFD-online برای یادگیری معرفی شده اند که از میان آنها این منابع رو پیشنهاد می کنیم:

– An Introduction to Computational Fluid Dynamics: The Finite Volume Method, by H. Versteeg and W. Malalasekera

– Computational Methods for Fluid Dynamics, by Joel H. Ferziger and Milovan Peric

– Computational Fluid Dynamics: The Basics with Applications, by John David Anderson

– Computational fluid mechanics and heat transfer, by Dale A. Anderson; Richard H. Pletcher and John C. Tannehill

– Turbulence Modeling for CFD, by David C. Wilcox

– Turbulent Flows, by Stephen B. Pope

 

منبع: SourceFlux.de (با اندکی دخل و تصرف)

آموزشی

1 دیدگاه. ارسال دیدگاه جدید

برای نوشتن دیدگاه باید وارد بشوید.
فهرست
X