در شبیه‌سازی جریان‌های چندفازی و تخلیه سیفون، بسیاری از کمیت‌های موردنیاز را نمی‌توان مستقیماً از متغیرهای آماده CFX دریافت کرد. در این شرایط، CEL یا CFX Expression Language امکان تعریف روابط ریاضی، متغیرهای محاسباتی و توابع سفارشی را در اختیار کاربر قرار می‌دهد. با استفاده از CEL می‌توان کمیت‌هایی مانند دبی، سرعت مؤثر، فشار هیدروستاتیک، شرایط وابسته به ارتفاع، Volume Fraction و پارامترهای زمانی را به‌صورت سفارشی تعریف کرد. مستندات CFX، CEL را برای ساخت Expressions و استفاده از توابع کمی در CFX-Pre و CFX-Solver معرفی می‌کند.

CEL در ANSYS CFX چیست؟

CFX Expression Language (CEL) یک زبان داخلی برای تعریف روابط و Expressions در محیط CFX است. این زبان امکان استفاده از:

  • ثابت‌های عددی
  • متغیرهای حل
  • عملگرهای ریاضی
  • توابع ریاضی
  • توابع شرطی
  • توابع مربوط به فازها
  • توابع وابسته به موقعیت
  • توابع وابسته به زمان
  • توابع محاسبه کمیت‌های انتگرالی

را فراهم می‌کند.

به این ترتیب می‌توان به‌جای ایجاد یک مدل پیچیده‌تر، بسیاری از روابط موردنیاز را مستقیماً در CFX تعریف کرد.

کاربرد CEL در شبیه‌سازی سیفون

در مسئله تخلیه سیفون، CEL می‌تواند برای اهداف مختلفی مورد استفاده قرار گیرد. برای مثال می‌توان Expressionهایی برای موارد زیر تعریف کرد:

دبی خروجی سیفون

سرعت متوسط جریان

فشار هیدروستاتیک

ارتفاع سطح آب

کسر حجمی آب

کسر حجمی هوا

شرایط اولیه توزیع فازها

پارامترهای وابسته به زمان

کمیت‌های مورد استفاده در Monitor

این قابلیت باعث می‌شود مدل عددی انعطاف بیشتری پیدا کند و برخی محاسبات موردنیاز بدون ایجاد User Routine انجام شوند.

ساختار کلی یک Expression

یک Expression می‌تواند از ترکیب متغیرها، اعداد، واحدها، عملگرها و توابع ساخته شود.

برای نمونه، یک رابطه مفهومی ساده برای فشار هیدروستاتیک را می‌توان به شکل زیر در نظر گرفت:

P_h = rho_water * g * H

در CEL، رعایت سازگاری واحدها بسیار مهم است. ANSYS تصریح می‌کند که هنگام جمع، تفریق یا مقایسه کمیت‌ها، واحدهای سازگار باید استفاده شوند.

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

استفاده از واحدها در CEL

یکی از مزایای CEL امکان کار با کمیت‌های دارای Dimension است. برای مثال، یک طول باید به‌عنوان طول، زمان به‌عنوان زمان و فشار به‌عنوان فشار شناخته شود.

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

  • طول
  • زمان
  • سرعت
  • فشار
  • چگالی
  • دبی جرمی
  • دبی حجمی

باشند.

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

تعریف ثابت‌های سفارشی

در مدل تخلیه سیفون معمولاً برخی پارامترها ثابت هستند؛ برای مثال:

  • شتاب گرانش
  • قطر لوله
  • ارتفاع اولیه آب
  • چگالی آب
  • چگالی هوا
  • فشار مرجع

بهتر است این پارامترها به‌صورت Expressions یا پارامترهای مشخص تعریف شوند تا در صورت نیاز بتوان آنها را تغییر داد.

برای مثال، می‌توان مفهومی مانند:

g = 9.81 [m s^-2]

را به‌عنوان مقدار گرانش در یک رابطه سفارشی مورد استفاده قرار داد.

این روش باعث می‌شود مدل برای مطالعات پارامتریک نیز مناسب‌تر شود.

استفاده از توابع ریاضی

CEL مجموعه‌ای از توابع ریاضی را در اختیار کاربر قرار می‌دهد. در مستندات CFX توابع مختلفی مانند توابع توان، لگاریتم، نمایی، جذر، مثلثاتی و توابع مربوط به پردازش متغیرهای میدانی معرفی شده‌اند.

برای مثال، می‌توان یک رابطه وابسته به زمان را به‌صورت مفهومی ایجاد کرد تا یک کمیت با گذشت زمان تغییر کند.

