قطعاً شما همراهان گرامی، در مجموعه پستهای معرفی و آموزش آباکوس و همچنین مجموعه مثالهای کاربردی آباکوس با گوشهای از تواناییها و قابلیتهای بینظیر Abaqus در حوزه شبیهسازی اجزای محدود آشنا شدهاید. طیف مسائل پوشش داده شده در کنار رابط کاربری ساده و قابل درک، آباکوس را به گزینهای بسیار جدی برای کاربران دنیای حل عددی مبدل ساخته است. اما تا کنون با خود اندیشیدهاید که آیا گزینههای پیشفرض موجود در آباکوس توانایی پاسخگویی به تمام نیازهای جدید کاربران را دارد؟ در جهانی که سرعت پیشرفت علم و ارائه مدلهای عددی و معادلات ساختاری توصیف رفتار ماده سرعت روزافزونی پیدا کرده است، نرمافزارهایی نظیر آباکوس چه راه حلی برای پاسخگویی به نیازهای بهروز محققین اتخاذ کردهاند؟
صرف میلیونها دلار هزینه در بحث تحقیق و توسعه و بروز نگاه داشتن هسته حل معادلات، استفاده از المانهای جدید با فرمولبندی خاص و منحصربفرد، توسعه مدلهای جدید ماده، افزودن حوزههای کاری و قابلیتهای شبیهسازی جدید و . . . تنها بخشی از نقشه راهی است که برای حضور در کورس رقابت در دنیای پرشتاب علمی قرن 21 باید بکار گرفت. اما آیا آباکوس نیز در این حوزه موفق بوده است؟
ضرورت برنامهنویسی در آباکوس
شاید با خواندن مقدمه فوق اندکی دقیقتر به قابلیتهای آباکوس نگاه کرده باشید. تمامی نرمافزارهایی که با آن آشنایی دارید از مجموعه قابلیتهای پیشفرضی برخوردارند که توسعه دهنده اصلی، برای پاسخگویی به بیش از 80 درصد از نیازهای کاربران در نرمافزار تعبیه کرده است. اما آیا تمامی مسائل موجود در حوزه علم و صنعت به کمک این ابزارهای پیشفرض قابل مدل سازی و بررسی هستند؟ متأسفانه پاسخ این پرسش منفی است.
اگر از کاربران پیشرفته و سطح بالای آباکوس هستید، میدانید که توسعه و بکارگیری مدلها، معادلات ساختاری، المانها و حتی بارگذاریهای خاص بهکمک گزینههای پیشفرض تعبیه شده در آباکوس امکانپذیر نیست؛ اما اگر از راهکارهای جایگزین گروه داسو اطلاع داشته باشید، بیش از پیش این شاهکار دنیای محاسبات و مهندسی را تحسین خواهید کرد.
آباکوس در کنار تمامی امکانات و گزینههای ریز و درشت پیشفرض، این قابلیت را در اختیار کاربران علاقمند قرار داده تا بتوانند به کمک برنامهنویسی در محیط نرمافزار فرترن – FORTRAN (که پایه و اساس نرمافزارهای بزرگ محاسباتی همچون آباکوس است) نیازهای خود در بالاترین سطوح علمی، پژوهشی و صنعتی را مرتفع سازند. فقط کافیست بر اصول و قواعد اجزای محدود و برنامهنویسی به زبان فرترن تسلط داشته باشید تا هرگونه محدودیتی را دور بزنید و لذت وصفناپذیر توسعه یک حل عددی را تجربه کنید.
با توجه به درخواست شما عزیزان و همراهان گرامی، تصمیم گرفتیم تا در این پست آموزشی به معرفی اصول، قواعد و کاربردهای سابروتیننویسی در آباکوس بپردازیم و شما عزیزان را با معروفترین گزینههای سابروتیننویسی در آباکوس اشنا کنیم. با ما در این آموزش آباکوس نیز همراه باشید.
مروری بر کد نویسی در آباکوس (سابروتیننویسی)
اگر Documentation آباکوس را از نظر گذرانده باشید، بهخوبی میدانید که بخشهای مختلفی در این راهنمای بینظیر در اختیار شما قرار دارد. معرفی ابزارهای موجود، مسیر بکارگیری و اهداف استفاده از ابزار، آشنایی با تئوریهای بکارگرفته شده در توسعه یک روش، مجموعه مثالهای استاندارد و . . . از مهمترین و پرکاربردترین بخشهایی است که اکثر کاربران آباکوس از آن بهره می برند. اما شاید شما نیز هیچگاه از گزینه Abaqus User Subroutines Reference Guide استفاده نکرده باشید. اکنون وقت آن رسیده تا به کمی کنکاش و واکاوی در این بخش از راهنمای آباکوس نیز بپردازید: سابروتیننویسی در آباکوس!
کافیست بر روی این گزینه کلیک کنید تا به دنیای بینظیر و جذاب آموزش سابروتیننویسی در آباکوس وارد شوید. آباکوس بر حسب اینکه قصد دارید از کدام حلگر استفاده کنید، راهنمای مربوط به این بخش را در سه دسته مجزا قرار داده است:
- Abaqus/Standard Subroutines
- Abaqus/Explicit Subroutines
- Abaqus/CFD Subroutines
در واقع این راهنما به شما تأکید میکند پیش از شروع به کدنویسی برای مسئله خود، ماهیت حل و انتخاب حلگر مناسب را تعیین کنید و متناسب با نوع مسئله خود، به انتخاب و توسعه کد مورد نظر بپردازید.
اجزای اصلی سابروتین در آباکوس
پس از تعیین نوع حلگر و تصمیم به استفاده از سابروتین در آباکوس، باید به شناخت کد مورد نظر بپردازید. در ابتدا به شما توصیه میکنم کدنویسی را بهعنوان آخرین گزینه در حل یک مسئله در نظر داشته باشید؛ بهعبارت بهتر چنانچه گزینههای پیشفرض تعبیه شده در آباکوس جوابگوی نیازهای شماست، به سراغ کدنویسی نروید!
پس از اینکه فراخور مسئله و هدف مورد نیازتان تشخیص دادید که باید از چه سابروتین یا زیربرنامهای در آباکوس استفاده کنید، از طریق راهنمای نرمافزار به کسب اطلاعات در خصوص آن بپردازید.
کاری که شما قصد انجام آن را دارید به دقت نسبتاً بالایی نیازمند است؛ فقط کافیست تصور کنید برای یک لحظه کوتاه و البته به شکل ممتد و پیوسته، کنترل این غول محاسباتی را در دست گرفتهاید و فرمان مورد نظر خود را به آن صادر میکنید، محاسبات مربوطه را انجام میدهید و حاصل کار را برای ادامه حل به آباکوس وارد میکنید؛ در واقع شما واسطهای در حل شدهاید: در میانه راه کنترل را در دست گرفته و پس از انجام محاسبات مورد نظر مجدداً آباکوس را وارد میدان میکنید. ناگفته پیداست که تمرکز و تسلط بالا و اجتناب از کوچکترین خطای دستوری و برنامهنویسی، شرط اول در استفاده از یک سابروتین در آباکوس است.
پس از انتخاب سابروتین مورد نظر در راهنمای نرمافزار باید به شناخت ارکان اصلی کد بپردازید: هر سابروتین در آباکوس از مجموعهای از متغیرها و پارامترها تشکیل شده که در یک قالب خاص و از پیش تعیین شده باید نوشته شود. در واقع دو رکن اصلی هر سابروتین قالب یا Interface مربوطه و پارامترهای مورد استفاده در آن است. بهعنوان مثال، در شکل زیر قالب مربوط به UMAT (سابروتین مربوط به تعریف خواص و رفتار ماده در آباکوس) را مشاهده میکنید ( برای آشنایی بیشتر با این سابروتین به آموزش مربوطه مراجعه کنید؛ اینجا: UMAT چیست؟!).
همانطور که در این قالب نیز مشخص شده است، شما باید از مجموعه متغیرهای استاندارد و شناخته شده برای آباکوس در کدنویسی خود استفاده کنید. البته آباکوس این امکان را به شما داده است تا در صورت نیاز و از طریق متغیرهای حالت، بتوانید به رفع نیازهای خود بپردازید. بدیهی است هر کدام از متغیرهای موجود در یک سابروتین مفهوم و معنای منحصربفردی داشته و باید از یک الگوی منظم در محاسبه و آپدیت شدن پیروی کند.
تذکر: در روزهای آتی این پست آپدیت خواهد شد و “برخی سابروتینهای معروف و پرکاربرد در آباکوس” شرح داده خواهد شد… پیگیر ما باشید…
منبع: مرجع آموزش نرمافزارهای مکانیک
نوشته سابروتیننویسی در آباکوس اولین بار در مرجع آموزش نرمافزارهای مکانیک پدیدار شد.