اگر جزء آن دسته از کاربرانی باشیم که با انسیس فلوئنت به صورت پیشرفته یا متوسط کار می کینم حتما با یو دی اف نویسی در فلوئنت آشنا هستیم. در واقع توابع یو دی اف در فلوئنت ( UFD in Ansys fluent ) توابع خارجی این نرم افزار می باشند ، که می توان توسط آنها قابلیت های مختلفی را به نرم افزار انسیس فلوئنت وارد کرد. این توابع به صورت دینامیکی در هر تکرار از پروسه حل در فلوئنت اجرا می شوند و موارد خاص مورد نظر کاربر را به فلوئنت اعمال می کنند. در ابتدا به بررسی کلی udf نویسی در فلوئنت می پردازیم.
آموزش رایگان یو دی اف نویسی در انسیس فلوئنت
در فیلم آموزشی زیر به آموزش مفاهیم پایه ای مربوط به یو دی اف نویسی (udf نویسی در انسیس فلوئنت) پرداخته ایم و همچنین لینک های دانلود نرم افزارهای مورد نیاز برای یو دی اف نویسی و PDF های شرکت انسیس (جزوه udf ) و نرم افزار ویژوال استودیو را نیز می توانید دریافت کنید.
دانلود فیلم آموزش کدنویسی در فلوئنت و فایل های مورد نیاز UDF نویسی
آموزش یو دی اف نویسی در فلوئنت ( udf نویسی در فلوئنت )
استفاده از یو دی اف (UDF) در نرم افزار فلوئنت کاربردهای متنوع و فراوانی دارد به عنوان مثال برای اعمال سرعت خطی ثابت یا متغیر بر روی مرزهای متحرک یا تعیین ممان اینرسی های یک جسم صلب از UDF استفاده می شود . در ادامه مقاله به کامپایل کردن یو دی اف در فلوئنت (compilling udf in ansys fluent) و کدنویسی udf در فلوئنت اشاره کرده ایم. کامپایل کردن یودی اف به این جهت از اهمیت زیادی برخوردار است که معمولا با خطاهای زیادی مواجه می شویم. در پایان هم راه حل های رفع خطای زیر را بررسی می کنیم:
Error: The UDF library you are trying to load (libudf) is not compiled for parallel use on the current platform
*** از جمله کاربردهای یو دی اف نویسی در فلوئنت ( udf نویسی در فلوئنت ) به موارد زیر میتوان اشاره کرد:
- تعیین شرایط مرزی خاص
- تغییر خواص منحصر به فرد یک ماده
- تعیین یک منبع خاص در میدان و داده دهی اولیه یکنواخت میدان
- اعمال سرعت خطی ثابت یا متغیر بر روی مرزهای متحرک
- تعیین ممان اینرسی یک جسم صلب
موارد بالا تنها بخش کوچکی از کاربرد این توابع است و شما می توانید شرایط مد نظر خود را با فرا گرفتن آموزش یو دی اف به نرم افزار انسیس فلوئنت وارد کنید.
ویژگی های یو دی اف در انسیس فلوئنت
یو دی اف های نوشته شده در فلوئنت ویژگی های خاصی باید داشته باشند که عبارتند از:
- توابع یو دی اف ( udf ) با پسوند C ذخیره شده و آن ها را میتوان در هر ویرایشگر متنی مثل Notepad تغییر داد.
- هر فایل می تواند از یک یا چند تابع تشکیل شده باشد و همچنین می توان چندین یو دی اف را در قالب یک یو دی اف در فلوئنت نوشت.
- توابع باید در قالب ماکروهای تعیین شده (Define macros) که توسط فلوئنت در اختیار کاربر قرار داده شده است، نوشته شود.
- تمامی توابع خارجی با خط “udf.h” شروع می شود در اصل با استفاده از این خط ماکروهایی که در کد مشخش شده است توسط نرم افزار فلوئنت شناسایی می شود.
- کلیه واحدهایی که در یو دی اف فلوئنت مشخص می شود بر حسب واحد Si می باشد.
- برای بارگذاری یو دی اف در نرم افزار انسیس فلوئنت دو راه وجود دارد که اولی استفاده از کامپایلر داخلی فلوئنت و دومی استفاده از یک کامپایلر خارجی می باشد.
- استفاده از کامپایلر داخلی محدود است و کامپایل تمامی توابع با استفاده از این روش امکان پذیر نمی باشد.
- سرعت کامپایلر خارجی به مراتب یبشتر است.
فرمت عمومی یک ماکرو می بایست به شکل زیر باشد:
DEFINE_MACRONAME(udf_name, passed in variables)
در دستور فوق اولین متغیر داخل پرانتز عبارت است از نام تابع که این نام توسط کاربر تعیین می شود. در اصل تنها عبارتی که در سطر اول هر ماکرو قابل تغییر است همین نام می باشد و دیگر متغیرها باید به همان شکل که در فلوئنت دستور داده شده است عینا در یو دی اف کپی شوند. توجه داشته باشید توابع تعیین شده به بزرگی و کوچکی حروف حساس بوده و استفاده نادرست موجب خطا در استفاده از آن ها می شود. نام انتخاب شده توسط کاربر نیز پس از بارگذاری در منوهای فلوئنت قابل انتخاب می باشد.
مثال ساده زیر یک نمونه از تعیین سرعت ورودی برای یک شرط مرزی با یو دی اف نویسی است.(پروفیل سرعت برای شرط مرزی ورودی)
DEFINE_PROFILE(inlet_x_velocity, thread,index)
یک یادآوری:
با توجه به مفاهیم بالا عبارت های زیر در یو دی اف نویسی به کار می رود.
برای هر یو دی اف نیز می توانیم متغییر های مخصوص یک شبکه محاسباتی را با توجه به موارد زیر مشخص کنیم.
- Cell_t سلول ها
- Face_t وجوه یک سلول
- Thread رشته
- Domain میدان
- Node نود
تمامي این موارد به كوچكي و بزرگي حروف حساس هستند و بايد به همان ترتيبي كه در بالا تعريف شده اند, در تابع udf استفاده شوند.
آموزش نوشتن udf های پرکاربرد در فلوئنت
1- یو دی اف مربوط به مشخص کردن پروفیل سرعت فلوئنت :
در ادامه یک یو دی اف مربوط به پروفیل سرعت در نرم افزار فلوئنت را مشاهده می کنیم. توجه داشته باشید شما در نرم افزار انسیس فلوئنت تنها می توانید از سرعت یکنواخت داخل نرم افزار استفاده کنید و برای استفاده از پروفیل سرعت نیاز به توابع یو دی اف دارید.
یو دی اف مربوط به مشخص کردن پروفیل سرعت فلوئنت :
#include “udf.h”
DEFINE_PROFILE(inlet_vel,thread,position)
{
real x[ND_ND];
real y,u;
face_t f;
begin_f_loop(f, thread)
{
F_CENTROID(x,f,thread);
y = x[1];
if(y>=0) u=10-10*y/0.25;
if(y<0) u=10+10*y/0.25;
F_PROFILE(f,thread,position) = u;
}
end_f_loop(f, thread)
همان طور که مشاهده می شود در کد بالا محور y به دو دسته تقسیم شده است و در هر بخش معادله سرعت متفاوت می باشد، در این زمان با توجه به مدل هندسه و شبکه بندی استفاده شده نرم افزار فلوئنت، سرعت ورودی محاسبه شده و وارد دامنه محاسباتی می شود . برای ایجاد سرعت مدنظر باید مدل محاسباتی با معادلات استفاده شده در کد هم خوانی داشته باشد در غیر این صورت پروفیل سرعت متفاوتی را مشاهده خواهید کرد.
2- یو دی اف مربوط به مشخص کردن وزن یک گوی در فلوئنت:
DEFINE_SDOF_PROPERTIES(test_box, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 100;
}
در این یو دی اف جرم هندسه 100 کیلوگرم تعیین شده است.
3- یو دی اف مربوط به مشخص کردن سرعت یک جسم صلب متغییر با زمان:
#include<udf.h>
DEFINE_CG_MOTION(bus, dt, cg_vel, cg_omega, time, dtime)
{
{
if(CURRENT_TIME<3)
cg_vel[0] = 3.0;
}
{
if(3<=CURRENT_TIME<6)
cg_vel[0]=6.0;
}
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;
}
4- یو دی اف مربوط به مشخص کردن سرعت یک جسم صلب با سرعت ثابت:
#include<udf.h>
DEFINE_CG_MOTION(bus, dt, cg_vel, cg_omega, time, dtime)
{
cg_vel[0] = 3.0;
}
5- یو دی اف مربوط به مشخص کردن ممان اینرسی یک جسم صلب:
#include “udf.h”
DEFINE_SDOF_PROPERTIES(test_box, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 666.66;
prop[SDOF_IXX] = 129.6296;
prop[SDOF_IYY] = 111.1111;
prop[SDOF_IZZ] = 129.6296;
}
خطاها و ارورهای مربوط به یو دی اف نویسی در فلوئنت
یکی از مشکلات رایج در زمان کامپایل کردن UDF در فلوئنت خطای زیر می باشد که در ادامه مقاله به بررسی راه های حل این خطا خواهیم پرداخت:
Error: The UDF library you are trying to load (libudf) is not compiled for parallel use on the current platform
اگرچه در بروز رسانی های جدید ، انسیس سعی داشته تا کاربران بدون نیاز به کد نویسی این دستورات را برروی شبیه سازی خود اعمال کنند. به عنوان مثال در فلوئنت ورژن 18.2 شما می توانید بدون استفاده از کدنویسی ، جرم و ممان اینرسی های جسم خود را مشخص کنید. که شامل مراحل زیر می باشد:
- انتخاب Dynamic mesh
- Six DOF
- Create/Edit
- Set Mass & Ixx & Iyy & Izz
وارد کردن UDF به نرم افزار فلوئنت
به منظور وارد کردن UDF در فلوئنت دو روش برای کاربران توسط شرکت انسیس فراهم گردیده است. این دو روش نسبت به هم مزایا و معایبی دارند که در ادامه به طور مختصر به آن پرداخته شده است.
- Interpreted
- Compile
در روش اول کاربر با استفاد از کامپایلر داخلی فلوئنت کدهای خود را به نرم افزار وارد می کند اما در روش دوم با استفاده ار یک کامپایر جداگانه مثل Visual Studio کدهای خود را وارد فلوئنت می کند. که شامل موارد زیر می باشد:
- User Define
- Function
- Compile or Interpreted
اما در روش دوم یعنی استفاده از کامپایلر خارجی اغلب کاربران با خطای زیر مواجه می شوند :
Error: The UDF library you are trying to load (libudf) is not compiled for parallel use on the current platform
دلایل خطا :
- عدم نصب Compiler بر روی سیستم مورد استفاده.
- عدم همخوانی ورژن Compiler با نرم افزار فلوئنت.(پیشنهاد مولف: ورژن2010 در ادامه لینک دانلود این ورژن قرار داده شده است)
- استفاده از کاراکترهای نامتعارف برای نامگذاری پوشه کاری، مانند: (@/*-+…….).
- مشکلات مربوط به استفاده از دستورات کدنویسی.
برای دانلود ویژوال استودیو مناسب می توانید از فرم بالای صفحه استفاده نمایید تا لینک ها به ایمیل شما فرستاده شود.
نسخه های مناسب Microsoft Visual Studio در انسیس ورک بنچ 18.2 برای کامپایل کردن UDF
Microsoft Visual Studio 14
Microsoft Visual Studio 12
Microsoft Visual Studio 11
Microsoft Visual Studio 10
Microsoft Visual Studio 9
Microsoft Visual Studio 8
Microsoft Visual Studio.net 2003
همچنین در کنار این ورژن ها استفاده از ورژن 2010 برروی انسیس ورک بنچ 17.2 ، 18.2 و 19.2 تست شده و بدون هیچ مشکلی کدهای ورودی را فراخوانی میکند.
اما اگر با انجام تمامی مراحل بالا مشکل کامپایل یو دی اف در فلوئنت حل نگردید مراحل زیر را انجام دهید:
- در منوی سرچ لپ تاپ عبارت Visual studio cross tools command prompted را سرچ کنید.
- مسیر نصب فلوئنت را پیدا کنید مطابق شکل زیر در پنجره command prompted ایکون فلوئنت را درگ دراپ کنید.
- دکمه اینتر بزنید و نرم افزار فلوئنت را اجرا کرده و UDF خود را بارگذاری کنید.
سلام و خسته نباشید خدمت شما عزیزان .میدونم یکسال از پستی که گذاشتید میگذره اما من یه مشکل اساسی دارم . من وقتی میخوام از ماژول pemfc استفاده کنم این خطا میاد ولی با ماژول های دیگه خطا نمیده ؟؟؟؟ همه کارای بالا رو هم کردم از vs 2010 تا2019 هم نصب کردم حتی تو صفحات انگلیسی گشتم و کارایی گفتن از قبیل تعریف متغیر سیستم رو انجام دادم حتی مدلم رو تغییر دادم و با مدل ساده هم امتحان کردم اما فقط این ماژول رو ایراد می گیره .. انسیس 18.2 و 19.5 رو هم امتحان کردم باز نشد واقعا موندم ایراد از کجاست ….آیا میتونید کمکم کنید ؟
سلام دوست عزیز – تمامی راه حل های موجود رو در مقاله بیان کردیم. متاسفانه از این مورد که شما فرمودین تا به حال استفاده نکردم. شاید مشکل از ویندوز شما باشد. به نظرم در سوپر گروه تلگرامی ما به ادرس @cfd_group عضو بشید و مشکل خودتون رو مطرح کنید. شاید از دوستان کسی اطلاعات بیشتری در این زمینه داشته باشد.
سلام
بنده فلوئنت ورژن 19.0 و ویژوال 2010 روی سیستمم نصب بود تا 3-4 ماه پیش کار می کرد ولی امروز که خواستم حتی همان اجراهای قبل را باز کنم پیام خطا می داد…
آیا امکان دارد بعد از ورود به سال 2020 ویژوال 2010 دیگر جواب compile را ندهد.
چه ورژنی برای فلوئنت 19 در حال حاضر جواب می دهد؟
با تشکر
سلام – خیر ویژوال 2010 به درستی کار میکند و ما از همین ورژن برای کامپایل کردن یو دی اف ها در انسیس 19 استفاده میکنیم
با سلام
برای udf نویسی باید اول visual studio را نصب کرد یا انسیس فلوئنت؟و آیا اصن ترتیب و اولویت نصب مهم هست یا خیر؟
سلام ترتیب نصب مهم نیست ولی قبل از نصیب ویژوال استدیو از هم خوانی آن با نسخه انسیس خود اطمینان داشته باشید
پيشنهاد ما استفاده از نسخه 2010 ویژوال استودیو است.
با تشکر از پاسخگویی شما
با سلام
برای انسیس 22 باید از کدام نسخه ویژوال استودیو استفاده کنیم؟
همچنین آیا ویژوال استودیو 2015 بر روی نسخه 19.3 و بالاتر جواب می دهد یا خیر؟
سلام. ویژوال استودیو 2010 در حال حاضر برای همه نسخه هایی که ما استفاده میکنیم کار میکنه. فکر نکنم 2015 حداقل برای نسخه های جدید مشکلی داشته باشد.
باسلام احتراما برای نسخه 2022 فلوئنت کدام نسخه از ویژوال استادیو مناسب تر می باشد؟
سلام. ویژوال استودیو 2010 معمولا برای همه ورژن ها بدون مشکل کار میکند.
در پست زیر در کانال تلگرام ما میتوانید آموزش نصب و لینک دانلود را دریافت کنید.
https://t.me/CFDgroup/2542