لطفا صبر کنید...
منوی دسته بندی

چگونه از APDL (Ansys Parametric Design Language) در محیط ورک‌بنچ استفاده کنیم؟

Gemini Generated Image qf17qmqf17qmqf17 11zon
ترکیب قدرت زبان اسکریپت‌نویسی APDL با رابط کاربری گرافیکی (GUI) مدرن Ansys Workbench یک مهارت کلیدی برای مهندسان تحلیلگر پیشرفته است. این قابلیت به کاربران اجازه می‌دهد تا به تمام ظرفیت‌های حلگر قدرتمند Mechanical APDL (MAPDL) دسترسی پیدا کنند، حتی ویژگی‌هایی که در منوهای گرافیکی Workbench وجود ندارند. در واقع، Workbench در پس‌زمینه، مدل گرافیکی را به یک فایل ورودی از دستورات APDL تبدیل کرده و برای حل به MAPDL ارسال می‌کند. توانایی تزریق کدهای سفارشی به این فرآیند، کنترل بی‌نظیری بر تحلیل فراهم می‌کند. استفاده از APDL در ورک بنچ به مهندسان اجازه می‌دهد تا محدودیت‌های محیط گرافیکی را دور زده و به کنترل کامل (TOTAL control) بر مدل خود دست یابند و تحلیل‌های خود را برای مسائل پیچیده، اتوماسیون فرآیندها و پس‌پردازش‌های سفارشی، به سطح بالاتری ارتقا دهند. تسلط بر این قابلیت، تمایز بین یک «کاربر معمولی ورک‌بنچ» و یک «تحلیلگر متخصص» را رقم می‌زند. این مقاله به تشریح ابزارها، انواع و گردش کار عملی برای این یکپارچه‌سازی قدرتمند می‌پردازد.
برای شروع، لازم است با ابزار اصلی این ارتباط، یعنی «Command Objects» آشنا شویم.

درک پل ارتباطی: Command Objects یا Snippets چیست؟

ابزار اصلی برای ادغام کدهای APDL در محیط Workbench، شیئی به نام Command Object است. این قابلیت در نسخه‌های قدیمی‌تر با نام Code Snippet شناخته می‌شد و بسیاری از کاربران قدیمی هنوز از این اصطلاح استفاده می‌کنند، اما در مستندات رسمی فعلی، از عنوان Command Object استفاده می‌شود. این ابزار به عنوان یک «پل» استراتژیک عمل می‌کند و به کاربر اجازه می‌دهد تا به‌طور مستقیم با فایل ورودی حلگر MAPDL تعامل داشته باشد و دستورات دلخواه خود را در مراحل مختلف فرآیند تحلیل تزریق کند.

برای درک بهتر، باید بدانیم وقتی کاربر در محیط Workbench روی دکمه Solve کلیک می‌کند، نرم‌افزار یک فایل ورودی متنی (با نام ds.dat) از دستورات APDL ایجاد می‌کند. این فایل شامل تمام اطلاعات مدل، از جمله مش، خواص مواد، شرایط مرزی و تنظیمات حل است. سپس این فایل برای پردازش و حل به حلگر Mechanical APDL (MAPDL) ارسال می‌شود. Command Objects به کاربر این امکان را می‌دهند که بلوک‌های کد APDL سفارشی خود را مستقیماً در نقاط مشخصی از این فایل ورودی ds.dat وارد کند و بدین ترتیب، قابلیت‌های تحلیل را فراتر از آنچه در محیط گرافیکی Workbench ارائه شده است، گسترش دهد.

این Command Objects بسته به جایگاهشان در درخت طراحی، در زمان‌های متفاوتی اجرا می‌شوند که درک انواع آن‌ها برای استفاده صحیح ضروری است.

انواع Command Objects و کاربردهای استراتژیک آن‌ها

تصور کنید نیاز دارید یک خاصیت ماده غیرخطی تعریف کنید که در منوهای ورک‌بنچ نیست، یک بارگذاری متحرک پیچیده اعمال کنید، و در نهایت یک معیار خستگی سفارشی را محاسبه کنید. Command Objects ابزارهایی هستند که به شما اجازه می‌ده دهند هر یک از این وظایف را دقیقاً در مرحله مناسب از تحلیل—پیش‌پردازش، حل، یا پس‌پردازش—انجام دهید. درک این دسته‌بندی برای استفاده صحیح و هدفمند از APDL ضروری است، زیرا هر نوع Command Object (اسنیپت) در پردازشگر (Processor) متفاوتی از MAPDL اجرا شده و به پارامترهای خاصی دسترسی دارد.