این قابلیت در تحلیل Transient سیفون بسیار مفید است؛ زیرا بسیاری از پارامترها ثابت نیستند و با زمان تغییر می‌کنند.

استفاده از تابع شرطی If

یکی از قابلیت‌های مهم CEL، تعریف روابط شرطی است.

ساختار عمومی عبارت شرطی در CFX به‌صورت زیر است:

if(cond_expr, true_expr, false_expr)

یعنی اگر شرط برقرار باشد، مقدار اول و در غیر این صورت مقدار دوم استفاده می‌شود.

برای مثال، از نظر مفهومی می‌توان شرایطی مانند:

اگر ارتفاع آب بیشتر از مقدار مشخصی باشد → حالت اول

و

اگر ارتفاع آب کمتر از آن مقدار باشد → حالت دوم

را در یک Expression تعریف کرد.

این قابلیت می‌تواند برای ایجاد روابط وابسته به ارتفاع، زمان یا موقعیت مفید باشد.

نکته مهم درباره If

در CEL، نباید از if() برای جلوگیری از خطاهایی مانند تقسیم بر صفر استفاده کرد؛ زیرا CFX ممکن است هر دو عبارت نتیجه را ارزیابی کند، حتی اگر شرط فقط یکی از آنها را انتخاب کند. مستندات CFX صراحتاً این محدودیت را برای Conditional If بیان می‌کند.

بنابراین طراحی Expressions باید به‌گونه‌ای باشد که از ایجاد مقادیر نامعتبر در هر دو شاخه جلوگیری شود.

استفاده از Step Function

یکی از توابع کاربردی برای مدل‌سازی شرایط ناحیه‌ای، step() است.

این تابع برای یک ورودی بدون بعد، در سمت منفی مقدار صفر، در سمت مثبت مقدار یک و در نقطه صفر مقدار 0.5 ایجاد می‌کند.

این ویژگی در شبیه‌سازی سطح آزاد بسیار کاربردی است.

برای مثال، می‌توان از یک Step Function بر اساس مختصات عمودی استفاده کرد تا توزیع اولیه آب و هوا بر اساس ارتفاع مشخص شود.

به‌صورت مفهومی:

پایین سطح اولیه آب → Water Volume Fraction ≈ 1

بالای سطح اولیه آب → Water Volume Fraction ≈ 0

به این ترتیب می‌توان یک سطح آزاد اولیه را با استفاده از یک Expression تعریف کرد.

تعریف توزیع اولیه آب و هوا

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

فرض کنید محور عمودی مدل Y باشد و ارتفاع اولیه آب برابر H0 تعریف شده باشد. می‌توان یک Expression مفهومی بر اساس موقعیت ایجاد کرد که در زیر H0 مقدار مربوط به آب و در بالای آن مقدار مربوط به هوا را تعیین کند.

این روش برای ایجاد Initial Volume Fraction Distribution بسیار مفید است و می‌تواند نسبت به تعریف دستی نقاط مختلف، انعطاف‌پذیری بیشتری ایجاد کند.

تعریف دبی خروجی با CEL

یکی از کاربردهای بسیار مهم CEL در این پروژه، محاسبه و مانیتورکردن دبی خروجی سیفون است.

CFX دارای توابع کمی برای محاسبه کمیت‌هایی مانند Mass Flow و میانگین‌های جرمی است. برای نمونه، مستندات CFX نحوه استفاده از massFlow() و massFlowAve() را برای محاسبه دبی جرمی و میانگین‌های وابسته به دبی نشان می‌دهد.

بنابراین می‌توان یک Expression برای استخراج دبی در سطح خروجی تعریف کرد و آن را به‌عنوان Monitor در طول حل Transient دنبال نمود.

این کار امکان بررسی مستقیم تغییر دبی در طول تخلیه را فراهم می‌کند.

محاسبه سرعت متوسط خروجی

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

برای مثال، اگر سطح مقطع خروجی مشخص باشد، می‌توان رابطه مفهومی:

Q = V_avg × A

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

این نوع Expressionها برای مقایسه نتایج CFD با روابط تئوری سیفون مفید هستند.

استفاده از CEL برای Volume Fraction

در جریان چندفازی، Volume Fraction یکی از مهم‌ترین متغیرهاست.

می‌توان Expressionهایی تعریف کرد که بر اساس Volume Fraction آب یا هوا، نواحی مختلف جریان را مشخص کنند.

برای مثال، می‌توان یک کمیت کمکی برای شناسایی ناحیه‌ای که آب در آن غالب است ایجاد کرد.

