هدف آموزش: در این آموزش شما با مفاهیم سابروتین در آباکوس، اینکه UMAT چیست؟ سابروتیننویسی در آباکوس، تعریف ماده دلخواه در آباکوس، آموزش اصول و پیاده سازی سابروتین UMAT در آباکوس و اصول User Material Subroutine آشنا خواهید شد.
همنیازها: در تاریخ 17 آبان 95 آموزشی تحت عنوان “سابروتیننویسی در آباکوس” در سایت درج شد که به واکاوی اجزای اصلی سابروتین در آباکوس و معرفی برخی سابروتین های معروف و پرکاربرد در آباکوس پرداخته است.
روشهای تعریف متریال در آباکوس
همانطور که پیشتر نیز اشاره کردیم، تعیین خواص مکانیکی ماده و اختصاص آن به قطعه مورد نظر برای تحلیل در ماژول Property انجام میشود. چنانچه ماده رفتاری الاستیک داشته باشد کافیست تنها مدول یانگ و ضریب پواسون ماده را در نرمافزار وارد کنیم تا تحت هر بارگذاری مکانیکی، منحنی تنش – کرنش خطی را مشاهده نماییم. چنانچه رفتار الاستیک – پلاستیک کامل در ماده وجود دارد، علاوه بر تعیین خواص الاستیک فوق، معرفی تنش تسلیم ماده نیز ضروری است.
همچنین اگر بخواهیم رفتاری دقیقتر در ناحیه پلاستیک داشته باشیم، میتوانیم منحنی تنش – کرنش ماده را بهصورت نقطه به نقطه در این ماژول وارد کنیم. به نظر میرسد تا اینجای کار با مشکل خاصی مواجه نیستیم. مجموعه رفتارهای مکانیکی متداول (مانند خزش، شکست ترد و نرم، شکست در کامپوزیتها و . . .) در نرمافزار تعبیه شده است و کاربر میتواند بسته به نیاز خود از آنها استفاده کند.
لزوم استفاده از کدنویسی در تعریف رفتار ماده در آباکوس
با پیشرفت تئوریهای موجود در شاخههای مختلف علم و ارائه معیارهای متنوع برای نشان دادن رفتار مکانیکی ماده تحت حالات خاص، استفاده از تئوریهای گنجانده شده در نرمافزار Abaqus امکانپذیر نخواهد بود. در واقع در طیف تقریباً وسیعی از مسایل نمیتوان از تئوریهای موجود در نرمافزار آباکوس برای پیشبینی رفتار ماده در بارگذاری دلخواه استفاده نمود. اما جای نگرانی وجود ندارد. چنانچه بخاطر داشته باشید، در بخش خصوصیات و برتریهای آباکوس در حوزه تحلیل اجزاء محدود به قابلیت برنامهنویسی و اتصال نرمافزارهای این شاخه به آباکوس اشاره کردیم. اگر از مدل ماده خاصی استفاده میکنید و آباکوس آنرا ارائه نداده است خودتان باید دست بکار شوید.
سابروتین UMAT چیست؟
سابروتین UMAT یا User MATerial نامی است که آباکوس برای مدلهای ماده که توسط کاربران برنامهنویسی میشود، اختصاص داده است. UMAT در حالت Implicit و VUMAT معادل آن در حالت تحلیل Explicit است. در سابروتین UMAT شما باید رفتار ماده را با استفاده از تئوریهای مدنظرتان در قالب یک کد فرترن (for.) به آباکوس معرفی کنید. در واقع شما با این برنامه، به نرمافزار میگویید که تحت این مقدار نیرو یا جابجایی، ماده چه رفتاری از خود نشان دهد، میزان تنش و کرنش چقدر باشد، چه زمانی به تسلیم برسد و تحت چه شرایطی شکست یا خستگی رخ دهد. حال، زمانی که آباکوس قصد اعمال بار و محاسبه تنش و کرنش را داشته باشد، برنامه شما را فرا میخواند و گام به گام پیش میرود. میتوانید تصور کنید که این کار تا چه اندازه پیشرفته و دقیق است، شاید قیاسی بهتر از عمل قلب باز برای آن پیدا نکنیم !
قابلیت برنامهنویسی تنها محدود به مدل ماده نمیشود و میتوان در خصوص اعمال بار و سایر موارد نیز از آن بهره جست اما برنامهنویسی مدل ماده جزء پیشرفتهترین مباحث آکادمیک است و در مقاطع تحصیلات تکمیلی تدریس میشود و نیازمند آشنایی با مباحث مکانیک محیطهای پیوسته، جبر تانسوری و نیز پلاستیسیته در سطوح عالی است. فراموش نکنید برای این کار حتماً باید کامپایلر زبان فرترن را نصب و آن را با آباکوس لینک کنید (روش این کار در مقاله آموزشی نحوه لینک کردن آباکوس و فرترن شرح داده شده است.).
پیشنهاد میکنیم آموزش اسکریپتنویسی با پایتون در آباکوس را هم از دست ندهید!
سلام
من بر روی کریستال پلاستیسیته کار می کنم. سابروتین UMAT و VUMAT نوشته شده برای این کار را نیز در اختیار دارم.
یک قطعه توسط نرم افزارهای دیگر دانه بندی و آماده می کنم. در Static, general و به کمک UMAT کار را جواب گرفتم.
حال لوله را برای هیدروفرمینگ دانه بندی کردم و می خواهم به کمک VUMAT آن را تحلیل کنم. در Dynamic,explicit.
اما خطای زیر را میدهد و من سردرگم هستم که آیا ایراد از VUMAT است؟ یا دانه بندی قبل از آن؟ و یا شرایط مرزی و step تعریف شده ؟
66 elements are missing elastic property reference.
The elements have been identified in element set ErrElemMissingElasticPropRef.
سلام
ظاهرا مشکل از تعریف خواص مکانیکی ناشی شده
مجدداً بررسی کنید
جهت توضیح باید بگویم که در vumat ، برای تعریف ماده و موارد دیگر 160 props باید تعریف شود. هر کدام از آنها معرف خواصی است. این 160 عدد را توسط نرم افزاری دیگر که بت متلب نوشته شده انجام می دهم. البته نرم افزارهای خاص این کار نیز موجود است مانند :neper و VG . آن اعداد را کمی تغییر دادم اما خطاای Runtime error c می دهد.
اگر اجازه دهید نمونه فایلی را خدمتتان ارسال نمایم. البته ایمیل شما را ندارم.
متأسفانه وقت بررسی مسائل دوستان را ندارم
باسلام خدمت مهندس سروری. من هم ارور compilation میگیرم در سابروتین umat و abaqus verification رو اجرا کردم که در abaqus explicit هم single precision و هم double precision ارور داد. من یک فایل umat دارم که اونو اجرا کردم ارور نداد اما یک فایل umat دیگه رو که اجرا میکنم ارور compilation میده. باتوجه به توضیحاتی که دادم میشه مطمئن شد مشکل از فرترن و آباکوس نیست و مشکل از کد منه؟
سلام
بله؛ ممکنه مشکل از کد هم باشه
پس چون یک سابروتین ران شد بدون ارور مشکل لینک شدن فرترن و آباکوس کاملا منتفیه و باید مشکل تو کدم جستجو کنم؟
سابروتین را در یک سیستم دیگه هم امتحان کنید تا اطمینان حاصل بشه
سلام
برای VUMAT نمی توانم مثالی ساده طراحی کنم تا با حل آباکوس مقایسه نمایم.
همچنین یک vumat بزرگ دیگری دارم و می خواهم سلامت آن را تست کنم .
سلام
در Documentation جستجو کنید، مثال وجود داره
میتونید بررسی بفرمایید
شما باید سعی کنید کدی که خودتون نوشته اید را با حذف برخی پارامترها به یک شکل ساده در بیارید که با حل آباکوس قابل مقایسه باشه (مثلا برخی پارامترها را صفر کنید، حذف کنید و . . تا به مدلهای پیش فرض آباکوس برسید)
بعد که مطمئن شدید کدتون درسته و به خوبی کار میکنه میتونید روی حالت بسط یافته و کار اصلی تصمیم گیری کنید
با سلام خدمت استاد گرانقدر
استاد من یک سال هست که اباکوس و فرترن را لینک کردم و با یومت برای آلیاژحافظه دار دارم کار میکنم و در این مدت از یک یومت خاص استفاده میکردم و ریسالت های درستی طبق مقالات میگرفتم اما الان یومت رو تغییر دادم با ارور زیر مواجه شدم
Abaqus Error: Problem during compilation
کلا هر یومتی بغیر از اون یومت اولی که باهاش کارکردم میذارم این ارور را بهم میده.
و جالب اینجاست حالا که از اون یومت اولی هم بعد از دیدن این ارور استفاده میکنم برام ران میگیره بدون خطا ولی جواب های درستی نمیده.
استاد من چکار کنم؟؟؟
من یک ماه دیگه دفاع دارم و کلا همه چیو انگار از دست دادم.
با تشکر
سلام
در تغییراتی که اعمال کرده اید از فرمت نادرست و غیرقابل تشخیص استفاده شده؛ خطا هم بخاطر همین موضوعه
اگر در کدی که دارید state variable تعریف شده باید STATEV را هم در ماژول Properties لحاظ کنید
جای نگرانی نداره؛ روی یک سیستم دیگه هم امتحان کنید ببینید مشکل پابرجاست یا خیر
سلام آقای مهندس
اقا من نمیتونم intel fortran composer-xe 2013 رو برا دانلود پیدا کنم !!!!!
تو رو خدا کمک کنید
سلام
خب دوست عزیز من باید چکار کنم؟
خب لینکی چیزی !!!
خب اگر سرچ کردید و نیست پس منم لینکی ندارم!
سلام.
خسته نباشید
ببخشید من یک سوال داشتم
من یه vumat برای رفار یک ماده ویسکوالاستیک نوشتم، برای تایید در کشش ساده ، دقیقا تنش و کرنش مقاله اصلی را می دهد ولی مشکلم اینجاست که اگر یک استپ دیگر بعد از استپ اول تعریف کنم(بدون هرگونه نیرو و جابه جایی و…)، ماده همچنان به تغییر شکل ادامه می دهد تا distortion پیدا کند و جاب abort میشه.
ممنون میشم راهنمایی کنین.
ممنون
سلام
نیرو و جابجایی که تعریف کردید در استپ دوم inactive میکنید؟
بله ولی متاسفانه هرکار میکنم تغییر شکل ادامه پیدا میکنه به صورتی که منجر به distortion میشه.
نظر خاصی ندارم متأسفانه
ممنون
سلام
ببخشید امکانش هست ماده ابتدا الاستیک رفتار کند ولی از یک جایی به بعد رفارش عوض بشه ؟ یعنی یه جاب بگیریم با رفار الاسیک ، و بعد با استفاده از predefined field ، در جاب بعدی برای رفتار ماده در ادامه از vumat استفاده کنیم؟
من اینکارو که میکنم در ادامه هم ماده همون الاستیک رفتار میکنه ماسفانه و دیگه نمیشه رفتارشو عوض کرد. ممنون میشم راهنمایی کنین
سلام
اگر ماده وارد ناحیه پلاستیک شده باشه که کد هم باید بتونه این موضوع را تشخیص بده و محاسبات بخش پلاستیک انجام خواهد شد
سلام
سابروتین umat برای حذف (مرگ) المان کاربرد داره؟
سلام
اگر از حلگر explicit استفاده میکنید گزینه element deletion در آباکوس موجوده
با سلام،
خصوصیات مواد من با سابروتینی که تعریف کردهام تغییر میکنند. میخواهم زمانیکه مقدار مورد نظری برای 90 درصد المان ها در یک بازه مشخص قرار گرفت، برنامه خود به خود پایان پذیرد. برای مثال هنگامیکه 90 درصد از المانها، انرژی بین مقدار A و B داشته باشند برنامه متوقف شود.
سپاسگزار خواهم بود اگر راهنمایی فرمایید.
سلام
باید در سابروتینی که دارید محاسبات مربوط به انرژی را لحاظ کنید و یک مقدار بعنوان Threshold در نظر بگیرید تا اگر انرژی به این مقدار رسید، برنامه یک مقدار false برگرداند و متوقف شود
سلام ببخشید یه سوال
از اونجا که دمای تبخیر رو نمیشه در آباکوس وارد کرد آیا میشه از طریق سابروتین دمای تبخیر قطعه رو تعریف کرد و با استفاده از اون بر اثر شار حرارتی برداشت ماده شبیه سازی بشه؟
سلام
بررسی نداشته ام
سلام خدمت شما
بنده تلاش دارم تحلیل ارتعاشی یک صفحه مدرج تابعی (FGM) رو به انجام برسانم . سوال بنده اینکه چطور در سابروتین UMAT میشود چگالی ماده رو به صورت تابعی بر حسب مختصه مکانی z تعریف کرد. تشکر.
سلام
بنده بررسی نداشته ام ولی شاید لینک زیر بتونه کمک کنه بهتون:
http://imechanica.org/node/18139
با سلام و عرض ادب خدمت شما
من می خواستم یک میله فولادی در حال رزونانس را که در اثر دمپینگ داغ می شود را در آباکوس مدل کنم.
به نظر شما میتوان با استفاده از سه سنسوری که انرژی کل و انرژی جنبشی و انرژی کرنشی را ذخیره کنند و سپس در سابروتین UAMP حرارت اتلافی را محاسبه و به عنوان بار حرارتی به میله اعمال کنند ، می توان این مدل سازی را انجام داد؟
از توجه شما ممنونم.
سلام
دقیق متوجه نشدم
اگر منظورتون اینه که به شکل تجربی مقادیر را اندازه گیری کنید باید عرض کنم شما باید رابطه مربوطه را برای نوشتن UAMP داشته باشید (اگر سابروتین نیاز باشه)
سابروتین کاری انجام نمیده
چند خط کد به زبان فرترنه
مهم پیاده سازی رابطه مد نظر شما در قالب این کد است
آیا امکان فراخوانی کرنش های اصلی داخل umat هست؟
تانسور کرنش مشخصه
با یک کد ساده مؤلفه های اصلی را استخراج کنید
سلام و ادب
بنده میخوام مقدار عددی یک پارامتر در یک استپ و اینکریمنت مشخص رو به عنوان یک عدد ثابت تا انتها در فرمولها استفاده کنم یعنی به عبارت دیگه یه مقداری رو در استپ و اینکریمنت مشخص محاسبه کنه و تا انتها مقدار اولیه ثابت باشه
برای این کار از متغیر حالت و شرط استفاده کردم
اما نتیجه نمیده
چطوری باید این کار رو انجام بدم؟
این کدی هست که برای این منظور نوشتم
ممنون میشم کمکم کنید
if(kinc==1)then
statev(1)=s33
endif
if (kinc .gt. 1)then
statev(1)=statev(1) ;
endif
سلام
شما در این حلقه در حال آپدیت متغیر حالت هستید
اگر قراره ثابت بمونه که نیازی به آپدیت نیست
مقدار مورد نظر که بدست اومد در یک متغیر قرار بدید و آپدیت نکنید
سلام مهندس
من یک معادله ساختاری دارم که توش هم ماتریس استیفنس و معکوسش هس و خود این ماتریس هم وابسته به دما و تغییرات دما می باشد و
همچنین ارتباط بین تنش و کرنش به صورت دیفرانسیلی است که دارای مشتقات جزیی نسبت به ماتریس استیفنس است به نظرتون میشه این معادله ها رو با یومت کد نویسی کرد یا شما روش دیگیری رو پیشنهاد می کنین؟
سلام
مشکلی نداره، پیاده سازی معادلات ساختاری بجز کدنویسی راه دیگه ای نداره
سلام
مهندس معکوس ماتریس استیفنسو چه جوری باید تعریف کنیم تو یومت آیا دستور خاصی هست؟ و آیا دستوری برای انتگرال گیری هست شبیه متلب تو یومت ؟
سلام
یومت که زبان برنامه نویسی نیست؛ یومت یک برنامه به زبان فرترنه
پس هر دستوری که در زبان فرترن وجود داره در یومت هم قابل استفاده خواهد بود
سلام مهندس
به نظرتون ارور Problem during compilation دلیلش چی میتونه باشه ؟
سلام
در پست آموزش لینک کردن آباکوس و فرترن که در سایت موجوده یک فایل برای تست گذاشته شده
اگر اون فایل را تونستید با موفقیت اجرا کنید یعنی مشکل از کد شماست
اگر هم قادر به اجرای اون کد نبودید که فرآیند لینک شدن بدرستی انجام نشده
خیلی ممنون
من اون فایلو تست کردم درست اجرا شد مشکل لینک نیست
پس باید کدم مشکل داشته باشه
مشکل از کد شماست
سلام
خسته نباشید مهندس
من تو کدی که نوشتم معادله ساختاریم وابسته به دماست و هربار در یک دما خواصو بدست میاره بعد معادله ساختاریو اجرا میکنه بعد دوباره دما آپدیت میشه مهندس من چه جوری باید کاری کنم که وقتی تو یک دما داره اجرا میشه کاملا همگرا بشه یعنی به دقت لازم برسه بعد بره دمای بعدی الان به محض اینکه به آخر کد میرسه دوباره دما تغییر میکنه
سلام
کافیه قبل از آپدیت دما یک حلقه کنترل همگرایی تعریف کنید
یک loop بنویسید و مثلا با نیوتون-رافسون همگرایی را چک کنید؛ تا زمانی که تولرانس مطلوب حاصل نشده حلقه را ادامه بده و بعد خارج بشه
آپدیت دما خارج از loop باشه مشکل حل میشه
خیلی ممنون مهندس
فقط باید کل معادله ساختاریو بذارم تو حلقه یا همون معادله تنش کافیه دقیق متوجه نشدم و یه سوال دیگه من برای محاسبه ارورم لازم دارم تنشو ذخیره کنم آخر کد وقتی دوباره تنش تو همون حلقه تو همون دما داره محاسبه میشه تغییر میکنه ؟
بازم ممنون از وقتی که میذارین
معادله ساختاری باید داخل لوپ باشه
میتونید یه ظرف مجزا تعریف کنید که در پایان هر مرحله تنش را ذخیره کنه و شمارنده ش بعد از پایان محاسبات عوض بشه
سلام خسته نباشید. من یک مشکلی داشتم کامپوزیت من رفتار غیر الاستیک داره که معادله تنش و کرنش من به صورت غیر خطی هست خواستم بدونم چگونه می تونم کد بنویسم هر مثالی که میخونم برای الاستیک خطی هست. میشه منو راهنمایی کنین. کتابی برای کدنویسی الاستیک غیر خطی یا هایپرالاستیک هست که ازش الگو بگیرم؟ ممنون.
سلام
خیر؛ کتابی نیست
شما باید فرمولها و روابط را در قالب کد در بیارید (معادلات ساختاری و . . .)