اسنیپت‌های پیش‌پردازش (Prep Snippets)

این Command Objects که تحت عنوان یک آیتم Commands در شاخه‌های محیط تحلیل (مانند Static Structural) قرار می‌گیرند، برای اعمال تغییرات کلی بر مدل، درست قبل از شروع فرآیند حل، طراحی شده‌اند.

  • محل اجرا: این دستورات درست قبل از دستور SOLVE و در پردازشگر /SOLU (پردازشگر حل) اجرا می‌شوند.
  • کاربردهای کلیدی:
    • تعریف شرایط مرزی و بارگذاری‌های پیچیده‌ای که در محیط گرافیکی پشتیبانی نمی‌شوند (مانند بارهای هیدرواستاتیک یا توابع جدولی با دستورات D, F, SF).
    • تغییر تنظیمات پیشرفته حلگر که در منوهای Analysis Settings موجود نیست.
    • فعال‌سازی گزینه‌های خروجی خاص برای فایل نتایج (دستور OUTRES) جهت اطمینان از ذخیره شدن تمام داده‌های مورد نیاز برای پس‌پردازش‌های سفارشی.
  • نکته مهم: از آنجایی که این اسنیپت در پردازشگر /SOLU اجرا می‌شود، برای انجام کارهایی مانند تغییر مش یا تعریف المان‌های جدید، ابتدا باید با دستور /PREP7 به پردازشگر پیش‌پردازش وارد شوید. پس از اتمام کار، بسیار مهم است که با دستور /SOLU به پردازشگر حل بازگردید. زیرا فایل ورودی ds.dat که توسط ورک‌بنچ ساخته می‌شود، انتظار دارد که درست قبل از دستور SOLVE، حلگر در پردازشگر حل (/SOLU) قرار داشته باشد. عدم بازگشت به این پردازشگر، ساختار فایل ورودی را به هم ریخته و باعث بروز خطا در شروع حل می‌شود.

اسنیپت‌های آیتم (Item Snippets)

این اسنیپت‌ها به یک آیتم خاص در درخت طراحی (مانند یک Body، Contact، Joint یا Spring) متصل می‌شوند و برای تغییر ویژگی‌های منحصر به فرد آن آیتم به کار می‌روند.

  • محل اجرا: این دستورات در پردازشگر /PREP7 (پیش‌پردازشگر) و درست پس از تعریف آیتم مربوطه در فایل ورودی اجرا می‌شوند.
  • کاربردهای کلیدی:
    • Body: تعریف خواص مواد پیشرفته و غیرخطی که در Engineering Data موجود نیستند (با دستورات MP, TB, MPDATA). همچنین می‌توان نوع المان پیش‌فرض را برای یک جسم خاص تغییر داد (با دستور ET).
    • Contact/Joint/Spring: تنظیم گزینه‌های پیشرفته برای المان‌های تماس، مفصل یا فنر که در منوی Details آن‌ها در دسترس نیست.
  • پارامترهای ورودی: یکی از بزرگ‌ترین مزایای این اسنیپت‌ها این است که Workbench به‌طور خودکار شناسه‌های (ID) مربوط به آیتم را به عنوان آرگومان‌های ماکرو (macro arguments) به اسکریپت ارسال می‌کند. برای مثال، برای یک Body، شناسه ماده (matid) به اسکریپت ارسال می‌شود که استفاده از آن را در دستورات APDL بسیار ساده می‌کند.

اسنیپت‌های پس‌پردازش (Post Snippets)

این اسنیپت‌ها که در شاخه Solution قرار می‌گیرند، پس از اتمام موفقیت‌آمیز حل اجرا شده و برای استخراج و پردازش نتایج به روش‌های سفارشی به کار می‌روند.

  • محل اجرا: این دستورات بلافاصله پس از اتمام حل و با ورود به پردازشگر /POST1 (پردازشگر عمومی نتایج) اجرا می‌شوند.
  • کاربردهای کلیدی:
    • انجام محاسبات سفارشی روی نتایج (مثلاً جمع کردن انرژی کرنشی با ETABLE و SSUM).
    • استخراج مقادیر اسکالر (عددی) از نتایج (با دستور *GET) و بازگرداندن آن‌ها به محیط Workbench به عنوان پارامتر خروجی (Output Parameter). این پارامترها می‌توانند در تحلیل‌های بهینه‌سازی یا سیستم‌های دیگر استفاده شوند.
    • ایجاد نمودارها و کانتورهای سفارشی که در محیط گرافیکی Workbench پشتیبانی نمی‌شوند و ذخیره آن‌ها به صورت فایل تصویری (.png) با دستور /SHOW,PNG. این تصاویر به صورت خودکار به درخت پروژه اضافه می‌شوند.
  • دستور کلیدی: هر اسنیپت پس‌پردازش باید با دستور set,last آغاز شود. این دستور به حلگر MAPDL فرمان می‌دهد تا آخرین مجموعه نتایج (result set) را از فایل نتایج (.rst) بارگذاری کند. بدون این دستور، هیچ داده‌ای برای تحلیل در دسترس نخواهد بود و تمام دستورات بعدی مانند *GET یا PLNSOL با خطا مواجه می‌شوند.

