در این آموزش آباکوس شما با دلایل بکارگیری سابروتین نویسی، ضرورت برنامه نویسی و نحوه کد نویسی در آباکوس، اجزای اصلی سابروتین و برخی سابروتین های معروف و پرکاربرد در 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 صفحه است.
سلام
من برای مدل کردن انبساط در اباکوس از دو سابروتین uexpan و usdfld استفاده کردم. سابروتین usdfld رو قبل از uexpan آوردم. مشکل اینجاست که مدل کاملا ران میشه بدون هیچ وارنینگ و اروری.. ولی اباکوس اصلا سابروتین usdfld رو نمیخونه فقط uexpan رو میخونه و رو مدل پیاده میکنه. در اباکوس depvar رو هم اوردم…. مشکل از کجاست؟
سلام
در تعریف متریال، گزینه user defined field را انتخاب کردهاید؟
در سابروتین field تعریف نکردم که بخوام تو آباکوس این گزینه رو انتخاب کنم. با این حال user defined field رو هم انتخاب کردم ولی نتیجه نداد.
اصلا به درست یا غلط بودن جواب کاری ندارم فقط میخوام بدونم دلیلش چیه که سابروتین رو نمیخونه..چون هم در سابروتین uexpan و هم usdfld یه خط کد نوشتم که فایل تکست رو در جایی سیو کنه برای uexpan فایل تکست میسازه ولی برای usdfld نه…. از یه فیلمی یک مثال آماده usdfld همراه با سابروتین خودش ران گرفتم کاملا جواب ها با فیلم یکی بود و فایل تکست هم میساخت ولی برای مدل و کد خودم نمیدونم چرا اینجوری میشه.
وقتی در سابروتین field تعریف نشده چرا باید از USDFLD استفاده بشه؟!
نظری ندارم
سلام
وقت بخیر جناب مهندس
یه کد نوشتم متشکل از دو سابروتین، umat و sdvini
از sdvini برای صفر کردن statevariabel ها در اولین گام استفاده کردم
مدل مورد مطالعه دو استپ دارد
سوال؟
آیا در ابتدای هر دو استپ متغیرهای وضعیت صفر میشود؟
چکار کنم که فقط در ابتدای استپ اول، متغییرهای وضعیت صفر شود؟
سلام
خیلی ساده در خارج حلقه مقداردهی کنید
ممنون از پاسختون
ولی جواب نگرفتم
ببینید، در استپ اول و اولین اینکریمنت، سابروتین sdvini که متغییر های وضعیت را مقداردهی اولیه میکند، فراخوانی میشود، و سپس umat فراخوانی میگردد.
در استپ دوم و اینکریمنت اول، باز هم سابروتین sdvini فر اخوانی میشود و مقادیر statevariable هایی که از استپ قبل و در قالب سابروتین umat مقادیر جدیدی گرفته اند، دوباره برابر مقادیر اولیه قرار میدهد
***من در سابروتین umat سابروتین sdvini رو فراخوانی نمیکنم، sdvini یک سابروتین مستقل فرض شده و جزو سابروتین های پیش فرض اباکوس است.
بله، میدونم پیش فرضه
من راهکار دوم را عرض کردم
سلام وقت شما بخیر
من از سابروتین usdfld استفاده کردم. هم depvar هم user defined field معرفی کردم. در قسمت جاب هم فراخوانی کردم . مدل کاملا ران شد و نتایج خوبی هم داد و در مقایسه با حالت معمولی و بدون استفاده از سابروتین جواب ها کاملا متفاوت بود و این یعنی سابروتین درست کار کرده بود ولی مشکل اینجاست که در visualizaion اصلا استیت وریبل هایی که در کد معرفی کردم رو نشون رو نمیاره . ممنون میشم راهنمایی کنید
سلام
متغیرها را آپدیت میکنید؟
سلام. من برای مدل کردن انبساط از دو کد usdfld و uexpan استفاده کردم. برای مدول الاستیسیته و concrete damage plasticity فیلد تعریف کردم و میخوام مقادیرشونو کاهش بدم.
دارم مقاله رو صحت سنجی میکنم. تو مقاله در یک کرنش هایی که در واقع انبساط نمونه استوانه ای بتن هستند گفته شده که مدول الاستیسته و مقاومت فشاری و کششی چند درصد کاهش پیدا میکنه.
فیلد رو در سابروتین به عنوان تابعی از زمان گرفتم ( 0.005*(2)TIME ).
در آباکوس هم برای مدول الاستیسته به ترتیب اعداد 0 و 0.0005 و 0.0025 و 0.001 رو گذاشتم و مقادیر الاستیسته رو به صوت کاهشی روبروش وارد کردم
و برای compressive behavior و tensile هم در قسمت فیلد یک ستون رو گذاشتم صفر. بعد روبروش مقادیر مقاومت فشاری که از اکسل مندر گرفتم رو گذاشتم برای کششی هم همینطور, در ادامش عدد 0.0005 رو گذاشتم و دوباره مقادیر مقاومت فشاری رو وارد کردم و همینطور تا 0.001. که در سابروتین فیلد مثلا به عدد 0.0005 رسید اعداد مربوط به مقاومت فشاری و کششی رو که به صورت ستونی وارد کردیم بخونه.
ولی وقتی نتایج رو دیدم متوجه شدم که آباکوس اصلا فیلد رو برای concrete damage plasticity اعمال نمیکنه فقط برای کاهش مدول الاستیسیته اعمال میکنه. نمیدونم طریقه فیلد تعریف کردنم برای concrete damage plasticity درست بوده یا نه.
سلام
اطلاعی ندارم
سلام جناب مهندس
وقت بخیر
ممنون میشم کمک کنید تو حل این مشکل
موقع خروجی گرفتن از state variable ها در کد یومت، اباکوس این ارور رو میده!
The selected primary variable is not available in the current frame for any elements in the current display group
چطور میشه این مشکل رو حل کرد؟
سلام
واضحه؛ متغیری که شما میخواهید خروجی بگیرید برای المانها در این استپ ساپورت نمیشه
اگر از چند استپ استفاده میکنید میتونید به استپهای دیگه برید و ببینید مشکل حل میشه یا خیر
سلام
ممنون از پاسختون
فقط یک استپ دارم.
در این شرایط برخی از state variable ها نمایش داده میشن، ولی برای برخی ارور بالا رو میده.
عرض کردم خدمتتون
متغیری که مد نظر شماست برای المانها در این استپ ساپورت نمیشه
سلام. وقتتون بخیر
آیا می توان از سابروتین USDFLD و UMAT به طور همزمان استفاده کرد؟
من در USDFLD مشخصات مصالح رو با توجه به فیلد تغییر دادم. علاوه بر این میخوام جهت تنش های اصلی رو بدست بیارم. در UMAT با دستور SPRIND میشه اینکار رو کرد. برای جلوگیری از پیچیده شدن آیا میشه UMAT رو در کنار USDFLD استفاده کرد؟ یعنی من تغییر مشخصات مصالح رو با USDFLD انجام بدم و جهت تنش ها رو با UMAT.
سلام
مشکلی نداره
سلام،
من قصد دارم مدل مواد جانسون کوک که در خود اباکوس هست رو با سابروتین بهبود بدم و Kinematic Hardening رو بهش اضافه کنم.
ابتدا میخواستم بدونم کد مدل جانسون کوک در UMAT یا VUMAT موجود یا قابل دسترس هست یا باید از ابتدا خودم بنویسم. سوال بعدم اینه که برای این هدف بهتر است از کدام سابروتین استفاده کنم UMAT ،UHARD یا اینکه VUMAT. پیشاپیش ممنون از توجه و زحمات شما.
سلام
باید خودتون بنویسید
انتخاب umat و vumat به صورت مسئله شما بستگی داره؛ اگر مسئله استاتیکی باشه باید umat بنویسید و اگر دینامیک باشه vumat
سلام آقای مهندس وقتتون بخیر
من مدل سازی با آباکوس انجام دادم و میخواهم خروجی آباکوس را وارد یک برنامه کنم تا روی داده های آن با الگوریتم بهینه سازی کار کنم
به نظر شما این کار فقط با لینک آباکوس و فرترن امکان پذیر است یا اینکه با کد نویسی درون خود آباکوس هم امکان این کار وجود دارد؟
سلام
میتونید با اسکریپت پایتون به هر شکل دلخواهی که دوست دارید خروجی بگیرید؛ نیازی به لینک کردن اباکوس و فرترن نیست
یک راه ساده تر هم اینه که از طریق گزینه report در منوی اصلی ماژول Visualization کار را پیش ببریدریال قدرت انتخاب هم دست شماست، در نقاط انتگرالگیری، المان، نود و هر جایی که دوست دارید خروجی دلخواهتون را بگیرید
با سلام
من می خواهم یک ماده پلیمری را روش دو شبکه موازی (Parallel rheological framework) که برای مثال در یکی از روش neo-Hookean و در دیگری از رفتار الاستیک استفاده کنم که در نهایت برای بدست اوردن تنش نهایی تنش های این دو شبکه با هم جمع می شوند. برای انجام این مدلینگ ماژول تعریف شده ای در اباکوس وجود دارد و یا باید از سابروتین استفاده کنم؟ در صورت استفاده از سابروتین پیشنهاد شما کدام سابروتین است؟
با تشکر
سلام
میتونید لینک زیر را مطالعه کنید:
https://bit.ly/34OYR7H
اگر بخواهیم یک ورق بعد از هر مرحله فورمینگ در راستای یک منحنی حرکت کند و مجددا فورمیگ انجام شود این شرایط مرزی رو چطور باید تعریف کنیم؟یعنی به جای x,y,z مسیر حرکت در راستای یک منحنی و به صورت استپ به استپ باشد
میتونید در چند تحلیل مجزا اینکار را پیش ببرید
با عرض سلام و ادب. امیدوارم خوب و سلامت باشید.
من می خواهم که با استفاده از سابروتین UMAT کدی را بنویسم که پس از هر step ماتریس DDSDDE را آپدیت کند. امکان این کار وجود دارد؟ و اگر بله، شما راهنمایی برای بنده دارید؟
با احترام
سلام
شما در UMAT مجبور به آپدیت کردن این ماتریس هستید
با عرض سلام مجدد و سپاس از پاسخگویی جنابعالی.
با اجازه ی شما من کمی بیشتر توضیح می دهم.
من برای هر درایه از ماتریس DDSDDE به جای یک عدد، یک ماتریس دارم.
همچنین برای هر درایه از بردار کرنش هم به جای یک عدد، یک بردار دارم.
آیا این امکان وجود دارد که تحلیل در هر step با اطلاعات جدید من انجام شود؟
با احترام
سلام
اگر بتونید ارتباط بین درایه ها و بردار را کدنویسی کنید مشکلی نداره
سلام .
برای شبیه سازی کامپوزیت های پلیمری بخصوص شبیه سازی رزین و الیاف مختلف از کدام سابروتین باید استفاده کرد ؟
سلام
برای شبیه سازی رفتار مواد باید umat/vumat بنویسید
آیا برای اعمال شرایط مرزی در راستای مثبت یک محور باید از سابروتین استفاده کرد یا راه حل ساده تری هم وجود دارد؟
تعریف دستگاه مختصات دلخواه و استفاده از اون ساده ترین راهه
اگر بخواهیم سازه را در راستای مثبت یک محور مقید کنیم چه باید کنیم؟
دستگاه مختصات دلخواهتون رو تعریف کنید و از این CSYS کمک بگیرید
سلام اباکوس من با فرترن به درستی لینک شده و برنامه که خودتون گذاشته بودین تست شده و مشکلی ندار الان یک کد مربوط به زیر برنامه UEL هستش که ارور میده
Error in job hgCopy: Problem during linking – Abaqus/Standard User Subroutines. This error may be due to a mismatch in the Abaqus user subroutine arguments. These arguments sometimes change from release to release, so user subroutines used with a previous release of Abaqus may need to be adjusted.
Job hgCopy aborted due to errors.
لطفا راهنمایی کنید
سلام
ویدیو آموزشی برای سابروتین نویسی در اباکس ندارید؟
سلام
خیر
آموزش خصوصی و اختصاصی چطور؟
در حال نوشتن پایان نامم هستم و نیاز به یکی دو جلسه آموزش سابروتین نویسی (سابروتین USDFLD) دارم؛
نمیتونید کلاس خصوصی بذارید؟
ایمیلم رو قرار دادم؛ اگر کلاس اختصاصی ای برگزار میکنید و امکانش هست، شرایطش رو برای بنده به ایمیلم ارسال بفرمائید
متأسفانه خیر
سلام جناب مهندس وقت بخیر
قبلا یک سوال پرسیدم از خدمتتان جهت یاداوری اینجا اوردم:
یه کد نوشتم متشکل از دو سابروتین، umat و sdvini
از sdvini برای صفر کردن statevariabel ها در اولین گام استفاده کردم
مدل مورد مطالعه دو استپ دارد
در استپ اول و اولین اینکریمنت، سابروتین sdvini که متغییر های وضعیت را مقداردهی اولیه میکند، فراخوانی میشود، و سپس umat فراخوانی میگردد.
در استپ دوم و اینکریمنت اول، باز هم سابروتین sdvini فر اخوانی میشود و مقادیر statevariable هایی که از استپ قبل و در قالب سابروتین umat مقادیر جدیدی گرفته اند، دوباره برابر مقادیر اولیه قرار میدهد
***من در سابروتین umat سابروتین sdvini رو فراخوانی نمیکنم، sdvini یک سابروتین مستقل فرض شده و جزو سابروتین های پیش فرض اباکوس است.
جواب شما این بود:
خیلی ساده در خارج حلقه مقداردهی کنید:
بنده بدون استفاده از سابروتین sdvini و در همان سابروتین umat یه دستور if تشکیل دادم:
IF(KSTEP==1.and.KINC==1) then
یعنی در اولین استب و اولین اینکرمنت مقدار statevariable رو صفر بزاره
متوجه شدم در هر اینکرمنت مقدار statevariable که باید زیاد بشه(چون اعداد قدر مطلقی هستند و منفی ندارند)، در ابتدای تکرار جدید، کاهشی شدند!
و این اتفاق نه در همه تکرارها بلکه در اولین تکرار رخ میدهد
ممنون میشم اگر راهنمایی بفرمایید.
سلام
اطلاعی ندارم
با سلام.
وقت شما بخیر
من یک تحلیل کوپل حرارت جابه جایی داشتم. میخواستم که conductivity رو که بر حسب زمان در اباکوس تعریف میشود، میخواستم که وابسته به یک پارامتر دیگری مثل مقدار خاصی از کرنش پلاستیک (مثل PEEQ) هم بکنم. یعنی در دو فاز قبل از رسیدن به اون کرنش باشه و بعد از رسیدن به اون مقدار.
من احساسم اینه که باید توی usdfld تعریف بشود و حالت قبل اون رو 0 و بعد از اون رو 1 در field1 تعریف کنم.
اگه یک مشاوره بدید که ایا راه حل من صحیح هست یا نه. اگه هست توی کد چه چیزی رو باید تعریف کنم
سلام
اطلاعی ندارم