چگونه از APDL (Ansys Parametric Design Language) در محیط ورکبنچ استفاده کنیم؟
آنچه در این مقاله میخوانید
درک پل ارتباطی: 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 آنها در دسترس نیست.
- Body: تعریف خواص مواد پیشرفته و غیرخطی که در Engineering Data موجود نیستند (با دستورات
- پارامترهای ورودی: یکی از بزرگترین مزایای این اسنیپتها این است که 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 فرآیندی قدرتمند است که با دنبال کردن گامهای زیر به سادگی انجام میشود:
- یک Command Object از نوع Post Snippet به شاخه
Solutionاضافه کنید. - در پنجره
Detailsمربوط به آن، مقدار فیلدOutput Search Prefixرا یادداشت کنید (مقدار پیشفرضmy_است). - در اسکریپت APDL خود، از دستور
*GETیا تخصیص مستقیم برای تعریف یک پارامتر اسکالر استفاده کنید که نام آن دقیقاً با همان پیشوند شروع میشود. مثال:*get,my_stmx,stress,,mx. - پس از اجرای حل، ورکبنچ به طور خودکار این پارامتر را شناسایی کرده و در بخش
Resultsدر پنجرهDetailsنمایش میدهد. - برای استفاده از این مقدار در تحلیلهای دیگر (مانند بهینهسازی)، تیک کنار نام پارامتر را فعال کنید تا به یک «پارامتر خروجی» رسمی پروژه تبدیل شود.
- یک Command Object از نوع Post Snippet به شاخه
فرآیند دیباگ و عیبیابی اسکریپتها
از آنجایی که اجرای اسکریپت در Workbench تعاملی نیست، عیبیابی مستقیم آن دشوار است. بهترین روش برای توسعه و دیباگ کردن اسکریپتهای پیچیده، دنبال کردن روند زیر است:
- ابتدا مدل خود را به طور کامل در محیط Workbench آماده کنید.
- از منوی
Toolsدر محیط Mechanical، گزینهWrite Input File...را انتخاب کرده و فایل ورودی حل (ds.dat) را در یک مسیر مشخص ذخیره کنید. - نرمافزار Mechanical APDL (محیط کلاسیک) را به صورت مستقل و در حالت تعاملی (Interactive) اجرا کنید.
- فایل
ds.datذخیره شده را در MAPDL بخوانید تا مدل شما بارگذاری شود. - اکنون میتوانید اسکریپت APDL خود را به صورت خط به خط یا به عنوان یک ماکرو اجرا کرده، نتایج را مشاهده و خطاهای احتمالی را برطرف کنید.
- پس از اطمینان کامل از صحت عملکرد اسکریپت، آن را در 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 قرار دارند، ضروری باقی میماند. این مهارت یک سرمایهگذاری حرفهای است که مرزهای تحلیل مهندسی را جابجا میکند.