اکنون که با انواع مختلف Command Objects آشنا شدیم، به بررسی یک گردش کار عملی برای استفاده مؤثر از آن‌ها می‌پردازیم.

گردش کار عملی: نکات کلیدی برای استفاده مؤثر از APDL در ورک بنچ

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

انتخاب دقیق اجزا با Named Selections

یکی از قدرتمندترین روش‌ها برای هدف قرار دادن بخش‌های مشخصی از مدل در اسکریپت‌های APDL، استفاده از Named Selections است. هر Named Selection که در محیط گرافیکی Workbench برای اجزای هندسی (مانند سطوح، لبه‌ها، نقاط) تعریف می‌شود، به صورت خودکار به یک Nodal Component در محیط MAPDL تبدیل می‌گردد. این Component شامل تمام گره‌هایی (nodes) است که روی آن هندسه قرار گرفته‌اند. در اسکریپت خود، می‌توانید به سادگی با استفاده از دستور CMSEL,S,ComponentName این گروه از گره‌ها را انتخاب کرده و عملیات مورد نظر (مانند اعمال بار یا قید) را فقط روی آن‌ها انجام دهید.

این قابلیت اسکریپت‌های شما را در برابر تغییرات مقاوم می‌کند. اگر مش مدل تغییر کند، انتخاب گره‌ها بر اساس مختصات جغرافیایی (NSEL,S,LOC,...) ممکن است با شکست مواجه شود، اما انتخاب بر اساس Named Selection (CMSEL,S,ComponentName) همچنان معتبر باقی می‌ماند، زیرا ورک‌بنچ مسئولیت به‌روزرسانی گره‌های داخل Component را بر عهده می‌گیرد.

مدیریت پارامترها: ورودی و خروجی

یکی از ویژگی‌های کلیدی Command Objects، قابلیت تبادل پارامتریک با محیط Workbench است.

  • پارامترهای ورودی: شما می‌توانید مقادیر پارامتریک را از Workbench به اسکریپت خود ارسال کنید. در بخش Details مربوط به Command Object، فیلدهایی با نام ARG1 تا ARG9 وجود دارد. با وارد کردن یک مقدار یا یک پارامتر Workbench در این فیلدها، آن مقادیر در داخل اسکریپت APDL شما تحت همین نام‌ها (ARG1, ARG2, …) در دسترس خواهند بود.
  • پارامترهای خروجی: بازگرداندن مقادیر عددی از یک اسکریپت پس‌پردازش (Post Snippet) به Workbench فرآیندی قدرتمند است که با دنبال کردن گام‌های زیر به سادگی انجام می‌شود:
    1. یک Command Object از نوع Post Snippet به شاخه Solution اضافه کنید.
    2. در پنجره Details مربوط به آن، مقدار فیلد Output Search Prefix را یادداشت کنید (مقدار پیش‌فرض my_ است).
    3. در اسکریپت APDL خود، از دستور *GET یا تخصیص مستقیم برای تعریف یک پارامتر اسکالر استفاده کنید که نام آن دقیقاً با همان پیشوند شروع می‌شود. مثال: *get,my_stmx,stress,,mx.
    4. پس از اجرای حل، ورک‌بنچ به طور خودکار این پارامتر را شناسایی کرده و در بخش Results در پنجره Details نمایش می‌دهد.
    5. برای استفاده از این مقدار در تحلیل‌های دیگر (مانند بهینه‌سازی)، تیک کنار نام پارامتر را فعال کنید تا به یک «پارامتر خروجی» رسمی پروژه تبدیل شود.

فرآیند دیباگ و عیب‌یابی اسکریپت‌ها

