با سلام و خسته نباشید.
من می خواستم یک کد vumat برای معیار شکست نرم اویان بنویسم. معیار مربوطه به صورت زیره:
http://uupload.ir/files/o2c_oyane.jpg
حالا من می خواستم بپرسم که آیا انتگرال رو میشه در زبان فرترن نوشت یا باید با یکی از روش های عددی مثل سیمپسون اون رو کدنویسی کرد؟ بعد اینکه اگه بخوام بعد از اینکه هر المانی که شکست توش رخ بده ، حذف (Element Deletion) بشه، چیکار باید بکنم؟ چجوری به سابروتین بفهمونم که این المان ها حذف شده اند و باری تحمل نمی کنند؟
با تشکر فراوان از سایت خوبتون
- برای ارسال دیدگاه باید ابتدا وارد شوید.
سلام . توی سابروتین ها نمیشه انتگرال گیری کرد . شما باید کلیه معادلاتتون رو به صورت نرخی بنویسید . یعنی باید از اون معادله انتگرالی دیفرانسیل بگیرید و تبدیل به یه رابطه نرخی (rate equation) بکنیدش. بعد باید توی کد، تعریف کنید که مقدار پارامتر I برابر است با مقدار آن از نمو زمانی قبلی به اضافه دیفرانسیل آن که در این نمو حساب شده . این قسمتش درست مثل نوشتن کد تو umat هست. البته هنگام کدنویسی تو vumat دیگه نیازی به تعریف ماتریس DDSDDE نیستش . کلا کدنویسی با VUMAT خیلی ساده تر و روان تر و کم دردسر تر هستش . شما باید برای پارامتر I یک state variable در نظر بگیرید چون state variable ها حافظه دارن . بعد باید از طریق تنظیمات ماژول پراپرتی، یک state variable رو به عنوان پارامتر کنترل کننده حذف المان معرفی کنید و بعد تو کدتون بنویسید که اگر شرط اسیب که در حال محاسبه شدن در هر نمو هست، مقدارش به حد اسیب رسید، state variable کنترل کننده حذف المان مقدارش یک بشه . البته حواستون باشه که ما دو نوع اسیب داریم : یکی instantaneous و دیگری progressive . کدنویسی اینا با هم یه مقدار فرق میکنه . حواستون به باربرداری هم باشه و تدابیر مربوطه رو تو کدتون براش اتخاذ کنید .
در اینده خیلی نزدیک اموزش سابروتین VUMAT هم مانند UMAT بر روی سایت قرار خواهد گرفت.
- mirzabozorg 8 سال پیش پاسخ داده است
- برای ارسال دیدگاه باید ابتدا وارد شوید.
لطفا ابتدا وارد شوید.