در این آموزش آباکوس شما با دلایل بکارگیری سابروتین نویسی، ضرورت برنامه نویسی و نحوه کد نویسی در آباکوس، اجزای اصلی سابروتین و برخی سابروتین های معروف و پرکاربرد در ABAQUS مثل UMAT، DLOAD، HETVAL و… آشنا خواهید شد.
دلایل بکارگیری سابروتین نویسی در آباکوس
قطعاً شما همراهان گرامی، در مجموعه پستهای معرفی و آموزش آباکوس و همچنین مجموعه مثالهای کاربردی آباکوس با گوشهای از تواناییها و قابلیتهای بینظیر Abaqus در حوزه شبیهسازی اجزای محدود آشنا شدهاید و میدانید که سابروتین نویسی در آباکوس یکی از ویژگیهای برجسته این نرمافزار است. طیف مسائل پوشش داده شده در کنار رابط کاربری ساده و قابل درک، باعث انتخاب آباکوس به گزینهای بسیار جدی برای کاربران دنیای حل عددی شده است.
اما تا کنون با خود اندیشیدهاید که آیا گزینههای پیشفرض موجود در آباکوس توانایی پاسخگویی به تمام نیازهای جدید کاربران را دارد؟ در جهانی که سرعت پیشرفت علم و ارائه مدلهای عددی و معادلات ساختاری توصیف رفتار ماده سرعت روزافزونی پیدا کرده است، نرمافزارهایی نظیر آباکوس چه راه حلی برای پاسخگویی به نیازهای بهروز محققین اتخاذ کردهاند؟
صرف میلیونها دلار هزینه در بحث تحقیق و توسعه و بروز نگاه داشتن هسته حل معادلات، استفاده از المانهای جدید با فرمولبندی خاص و منحصربفرد، توسعه مدلهای جدید ماده، افزودن حوزههای کاری و قابلیتهای شبیهسازی جدید و . . . تنها بخشی از نقشه راهی است که برای حضور در کورس رقابت در دنیای پرشتاب علمی قرن 21 باید بکار گرفت. اما آیا آباکوس نیز در این حوزه موفق بوده است؟
ضرورت کدنویسی در آباکوس
شاید با خواندن مقدمه فوق اندکی دقیقتر به قابلیتهای آباکوس نگاه کرده باشید. تمامی نرمافزارهایی که با آن آشنایی دارید از مجموعه قابلیتهای پیشفرضی برخوردارند که توسعه دهنده اصلی، برای پاسخگویی به بیش از 80 درصد از نیازهای کاربران در نرمافزار تعبیه کرده است. اما آیا تمامی مسائل موجود در حوزه علم و صنعت به کمک این ابزارهای پیشفرض قابل مدل سازی و بررسی هستند؟ متأسفانه پاسخ این پرسش منفی است.
اگر از کاربران پیشرفته و سطح بالای آباکوس هستید، میدانید که توسعه و بکارگیری مدلها، معادلات ساختاری، المانها و حتی بارگذاریهای خاص بهکمک گزینههای پیشفرض تعبیه شده در آباکوس امکانپذیر نیست؛ اما اگر از راهکارهای جایگزین گروه داسو سیستمز اطلاع داشته باشید، بیش از پیش این شاهکار دنیای محاسبات و مهندسی را تحسین خواهید کرد.
آباکوس در کنار تمامی امکانات و گزینههای ریز و درشت پیشفرض، این قابلیت را در اختیار کاربران علاقمند قرار داده تا بتوانند به کمک برنامهنویسی در محیط نرمافزار فرترن – FORTRAN (که پایه و اساس نرمافزارهای بزرگ محاسباتی همچون آباکوس است) نیازهای خود در بالاترین سطوح علمی، پژوهشی و صنعتی را مرتفع سازند. فقط کافیست بر اصول و قواعد اجزای محدود و برنامهنویسی به زبان فرترن تسلط داشته باشید تا هرگونه محدودیتی را دور بزنید و لذت وصفناپذیر توسعه یک حل عددی را تجربه کنید.
با توجه به درخواست شما عزیزان و همراهان گرامی، تصمیم گرفتیم تا در این پست آموزشی به معرفی اصول، قواعد و کاربردهای سابروتین نویسی در آباکوس بپردازیم و شما عزیزان را با معروفترین گزینههای سابروتین نویسی در آباکوس اشنا کنیم. با ما در این آموزش آباکوس نیز همراه باشید.
مروری سابروتین نویسی در آباکوس
اگر Documentation آباکوس را از نظر گذرانده باشید، بهخوبی میدانید که بخشهای مختلفی در این راهنمای بینظیر در اختیار شما قرار دارد. معرفی ابزارهای موجود، مسیر بکارگیری و اهداف استفاده از ابزار، آشنایی با تئوریهای بکارگرفته شده در توسعه یک روش، مجموعه مثالهای استاندارد و . . . از مهمترین و پرکاربردترین بخشهایی است که اکثر کاربران آباکوس از آن بهره می برند. اما شاید شما نیز هیچگاه از گزینه Abaqus User Subroutines Reference Guide استفاده نکرده باشید. اکنون وقت آن رسیده تا به کمی کنکاش و واکاوی در این بخش از راهنمای آباکوس نیز بپردازید.
تذکر: در پست آموزشی “کدنویسی در آباکوس” بصورت مجزا به بحث اسکریپت نویسی به زبان پایتون در آباکوس پرداخته شده است. در صورت نیاز به پست مربوطه مراجعه فرمایید.
کافیست بر روی این گزینه کلیک کنید تا به دنیای بینظیر و جذاب آموزش سابروتین نویسی در آباکوس وارد شوید. آباکوس بر حسب اینکه قصد دارید از کدام حلگر استفاده کنید، راهنمای مربوط به این بخش را در سه دسته مجزا قرار داده است:
- Abaqus/Standard Subroutines
- Abaqus/Explicit Subroutines
- Abaqus/CFD Subroutines
در واقع این راهنما به شما تأکید میکند پیش از شروع به کدنویسی برای مسئله خود، ماهیت حل و انتخاب حلگر مناسب را تعیین کنید و متناسب با نوع مسئله خود، به انتخاب و توسعه کد مورد نظر بپردازید.
اجزای اصلی سابروتین در آباکوس
پس از تعیین نوع حلگر و تصمیم به استفاده از سابروتین در آباکوس، باید به شناخت کد مورد نظر بپردازید. در ابتدا به شما توصیه میکنم کدنویسی را بهعنوان آخرین گزینه در حل یک مسئله در نظر داشته باشید؛ بهعبارت بهتر چنانچه گزینههای پیشفرض تعبیه شده در آباکوس جوابگوی نیازهای شماست، به سراغ کدنویسی نروید!
پس از اینکه فراخور مسئله و هدف مورد نیازتان تشخیص دادید که باید از چه سابروتین یا زیربرنامهای در آباکوس استفاده کنید، از طریق راهنمای نرمافزار به کسب اطلاعات در خصوص آن بپردازید.
کاری که شما قصد انجام آن را دارید به دقت نسبتاً بالایی نیازمند است؛ فقط کافیست تصور کنید برای یک لحظه کوتاه و البته به شکل ممتد و پیوسته، کنترل این غول محاسباتی را در دست گرفتهاید و فرمان مورد نظر خود را به آن صادر میکنید، محاسبات مربوطه را انجام میدهید و حاصل کار را برای ادامه حل به آباکوس وارد میکنید؛ در واقع شما واسطهای در حل شدهاید: در میانه راه کنترل را در دست گرفته و پس از انجام محاسبات مورد نظر مجدداً آباکوس را وارد میدان میکنید. ناگفته پیداست که تمرکز و تسلط بالا و اجتناب از کوچکترین خطای دستوری و برنامهنویسی، شرط اول در استفاده از یک سابروتین در آباکوس است.
پس از انتخاب سابروتین مورد نظر در راهنمای نرمافزار باید به شناخت ارکان اصلی کد بپردازید: هر سابروتین در آباکوس از مجموعهای از متغیرها و پارامترها تشکیل شده که در یک قالب خاص و از پیش تعیین شده باید نوشته شود. در واقع دو رکن اصلی هر سابروتین قالب یا Interface مربوطه و پارامترهای مورد استفاده در آن است. بهعنوان مثال، در شکل زیر قالب مربوط به UMAT (سابروتین مربوط به تعریف خواص و رفتار ماده در آباکوس) را مشاهده میکنید( برای آشنایی بیشتر با این سابروتین به آموزش مربوطه مراجعه کنید.
همانطور که در این قالب نیز مشخص شده است، شما باید از مجموعه متغیرهای استاندارد و شناخته شده برای آباکوس در کدنویسی خود استفاده کنید. البته آباکوس این امکان را به شما داده است تا در صورت نیاز و از طریق متغیرهای حالت، بتوانید به رفع نیازهای خود بپردازید. بدیهی است هر کدام از متغیرهای موجود در یک سابروتین مفهوم و معنای منحصربفردی داشته و باید از یک الگوی منظم در محاسبه و آپدیت شدن پیروی کند.
برخی سابروتین های معروف و پرکاربرد در آباکوس
حال که با کلیات، اهداف و قالب یک سابروتین آشنا شدهاید، چند SUBROUTINES معروف و پراستفاده در آباکوس را به شما معرفی خواهیم کرد:
- سابروتین CREEP: مورد استفاده برای تحلیلهای وابسته به دما، تغییر شکل ویسکوپلاستیک در ماده.
- سابروتین DLOAD: برای تعریف بارگذاری و توزیع بار غیریکنواخت در آباکوس (فشار و بار حجمی).
- سابروتین FRIC: چنانچه از مدلهای پیچیده و پیشرفته در تعیین نیروی برشی بین سطوح گوناگون و رفتار اصطکاکی ماده در تحلیل خود استفاده میکنید، این سابروتین به شما کمک خواهد کرد.
- سابروتین HETVAL: جهت تعریف مدلهای پیچیده در تولید حرارت داخلی در ماده.
- سابروتین UEL: از پیشرفتهترین و در عین حال پیچیدهترین سابروتینهای مورد استفاده در Abaqus/Standard است که برای تعریف و ایجاد کردن یک المان خاص بکار میرود. استفاده از این سابروتین به دانش و تخصص بسیار بالایی نیاز دارد.
- سابروتین UGENS: در تعریف رفتار غیرخطی پیچیده مکانیکی در المانهای پوستهای بر اساس Stiffness سطح مقطع استفاده میشود.
- سابروتین UMAT: این سابروتین برای تعریف رفتار ماده و معادلات ساختاری مورد نظر برای ماده مورد استفاده قرار میگیرد. UMAT از پیشرفتهترین و پیچیدهترین سابروتینهایی است که یک کاربر میتواند در تحلیل خود از آن استفاده کند. تسلط بر این زیربرنامه در گرو فراگیری مباحث مکانیک محیطهای پیوسته، ریاضیات، جبر تانسوری، پلاستیسیته و پلاستیسیته محاسباتی در بالاترین سطح آکادمیک است.
مکان قرارگیری سابروتین
هرچند شناخت کامل و درک عمیق از ساختار Abaqus، لازمه توسعه و استفاده از یک سابروتین نیست اما چنانچه شما بهعنوان یک توسعهدهنده، از ساختار و محتوای اصلی حل یک مسئله در آباکوس اطلاع داشته باشید، دید بسیار خوبی در خصوص سابروتین نیز پیدا خواهید کرد. در این قسمت روند کلی حل یک مسئله در آباکوس را در قالب یک فلوچارت از نظر خواهیم گذراند و مکان قرارگیری سابروتینهای مورد استفاده در آباکوس را به شما نشان خواهیم داد. شکل زیر روند پایه در استخراج داده و حل یک مسئله در Abaqus/standard را به شما نشان میدهد.
همانطور که ملاحظه میکنید هر یک از سابروتینهایی که در آباکوس مورد استفاده قرار میگیرد (با فونت قرمز مشخص شدهاند)، در مرحله خاصی از حل وارد عمل شده و پس از ایفای نقش خود، ادامه روند حل را به هسته اصلی آباکوس واگذار میکنند. حال اگر بهدنبال فهم دقیقتر و با جزئیات بیشتر از روند حل و بکارگیری سابروتین دارید، به شما توصیه میکنم فلوچارت زیر را با دقت واکاوی کنید:
ملزومات بکارگیری سابروتین در آباکوس
برای استفاده و بهرهمندی از زیربرنامه یا سابروتین در آباکوس نیاز دارید تا زبان برنامهنویسی فرترن (FORTRAN) را با Abaqus لینک کنید. برای این منظور بر حسب نسخه مورد استفاده آباکوس، باید در گام اول به نصب Microsoft Visual Studio بهعنوان بستر لازم جهت اجرا و شناخت زبانهای گوناگون برنامهنویسی بپردازید. سپس در ادامه، باید کامپایلر فرترن سازگار با نسخه آباکوس مورد نظر را دانلود کرده و نصب نمایید. با انجام این کار قادر خواهید بود تا کد مورد نظر را با رعایت قوانین برنامهنویسی فرترن در محیط ویژوال استودیو توسعه دهید و از کامپایلر زبان فرترن برای اجرای آن استفاده نمایید.
پس از نصب ویژوال استودیو و کامپایلر زبان فرترن باید توسط دستوراتی ساده ( و گاهاً پیچیده!) آباکوس را با فرترن لینک نمایید. با توجه به تخصصی بودن موضوع، سعی خواهم کرد در پستی جداگانه و در زمان مناسب، نحوه لینک کردن آباکوس و فرترن را به شما عزیزان آموزش دهم. عملاً با برقراری ارتباط بین این دو نرمافزار قادر خواهید بود کار مربوط به سابروتین نویسی در آباکوس را آغاز نمایید.
لینک کردن آباکوس و فرترن
در آموزشی جداگانه نحوه لینک کردن آباکوس 2017 با فرترن ارئه شد. شایان ذکر است که دستورالعمل موجود برای لینک کردن آباکوس 2016 با فرترن (Fortran) نیز قابل استفاده است و تفاوتی وجود ندارد. جهت مطالعه آموزش مربوطه روی لینک زیر کلیک کنید.
برای دانلود فایل PDF نحوه سابروتین نویسی در آباکوس روی لینک زیر کلیک کنید. حجم این فایل PDF آموزشی 2 مگابایت بوده و شامل 350 صفحه است.
با سلام و عرض ادب. بابت این مجموعه عالی سپاسگزارم. برای من خیلی مفید بود.
من یک سوال داشتم که متاسفانه در این محتوا به جوابشنرسیدم ممنون میشم اگر راهنمایی کنید.
برای مدلسازی پدیده ی تراکم در صورتی که رابطه ای خطی داشته باشیم، باید از چه قسمتی استفاده کنیم؟
من با سابروتین نویسی در قسمت swelling امتحان کردم جواب درستی نداد ظاهرا رابطه ای که اونحا مورد نیاز هست باید به صورت حجمی وارد بشه نه خطی
سلام
اگر در پیش فرض نرم افزار گزینه ای برای اینکار نیست باید سابروتین بنویسید