از آنجایی که اجرای اسکریپت در Workbench تعاملی نیست، عیب‌یابی مستقیم آن دشوار است. بهترین روش برای توسعه و دیباگ کردن اسکریپت‌های پیچیده، دنبال کردن روند زیر است:

  1. ابتدا مدل خود را به طور کامل در محیط Workbench آماده کنید.
  2. از منوی Tools در محیط Mechanical، گزینه Write Input File... را انتخاب کرده و فایل ورودی حل (ds.dat) را در یک مسیر مشخص ذخیره کنید.
  3. نرم‌افزار Mechanical APDL (محیط کلاسیک) را به صورت مستقل و در حالت تعاملی (Interactive) اجرا کنید.
  4. فایل ds.dat ذخیره شده را در MAPDL بخوانید تا مدل شما بارگذاری شود.
  5. اکنون می‌توانید اسکریپت APDL خود را به صورت خط به خط یا به عنوان یک ماکرو اجرا کرده، نتایج را مشاهده و خطاهای احتمالی را برطرف کنید.
  6. پس از اطمینان کامل از صحت عملکرد اسکریپت، آن را در Command Object مربوطه در محیط Workbench کپی کنید.

یک تذکر مهم: مدیریت واحدها (Units)

یک نکته بسیار مهم که اغلب باعث سردرگمی کاربران می‌شود، مدیریت واحدهاست. اگرچه Ansys Workbench به خوبی واحدها را مدیریت و تبدیل می‌کند، اما حلگر MAPDL در پس‌زمینه همواره با یک سیستم واحدهای یکپارچه (Consistent Unit System) کار می‌کند.

هشدار: هنگامی که شما یک اسکریپت APDL می‌نویسید، تمام مقادیر عددی که وارد می‌کنید یا با دستور *GET استخراج می‌کنید، بر اساس این سیستم یکپارچه هستند، نه واحدی که در Workbench انتخاب کرده‌اید. برای مثال، در یک تحلیل حرارتی با سیستم واحد “U.S. Customary”، انرژی کرنشی در محیط گرافیکی با واحد BTU نمایش داده می‌شود. اما اگر همین مقدار را با دستور *GET در یک اسنیپت APDL استخراج کنید، مقدار بر اساس سیستم یکپارچه اینچ-پوند-ثانیه (lbf*in) خواهد بود. برای تطبیق این دو، نیاز به یک ضریب تبدیل مشخص (مانند تقسیم بر 9338 برای تبدیل lbf*in به BTU) در اسکریپت خود خواهید داشت.

این نکات عملی به شما کمک می‌کنند تا از قابلیت‌های APDL به شکلی مؤثر و قابل اعتماد در پروژه‌های خود بهره‌برداری کنید.

جمع‌بندی و نتیجه‌گیری

در این مقاله، به بررسی جامع نحوه استفاده از APDL در ورک بنچ پرداختیم. مشخص شد که ابزارهای Command Objects (یا Snippets) به عنوان یک پل قدرتمند، به مهندسان تحلیلگر اجازه می‌دهند تا محدودیت‌های رابط کاربری گرافیکی را دور زده و به کنترل کامل و قابلیت‌های پیشرفته حلگر MAPDL دسترسی پیدا کنند. ما انواع مختلف این اسنیپت‌ها—شامل Item، Prep و Post—و کاربردهای استراتژیک هر یک را در مراحل مختلف تحلیل بررسی کردیم و دیدیم که چگونه می‌توان با استفاده از تکنیک‌های عملی مانند Named Selections، مدیریت پارامترها و یک فرآیند دیباگ ساختاریافته، از این قابلیت به شکلی مؤثر و بدون خطا بهره‌برداری کرد.

به عنوان توصیه نهایی، باید گفت که اگرچه با هر نسخه جدید Ansys Workbench، قابلیت‌های بیشتری به محیط گرافیکی آن اضافه می‌شود و برخی از کارهایی که در گذشته نیازمند اسکریپت‌نویسی بودند، اکنون از طریق منوها قابل انجام هستند، اما تسلط بر APDL همچنان برای حل مسائل پیچیده، اتوماسیون تحلیل‌های تکراری و سفارشی‌سازی فرآیندهایی که فراتر از توانایی‌های استاندارد GUI قرار دارند، ضروری باقی می‌ماند. این مهارت یک سرمایه‌گذاری حرفه‌ای است که مرزهای تحلیل مهندسی را جابجا می‌کند.

نظرات بسته شده است.