چگونه در 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 استفاده خواهیم کرد. نحوه استفاده بسیار سادست. کافیه به جای دستورات قبلی برای اجرای حلگر، اینبار همانند زیر عمل کنیم:

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

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

شاد باشید! 🙂

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

  1. با سلام
    نرم افزار دیگه ای که برای رسم باقی مانده های حلی می توان از آن استفاده کرد نرم افزار MFR-Plotter می باشد. آدرس دانلود و دیدن نمونه باقی مانده های رسم شده در این نرم افزار:
    https://sourceforge.net/projects/mfrplotter/
    در صورت نیاز به توسعه و شخصی سازی می توانید با توسعه دهنده آن تماس بگیرید.

  2. vahidsr says:

    با سلام
    من از حلگر گذرای rhoCentralFoam استفاده می کنم و ابتدای شروع به حل همچین پیامی داخل ترمینال میده و هیچ نموداری نشون نمیده . مشکل چیه ؟
    با تشکر از شما
    PyFoam WARNING on line 144 of file /home/vahid/.local/lib/python2.7/site-packages/PyFoam/Execution/ParallelExecution.py : which can not find a match for rhoCentralFoam . Hoping for the best
    PyFoam WARNING on line 42 of file /home/vahid/.local/lib/python2.7/site-packages/PyFoam/Infrastructure/ServerBase.py : No certficate file /home/vahid/.pyFoam/foamServerCertificate.cert exists. Therefor no SSL-connection for the FoamServer possible
    To generate a private key:
    openssl genrsa -out /home/vahid/.pyFoam/foamServerCertificate.key 2048
    Then generate the cerificate that is valid for 3 years with
    openssl req -new -x509 -key /home/vahid/.pyFoam/foamServerCertificate.key -out /home/vahid/.pyFoam/foamServerCertificate.cert -days 1095

    gnuplot> plot “/tmp/tmpPQplXY.gnuplot/fifo” title “rho” with lines, “/tmp/tmpfsFtGX.gnuplot/fifo” title “rhoE” with lines, “/tmp/tmpT_BIHB.gnuplot/fifo” title “rhoUx” with lines, “/tmp/tmpxwW3F9.gnuplot/fifo” title “rhoUy” with lines
    ^
    line 0: all points y value undefined!

پاسخ دهید