براہِ راست مواد پر جائیں

صارف ذیلی معمول کی توسیعات

FrontISTR بنیادی ماخذ بدلے بغیر فعلیت بڑھانے کے لیے صارف ذیلی معمولات فراہم کرتا ہے۔ یہ صارف متعین تشکیلی قوانین اور بیرونی بوجھ کو احاطہ کرتے ہیں۔ اس باب میں توسیع نقاط اور انہیں فعال کرنے والے تجزیہ کنٹرول کلیدی الفاظ دیے گئے ہیں۔ دلائل کی تفصیلی خصوصیات اور دوبارہ تعمیر کے طریقۂ کار کے لیے صارف ذیلی معمولات (کوڈنگ رہنما) دیکھیں۔

افعال کا مجموعی خاکہ

توسیعات دو نظام میں تقسیم ہیں: مادّہ تشکیلی قوانین اور بیرونی بوجھ۔ تشکیلی جانب پر خطی لچک، فوق لچک، لچک-پلاسٹکیت اور عمومی تشکیلی قانون کے چار راستے ہیں۔ بیرونی-بوجھ جانب صارف فائل سے بوجھ معلومات پڑھ کر کلی بوجھ/باقیہ سمتیے میں شامل کرتی ہے۔ ہر صورت میں تقسیم شدہ سانچے میں ترمیم کر کے FrontISTR دوبارہ تعمیر کرنا ہوتا ہے۔

توسیع زمرہ تجزیہ کنٹرول کلیدی لفظ اہم صارف ذیلی معمولات سانچہ
صارف خطی لچک !ELASTIC, TYPE=USER uElasticMatrix, uElasticUpdate fistr1/src/lib/user/uelastic.f90
صارف فوق لچک !HYPERELASTIC, TYPE=USER uElasticMatrix, uElasticUpdate fistr1/src/lib/user/uelastic.f90
صارف لچک-پلاسٹکیت (تسلیم/واپسی نگاشت) !PLASTIC, YIELD=USER uElastoPlasticMatrix, uBackwardEuler, uElastoPlasticNumStatus fistr1/src/lib/user/uyield.f90
عمومی صارف تشکیلی قانون !USER_MATERIAL uMatlMatrix, uUpdate fistr1/src/lib/user/umat.f90
صارف کا متعین کردہ بیرونی بوجھ !ULOAD, FILE=<fname> ureadload, uloading, uResidual fistr1/src/lib/user/uload.f90

داخلی تسلیم فنکشن برقرار رکھ کر صرف سخت کاری منحنی صارف کے ذریعے نافذ کرنے کا مسار نہیں۔ اس کے لیے !PLASTIC, YIELD=USER سے پورا لچک-پلاسٹک تشکیلی قانون صارف نفاذ میں بدلیں۔ صارف حدی شرائط اور دوبارہ آغاز کے وقت صارف عمل کاری توسیع نقاط بھی معاونت یافتہ نہیں۔

!CREEP کا TYPE=USER معاونت یافتہ نہیں۔ وقت-منحصر حسبِ ضرورت تشکیلی قانون کے لیے !USER_MATERIAL استعمال کریں۔

صارف تشکیلی قوانین

داخلی ماڈلز سے نہ بننے والے تناؤ-کرنش تعلق کے لیے چار راستے ہیں: صارف خطی لچک، صارف فوق لچک، صارف لچک-پلاسٹکیت، عمومی صارف مادّہ۔ !MATERIAL بلاک میں متعلقہ کلیدی لفظ پر TYPE=USER یا YIELD=USER دیں۔ زیادہ سے زیادہ 100 صارف کے مستقلات ذیلی معمول کو پاس کیے جا سکتے ہیں۔

صارف خطی لچک

!ELASTIC, TYPE=USER کم-تشکل تشکیلی قانون کے طور پر uElasticMatrix (لچکی میٹرکس \(D\)) اور uElasticUpdate (تناؤ) کو بلاتا ہے۔ اسے داخلی فوق لچک یا لچک-پلاسٹک ماڈلز کے ساتھ استعمال نہ کریں۔

صارف فوق لچک

!HYPERELASTIC, TYPE=USER بڑا-تشکل کل Lagrange مسار ہے۔ ذیلی معمولات وہی uElasticMatrix اور uElasticUpdate اور سانچہ fistr1/src/lib/user/uelastic.f90 ہیں۔ کلیدی لفظ انتخاب سے FrontISTR کم-تشکل یا کل-Lagrange رویہ منتخب کرتا ہے، اس لیے ایک ہی سانچہ نفاذ کو بیک وقت دونوں تعبیرات کے لیے دوبارہ استعمال نہیں کیا جا سکتا؛ کسی ایک تشکیلی قانون کے مطابق نافذ کریں۔

صارف لچک-پلاسٹکیت

