در این آموزش آباکوس شما با دلایل بکارگیری سابروتین نویسی، ضرورت برنامه نویسی و نحوه کد نویسی در آباکوس، اجزای اصلی سابروتین و برخی سابروتین های معروف و پرکاربرد در ABAQUS مثل UMAT، DLOAD، HETVAL و… آشنا خواهید شد.
سرفصل آموزش
سابروتین نویسی در آباکوس چیست؟
آباکوس در کنار تمامی امکانات و گزینههای ریز و درشت پیشفرض، این قابلیت را در اختیار کاربران علاقمند قرار داده تا بتوانند به کمک سابروتین نویسی در آباکوس توسط نرمافزار فرترن (که پایه و اساس نرمافزارهای بزرگ محاسباتی همچون آباکوس است) نیازهای خود در بالاترین سطوح علمی، پژوهشی و صنعتی را مرتفع سازند. فقط کافیست بر اصول و قواعد اجزای محدود و برنامهنویسی به زبان FORTRAN تسلط داشته باشید تا هرگونه محدودیتی را دور بزنید و با استفاده از سابروتین نویسی در آباکوس، لذت وصفناپذیر توسعه یک حل عددی را تجربه کنید.
دلایل بکارگیری سابروتین نویسی در آباکوس
قطعاً شما همراهان گرامی، در مجموعه پستهای معرفی و آموزش آباکوس و همچنین مجموعه مثالهای کاربردی آباکوس با گوشهای از تواناییها و قابلیتهای بینظیر Abaqus در حوزه شبیهسازی اجزای محدود آشنا شدهاید و میدانید که سابروتین نویسی در آباکوس یکی از ویژگیهای برجسته این نرمافزار است. طیف مسائل پوشش داده شده در کنار رابط کاربری ساده و قابل درک، باعث انتخاب آباکوس به گزینهای بسیار جدی برای کاربران دنیای حل عددی شده است.
اما تا کنون با خود اندیشیدهاید که آیا گزینههای پیشفرض موجود در آباکوس توانایی پاسخگویی به تمام نیازهای جدید کاربران را دارد؟ در جهانی که سرعت پیشرفت علم و ارائه مدلهای عددی و معادلات ساختاری توصیف رفتار ماده سرعت روزافزونی پیدا کرده است، نرمافزارهایی نظیر آباکوس چه راه حلی برای پاسخگویی به نیازهای بهروز محققین اتخاذ کردهاند؟
صرف میلیونها دلار هزینه در بحث تحقیق و توسعه و بروز نگاه داشتن هسته حل معادلات، استفاده از المانهای جدید با فرمولبندی خاص و منحصربفرد، توسعه مدلهای جدید ماده، افزودن حوزههای کاری و قابلیتهای شبیهسازی جدید و . . . تنها بخشی از نقشه راهی است که برای حضور در کورس رقابت در دنیای پرشتاب علمی قرن 21 باید بکار گرفت. اما آیا آباکوس نیز در این حوزه موفق بوده است؟
ضرورت کدنویسی در آباکوس
شاید با خواندن مقدمه فوق اندکی دقیقتر به قابلیتهای آباکوس نگاه کرده باشید. تمامی نرمافزارهایی که با آن آشنایی دارید از مجموعه قابلیتهای پیشفرضی برخوردارند که توسعه دهنده اصلی، برای پاسخگویی به بیش از 80 درصد از نیازهای کاربران در نرمافزار تعبیه کرده است. اما آیا تمامی مسائل موجود در حوزه علم و صنعت به کمک این ابزارهای پیشفرض قابل مدل سازی و بررسی هستند؟ متأسفانه پاسخ این پرسش منفی است.
اگر از کاربران پیشرفته و سطح بالای آباکوس هستید، میدانید که توسعه و بکارگیری مدلها، معادلات ساختاری، المانها و حتی بارگذاریهای خاص بهکمک گزینههای پیشفرض تعبیه شده در آباکوس امکانپذیر نیست؛ اما اگر از راهکارهای جایگزین گروه داسو سیستمز اطلاع داشته باشید، بیش از پیش این شاهکار دنیای محاسبات و مهندسی را تحسین خواهید کرد.
با توجه به درخواست شما عزیزان و همراهان گرامی، تصمیم گرفتیم تا در این پست آموزشی به معرفی اصول، قواعد و کاربردهای سابروتین نویسی در آباکوس بپردازیم و شما عزیزان را با معروفترین گزینههای سابروتین نویسی در آباکوس اشنا کنیم. با ما در این آموزش آباکوس نیز همراه باشید.
مروری سابروتین نویسی در آباکوس
اگر 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 صفحه است.
سلام
در صورت امکان در مورد لینک کردن اباکوس 2017 با فرترن راهنمایی بکنین
سلام
اگر فرصت باشه در برنامه قرار خواهم داد
سلام
در صورت امکان فعلا فقط در مورد نسخه های ویژوال استودیو و اینتل فرترن کامپوزر مناسب برای اباکوس 2017 راهنمایی بکنید.
من Visual Studio 2012 و Fortran composer XE 2013 رو امتحان کردم لینک نشدند.
ممنون
در خصوص نسخه 2017 امتحان نکرده ام ولی برای نسخه 2016 :
1 – Visual Studio 2015
2 – Intel Parallel Studio XE 2016 (at finish linked with VS2015)
احتمالا در نسخه 2017 هم با همین مجموعه بتونید لینک کنید
با سلام من می خواستم از دو سابروتین باهم استفاده کنم به این شکل که متغیرم رو در سابروتین usdfld محاسبه کنم و از نتیجه اون توی سابروتین umat استفاده کنم چون که خواص ماده با دما تغییر می کنه. می خواستم در مورد نوشتن این سابروتین ها راهنمایی کنید اینکه سابروتین ها داخل یک فایل به چه ترتیبی قرار بگیرند که با تغییر دما خواص ماده تغییر کنه؟
سلام
یک پست اختصاصی در این خصوص وجود داره:
بکارگیری چند سابروتین در آباکوس
با سلام
من میخاستم یک با گسترده مثلثی در حال حرکت رو در حالت 2بعدی به قطعه وارد کنم فقط نمیدونم چطور فرمول رو وارد کنم؟ و این بار را حرکت بدم؟در بخش توزیع بار در اباکوس فرمول نویسی هست ولی نحوه کارش جالب نیست بنظر شما کد بنویسم یا همین فرمول نویسی خود اباکوس میتونه کمک کنه؟
بار وارده تابعی از طول تماس سطح زیر مثلث و ارتفاع مثلثه که مقادیر معلومی ان
سلام
میتونید از سابروتین DLOAD استفاده کنید
موفق باشید
سلام من می خوام فورمولی را کد نویسی کنم که در ان تکرار وجود داره.یعنی شکلم رو کشیدم حالا می خوام شرطی بزارم که بر اساس اون شکلم کشیده بشه.باید از کدوم قسمت کد نویسی استفاده کنم؟
سلام
اسکریپت نویسی با پایتون
با سلام
من یک سابروتین vumat که در آن از چند سابروتین استفاده شده را در آباکوس وارد کردم . بعد از job گرفتن خطای
Problem during compilation نشان داده می شود. وقتی فایل .log را بررسی کردم موارد زیر برای نام هر کدام از سابروتین ها نشان داده می شود: remark: has been targeted for automatic cpu dispatch
لطفا مرا راهنمایی فرمایید
سلام
فرترن با آباکوس به درستی لینک نشده
باسلام و خسته نباشید خدمت شما وممنون بابت سایت خوبتون
من میخوام جوش رو در اتصال تیر به ستون مدلسازی کنم و یکی از کارام اینه که سابروتین مربوط به فلاکس حرارتی رو بنویس
اگه بخوام شرایط اتلاف حرارت همرفتی(convection) رو هم براش تعریف کنم چیکار باید بکنم؟آیا این قسمت رو هم مثل تعریف شار حرارتی در بخش DFLUX باید براش تعریف کنم؟ یا سابروتین خاصی داره؟
ممنون میشم اگه رهنماییم کنید
سلام
بررسی در این زمینه نداشته ام
با سلام
من میخوام اثرات ضربه را روی مواد FGM با آباکوس بررسی کنم.من تونستم ماتریس DDSDDE و نرخ رشد تنش ها رو برای بار متمرکز بنویسم و جواب هم بگیرم.ولی نمیدونم برای ضربه چه خواصی از FGM رو نیاز هست که تعریف کنم.بنظرتون باید با VUMAT بنویسم یا همون UMAT جوابگو هست؟ممنون میشم اگه راهنماییم کنین که چطوری برای ضربه خواص ماده رو تعریف کنم؟چه ثوابتی رو باید تعریف کنم؟
ممنون از وقتتون
سلام
استفاده از VUMAT یا UMAT به ماهیت مسئله بر میگرده،در مسائل دینامیک از VUMAT استفاده میشه
وقتی شما ژاکوبین یا DDSDDE را محاسبه کرده اید عملاً دارید UMAT مینویسید؛ VUMAT که DDSDDE نداره
متوجه منظورتون از تعریف خواص ماده نمیشم؛ بیشتر توضیح بدهید منظورتون چیه
منظورم اینه که ما وقتی میخواییم یک FGM رو برای بارگذاری متمرکز یا بارجابجایی با UMAT تعریف کنیم میاییم
1:نرخ رشد مدول الاستیسیته یا مدول یانگ یا ضریب پواسون رو نسبت به ضخامت براش تعریف میکنیم
2: ماتریس DDSDDE رو براش تعریف میکنیم
3:آرایه STRESS رو براش تعریف میکنیم
حالا اگر بخوام با VUMAT برای بار ضربه یک FGM تعریف کنم هم باید اینارو تعریف کنم وهم بخش خواص پلاستیکی ماده رو تعریف کنم.
خب الآن برای خاصیت پلاستیک ماده باید چه پارامترهایی تعریف کنم؟
واگر VUMAT ماتریس ژاکوبین نداره اونو چطوری باید تعریف کنم؟
شما مثالی در مورد کدنویسی VUMAT ندارین؟
ممنون
دوست عزیز بحث را دقیق درک نکرده اید
UMAT و VUMAT در نوع انتگرالگیری فرق دارن
اگر شما یک UMAT نوشتید با تغییر متد انتگرالگیری میتونید به VUMAT تبدیلش کنید (به نوعی حتی کار، راحت تر هم خواهد شد)
شما باید فرمولبندی مربوط به بخش پلاستیک ماده را داشته باشید و بعد پیادهسازی کنید، با UMAT یا VUMAT
چیز ثابتی که نیست؛ ممکنه در بخش پلاستیک نوع خاصی سخت شوندگی مد نظر باشه، ممکنه معیار آسیب خاصی مطرح بشه
اینا دیگه بستگی به تئوری داره که شما استفاده میکنید
DDSDDE برای چک کردن همگرایی حل در متد Implicit مطرح میشه، وقتی شما از VUMAT استفاده کنید که این موضوع اصلاً مطرح نیست؛ چه چیزی را میخواهید تعریف کنید؟!
در Documenttion سرچ کنید، نمونه VUMAT موجوده
سلام وقت بخیر
به نظر شما امکانش هست که ماتریس سختی در سابروتین Umat یک ماده هایپرالاستیک به طور مثال سابروتین نئوهوک با یک ماتریس با درایه های عدد ثابت جمع شود برای تعریف یک متریال جدید؟
به عبارت دیگه انتهای هر کدام از درایه های ماتریس سختی در سابروتین یومت یک عدد ثابت میشود اضافه کرد؟
سلام
هدفتون چیه؟
ترکیب دو تابع انرژی کرنشی برای تعریف یک ماده جدید
در UMAT کاربر ماتریس سختی را حساب میکنه؟!
خیر، منظورم اینه که به طور مثال در سابروتین یومت که برای نئوهوک نوشته شده است و در اینترنت موجود هست، به طور مثال در این درایه ماتریس سختی :
DDSDDE(1, 4)= EG23*BBAR(4)/TWO
امکانش هست که من به این درایه یک عدد ثابت اضافه کنم یا خیر؟
این عدد ثابت حاصل محاسبات یک تابع انرژی کرنشی دیگر برای ماده هایپرالاستیک مورد نظر است
در واقع فرض کنید که ماتریس سختی ماده شامل دو ماتریس است که یکی از روش نئوهوک و ماتریس سختی دیگر که درایه هایش عدد ثابت است از روش دیگر محاسبه شده است ، آیا امکان جمع کردن این دو ماتریس سختی با هم وجود دارد؟
DDSDDE برای کنترل همگرایی حل بکار میره، اون چیزی که در ذهن شماست متفاوته
DDSDDE میتونه خیلی درست هم نوشته نشده باشه (منظور اینکه 100 درصد فرمولبندی پیاده نشده باشه) ولی مسئله همگرا بشه
مشکلی وجود نداره، میتونید عدد اضافه کنید در DDSDDE ولی این به معنای ماده جدید نیست
ممنون از راهنماییتون
خب من برای روشی که عرض کردم خدمتتون باید چکار کنم؟
مگه DDSDDE همون ماتریس سختی ماده نیست؟ با اضافه کردن عدد به آن خاصیت ماده تغییر نمیکنه؟
خیر
DDSDDE در واقع نسبت ?∂ به ?∂ است؛ فقط در حل Implicit معنی پیدا میکنه و تضمین کننده همگرایی حل و تنظیم کننده جواب معادله تعادل برای ما است
شما ممکنه DDSDDE را اشتباه حساب کنید و یا حتی درست حساب کنید ولی اشتباه کدنویسی کنید؛ در این حالت اگر جوابها همگرا شد حل صحیح بوده (شاید کمی سخت تر یا دیرتر) چون در نهایت تنشی که update شده برای ما مهم است و DDSDDE یا همان Tangent Modulus فقط یک مشتق بوده که صرفاً رسیدن به جواب معادله تعادل را برای ما تنظیم میکنه
برای موضوع شما درک صحیحی از جزئیات مسئله ندارم، نظری هم نمیتونم بدهم
ممنون از وقت و راهنمایی شما
سلام آقای مهندس
اگه اشکالی نداره من سوالم را طور دیگه مطرح میکنم
فرض کنید که یک ماده الاستیک غیرخطی داریم، آیا امکانش هست که من ماتریس سختی این ماده را با یک ماتریس با اعداد ثابت جمع کرده و به عنوان یک ماده جدید به آباکوس بدهم؟
شما که برگشتید خونه اول
شما کجا ماتریس سختی را حساب میکنید در کدی که نوشته اید؟!!
سلام و مجددا ممنون از راهنمایی و وقت شما
من متوجه منظور شما شدم و میدونم که DDSDDE ماتریس سختی نیست. سوالم اینه که روشی وجود داره که بتونم به درایه های ماتریس سختی یک ماده (منظورم DDSDDE نیست) ، اعداد ثابت اضافه کنم؟ در واقع من برای یک ماده الاستیک غیر خطی چطور میتونم ماتریس سختی را با استفاده از نرم افزار یا کد نویسی تعیین کنم؟اصلا امکان انجام این کار وجود داره؟
سلام
خیر
سلام.
همینطور که میدونید آباکوس این امکان را برای کاربر فراهم کرده تا بتواند با استفاده از برخی سابروتین ها و یوتیلیتی روتین ها، خواص ماده را بصورت تابعی از متغیرهای مستقل از حل و یا متغیرهای وابسته به حل تعریف کند. بعنوان مثال سابروتین usdfld و یوتیلیتی روتین getvrm این امکان را فراهم میکنند که بتوان مدول یانگ را بصورت تابعی از یک متغیر میدانی مستقل از حل (مثلا مختصات مکانی اولیه) و یا یک متغیر میدانی وابسته به حل (مثلا کرنش) تعریف کرد.
اما برای برخی خواص دیگر همچون ضریب نفوذپذیری یا درصد تخلخل، چنین امکانی وجود ندارد. یعنی اساسا در پنجره ادیتور متریال نرم افزار آباکوس، امکان اضافه نمودن ستون متغیر میدانی field variable برای آنها فراهم نیست. اکنون با ماده ای مواجهم که علاوه بر مدول یانگ و ضریب پواسون، این پارامترهای جدید که عرض کردم را هم باید برای آن تعریف کنم. برای وابسته کردن مقدار این پارامترها به نتایج حل چه باید کرد؟
سلام
تا جایی که بنده تجربه دارم امکان این بحث برای مواردی که اشاره کردید وجود نداره (تأکید میکنم با توجه به تجربه بنده)
با عرض سلام
در ابتدا لازم می دونم از مطالب مفید آموزشی شما تشکر کنم. من دانشجوی ارشد ساخت و تولید هستم و پروژه من در خصوص شبیه سازی فرایند اکستروژن هست و آشنایی کاملی با نرم افزار آباکوس ندارم از طریق سایت و کانال شما شروع به یادگیری کردم. سوالی که برای من پیش اومده این هست که برای کد نویسی در آباکوس با برنامه متلب هم امکان این کار هست یا بایستی حتما با نرم افزار فورترن این کار انجام بشه. اگر منبع آموزش در خصوص فورترن دارید ممنون میشم که راهنمایی کنید. که اگر لازم هست در کنار این نرم افزار شروع به یادگیری کنم.
با تشکر از جنابعالی و دیگر همکاران
سلام
چه نوع کدنویسی مدنظرتون هست؟
با متلب میشه کارهایی مثل بهینهسازیهای خاص را انجام داد ولی برای سابروتیننویسی باید از فرترن استفاده کنید
در خصوص آموزش فرترن هم یه جستجوی ساده در اینترنت داشته باشید، منایع خوبی وجود داره
با سلام
ممنون از پاسخی که دادین.
خودم هم هنوز نمی دونم، چون تسلط کاملی هنوز روی نرم افزار ندارم. استاد راهنمام گفت که شاید مجبور بشی برای تحلیل، کد نویسی هم انجام بدی. در واقع نمی دونم منظور چی بوده دقیقا.
به نظر شما در کنار یادگیری آباکوس، فرترن رو شروع به یادگیری کنم؟
مهلت تحویل پایان نامه من تابستان سال دیگه هست و من از الان شروع به یادگیری نرم افزار کردم.
یادگیری فرترن چندان پیچیده نیست؛ هر مهندسی بهرحال با یک زبان برنامهنویسی آشناست
حالا دستورات از یک زبان به زبان دیگه اندکی متفاوت میشه
اصول برنامهنویسی و پیادهسازی فلوچارت حل مشترکه و فقط دستورات هستند که قدری متفاوتن
بستگی داره که شما چه سابروتینی لازم داشته باشید، اگر مثلاً قصد نوشتن UMAT را داشته باشید باید تئوریهای جبر تانسوری، پلاستیسیته، مباحث Continuum Mechanics و ریاضیات را در حد عالی فرابگیرید؛ این قسمت خیلی مهمتره تا اینکه وقت برای فرترن بگذارید
اما اگر برای سابروتینهای ساده لازم دارید (مثل DLOAD و . . .) به مراتب کار راحت تری خواهید داشت
بهرحال فرترن را باید آموزش ببینید ولی با توضیحاتی که عرض کردم باید ببینید چه سابروتینی مد نظرتونه و بر اساس اون تقسیم وقت کنید، در UMAT نویسی بخش عمده کار پیادهسازی تئوری و روابط، گسسته سازی فرمولها در حوزه زمان،پلاستیسیته و محاسبات محیط پیوسته است، فرترن در مقابل این مباحث چیزی جز یک سرگرمی کوچک نیست !
سلام
آیا می شود بدون نصب VS و کامپایلر فرترن یک سابروتین را در آباکوس اجرا کرد؟ من یک کد inp بصورت pdf در اختیار دارم که قسمتی از آن مربوط به کد سابروتین می شود چطوری می تونم از این فایل و سابروتین آن استفاده کنم؟
ممنون
سلام
خیر
سلام و وقت بخیر
آیا در آباکوس و با استفاده از سابروتین امکان تعریف یک ماده به صورتی که در رابطه ساختاری ماده گرادیان کرنش وجود داشته باشه هست؟
مثلا
((sigma=E*(epsilon+grad2(epsilon
سلام
بله
ممنونم امکانش هست بفرمائید با چه سابروتینی و اگه براتون امکان داره توضیح مختصری بدید یا یک رفرنس معرفی کنید
ممنون میشم
UMAT
بحث در خصوص umat مفصله
نیاز به درک ریاضیات و جبر تانسوری، continuum mechanics و پلاستیسیته در حد بالایی دارید
شاید یک رفرنس کامل در این زمینه کتاب computational methods for plasticity,theory and applications باشه که البته بسیار مفصل و سطح بالاست
به documentation مراجعه کنید، اطلاعات اولیه وجود داره
خیلی ممنون از راهنمایی شما و وقتی که میگذارید، سوال آخر اینکه این بحث فقط در پلاستیسیته مطرح میشه، یعنی در خصوص مواد الاستیک خطی و غیرخطی مثل مواد هایپر الاستیک کاربرد نداره؟
مشکلی نداره، قابل استفاده است
ممنون
سلام مجدد خدمت شما، آیا امکان استفاده از سابروتین UEL هم در این حالتی که خدمت شما عرض کردم به جای UMAT وجود داره؟ در واقع هدف من افزایش درجه آزادی المان هست که خودش رو به صورت گرادیان دوم کرنش در رابطه ساختاری ماده نشون میده،آیا از سابروتین UEL برای تعریف خاصیت ماده هم استفاده میشه؟ من تا حدی سرچ کردم ولی خیلی خوب متوجه مفهوم UEL نشدم
ببینید UMAT مربوط به تعریف رفتار ماده در بارگذاری میشه
UEL مربوط به تعریف المان جدید میشه (در مواقعی که درجه آزادی و المان مطلوب کار شما وجود نداره مفیده)
باسلام واحترام
لطفا منو راهنمایی کنید.
1- برای اینکه بخوایم روی صفحات جداگانه بردارخارجی تعریف کنیم آیا ماژولی برای این عنوان وجود داره؟ یا باید براش سابروتین بنویسیم؟
من یک فایل درFortran برای DLOAD نوشتم و میخوام دراباکوس بارگذاری کنم ولی چون نمیدونم خروجی ها رو کدم چه جوری نمایش بدم که اباکوس بفهمه بار تعریف شده در ماژول Load ، مربوط به کدوم بار تولید شده در کد میباشد که ازروی کد بتونه اونو فراخوانی کنه؟
سلام
من که متوجه نشدم؛ امیدوارم خودتون متوجه سؤالتون شده باشید
سلام .دقیقا کجاشو متوجه نشدید؟
1-من میخوام بدونم اگه بخوایم در اباکوس بردار نرمال برای صفحات مختلف تعریف کنیم که بخوایم باری رو درجهاتی تعریف شده وارد کنیم ایا گزینه ای برای ایجاد بردار نرمال صفحه(بردارخارجی) وجوددارد؟که با استفاده از اون بتونیم نیرو درجهت مد نظررو وارد کنیم؟ یابعبارتی Datum را درجهتی که عمود برصفحه مدنظر است بیابیم ؟
2-دومین سوالمم اینه که اگه سابروتین تولید بردار خارجی رو نوشته باشیم وبصورت نیرو تولید کرده باشیم چه جوری باید درسابروتین نمایشش بدیم که آباکوس بتونه اونو بخونه وبعنوان user Defined در ماژول load بارگزاری کنه؟
شما با DLOAD میتونید بار دلخواهتون را به هر شکلی که هست اعمال کنید(با هر بردار و در هر جهتی هم که باشه به شکل یک تابع قابل پیاده سازیه)
خب من بردار خارجی رو تولید کردم .مقدارشم همینطور اما چه طوی باید به برنامه بدم که اباکوس میزان بارهمراه باجهت مدنظررو درک کنه؟
اطلاع ندارم
با سلام و خسته نباشید حضور شما، می خواستم در یک تحلیل دینامیکی از یک سابروتین vumat برای تعریف ماده استفاده کنم که رابطه تنش و کرنش به صورت (کرنش و نرخ کرنش) g = (تنش و نرخ تنش)f می باشد و بارگذاری در محدوده الاستیک است. بارگذاری را به شکل مورد نظر انجام داده ام ولی در نهایت تنش مطابق بارگذاری انجام شده نیست. می خواستم راهنمایی کنید که آیا این امکان به شکلی که گفتم وجود دارد و به چه صورتی باید رابطه را در سابروتین وارد کنم؟ این نکنه را هم بگویم که حتی برای مواد الاستیک از سابروتین vumat استفاده کردم که نتایج با حالت الاستیک موجود در کتابخانه نرم افزار متفاوت بود.
سلام
اگر شما روابط را صحیح پیاده سازی کنید که مشکلی وجود نخواهد داشت
میتونید با ساده سازی پارامترهای کد یک حالت خاص ایجاد کنید (پارامترهایی مثل نرخ را حذف و مسئله را به یک مسئله ساده تبدیل کنید) و از صحت کد مطمئن شوید
با سلام و تشکر از پاسخ شما سابروتینی vumat رو برای ماده الاستیک نوشتم که ضریب پواسون رو هم صفر فرض می کنم. ارتباط تنش و کرنش رو هم با روابط زیر تعریف کردم ولی نتایج درستی به دست نمی آید. به نظر شما اشکال کارم کجاست؟
do km = 1,nblock
stateNew(km,1)=stateOld(km,1)+strainInc(Km,1)
stressNew(Km,1) =e1*stateNew(km,1)
stateNew(km,2)=stateOld(km,2)+strainInc(Km,2)
stressNew(Km,2) =e1*stateNew(km,2)
stateNew(km,3)=stateOld(km,3)+strainInc(Km,3)
stressNew(Km,3) =e1*stateNew(km,3)
end do
سلام
اگر STATE variable ها را درست تعریف کرده باشید نباید مشکل خاصی وجود داشته باشه
با تشکر از جواب شما، برای تعریف state variable من هم depvar از قسمت property را مشخص کرده ام و هم اندازه آن را در فایل سابروتین وارد کرده ام ولی نتیجه درستی حاصل نشد. آیا کار دیگری نیز باید انجام دهم؟
متغیر حالت به همون شکل تعریف میشه؛ نکته خاصی نداره
در خصوص کد و مسئله شما هم نظر خاصی ندارم