کامپایل کردن یو دی اف در فلوئنت (Compile UDF in Ansys Fluent) آموزش یو دی اف نویسی

اگر جزء آن دسته از کاربرانی باشیم که با انسیس فلوئنت به صورت پیشرفته یا متوسط کار می کینم حتما با یو دی اف نویسی در فلوئنت آشنا هستیم. در واقع توابع یو دی اف در فلوئنت ( UFD in Ansys fluent ) توابع خارجی این نرم افزار می باشند ، که می توان توسط آنها قابلیت های مختلفی را به نرم افزار انسیس فلوئنت وارد کرد. این توابع به صورت دینامیکی در هر تکرار از پروسه حل در فلوئنت اجرا می شوند و موارد خاص مورد نظر کاربر را به فلوئنت اعمال می کنند. در ابتدا به بررسی کلی udf نویسی در فلوئنت می پردازیم.

آموزش یو دی اف نویسی در فلوئنت ( udf نویسی در فلوئنت )

استفاده از یو دی اف (UDF) در نرم افزار فلوئنت کاربردهای متنوع و فراوانی دارد به عنوان مثال برای اعمال سرعت خطی ثابت یا متغیر بر روی مرزهای متحرک یا تعیین ممان اینرسی های یک جسم صلب از  UDF استفاده می­ شود . در ادامه مقاله به کامپایل کردن یو دی اف در فلوئنت (compilling udf in ansys fluent) نیز اشاره کرده ایم. کامپایل کردن یودی اف به این جهت از اهمیت زیادی برخوردار است که معمولا با خطاهای زیادی مواجه می شویم. در پایان هم راه حل های رفع خطای زیر را بررسی می کنیم:
Error: The UDF library you are trying to load (libudf) is not compiled for parallel use on the current platform

*** از جمله کاربردهای یو دی اف نویسی در فلوئنت ( udf نویسی در فلوئنت ) به موارد زیر میتوان اشاره کرد:

  1. 1- تعیین شرایط مرزی خاص
  2. 2- تغییر خواص منحصر به فرد یک ماده
  3. 3- تعیین یک منبع خاص در میدان و داده دهی اولیه یکنواخت میدان
  4. 4- اعمال سرعت خطی ثابت یا متغیر بر روی مرزهای متحرک
  5. 5- تعیین ممان اینرسی یک جسم صلب

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

ویژگی های یو دی اف در انسیس فلوئنت

یو دی اف های نوشته شده در فلوئنت ویژگی های خاصی باید داشته باشند که عبارتند از:

  1. 1- توابع یو دی اف ( udf ) با پسوند C  ذخیره شده و آن ها را میتوان در هر ویرایشگر متنی مثل Notepad تغییر داد.
  2. 2- هر فایل می تواند از یک یا چند تابع تشکیل شده باشد و همچنین می توان چندین یو دی اف را در قالب یک یو دی اف در فلوئنت نوشت.
  3. 3- توابع باید در قالب ماکروهای تعیین شده (Define macros) که توسط فلوئنت در اختیار کاربر قرار داده شده است، نوشته شود.
  4. 4- تمامی توابع خارجی با خط “udf.h” شروع می شود در اصل با استفاده از این خط ماکروهایی که در کد مشخش شده است توسط نرم افزار فلوئنت شناسایی می شود.
  5. 5- کلیه واحدهایی که در یو دی اف فلوئنت مشخص می شود بر حسب واحد Si  می باشد.
  6. 6- برای بارگذاری یو دی اف در نرم افزار انسیس فلوئنت دو راه وجود دارد که اولی استفاده از کامپایلر داخلی فلوئنت و دومی استفاده از یک کامپایلر خارجی می باشد.
  7. 7- استفاده از کامپایلر داخلی محدود است و کامپایل تمامی توابع با استفاده از این روش امکان پذیر نمی باشد.
  8. 8- سرعت کامپایلر خارجی به مراتب یبشتر است.
حتما بخوانید #
آموزش انجام پروژه فلوئنت - چگونگی انجام پروژه با انسیس فلوئنت

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

DEFINE_MACRONAME(udf_name, passed in variables)

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

مثال ساده زیر یک نمونه از تعیین سرعت ورودی برای یک شرط مرزی با یو دی اف نویسی است.(پروفیل سرعت برای شرط مرزی ورودی)

DEFINE_PROFILE(inlet_x_velocity, thread,index)

 

یک یادآوری:

مشخص کردن سلول ها برای یو دی اف نویسی در فلوئنت

 

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

اصطلاحات udf در فلوئنت

 

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

  • Cell_t               سلول ها
  • Face_t             وجوه یک سلول
  • Thread            رشته
  • Domain            میدان
  • Node               نود

تمامی این موارد به کوچکی و بزرگی حروف حساس هستند و باید به همان ترتیبی که در بالا تعریف شده اند, در تابع udf استفاده شوند.

آموزش نوشتن  udf های پرکاربرد در فلوئنت

1- یو دی اف مربوط به مشخص کردن پروفیل سرعت فلوئنت :

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

یو دی اف مربوط به مشخص کردن پروفیل سرعت فلوئنت :

یو دی اف در فلوئنت برای سرعت - velocity udf fluent

#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 به نرم افزار فلوئنت

به منظور وارد کردن 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 در ادامه لینک دانلود این ورژن قرار داده شده است)
  • استفاده از کاراکترهای نامتعارف برای نامگذاری پوشه کاری، مانند: (@/*-+…….).
  • مشکلات مربوط به استفاده از دستورات کدنویسی.

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

لینک دانلود ویژوال استدیو متناسب با انسیس فلوئنت(تست شده توسط تیم CFDgroup)

 

نسخه­ های مناسب 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  تست شده و بدون هیچ مشکلی کدهای ورودی را فراخوانی میکند.

اما اگر با انجام تمامی مراحل بالا مشکل کامپایل یو دی اف در فلوئنت حل نگردید مراحل زیر را انجام دهید:
  1. 1- در منوی سرچ لپ تاپ عبارت Visual studio cross tools command prompted  را سرچ کنید.
  2. 2- مسیر نصب فلوئنت را پیدا کنید مطابق شکل زیر در پنجره command prompted ایکون فلوئنت را درگ دراپ کنید.
  3. 3- دکمه اینتر بزنید و نرم افزار فلوئنت را اجرا کرده و UDF خود را بارگذاری کنید.

Error: The UDF library you are trying to load (libudf) is not compiled for parallel use on the current platform

کامپایل کردن یو دی اف در فلوئنت (Compile UDF in Ansys Fluent) آموزش یو دی اف نویسی
5 (100%) 9 votes

admin

دیدگاه کاربران ...

تعداد دیدگاه : 0

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

    دیدگاه خود را بیان کنید