این قابلیت برای تحلیل موارد زیر مفید است:

  • تشخیص موقعیت Interface
  • بررسی پرشدگی لوله
  • بررسی ورود هوا به سیفون
  • تعیین ناحیه آب
  • تعیین ناحیه هوا
  • بررسی تغییر سطح آزاد

استفاده از Expressions در Monitorها

CEL فقط برای تعریف شرایط مرزی یا متغیرهای مدل نیست. می‌توان از Expressionها برای ساخت Monitor نیز استفاده کرد.

برای مدل تخلیه سیفون، مجموعه‌ای از Monitorهای کاربردی می‌تواند شامل موارد زیر باشد:

Monitorهدف
Mass Flowدبی جرمی خروجی
Volume Flowدبی حجمی
Average Velocityسرعت متوسط
Pressureفشار در نقطه یا سطح مشخص
Water Volume Fractionمیزان حضور آب
Water Levelارتفاع سطح آب
Timeزمان شبیه‌سازی

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

CEL و تعریف شرایط وابسته به زمان

یکی دیگر از کاربردهای مهم CEL، ایجاد روابطی است که با زمان تغییر می‌کنند.

برای مثال می‌توان یک پارامتر ورودی را به‌صورت تابعی از زمان تعریف کرد:

Parameter = f(t)

این قابلیت می‌تواند در مطالعاتی که شرایط مرزی یا یک پارامتر فیزیکی با زمان تغییر می‌کند، کاربرد داشته باشد.

در شبیه‌سازی سیفون، این قابلیت می‌تواند برای مطالعات حساسیت یا ایجاد شرایط عملیاتی متغیر مورد استفاده قرار گیرد.

استفاده از User CEL Functions

در CFX-Pre علاوه بر Expressions معمولی، امکان تعریف User CEL Functions نیز وجود دارد. در راهنمای CFX-Pre بخش مستقلی برای تعریف User CEL Functions، نام تابع، آرگومان‌ها و واحدهای نتیجه وجود دارد.

این قابلیت زمانی مفید است که یک رابطه ریاضی مشخص چندین بار در مدل استفاده شود.

به‌عنوان مثال، به‌جای تکرار یک رابطه طولانی در چند Expression، می‌توان آن را به‌صورت یک تابع سفارشی تعریف کرد و سپس در بخش‌های مختلف مدل فراخوانی نمود.

تفاوت Expression و User Function

به‌صورت مفهومی:

Expression برای تعریف یک رابطه یا کمیت مشخص در مدل مناسب است.

User CEL Function زمانی مفیدتر است که یک رابطه پارامتریک و قابل فراخوانی چندباره داشته باشیم.

برای مثال، اگر بخواهیم رابطه‌ای را برای چند ارتفاع مختلف یا چند پارامتر مختلف استفاده کنیم، User Function می‌تواند ساختار مدل را منظم‌تر کند.

Table User Functions

CFX همچنین امکان تعریف Table User Function را فراهم می‌کند. این نوع تابع می‌تواند به داده‌های جدولی بر اساس یک یا چند Index دسترسی داشته باشد و حتی داده‌ها را از فایل خارجی مانند CSV دریافت کند.

این قابلیت برای مدل‌هایی که یک رابطه تحلیلی ساده ندارند بسیار مفید است.

برای مثال، می‌توان یک جدول تجربی یا عددی شامل:

Time → Flow Rate

یا

Water Level → Discharge

تعریف کرد و سپس مقدار موردنیاز را در CEL فراخوانی نمود.

این قابلیت می‌تواند برای اتصال داده‌های آزمایشگاهی یا نتایج محاسبات قبلی به مدل CFX نیز کاربرد داشته باشد.

CEL برای تعریف روابط مهندسی سیفون

یکی از کاربردهای مهم Expressions، مقایسه نتایج CFD با روابط مهندسی است.

برای مثال، می‌توان یک Expression برای سرعت ایده‌آل خروجی بر اساس اختلاف ارتفاع تعریف کرد و سپس آن را با سرعت حاصل از CFD مقایسه نمود.

به این ترتیب می‌توان بررسی کرد که:

CFD Result ↔ Analytical/Engineering Relation

چقدر با یکدیگر تطابق دارند.

این کار به اعتبارسنجی مدل و شناسایی اثر افت‌های واقعی، اصطکاک و تغییرات هندسی کمک می‌کند.

نکات مهم در فرمول‌نویسی CEL

هنگام ایجاد Expressions در CFX بهتر است چند اصل رعایت شود:

  1. واحد تمام کمیت‌ها بررسی شود.
  2. از نام‌های واضح برای Expressions استفاده شود.
  3. روابط پیچیده به چند Expression ساده‌تر تقسیم شوند.
  4. از تقسیم بر صفر جلوگیری شود.
  5. متغیرهای مربوط به فاز به‌صورت صحیح مشخص شوند.
  6. محل ارزیابی Functionها در صورت نیاز مشخص شود.
  7. Expressions قبل از استفاده در Solver بررسی شوند.
  8. برای روابط پرتکرار از User Function استفاده شود.