!PLASTIC, YIELD=USER میں تسلیم فنکشن اور واپسی-نگاشت صارف نافذ کرتا ہے۔ داخلی Mises، Mohr-Coulomb اور Drucker-Prager شاخوں سے الگ مسار ہے۔ عنصر سختی حساب پر uElastoPlasticMatrix لچک-پلاسٹک مماسی \(D\) دیتا ہے، تناؤ تازہ کاری پر uBackwardEuler آزمائشی تناؤ کو حقیقی تناؤ میں نگاشت اور حالت متغیرات تازہ کاری کرتا ہے، اور Gauss-نقطہ ابتدائیہ بندی پر uElastoPlasticNumStatus حقیقی حالت متغیرات کی تعداد دیتا ہے۔ صرف سخت کاری منحنی بدلی نہیں کی جا سکتی؛ ضرورت ہو تو پورا لچک-پلاسٹک قانون اس مسار سے نافذ کریں۔

عمومی صارف تشکیلی قانون

!USER_MATERIAL داخلی لچکی/فوق لچک/لچک-پلاسٹک ڈھانچے سے باہر عمومی مسار ہے۔ طے شدہ تازہ شدہ Lagrange اور KIRCHHOFF کی صورت میں کل Lagrange سمجھا جاتا ہے۔ حالت متغیرات کی تعداد NSTATUS سے دی جاتی ہے۔ عنصر سختی میں uMatlMatrix مماسی سختی \(D\) دیتا اور تناؤ تازہ کاری میں uUpdate تناؤ/حالت متغیرات تازہ کاری کرتا ہے۔

صارف کے مستقلات اور حالت متغیرات

!ELASTIC, TYPE=USER، !HYPERELASTIC, TYPE=USER اور !USER_MATERIAL کے ڈیٹا-سطر صارف کے مستقلات (زیادہ سے زیادہ 100) matl دلیل میں جوں کے توں جاتے ہیں۔ !PLASTIC, YIELD=USER میں !ELASTIC لچکی مستقلات کے ساتھ !PLASTIC ڈیٹا-سطر صارف کے مستقلات بھی پاس ہوتے ہیں۔

عمومی صارف مادّہ اور !PLASTIC, YIELD=USER میں حالت متغیرات fstat کے ذریعے پچھلے مرحلے کی تاریخ، مثلاً پلاسٹک کرنش، پس تناؤ یا نقصان، نفاذ کو دی جا سکتی ہے اور مرحلہ کے اختتام پر واپس لکھی جا سکتی ہے۔ حالت متغیرات کی تعداد عمومی مسار میں !USER_MATERIAL کے NSTATUS سے، اور !PLASTIC, YIELD=USER میں uElastoPlasticNumStatus کی واپسی قدر سے طے ہوتی ہے۔

صارف کا متعین کردہ بیرونی بوجھ

داخلی مرتکز/تقسیم شدہ/جسمانی بوجھ سے نہ بننے والی بیرونی قوت کے لیے !ULOAD, FILE=<fname> استعمال ہوتا ہے۔ FrontISTR فائل نام ureadload کو دیتا ہے اور صارف نفاذ ڈیٹا پڑھ کر ماڈیول کے ڈیٹا میں رکھتی ہے۔

!ULOAD سے تین ذیلی معمولات متعلق ہیں:

  • ureadload: تجزیے کے آغاز پر متعین بیرونی فائل کھول کر صارف بوجھ ڈیٹا پڑھتا اور ماڈیول کے متغیرات میں رکھتا ہے۔
  • uloading: ہر مرحلے میں بیرونی بوجھ سمتیہ کی اسمبلی کے وقت بلایا جاتا ہے اور کلی بوجھ سمتیہ میں حصہ شامل کرتا ہے؛ موجودہ مرحلہ تعداد اور بوجھ عامل دلائل ہوتے ہیں۔
  • uResidual: ہر تکرار میں باقیہ سمتیہ کی اسمبلی کے وقت بلایا جاتا ہے اور کلی باقیہ میں صارف بوجھ کا حصہ شامل کرتا ہے؛ اسے غیر خطی تکرار اور توازن کے حساب دونوں سے بلایا جاتا ہے۔

صارف متعین مقرر نقل مکانی یا تماس شرط کے لیے توسیع نقطہ نہیں۔ بیرونی قوت کے علاوہ ضرورت کے لیے داخلی کلیدی الفاظ یا صارف تشکیلی راستے استعمال کریں۔

صارف ذیلی معمول کے نفاذ کا طریقۂ کار

FrontISTR کی ماخذ تقسیم میں موجود سانچہ فائلوں میں ترمیم کرکے FrontISTR کو دوبارہ تعمیر کرنا ضروری ہے۔ تقسیم شدہ بائنری میں صارف ذیلی معمولات تبدیل نہیں کیے جا سکتے، اس لیے صارف توسیع کے لیے ماخذ سے تعمیر کا ماحول درکار ہے۔

سانچے fistr1/src/lib/user/ میں ہیں اور توسیع زمرے کے مطابق ترمیم کی جانے والی فائل طے ہے؛ فائل نام اوپر افعال کے مجموعی خاکے کی جدول میں ہیں۔ ابتدائی سانچے میں ذیلی معمول جسمانی خالی یا خطی لچک کا نمونہ نفاذ ہوتی ہے۔ سانچے میں ترمیم کرنے کے بعد FrontISTR کو معمول کے CMake طریقۂ کار سے دوبارہ تعمیر کریں اور حاصل شدہ fistr1 سے تجزیہ چلائیں۔

دلائل کے معنی، حالت متغیرات کی صفوں اور دوبارہ تعمیر کی احتیاطوں کے لیے:

متعلقہ موضوعات