در شبیه‌سازی مسائل دینامیکی که در آن‌ها جسم یا مرزی در حال حرکت، چرخش یا نوسان است، به‌کارگیری شبکه‌ای که قابلیت تغییر شکل یا جابجایی داشته باشد ضروری است. در ANSYS Fluent این امکان از طریق روش‌های Dynamic Mesh فراهم می‌شود. یکی از مهم‌ترین ابزارهای کنترل حرکت اجسام صلب در شبکه دینامیکی، ماکروی DEFINE_CG_MOTION است. این ماکرو امکان تعریف حرکت مرکز جرم یک ناحیه صلب را به‌صورت کاملاً سفارشی در فضای محاسباتی فراهم می‌کند.

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

DEFINE_CG_MOTION چیست

DEFINE_CG_MOTION ماکرویی است که به کاربر اجازه می‌دهد حرکت اجسام صلب در شبکه دینامیکی را بر اساس قوانین حرکتی موردنظر تعریف کند. این حرکت می‌تواند شامل جابجایی خطی، چرخش، نوسان یا ترکیبی از چندین نوع حرکت باشد. ویژگی مهم این ماکرو آن است که کل ناحیه صلب (Rigid Body) در شبکه به‌صورت یکپارچه تحت معادله حرکت تعریف‌شده قرار می‌گیرد.

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

  • حرکت نوسانی اجسام (Oscillating Bodies)
  • چرخش پروانه، روتور یا پره‌ها
  • حرکت رفت و برگشتی پیستون‌ها
  • تغییر مکان سازه‌های شناور یا معلق
  • شبیه‌سازی پدیده‌های FSI ساده با حرکت از پیش تعیین‌شده

DEFINE_CG_MOTION ابزاری کلیدی برای بسیاری از مسائل دینامیکی در CFD است.

نقش DEFINE_CG_MOTION در فرآیند حل

در مسائل شبکه دینامیکی، فلوئنت در هر گام زمانی موقعیت اجسام متحرک را تنظیم می‌کند. هنگامی که یک UDF مبتنی بر DEFINE_CG_MOTION فعال باشد، حلگر در هر iteration یا timestep تابع را فراخوانی می‌کند تا سرعت، شتاب و زاویه چرخش جسم صلب را به‌روزرسانی نماید.

نتایج این تابع شامل موارد زیر است:

  • تعیین سرعت خطی مرکز جرم
  • تعیین سرعت زاویه‌ای جسم
  • مشخص کردن موقعیت جدید شبکه متحرک
  • هماهنگی حرکت با سایر مدل‌های دینامیکی (مانند layering یا smoothing)

این فرآیند باعث می‌شود شبکه متناسب با حرکت جسم تغییر کند و شرایط مرزی جدید در حل عددی لحاظ شود.

ساختار کلی DEFINE_CG_MOTION

DEFINE_CG_MOTION دارای ساختار استانداردی است که عناصر اصلی آن شامل موارد زیر هستند:

نام تابع

این نام در فلوئنت قابل مشاهده است و هنگام تخصیص UDF به ناحیه متحرک مورد استفاده قرار می‌گیرد.

شناسه ناحیه دینامیکی (Dynamic Zone)

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

متغیرهای وضعیت (State Variables)

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

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

انواع حرکت قابل تعریف با DEFINE_CG_MOTION

1. حرکت خطی (Translational Motion)

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

2. حرکت چرخشی (Rotational Motion)

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

3. حرکت نوسانی (Oscillatory Motion)

حرکت سینوسی یا ترکیبی از چند تابع دوره‌ای برای مدل‌سازی پدیده‌هایی مانند VIV (ارتعاش ناشی از گردابه) کاربرد دارد.

4. حرکت ترکیبی (Mixed Motion)

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

مراحل استفاده از DEFINE_CG_MOTION در فلوئنت

1. فعال‌سازی Dynamic Mesh

در ابتدا لازم است مدل شبکه دینامیکی فعال شود و نوع روش مناسب انتخاب گردد (مانند layering، smoothing یا remeshing).

2. تدوین مدل حرکتی

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

3. توسعه UDF با DEFINE_CG_MOTION

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

4. کامپایل UDF

معمولاً DEFINE_CG_MOTION نیازمند حالت compiled است، زیرا شامل دستورهای خاص شبکه دینامیکی است.

5. تخصیص تابع به ناحیه متحرک

در بخش Dynamic Zones، تابع ماکروی DEFINE_CG_MOTION به ناحیه صلب مرتبط اختصاص داده می‌شود.

6. اجرای حل و پایش حرکت

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

کاربردهای متداول DEFINE_CG_MOTION

این ماکرو در حوزه‌های متعدد مهندسی مورد استفاده قرار می‌گیرد، از جمله:

  • شبیه‌سازی پمپ‌ها، کمپرسورها و روتورها
  • مدل‌سازی باز و بسته شدن سوپاپ‌ها
  • تحلیل حرکت پره‌های توربین
  • شبیه‌سازی جریان اطراف سازه‌های شناور
  • بررسی ارتعاش اجسام تحت بارهای هیدرودینامیکی

این گستره کاربرد نشان‌دهنده اهمیت DEFINE_CG_MOTION در شبیه‌سازی‌های دینامیکی CFD است.

نکات کلیدی در استفاده از DEFINE_CG_MOTION

برای حرکت شبکه به‌صورت پایدار و دقیق، رعایت نکات زیر اهمیت دارد:

  • انتخاب گام زمانی مناسب برای جلوگیری از نوسانات غیرواقعی
  • بررسی پیوستگی حرکت برای جلوگیری از انحراف شبکه
  • جلوگیری از چرخش‌های ناگهانی یا سرعت‌های غیرواقعی
  • پایش کیفیت شبکه در طول شبیه‌سازی
  • استفاده از مدل حرکت ساده در ابتدا برای اعتبارسنجی رفتار UDF

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

جمع‌بندی

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

کلیدواژه ها : DEFINE_CG_MOTION در فلوئنت- آموزش DEFINE_CG_MOTION- شبکه دینامیکی فلوئنت- حرکت شبکه در CFD- udf for rigid body motion- ansys fluent dynamic mesh udf- حرکت چرخشی در فلوئنت- dynamic mesh overset udf- آموزش UDF در انسیس فلوئنت- cfd dynamic mesh motion