در CFX، نحوه فراخوانی برخی توابع کمی می‌تواند شامل نام فاز، مؤلفه و Location باشد؛ بنابراین ساختار صحیح فراخوانی Function باید مطابق مستندات همان تابع باشد.

نمونه کاربردی در پروژه تخلیه سیفون

برای مدل آموزشی سیفون می‌توان یک ساختار منطقی مانند زیر ایجاد کرد:

پارامترهای پایه:

g

H0

rho_water

rho_air

D

Expressions محاسباتی:

HydrostaticPressure

WaterVolumeFraction

OutletMassFlow

OutletVelocity

WaterLevel

Monitors:

Mass Flow vs Time

Water Level vs Time

Pressure vs Time

Volume Fraction vs Time

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

کنترل و اعتبارسنجی Expressions

پس از تعریف CEL، نباید بلافاصله آن را وارد یک مدل پیچیده کرد. بهتر است ابتدا مقدار Expression در یک شرایط ساده بررسی شود.

برای مثال، اگر Expression برای فشار هیدروستاتیک ایجاد شده است، مقدار آن باید با رابطه تئوری مقایسه شود.

اگر Expression مربوط به دبی است، باید بررسی شود که واحد و علامت آن صحیح باشد.

این مرحله به‌خصوص در مدل‌های چندفازی اهمیت دارد، زیرا اشتباه در انتخاب فاز یا Location می‌تواند نتیجه‌ای ایجاد کند که از نظر عددی معتبر به نظر می‌رسد اما از نظر فیزیکی اشتباه است.

جمع‌بندی

CEL Expressions یکی از ابزارهای مهم ANSYS CFX برای سفارشی‌سازی مدل‌های CFD است. در شبیه‌سازی تخلیه سیفون می‌توان از آن برای تعریف روابط ریاضی، تعیین توزیع اولیه Volume Fraction، محاسبه دبی و سرعت، ایجاد پارامترهای وابسته به زمان و ساخت Monitorهای اختصاصی استفاده کرد. مستندات CFX همچنین توابع تخصصی برای محاسباتی مانند Mass Flow، میانگین‌های جرمی و سایر کمیت‌های مهندسی در اختیار کاربر قرار می‌دهد.

از طرف دیگر، User CEL Functions و Table User Functions امکان ایجاد روابط قابل استفاده مجدد و حتی استفاده از داده‌های جدولی خارجی را فراهم می‌کنند.

در یک مدل چندفازی سیفون، استفاده صحیح از CEL باعث می‌شود بتوان علاوه بر مشاهده میدان‌های سرعت، فشار و Volume Fraction، کمیت‌های مهندسی مهمی مانند دبی تخلیه، ارتفاع سطح آب و تغییرات زمانی جریان را نیز به‌صورت مستقیم در مدل تعریف و پایش کرد.

کلیدواژه ها : فرمول نویسی در ANSYS CFX-CEL Expressions-زبان CEL در انسیس سی اف ایکس-CFX Expression Language-تعریف توابع سفارشی در CFX-User CEL Functions-توابع سفارشی CFX-فرمول نویسی CFD-CFD Expressions-متغیرهای سفارشی در CFX-CFX Custom Variables-تعریف پارامتر در CFX-CFX Parameters-توابع ریاضی CEL-CEL Mathematical Functions-تابع شرطی در CFX-CEL If Function-Step Function در CFX-CEL Step Function-Volume Fraction Expression-کسر حجمی در CFX-دبی خروجی سیفون-Siphon Mass Flow-محاسبه دبی با CEL-Mass Flow CEL Function-سرعت جریان با CEL-Flow Velocity Expression-فشار هیدروستاتیک-Hydrostatic Pressure Expression-ارتفاع سطح آب-Water Level Expression-شرایط اولیه چندفازی-Multiphase Initial Conditions-جریان چندفازی در CFX-Multiphase Flow CFX-سطح آزاد-Free Surface-شبیه سازی تخلیه سیفون-Siphon Drainage Simulation-توابع جدولی CFX-Table User Functions-ورودی CSV در CFX-CSV Table Function-مانیتورهای سفارشی CFX-CFX Custom Monitors-تحلیل گذرای سیفون-Transient Siphon Analysis-شبیه سازی CFD سیفون-CFD Siphon Simulation-ANSYS CFX CEL-ANSYS CFX Multiphase