هدف آموزش: در این آموزش شما با مفاهیم سابروتین در آباکوس، اینکه UMAT چیست؟ سابروتیننویسی در آباکوس، تعریف ماده دلخواه در آباکوس، آموزش اصول و پیاده سازی سابروتین UMAT در آباکوس و اصول User Material Subroutine آشنا خواهید شد.
همنیازها: در تاریخ 17 آبان 95 آموزشی تحت عنوان “سابروتیننویسی در آباکوس” در سایت درج شد که به واکاوی اجزای اصلی سابروتین در آباکوس و معرفی برخی سابروتین های معروف و پرکاربرد در آباکوس پرداخته است.
روشهای تعریف متریال در آباکوس
همانطور که پیشتر نیز اشاره کردیم، تعیین خواص مکانیکی ماده و اختصاص آن به قطعه مورد نظر برای تحلیل در ماژول Property انجام میشود. چنانچه ماده رفتاری الاستیک داشته باشد کافیست تنها مدول یانگ و ضریب پواسون ماده را در نرمافزار وارد کنیم تا تحت هر بارگذاری مکانیکی، منحنی تنش – کرنش خطی را مشاهده نماییم. چنانچه رفتار الاستیک – پلاستیک کامل در ماده وجود دارد، علاوه بر تعیین خواص الاستیک فوق، معرفی تنش تسلیم ماده نیز ضروری است.
همچنین اگر بخواهیم رفتاری دقیقتر در ناحیه پلاستیک داشته باشیم، میتوانیم منحنی تنش – کرنش ماده را بهصورت نقطه به نقطه در این ماژول وارد کنیم. به نظر میرسد تا اینجای کار با مشکل خاصی مواجه نیستیم. مجموعه رفتارهای مکانیکی متداول (مانند خزش، شکست ترد و نرم، شکست در کامپوزیتها و . . .) در نرمافزار تعبیه شده است و کاربر میتواند بسته به نیاز خود از آنها استفاده کند.
لزوم استفاده از کدنویسی در تعریف رفتار ماده در آباکوس
با پیشرفت تئوریهای موجود در شاخههای مختلف علم و ارائه معیارهای متنوع برای نشان دادن رفتار مکانیکی ماده تحت حالات خاص، استفاده از تئوریهای گنجانده شده در نرمافزار Abaqus امکانپذیر نخواهد بود. در واقع در طیف تقریباً وسیعی از مسایل نمیتوان از تئوریهای موجود در نرمافزار آباکوس برای پیشبینی رفتار ماده در بارگذاری دلخواه استفاده نمود. اما جای نگرانی وجود ندارد. چنانچه بخاطر داشته باشید، در بخش خصوصیات و برتریهای آباکوس در حوزه تحلیل اجزاء محدود به قابلیت برنامهنویسی و اتصال نرمافزارهای این شاخه به آباکوس اشاره کردیم. اگر از مدل ماده خاصی استفاده میکنید و آباکوس آنرا ارائه نداده است خودتان باید دست بکار شوید.
سابروتین UMAT چیست؟
سابروتین UMAT یا User MATerial نامی است که آباکوس برای مدلهای ماده که توسط کاربران برنامهنویسی میشود، اختصاص داده است. UMAT در حالت Implicit و VUMAT معادل آن در حالت تحلیل Explicit است. در سابروتین UMAT شما باید رفتار ماده را با استفاده از تئوریهای مدنظرتان در قالب یک کد فرترن (for.) به آباکوس معرفی کنید. در واقع شما با این برنامه، به نرمافزار میگویید که تحت این مقدار نیرو یا جابجایی، ماده چه رفتاری از خود نشان دهد، میزان تنش و کرنش چقدر باشد، چه زمانی به تسلیم برسد و تحت چه شرایطی شکست یا خستگی رخ دهد. حال، زمانی که آباکوس قصد اعمال بار و محاسبه تنش و کرنش را داشته باشد، برنامه شما را فرا میخواند و گام به گام پیش میرود. میتوانید تصور کنید که این کار تا چه اندازه پیشرفته و دقیق است، شاید قیاسی بهتر از عمل قلب باز برای آن پیدا نکنیم !
قابلیت برنامهنویسی تنها محدود به مدل ماده نمیشود و میتوان در خصوص اعمال بار و سایر موارد نیز از آن بهره جست اما برنامهنویسی مدل ماده جزء پیشرفتهترین مباحث آکادمیک است و در مقاطع تحصیلات تکمیلی تدریس میشود و نیازمند آشنایی با مباحث مکانیک محیطهای پیوسته، جبر تانسوری و نیز پلاستیسیته در سطوح عالی است. فراموش نکنید برای این کار حتماً باید کامپایلر زبان فرترن را نصب و آن را با آباکوس لینک کنید (روش این کار در مقاله آموزشی نحوه لینک کردن آباکوس و فرترن شرح داده شده است.).
پیشنهاد میکنیم آموزش اسکریپتنویسی با پایتون در آباکوس را هم از دست ندهید!
سلام و ادب ممنون از سایت خوبتون
یک متغیر حالتی رو میخوام در استپ 2 اینکریمت 1 محاسبه کنه و بعدو قبل از این استپ و اینکریمنت اون عدد مشخص رو در محاسبات استفاده کنه
مشکل اینجاست که برای استپ و اینکرمینت های بعدی این کار انجام میشه اما چون دیثالت صفره قبلی ها روصفر میگیره؟
میشه کاری کرد قبلی ها رو اصلاح کنه ؟
ممنون میشم یه روشی بگید بشه به هدفم برسم
سلام
با برداشتی که از توضیحات شما دارم خیر
امکانش نیست
اگه بخوایم برای متریال, ویسکوزیته به صورت سیال غیر نیوتنی تعریف کنیم از این سابروتین استفاده میشود؟
با تشکر از زحمات فراوان
خیر
UMAT فقط در Abaqus/Standard قابل استفاده ست
سلام مهندس
من یک یومت پلاستیسیته با سخت شوندگی ایزوتروپ نوشتم و برای یک تیر یک سرگیر دار به طول دو متر و مقطع مربع دو سانت در دوسانت که مدول یانگ آن 200 گیگا پاسکال ، تنش تسلیم اولیه اش 600 مگا پاسکال ، نسبت پواسون صفر و منحنی ناحیه پلاستیک آن خطی بوده که شیب آن (منظور همان مدول مماسی ) برابر40 گیگاپاسکال که ایجاب می کند رابطه تنش تسلیم و کرنش پلاستیک به صورت خطی شود. اعمال کردم. وقتی انتهای آزاد این تیر رو 6.5 میلیمتر بکشیم نتیجه یومت برای تنش هم راستا با طول میله و کرنش پلاستیک هم راستا با طول میله با نتایج محاسبه دستی منطبق نمی شوند. به راحتی میشه محاسبه کرد که تنش 610 مگاپاسگال و کرنش پلاستیک 0.0002 می شوند.
یومت من بر اساس جدول صفحه 221 کتاب computational method for plasticity نوشته EA.de souza چاپ 2008 هستش . قسمتی که نگاشت برگشتی دلتاگاما رو محاسبه می کنه اونو یک هفتم در میاره در حالی که مقدار درستش یک پنجم هست. اگر آباکوس براساس معادلات این جدول، پلاستیسته ایزوتروپ رو حل می کنه چرا این اختلاف جواب وجود داره؟ در Help نرم افزار هم دقیقا جدول دسوزا اومده.
سلام
نکته خاصی نداره
یک نیوتون – رافسون ساده برای محاسبه دلتاگاماست
در هر اینکرمنت نیوتن – رافسون بکار گرفته میشه تا شرایط ارضا بشه؛ عدد یک هفتم و یک پنجم کجاست؟
با سلام
1-یک کد یومت نوشتم که نیاز دارم یکسری از اطلاعات رو برای چندصفحه (روش میکروپلن) در هر نقطه گوس ذخیره کنم و در گامهای بعدی آپدیت بشن،یعنی در هر گوس پوینت تعداد زیادی متغیر وضعیت دارم، آیا نیاز دارم برای هر صفحه(مثلا 60 صفحه در هر نقطه گوس) یک statev معرفی کنم؟
2-آیا امکان فراخوانی یک سابروتین دیگر در داخل سابروتین اصلی یومت وجود دارد؟ مثلا با دستور call یک سابروتین رو فراخوانی کنیم تا برنامه اصلی شلوغ نشود و کنترل راحتتر باشد؟
سلام
1- در خصوص روش میکروپلن بررسی نداشته ام
2-بله؛ مشکلی نیست
سلام جناب مهندس
اگر بخوام در سابروتین یک آرایه داشته باشم که مشخصات هر نقطه رو حفظ کنه، نیازمند تعریف یک آرایه هستم که ابعادش برابر با حاصلضرب (تعدادالمان*تعداد نقطه گوس) باشه
تعداد المان(نه شماره المان) رو چطور میتونم در سابروتین فراخوانی کنم که نیاز نباشه خودم بشمارم و عدد رو مستقیم در سابروتین وارد کنم؟
سلام
پارامتر TOTALNEL معرف تعداد کل المانهاست
سلام مهندس سروری
ممنون از راهنماییهاتون
بنده یه کد نوشتم و کامپایلش کردم و هیچگونه اروری از این لحاظ نداره
منتها موقع فراخوانی با آباکوس ارور کامپایل میده
این رو هم خدمتتان عارضم که کدهای دیگه ای رو استفاده کردم و مشکلی نداشتم
به نظر شما مشکل از کدام قسمت از مراحل کاره؟
سلام
اگر در هنگام استفاده از کدهای دیگر مشکلی ندارید یعنی پروسه لینک شدن به درستی انجام شده
باید در کد خودتون دنبال منشأ خطا بگردید
سلام آقای مهندس
چند سوال راجع به آباکوس و یومت داشتم :
با توجه به اینکه آباکوس بار کل اعمالی به یک جسم را به تدریج ودر چندین مرحله اعمال میکنه آیا میشه تعداد این تقسیمات را از ماژول استپ یا
جای دیگه تغییر داد؟ اگه امکانپذیر باشه میشه نتایج حاصل از هر مرحله رو مشاهده کنیم؟ البته من از یومت استفاده می کنم و با دستور پرینت
مثلا مقادیر تنش رو در یک فایل متنی چاپ می کنه اما فقط مقادیر آخرین مرحله رو چاپ می کنه و نه تمام مراحل.
و یک سوال هم از یومت الاستو پلاستیسیته داشتم :
منظور از دلتا اپسیلون یا همان تانسور کرنش جزیی که در درس پلاستیسیته مطرح میشه چیه ؟ و اینو در کجای یومت الاستو پلاستیسیته لحاظ می کنیم؟
آیا این تنسور از اول تا آخر اعمال بار توسط نرم افزار مقدار ثابتی داره ؟
سلام
شما میتونید با فیکس کردن اینکرمنتها به تعداد کافی اینکرمنت ایجاد کنید
زمان کل را وارد کنید (مثلا 1 واحد)؛ زمان initial را برای مثال 0.1 وارد کنید و اینکرمنتها را فیکس و برابر 0.1 بگیرید؛ عملا در 10 اینکرمنت بار وارد خواهد شد
در بحث پرینت نتایج هم میتونید یک شمارنده در کد تعریف کنید که در پایان هر اینکرمنت نتایج را ثبت و یک واحد اضافه بشه
سلام وقتتون بخیر
مهندس در یومت باید معادله دیفرانسیلی تنش و نوشت یا معادله اصلی یعنی مثلا(dsigma=E*(de-deth یا (sigma=E*(e-eth ؟
سلام
تمام معادلات در umat باید در واحد زمان increment بندی بشه؛ شما باید دیفرانسیلی را استخراج کنید و برای آپدیت معادله بکار بگیرید
سلام
اگر بخواهیم برای شبیه سازی یک بافت بیولوژیکی(مثلا بافت قلب بدون در نظر گرفتن دینامیک خون) یک المان خاص در اباکوس تعریف کنیم که به صورت همزمان رفتار مکانیکی(مثلا ویسکوالاستیک) و الکتریکی(یک جریان تحریکی) در خود داشته باشد باید از این سابروتین استفاده شود؟ یا روش تعریف المانی خاص در اباکوس متفاوت است؟
ممنون میشم اگر مرجعی را معرفی کنید تا بتوانم از ان برای یادگرفتن تعریف المانی خاص در اباکوس استفاده کنم
سلام
خیر
باید سابروتین UEL استفاده کنید؛ توضیحات در documentation موجوده
با سلام
وقتتون بخیر
من میخوام تو آباکوس یه ماده طراحی کنم که با گذشت زمان خواصشو از دست بده وتجزیه بشه، برای این هدف از یومت استفاده کردم. کدنویسی تغییرات مدول یانگ بر اساس مکان رو انجام دادم اما تو فراخوانی زمان مشکل داشتم در کدنویسی یومت چطوری زمان رو فراخوانی می کنند؟؟؟
شما مثالی از یومت دارید که با گذشت زمان مدول یانگ تغییر کنه؟
پیشاپیش ممنونم بابت پاسخگوییتون
سلام
TIME(1)
Value of step time at the beginning of the current increment or frequency.
TIME(2)
Value of total time at the beginning of the current increment.
DTIME
Time increment.
با سلام خدمت شما
بنده مقاله ای خوندم که با استفاده از umat کد آسیب برای حالت الاستوپلاستیک نوشتند و همچنین element deletion در حالت اباکوس استاندارد انجام داده اند.
من، کارهای اتصال فرترن و آباکوس رو انجام دادم و سعی کردم و این کد رو نوشتم، اما پس انجام تحلیل آباکوس هشدار میده که variable اصلی شما در المان این قطعه ایجاد نمیشود. این در حالی هست که روز قبلش من یک نتیجه هرچند ناقص از تحلیل گرفتم. میخواستم بدون این امکان وجود داره که کد را ارسال کنم؟
سلام
متأسفانه فرصت بررسی ندارم
با سلام
امکانش هست مقاله ای که خوندید رو معرفی کنید؟
با تشکر
سلام
من یک مدل ماده رو با سابروتین vumat نوشتم. برای صحت سنجی اون رو با مدل تک المان مکعبی برای تست برش شبیه سازی کردم و جواب عالی گرفتم. اما وقتی مدلم رو المان بندی ریز میکنم با همون شرایط به همون جواب ها نمیرسم. مثلا حتی ماده به حالت پلاستیک نمیرسه و کرنش پلاستیک صفر نشون میده و اگر زمان فرایند و یا میزان جابجایی ماده رو افزایش بدم خطای تغییرشکل زیاد میده. بنظر شما ایراد کار کجاست؟
برای اعمال برش متقاطع هم برای سطح بالایی مکعب velocity در جهت طولی قطعه (x) تعریف کردم و سطح پایین قطعه رو هم ثابت کردم. المانم هم C3D8R هست.
استفاده از mass scale یا وارد نکردن یک جای جابجایی و استفاده از شیب، یا زیاد کردن زمان فرایند و کم کردن سرعت جابجایی، یا درنظر گرفتن ابعاد قطعه بصورت واقعی یعنی میلیمتر بجای متر و یا ریزکردن مش بندی رو هم چک کردم اما باز هم جواب نداد.
با تشکر
سلام
این موضوع به بهینه نبودن کد شما برمیگرده که خطاهای المانها را تجمیع میکنه
سلام
ممنون از پاسختون. اما یک مسئله که در تکمیل سوالم باید بگم اینه که این کد رو برای تست کشش و فشار هم امتحان کردم و چه برای تک المان و چه مش بندی ریز جواب ها کاملا فیت بودند و صرفا برای تست برش ساده این اتفاق میافته.
ممنون میشم با این پیش فرض مجددا به سوال من پاسخ بدید.
باز هم متشکرم
سلام
ممنون از پاسختون. اما یک مسئله که در تکمیل سوالم باید بگم اینه که این کد رو برای تست کشش و فشار هم امتحان کردم و چه برای تک المان و چه مش بندی زیر جواب ها کاملا فیت بودند و صرفا برای تست برش ساده این اتفاق میافته.
ممنون میشم با این پیش فرض مجددا به سوال من پاسخ بدید.
باز هم متشکرم
پس مشکل میتونه از محاسبه مقادیر یا آپدیت مقادیر باشه
سلام
آیا میشه با استفاده از آباکوس تحلیل خستگی انجام داد یا حتما باید از نرم افزارهای جانبی مثل FE-Safe استفاده کرد؟
و اگر میشه با استفاده از آباکوس این نوع از تحلیل را انجام داد آیا مجبور به سابروتین نویسی هستیم؟
سلام
اگر از آباکوس استفاده کنید باید سابروتین نویسی کنید
با سلام و ادب.
من در یک مدلسازی، از سابروتین usdfld برای دسترسی به تنش های لحظه ای و تعریف مقادیر مشخصه های متریال با توجه به مقدار تنش در هر اینکریمنت، استفاده کردم و مدل به خوبی ران شده و جواب های منطقی به دست آمدند.
وقتی مدل رو توسعه دادم و از خواستم سابروتین رو به دو متریال اختصاص بدم، به مشکل برخوردم. در داکیومنتیشن آباکوس آمده که:
To use more than one user-defined mechanical material model, the variable CMNAME can be tested for different material names inside user subroutine UMAT as illustrated below:
IF (CMNAME(1:4) .EQ. ‘MAT1’) THEN
CALL UMAT_MAT1(argument_list)
ELSE IF(CMNAME(1:4) .EQ. ‘MAT2’) THEN
CALL UMAT_MAT2(argument_list)
END IF
این ویژگی برای سابروتین UMAT ذکر شده. در واقع اگه اشتباه نکنم از دو سابروتین UMAT جداگانه برای دو متریال استفاده کرده.
سوال اول، اینکه با توجه به اینکه آباکوس امکان تعریف بیش از یک سابروتین مشخص در یک فایل رو نمیده، این عمل به چه صورت انجام میشه؟
و سوال دوم اینکه که آیا امکان بهره گیری از این ویژگی در سابروتین usdfld هم وجود داره؟ اگر وجود داره به چه ترتیبه؟ نحوه فراخوانی متریال در این سابروتین به چه صورت خواهد بود؟
با تشکر از وقت و حوصله ای میذارین.
سلام
پستی با عنوان «بکارگیری چند سابروتین در آباکوس» در سایت وجود داره
مطالعه بفرمایید
در مورد بقیه سوالات هم documentation توضیحات کافی را داده
با عرض سلام و ادب.
برای حل یک مسئله ی plane strain، ماتریس DDSDDE باید چند در چند و چگونه باشد؟
باتشکر
سلام
سایز ماتریس DDSDDE باید n*n باشه که n مجموع تعداد درایه های نرمال و برشی تنش خواهد بود
برای یک مسئله کرنش صفحه ای این ماتریس 4*4 خواهد بود
شکل ماتریس را سرچ کنید پیدا خواهید کرد، سه درایه روی قطر اصلی 2G+landa ست، درایه چهارم روی قطر هم G
درایه های سطر و ستون چهارم 0 خواهد بود (طبیعتا بجز درایه روی قطر)
بقیه درایه های ماتریس هم برابر landa ست
من یه ماده کامپوزیتی دارم که بصورت پودری است خواص این ماده وو میخوام وارد اباکوس کنم با مشکل برخورد کردم میشه از vumat استفاده کرد?
سابروتین vumat برای مدلسازی رفتاری از ماده استفاده میشه که به شکل پیش فرض در آباکوس نیست