روش کاهش مقاومت برای پایداری شیب

View Categories

روش کاهش مقاومت برای پایداری شیب

23 min read

PDF

روش کاهش مقاومت برای پایداری شیب
معرفی
روش کاهش مقاومت در ترکیب با تحلیل اجزای محدود ابزاری برای یافتن ضریب ایمنی ( FOS ) در ژئومکانیک، به‌ویژه برای پایداری شیب‌ها و خاکریزها است. در روش کاهش مقاومت، خواص مشخصه مواد به تدریج کاهش می یابد تا زمانی که شکست رخ دهد. اگرچه تعریف یک FOS به زمینه بستگی دارد، در مسائل ژئوتکنیکی با توجه به پارامترهای مقاومت خاک تعریف می‌شود، همانطور که در Ref. 1 .
روش کاهش استحکام برای معیارهای شکست خطی، مانند معیار Mohr-Coulomb قابل استفاده است. هنگامی که معیار Mohr-Coulomb با روش کاهش استحکام استفاده می شود، پیوستگی، زاویه اصطکاک داخلی و زاویه اتساع به طور همزمان کاهش می یابد تا تعادل مکانیکی از بین برود. کاهش پارامترهای مصالح منجر به کاهش مقاومت برشی خاک می شود که در نهایت ناپایدار می شود. این پدیده برای ترکیب معینی از بارها، پارامترهای مواد و شرایط مرزی باعث فروپاشی شیب می شود. نسبت بین انسجام اولیه و انسجام در هنگام شکست FOS را می دهد. جزئیات بیشتر روش در Ref آورده شده است. 1 و رفر. 2 .
هندسه، شرایط مرزی، شرایط بارگذاری، و پارامترهای مواد در این مثال همان است که در Ref. 1 . توابع شکل مرتبه کوارتیک برای مطابقت با گسسته سازی استفاده شده در Ref. 1 . نمونه مشابهی را می توان در Slope Stability in Embankment Dam یافت .
تعریف مدل
شکل 1 سطح مقطع خاکریزی را نشان می دهد. طول L 1 و L 2 به ترتیب 85  متر و 20  متر و ارتفاعات خاکریز H 1 و H 2 به ترتیب 20  متر و 10 متر است . زاویه شیب α از 15 درجه تا 45 درجه متغیر است .
شکل 1: هندسه سطح مقطع یک خاکریز.
خواص مواد برای هر دو پلاستیسیته انجمنی و غیر انجمنی در جدول 1 خلاصه شده است و از Ref. 1
جدول 1: خواص مواد.
ویژگی
مجموعه مواد 1
مجموعه مواد 2
E
20 مگاپاسکال
20 مگاپاسکال
n
0.3
0.3
ج
20 کیلو پاسکال
20 کیلو پاسکال
  25 درجه
 25 درجه
پ
  0 درجه
 25 درجه
r
1940 کیلوگرم بر متر مکعب
1940 کیلوگرم بر متر مکعب
یک تقریب کرنش صفحه برای مدل‌سازی خاکریزی خاک به صورت دو بعدی استفاده می‌شود. اثر جاذبه گنجانده شده است. خواص مواد برای مدل Mohr-Coulomb با توجه به یک عامل پارامتر ایمنی، FOS، پارامتر بندی شده است . یک مطالعه پارامتری پارامتر FOS را افزایش می دهد و در نتیجه مقاومت خاک را با هر مرحله پارامتر کاهش می دهد. عامل واقعی ایمنی مقدار پارامتر FOS است که در آن مدل دیگر همگرا نمی شود، که نشانه ای از فروپاشی شیب است.
تابع تسلیم Mohr-Coulomb F و پتانسیل پلاستیک Q هستند
(1)
(2)
که در آن 1 اولین تنش ثابت و 2 دومین متغیر تنش انحرافی است. پیوستگی پارامتری C ، زاویه پارامتری اصطکاک داخلی Φ ، و زاویه اتساع پارامتر شده Φ بر حسب FOS داده شده است.
(3)
که در آن c پیوستگی، زاویه اصطکاک داخلی، و ψ زاویه اتساع است. توجه داشته باشید که c ، و ψ پارامترهای اولیه و کاهش نیافته مواد هستند. برای قانون جریان انجمنی، .
برای قانون جریان غیر انجمنی، ψ تا زمانی که کوچکتر از Φ باشد ثابت نگه داشته می شود ، رجوع کنید به Ref. 2 برای جزئیات با این حال، در این مثال، ψ در هنگام استفاده از قانون جریان غیر انجمنی صفر است، بنابراین نیازی به درمان خاصی نیست، و معادله 3 برای قانون جریان انجمنی و همچنین قانون جریان غیر انجمنی قابل اعمال است.
برای قانون جریان غیر انجمنی، روش کاهش قدرت ممکن است ناپایداری های عددی را ایجاد کند، که به نوبه خود می تواند منجر به یک سطح شکست غیر منحصر به فرد و FOS مربوطه شود. برای جلوگیری از بی ثباتی های بالقوه و مسائل همگرایی، روش دیویس B ، همانطور که در Ref. 1 و رفر. 2 ، استفاده می شود. در این رویکرد، قانون جریان انجمنی با مقادیر کاهش یافته انسجام و زاویه اصطکاک داخلی اعمال می شود تا اثرات قانون جریان غیرتعاملی را به تصویر بکشد. انسجام کاهش یافته  و زاویه کاهش اصطکاک داخلی توسط
(4)
جایی که ضریب کاهش β است
از این رو، معادله 3 بر حسب کاهش پیوستگی  و کاهش زاویه اصطکاک داخلی برای قوانین جریان انجمنی و غیر انجمنی بازنویسی می شود، زیرا ضریب کاهش β برای قانون جریان انجمنی وحدت است.
نتایج و بحث
ضریب ایمنی ( FOS ) برای زوایای شیب مختلف در شکل 2 نشان داده شده است . FOS با افزایش زاویه شیب کاهش می یابد، که انتظار می رود FOS برای شیب یکسان با قانون جریان غیر انجمنی (مجموعه مواد 1) همیشه کوچکتر از قانون جریان انجمنی (مجموعه مواد 2) است، اما تأثیر قانون جریان غیر انجمنی برای پارامترهای ماده انتخابی حاشیه ای است نتایج ارائه شده در شکل 2 با نتایج ارائه شده در شکل 4 مطابقت خوبی دارد . 1 .
شکل 2: فاکتور ایمنی در مقابل زاویه شیب.
کرنش پلاستیک معادل برای زوایای شیب مختلف درست قبل از فروپاشی در شکل 3 و شکل 4 برای دو مجموعه مواد نشان داده شده است. محلی سازی کرنش های پلاستیکی در شکل ها نشان دهنده سطح شکست برای زوایای شیب مختلف است. بدیهی است که برای زوایای شیب کمتر، سطوح شکست متعدد در خاکریز ایجاد می شود.
تجسم سه بعدی جابجایی برای زاویه شیب برابر با 45 درجه به ترتیب در شکل 5 و شکل 6 برای مجموعه مواد 1 و 2 نشان داده شده است. نتایج از نظر کیفی با نتایج ارائه شده در شکل 2 از Ref مطابقت خوبی دارد. 1 . شکل ها همچنین به وضوح نشان می دهند که چگونه قسمت هایی از خاکریز در خارج از سطح لغزش هنگامی که مواد ناپایدار می شوند شروع به سر خوردن می کنند.
شکل 3: کرنش پلاستیکی معادل درست قبل از فروپاشی برای مجموعه مواد 1 (جریان غیر انجمنی).
شکل 4: کرنش پلاستیک معادل درست قبل از فروپاشی برای مجموعه مواد 2 (جریان انجمنی).
شکل 5: بزرگی جابجایی در خاکریز خاک درست قبل از فروریختن شیب برای مجموعه مواد 1 (جریان غیر انجمنی).
شکل 6: بزرگی جابجایی در خاکریز خاک درست قبل از فروریختن شیب برای مجموعه مواد 2 (جریان انجمنی).
نکاتی درباره پیاده سازی COMSOL
یک دامنه کنترل مش به گره Geometry اضافه می شود تا یک شبکه متراکم تر در منطقه ای که لغزش خاک مورد انتظار است اختصاص داده شود. پس از ایجاد مش، دامنه کنترل مش از دنباله هندسه حذف می شود، بنابراین این دامنه مجازی در انتخاب های فیزیک قابل مشاهده نیست.
دو مرحله مطالعه ثابت اضافه شده است. اولین مرحله مطالعه، تنش های درجا ناشی از گرانش را محاسبه می کند. معیار Mohr-Coulomb در مطالعه دوم برای محاسبه شکست الاستوپلاستیک به دلیل اثر ترکیبی گرانش و کاهش استحکام اضافه شده است، جایی که تنش های اولیه ایجاد شده در مرحله اول با کمک یک تنش اولیه در تجزیه و تحلیل گنجانده می شود . و گره کرنش.
دو جارو پارامتریک خارجی برای تغییر زاویه شیب و مجموعه پارامترهای مواد اضافه شده است.
از آنجا که مدل یک راه حل NaN مربوط به مقادیر غیر همگرای FOS را ذخیره می کند ، تولید نمودارهای پیش فرض می تواند مشکل ساز باشد، زیرا نمودارهای پیش فرض برای نمایش آخرین مقدار پارامتر تنظیم شده اند. همچنین، یافتن آخرین مقدار پارامتر FOS همگرا به صورت دستی برای هر مقدار از زاویه شیب و مجموعه پارامتر مواد می‌تواند دشوار باشد. برای اجتناب از این مسائل، از یک روش مدل برای تولید یک نمودار 1 بعدی برای ضریب ایمنی در مقابل زاویه شیب برای هر مجموعه پارامتر مواد استفاده کنید. روش مدل همچنین یک نمودار تنش فون میزس، یک نمودار جابجایی سه بعدی، و همچنین نمودارهای کرنش پلاستیکی برای هر زاویه شیب برای دو مجموعه مواد ایجاد می کند.
روش مدل با این فرض نوشته می‌شود که تگ مجموعه داده خاصی در دسترس است و نمودارها، توابع و مجموعه داده‌های مورد نظر قبلاً ایجاد نشده‌اند. اگرچه شرایط استفاده ایمن و پیام‌های خطا اضافه می‌شوند، اما اگر پارامترها یا گره‌های ماده، هندسه، مطالعه یا نتیجه پیش‌فرض تغییر کنند، روش مدل ممکن است شکست بخورد. سپس روش مدل باید مطابق با تنظیمات مدل فعلی اصلاح شود.
منابع
1. HFSchweiger “تکنیک کاهش مقاومت با روش اجزای محدود برای شیب‌ها بدون معیارهای تثبیت،” معیار، مجله بین‌المللی برای مهندسان، طراحان و تحلیلگران از NAFEMS ، صفحات 51-58، 2020.
2. S. Oberhollenzer، F. Tschuchnigg و HFSchweiger “تجزیه و تحلیل المان محدود مشکلات پایداری شیب با استفاده از پلاستیسیته غیر مرتبط،” مجله مکانیک سنگ و مهندسی ژئوتکنیک ، جلد. 10، صفحات 1091-1101، 2018.
مسیر کتابخانه برنامه: Geomechanics_Module/Verification_Examples/strength_reduction_method
دستورالعمل های مدل سازی
از منوی File ، New را انتخاب کنید .
جدید
در پنجره جدید ، روی  Model  Wizard کلیک کنید .
مدل جادوگر
1
در پنجره Model  Wizard روی  2D کلیک کنید .
2
در درخت Select  Physics ، Structural  Mechanics>Solid  Mechanics  (جامد) را انتخاب کنید .
3
کلیک راست کرده و Add  Physics را انتخاب کنید .
4
 روی مطالعه کلیک کنید .
5
در درخت انتخاب  مطالعه ، General  Studies>Stationary را انتخاب کنید .
6
 روی Done کلیک کنید .
پارامترهای هندسه، متریال و حل‌کننده مدل در فایل‌های متنی پیوست موجود است.
تعاریف جهانی
هندسه و پارامترهای حل کننده
1
در پنجره Model  Builder ، در قسمت Global  Definitions روی Parameters  1 کلیک کنید .
2
در پنجره تنظیمات برای پارامترها ، هندسه و پارامترهای حل کننده را در قسمت متن برچسب تایپ کنید .
3
قسمت Parameters را پیدا کنید .  روی Load  from  File کلیک کنید .
4
به پوشه Application Libraries مدل بروید و روی فایل force_reduction_method_parameters.txt دوبار کلیک کنید .
پارامترهای مواد
1
در نوار ابزار Home ، روی  پارامترها کلیک کنید و Add>Parameters را انتخاب کنید .
2
در پنجره تنظیمات پارامترها ، مواد پارامترها را در قسمت متن برچسب تایپ کنید .
3
قسمت Parameters را پیدا کنید .  روی Load  from  File کلیک کنید .
4
به پوشه Application Libraries مدل بروید و روی فایل force_reduction_method_material_parameters1.txt دوبار کلیک کنید .
5
در نوار ابزار Home ، روی  Parameter  Case کلیک کنید .
6
در پنجره تنظیمات برای Case ، در قسمت نوشتار Label ، عبارت Material Parameter Set 1 را تایپ کنید .
7
در نوار ابزار Home ، روی  Parameter  Case کلیک کنید .
8
در پنجره تنظیمات برای Case ، مجموعه پارامترهای متریال 2 را در قسمت متن برچسب تایپ کنید .
9
قسمت Parameters را پیدا کنید .  روی Load  from  File کلیک کنید .
10
به پوشه Application Libraries مدل بروید و روی فایل force_reduction_method_material_parameters2.txt دوبار کلیک کنید .
تعاریف
انسجام پارامتر شده و زاویه اصطکاک داخلی را برای معیار موهر-کولن تعریف کنید.
متغیرهای 1
1
در پنجره Model  Builder ، گره Component   (comp1)>Definitions را گسترش دهید .
2
روی Definitions کلیک راست کرده و Variables را انتخاب کنید .
3
در پنجره تنظیمات برای متغیرها ، بخش متغیرها را پیدا کنید .
4
در جدول تنظیمات زیر را وارد کنید:
 
نام
اصطلاح
واحد
شرح
beta_f
cos(atan(tan(phi)/FOS))*cos(atan(tan(psi)/FOS))/(1-sin(atan(tan(phi)/FOS))*sin(atan(tan(psi) /FOS)))
عامل کاهش
c_r
beta_f*c
پا
کاهش انسجام
phi_r
at(beta_f*tan(phi))
راد
کاهش زاویه اصطکاک
c_p
c_r/FOS
پا
انسجام پارامتری شده
phi_p
atan(tan(phi_r)/FOS)
راد
زاویه اصطکاک پارامتری شده
هندسه 1
چند ضلعی 1 (pol1)
1
در نوار ابزار Geometry ، روی  Polygon کلیک کنید .
2
در پنجره تنظیمات چند ضلعی ، بخش مختصات را پیدا کنید .
3
از فهرست منبع داده  ، Vectors را انتخاب کنید .
4
در قسمت متن x ، 0, L1,L1,L2+H2/tan(alpha),L2,0 را تایپ کنید .
5
در قسمت متن y ، 0، 0، H1+H2،H1+H2،H1،H1 را تایپ کنید .
6
 روی Build  Selected کلیک کنید .
چند ضلعی 2 (pol2)
در نوار ابزار Geometry ، روی  Polygon کلیک کنید .
هندسه را با یک چند ضلعی تقسیم کنید تا یک دامنه کنترل مش اضافه کنید .
1
در پنجره Settings for Polygon ، بخش Object  Type را پیدا کنید .
2
از لیست نوع ، منحنی باز را  انتخاب کنید .
3
بخش مختصات را پیدا کنید . از فهرست منبع داده  ، Vectors را انتخاب کنید .
4
در قسمت متن x ، 0.8*L2,0.8*L2,1.3*L2+H2/tan(alpha),1.3*L2+H2/tan(alpha) را تایپ کنید .
5
در قسمت متن y ، H1,H1/2,H1/2,H1+H2 را تایپ کنید .
6
 روی Build  Selected کلیک کنید .
Mesh Control Domains 1 (mcd1)
1
در نوار ابزار Geometry ، روی  Virtual  Operations کلیک کنید و Mesh  Control  Domains را انتخاب کنید .
2
در باله شی ، فقط دامنه 2 را انتخاب کنید.
3
در پنجره تنظیمات برای دامنه های کنترل مش  ، روی ساخت انتخاب شده کلیک کنید . 
گسسته سازی را به کوارتیک لاگرانژ تغییر دهید .
مکانیک جامدات (جامدات)
1
در پنجره Model  Builder ، در قسمت Component   (comp1) روی Solid  Mechanics  (solid) کلیک کنید .
2
در پنجره تنظیمات برای Solid  Mechanics ، برای گسترش بخش Discretization کلیک کنید .
3
از لیست فیلد Displacement  ، Quartic Lagrange را انتخاب کنید .
مواد الاستیک خطی 1
در پنجره Model  Builder ، در قسمت Component   (comp1)> Solid  Mechanics  (solid) روی Linear  Elastic  Material  1 کلیک کنید .
پلاستیک خاک 1
1
در نوار ابزار Physics ، روی  Attributes کلیک کنید و Plasticity خاک  را انتخاب کنید .
2
در پنجره Settings for Soil  Plasticity ، بخش Soil  Plasticity را پیدا کنید .
3
از لیست مدل Material  ، Mohr-Coulomb را انتخاب کنید .
4
از لیست پتانسیل پلاستیک  ، Associated را انتخاب کنید .
مواد الاستیک خطی 1
در پنجره Model  Builder ، روی Linear  Elastic  Material  1 کلیک کنید .
استرس و کرنش اولیه 1
1
در نوار ابزار Physics ، روی  Attributes کلیک کنید و Initial  Stress  and  Strain را انتخاب کنید .
برای محاسبه تنش های درجا ناشی از گرانش، دو مرحله مطالعه اضافه کنید. تنش های درجا محاسبه شده در مرحله اول مطالعه را به عنوان تنش های اولیه برای مرحله مطالعه دوم اضافه کنید. با استفاده از عملگر withsol به صورت زیر می توانید به این تنش ها دسترسی پیدا کنید :
2
در پنجره تنظیمات برای استرس و فشار اولیه  ، بخش استرس و فشار اولیه را پیدا کنید .
3
در جدول 0 تنظیمات زیر را وارد کنید:
 
withsol(‘sol2’,solid.sx)
withsol(‘sol2’,solid.sxy)
withsol(‘sol2’,solid.sxz)
withsol(‘sol2’,solid.sxy)
withsol(‘sol2’,solid.sy)
withsol(‘sol2’,solid.syz)
withsol(‘sol2’,solid.sxz)
withsol(‘sol2’,solid.syz)
withsol(‘sol2’,solid.sz)
جاذبه 1
در نوار ابزار Physics ، روی  Global کلیک کنید و Gravity را انتخاب کنید .
غلتک 1
1
در نوار ابزار Physics ، روی  Boundaries کلیک کنید و Roller را انتخاب کنید .
2
فقط مرزهای 1 و 6 را انتخاب کنید.
محدودیت ثابت 1
1
در نوار ابزار Physics ، روی  Boundaries کلیک کنید و Fixed  Constraint را انتخاب کنید .
2
فقط مرز 2 را انتخاب کنید.
مواد
مواد خاک
1
در پنجره Model  Builder ، در قسمت Component   (comp1) روی Materials راست کلیک کرده و Blank  Material را انتخاب کنید .
2
در پنجره تنظیمات مواد ، خاک را در قسمت نوشتار برچسب تایپ کنید .
3
قسمت محتوای مواد  را پیدا کنید . در جدول تنظیمات زیر را وارد کنید:
 
ویژگی
متغیر
ارزش
واحد
گروه اموال
مدول یانگ
E
E_خاک
پا
مدول یانگ و نسبت پواسون
نسبت پواسون
نه
نه_خاک
1
مدول یانگ و نسبت پواسون
تراکم
rho
rho_soil
کیلوگرم بر متر مکعب
پایه ای
انسجام
انسجام
c_p
پا
موهر کولن
زاویه اصطکاک داخلی
داخلی
phi_p
راد
موهر کولن
مش 1
مثلثی رایگان 1
در نوار ابزار Mesh ، روی  Free  Triangular کلیک کنید .
اندازه
از یک مش بسیار ظریف در حوزه کنترل مش استفاده کنید.
1
در پنجره Model  Builder ، روی Size کلیک کنید .
2
در پنجره تنظیمات برای اندازه ، قسمت اندازه عنصر  را پیدا کنید .
3
از لیست Predefined ، Finer را انتخاب کنید .
سایز 1
1
در پنجره Model  Builder ، روی Free  Triangular  1 کلیک راست کرده و Size را انتخاب کنید .
2
در پنجره تنظیمات برای اندازه ، قسمت انتخاب موجودیت هندسی  را پیدا کنید .
3
از لیست سطح نهاد هندسی  ، دامنه را انتخاب کنید .
4
فقط دامنه 2 را انتخاب کنید.
5
بخش اندازه عنصر  را پیدا کنید . از لیست از پیش تعریف شده ، Extremely fine را انتخاب کنید .
6
در پنجره Model  Builder ، روی Mesh  1 کلیک راست کرده و Build  All را انتخاب کنید .
استحکام مواد با کمک پارامتر FOS پارامتر بندی می شود. در مرحله دوم مطالعه، یک جارو کمکی برای FOS اضافه کنید. برای مقادیر خاصی از FOS، راه حل همگرا نمی شود و نمودارهای پیش فرض که روی آخرین مقدار FOS تنظیم شده اند، خطا می دهند. برای جلوگیری از پیام خطا، نمودارهای پیش فرض را برای این مطالعه غیرفعال کنید.
برای تغییر زاویه شیب و پارامترهای مواد، دو گره Sweep Parametric اضافه کنید.
مطالعه 1
1
در پنجره Model  Builder ، روی Study  1 کلیک کنید .
2
در پنجره تنظیمات برای مطالعه ، قسمت تنظیمات مطالعه  را پیدا کنید .
3
تیک Generate  defaults defaults را  پاک کنید .
مرحله 1: ثابت
1
در پنجره Model  Builder ، در بخش مطالعه  1 ، روی Step  1:  Stationary کلیک کنید .
2
در پنجره تنظیمات برای Stationary ، بخش Physics  and  Variables  Selection را پیدا کنید .
3
تیک Modify  model  configuration  for  study  step را انتخاب کنید .
4
در درخت، Component   (comp1)>Solid  Mechanics  (solid)> Linear  Elastic  Material  1> Soil  Plasticity  1 و Component  1 (comp1  >Solid  Mechanics  (solid)>Linear  Elastic  Material  1>Initial  Elastic  Material 1 را انتخاب کنید .
5
کلیک راست کرده و Disable را انتخاب کنید .
ثابت 2
1
در نوار ابزار مطالعه ، روی  Study  Steps کلیک کنید و Stationary>Stationary را انتخاب کنید .
2
در پنجره تنظیمات برای Stationary ، برای گسترش بخش Values  ​​of  Dependent  Variables کلیک کنید .
3
مقادیر اولیه  متغیرهای حل شده برای زیربخش را بیابید . از لیست تنظیمات ، کنترل کاربر را انتخاب کنید .
4
از لیست روش ، راه حل را انتخاب کنید .
5
از لیست مطالعه ، مطالعه  1،  ثابت را انتخاب کنید .
6
برای گسترش بخش Study  Extensions کلیک کنید . کادر بررسی جارو کمکی  را انتخاب کنید .
7
 روی افزودن کلیک کنید .
8
در جدول تنظیمات زیر را وارد کنید:
 
نام پارامتر
لیست مقادیر پارامتر
واحد پارامتر
FOS (عامل ایمنی)
محدوده (stepi, step, stepf)
جارو پارامتریک
1
در نوار ابزار مطالعه ، روی  پارامتر  Sweep کلیک کنید .
2
در پنجره تنظیمات برای جابجایی پارامتری  ، بخش تنظیمات مطالعه را پیدا کنید .
3
 روی افزودن کلیک کنید .
4
در جدول تنظیمات زیر را وارد کنید:
 
نام پارامتر
لیست مقادیر پارامتر
واحد پارامتر
آلفا (زاویه شیب)
محدوده (stepi_a،steps_a،stepf_a)
درجه
جارو پارامتریک 2
1
در نوار ابزار مطالعه ، روی  پارامتر  Sweep کلیک کنید .
2
در پنجره تنظیمات برای جابجایی پارامتری  ، بخش تنظیمات مطالعه را پیدا کنید .
3
از لیست نوع Sweep  ، سوئیچ پارامتر را انتخاب کنید .
4
 روی افزودن کلیک کنید .
5
در جدول تنظیمات زیر را وارد کنید:
 
تعویض
موارد
شماره های پرونده
پارامترهای مواد
همه
محدوده (1،1،2)
راه حل 1 (sol1)
1
در نوار ابزار مطالعه ، روی  Show  Default  Solver کلیک کنید .
2
در پنجره Model  Builder ، گره Solution   (sol1) را گسترش دهید .
3
در پنجره Model  Builder ، گره Study  1>Solver  Configurations>Solution   (sol1)>Stationary  Solver  2 را گسترش دهید ، سپس روی Parametric  1 کلیک کنید .
4
در پنجره تنظیمات برای پارامتر ، بخش عمومی را بیابید .
5
از لیست خطای On  ، گزینه Store vala solution را انتخاب کنید .
6
برای گسترش بخش Continuation کلیک کنید . تیک گزینه Tuning  of  step  size را انتخاب کنید .
7
در قسمت متنی Initial  step  size ، steps/10 را تایپ کنید .
8
در قسمت متنی Minimum  step  size steps/10 را تایپ کنید .
9
در قسمت حداکثر  اندازه گام ،  steps را تایپ کنید .
10
از لیست Predictor ، Constant را انتخاب کنید .
برای بهبود همگرایی از یک حل کننده سگ دوگانه استفاده کنید.
11
در پنجره Model  Builder ، در قسمت Study  1>Solver  Configurations>Solution   (sol1)>Stationary  Solver  2 روی Fully  Coupled  1 کلیک کنید .
12
در پنجره Settings for Fully  Coupled ، برای گسترش بخش Method  and  Termination کلیک کنید .
13
از لیست روش غیر خطی  ، Double dogleg را انتخاب کنید .
14
در نوار ابزار مطالعه ،  روی محاسبه کلیک کنید .
روش های مدل را برای تولید نمودارهای مورد نیاز ایجاد کنید. توجه داشته باشید که ویرایشگر روش فقط در نسخه Windows ® ComSOL Desktop موجود است.
برنامه ساز
در نوار ابزار Home ، روی  Application  Builder کلیک کنید .
مواد و روش ها
plotUtil
1
در نوار ابزار Home ، روی  More  Libraries کلیک کنید و Utility  Class را انتخاب کنید .
2
روی util1 کلیک راست کرده و Rename را انتخاب کنید .
3
در کادر محاوره ای Rename  Utility  Class ، plotUtil را در قسمت متن New  name تایپ کنید .
4
روی OK کلیک کنید .
5
روی plotUtil کلیک راست کرده و Edit را انتخاب کنید .
6
کد زیر را در پنجره plotUtil کپی کنید :
//این ابزار، نمودارهای درخواستی را ایجاد می کند

//روش ایجاد گروه طرح
استاتیک عمومی ResultFeature createPlot(dset رشته، نوع طرح رشته، برچسب رشته، برچسب رشته، عنوان رشته، نمای رشته، نمایشنامه های بولی، آرایه طرح بولی، نمایه دوگانه[][]، int k) {
int lastloopn = (int) Math.round(model.param().evaluate(“nstep_a”)-1);
ResultFeature plot = model.result().create(tag, plottype);
model.result(tag).label(label+Integer.toString(k+1));
با(model.result(tag));
set(“داده”، dset);
try {
setIndex(“looplevel”, k+1, 2);
setIndex(“looplevel”, index[k][lastloopn], 0);
}
catch (Exception e) {
error(“سطح حلقه مورد نیاز در مجموعه داده موجود نیست، مدل یا روش مدل را بررسی کنید.”);
}
if (!title.equals(“default”)) {
set(“titletype”, “manual”);
set(“عنوان”، عنوان);
set(“پاراماندیکاتور”، “”);
}
if (!showlegends)
set(“showlegends”, false);
if (!view.equals(“پیش فرض”))
set(“view”، view);
if (plotArray) {
set(“plotarrayenable”, true);
set(“شکل آرایه”، “مربع”);
}
set(“لبه”, false);
پایان یافتن با()؛
طرح بازگشت؛
}
//روش ایجاد نمودار سطح
عمومی static ResultFeature createSubPlot(ResultFeature pg, String dset, String plottype, String tag, String expr, boolean isPlasticityPlot, boolean isStressPlot, double[][] index, int k, int i) { ResultFeature pgsub = pg.create
( )
با (pgsub);
set(“expr”, expr);
if (isPlasticityPlot)
set(“قابل رنگ”، “AuroraAustralisDark”);
if (!dset.endsWith(“fromParent”)) {
set(“data”, dset);
try {
setIndex(“looplevel”, k+1, 2);
setIndex(“looplevel”, i+1, 1);
setIndex(“Looplevel”, index[k][i], 0);
}
catch (Exception e) {
error(“The Looplevel مورد نیاز در مجموعه داده موجود نیست،

پایان یافتن با()؛
بازگشت pgsub;
}

روش جدید
1
در پنجره Application  Builder ، روی Methods کلیک راست کرده و New  Method را انتخاب کنید .
2
در کادر محاوره‌ای New  Method ، در فیلد Name، generalPlots را تایپ کنید .
3
روی OK کلیک کنید .
GenerPlots
1
در پنجره Application  Builder ، در قسمت Methods روی generatePlots کلیک کنید .
2
کد زیر را در پنجره generalPlots کپی کنید :
String dset = “dset3”; //تگ مجموعه داده پارامتری مورد نیاز

if (!contains(model.result().dataset().tags(), dset)) //در صورت عدم موفقیت دسترسی به مجموعه داده، یک استثنا پرتاب کنید
(“راه حل با تگ مجموعه داده مورد نیاز در دسترس نیست ، مدل یا روش مدل را بررسی کنید.”);

int nstep = (int) Math.round(model.param().evaluate(“nstep”));
int nstepa = (int) Math.round(model.param().evaluate(“nstep_a”));
int nmat = (int) Math.round(model.param().evaluate(“nmat”));
int stepa = (int) Math.round(model.param().evaluate(“steps_a”)*180/model.param().evaluate(“pi”));
double[][] FOS = double[nmat][nstepa] جدید؛
double[][] alpha = new double[nmat][nstepa];
double[][] index = new double[nmat][nstepa];

boolean isEvaluationGrpExists = حاوی(model.result().evaluationGroup().tags()، “eg1”);
boolean isExtrusionDsetExists = حاوی(model.result().dataset().tags(), “extr1”);
boolean isViewExists = حاوی(model.view().tags()، “view3”);
بولی isInterpolationFunExists = false;
boolean isNodeGrpExists = false;
boolean isPlotGrpExists = false;
for (int k = 0; k < nmat; k++) {
String int1 = “int”+Integer.toString(k+1);
if (contains(model.func().tags()، int1)) {
isInterpolationFunExists = true;
زنگ تفريح؛
}
}
for (int k = 0; k < nmat; k++) {
String grp = “grp”+Integer.toString(k+1);
if (contains(model.nodeGroup().tags()، grp)) {
isNodeGrpExists = true;
زنگ تفريح؛
}
}

for (int k = 0; k <3*nmat+1; k++) {
String pg = “pg”+Integer.toString(k+1);
if (contains(model.result().tags()، pg)) {
isPlotGrpExists = true;
زنگ تفريح؛
}
}
if ((isEvaluationGrpExists || isExtrusionDsetExists || isInterpolationFunExists
|| isPlotGrpExists || isNodeGrpExists || isViewExists)) {
/** یک گفتگوی تأیید را باز می کند تا بررسی کند که آیا کاربر می خواهد
دوباره * مدل موجود را حذف نکند* /

String answer = تایید (“گره های خاصی از قبل وجود دارند، آیا می خواهید آنها را حذف کنید و دوباره ایجاد کنید؟”، “حذف و ایجاد مجدد”، “بله”، “نه”);

اگر (پاسخ
if (isEvaluationGrpExists)
model.result().evaluationGroup().remove(“eg1”);
if (isExtrusionDsetExists)
model.result().dataset().remove(“extr1”);
if (isInterpolationFunExists) {
for (int k = 0; k < nmat; k++) {
String int1 = “int”+Integer.toString(k+1);
if (contains(model.func().tags()، int1)) {
model.func().remove(int1);
} }
}
if
(isPlotGrpExists) {
for (int k = 0; k <3*nmat+1; k++) {
String pg = “pg”+Integer.toString(k+1);
if (contains(model.result().tags()، pg)) {
model.result().remove(pg);
}
}
}
if (isNodeGrpExists) {
for (int k = 0; k < nmat;
String grp = “grp”+Integer.toString(k+1);
if (contains(model.nodeGroup().tags()، grp)) {
model.nodeGroup().remove(grp);
}
}
}
if (isViewExists)
model.view().remove(“view3”);
}
else {
if (isEvaluationGrpExists)
error(“گروه ارزیابی از قبل وجود دارد، مدل یا روش مدل را بررسی کنید”);
if (isExtrusionDsetExists)
error(” مجموعه داده اکستروژن از قبل وجود دارد، مدل یا روش مدل را بررسی کنید.”);
if (isInterpolationFunExists)
خطا (“تابع درون یابی از قبل وجود دارد، مدل یا روش مدل را بررسی کنید.”);
if (isPlotGrpExists)
خطا (“نمودار از قبل وجود دارد، مدل یا روش مدل را بررسی کنید.
if (isNodeGrpExists)
error(“گروه گره از قبل وجود دارد، مدل یا روش مدل را بررسی کنید.”);
if (isViewExists)
error(“نما از قبل وجود دارد، مدل یا روش مدل را بررسی کنید.”);
}
}

model.result().evaluationGroup().create(“eg1”, “EvaluationGroup”);
with(model.result().evaluationGroup(“eg1”));
set(“داده”، dset);
setIndex(“looplevelinput”، “دستی”، 2);
setIndex(“looplevelinput”، “دستی”، 1);
setIndex(“looplevelinput”، “دستی”، 0);
set(“includeparameters”, false);
پایان یافتن با()؛
model.result().evaluationGroup(“eg1”).create(“pev1”, “

with(model.result().evaluationGroup(“eg1”).feature(“pev1”));
setIndex(“expr”، “alpha”، 0);
setIndex(“واحد”، “درجه”، 0);
setIndex(“expr”، “FOS”، 1);
setIndex(“واحد”، 1، 1);
setIndex(“expr”، “u”، 2);
پایان یافتن با()؛

for (int k = 0; k < nmat; k++) {
String int1 = “int”+Integer.toString(k+1);
model.func().create(int1، “Interpolation”);

model.func(int1).label(“FOS_MatSet”+Integer.toString(k+1));
for (int j = 0; j < nstepa; j++) {
for (int i = 0; i < nstep; i++) {
with(model.result().evaluationGroup(“eg1”));
setIndex(“looplevel”, new int[]{k+1}, 2);
setIndex(“looplevel”, new int[]{j+1}, 1);
setIndex(“looplevel”, new int[]{i+1}, 0);
model.result().evaluationGroup(“eg1”).run();
double[][] FOS1 = model.result().evaluationGroup(“eg1”).getReal();
double u = FOS1[0][2];
اگر (Double.isNaN(u))
شکسته شود.
FOS[k][j] = FOS1[0][1];
آلفا[k][j] = FOS1[0][0];
index[k][j] = i+1;
پایان یافتن با()؛
}
model.func(int1).setIndex(“جدول”, FOS[k][j], j, 1);
model.func(int1).setIndex(“جدول”, alpha[k][j], j, 0);
}
model.func(int1).set(“argunit”, “deg”);
model.func(int1).set(“fununit”, “1”);

if (k == 0) {
model.func(int1).createPlot(“pg1”);
model.result(“pg1”).label(“عامل ایمنی در مقابل زاویه شیب”);

model.result(“pg1”).set(“xlabelactive”, true);
model.result(“pg1”).set(“xlabel”، “alpha (deg)”);
model.result(“pg1”).set(“ylabelactive”, true);
model.result(“pg1”).set(“ylabel”, “FOS (1)”);
model.result(“pg1”).feature(“plot1”).set(“legend”, true);
model.result(“pg1”).feature(“plot1”).set(“legendmethod”، “دستی”);
model.result(“pg1”).feature(“plot1”).setIndex(“legends”, “Material Set “+Integer.toString(k+1), 0);
}
else {
String plot1 = “plot”+toString(k);
String plot2 = “Plot”+toString(k+1);
مجموعه داده رشته = model.result(“pg1”).getString(“داده”);
model.result().dataset(dataset).set(“function”, “all”);
model.result(“pg1”).feature().duplicate(plot2, plot1);
model.result(“pg1”).feature(plot2).set(“expr”، “int”+Integer.toString(k+1)+”(t[1/m][deg])”);
model.result(“pg1”).feature(plot2).setIndex(“legends”, “Material Set “+Integer.toString(k+1), 0);
}
}
model.result().evaluationGroup().remove(“eg1”);
model.result(“pg1”).run();

//ایجاد یک مجموعه داده اکستروژن برای نمودارهای سه بعدی
model.result().dataset().create(“extr1”, “Extrude2D”);
with(model.result().dataset(“extr1”));
set(“داده”، dset);
set(“zvar”، “Z”);
set(“zmax”، “L1+L2”);
پایان یافتن با()؛

//ایجاد یک نمای دوربین
model.view().create(“

model.view(“view3”).camera().set(“up”, new String[]{“0.02”, “0.97”, “-0.14”});
model.view(“view3”).camera().set(“target”, new int[]{42, 14, 52});
model.view(“view3”).camera().setIndex(“viewoffset”, -0.1, 0);
model.view(“view3”).camera().set(“viewoffset”, new double[]{-0.1, -0.016});
model.view(“view3”).camera().set(“zoomanglefull”, 13);
model.view(“view3”).set(“قفل شده”، true);

برای (int k = 0; k < nmat; k++) {
int n = 3*k+2;
رشته pg2 = “pg”+toString(n);
رشته pg3 = “pg”+toString(n+1);
رشته pg4 = “pg”+toString(n+2);

plotUtil.createSubPlot(pgs، “fromParent”، “Surface”، “surf1″، “solid.mises”، false، true، false، index، k، 0);
pgs.run();

//نقشه کرنش پلاستیک معادل
ResultFeature pge = plotUtil.createPlot(dset, “PlotGroup2D”, pg3, “Equivalent Plastic Strain”, “Equivalent Plastic Strain (1)”, “default”, true, true, index, k);
ResultFeature tlan = pge.create(“tlan1”, “TableAnnotation”);
tlan.set(“منبع”، “محلی”);
tlan.set(“latexmarkup”, true);
tlan.set(“showpoint”, false);
دو jj = 0.0;
برای (int i = 0; i < nstepa; i++) {
int D = 15+i*stepsa;
double aposX = 25;
double aposY = (int) jj*55;
اگر (i%2 == 1) { //شاخص فرد
aposX = 125;
}
String lable = “\ [[]][ α \\;=\\;”+D+”^\\circ\\]”;
String surf = “surf”+toString(i+1);
ResultFeature pges = plotUtil.createSubPlot(pge، dset، “Surface”، surf، “solid.epe”، true، false، index، k، i);
if (i > 0) {
String surfprev = “surf”+Integer.toString(i);
pges.set(“inheritplot”, surfprev);
}
tlan.setIndex(“localtablematrix”, aposX, i, 0);
tlan.setIndex(“localtablematrix”, aposY, i, 1);
tlan.setIndex(“localtablematrix”, lable, i, 2);
jj += 0.5;
}
pge.run();

//نقشه جابجایی سه بعدی
ResultFeature pgd = plotUtil.createPlot(“extr1”, “
plotUtil.createSubPlot(pgd، “fromParent”، “Surface”، “surf1″، “solid.disp”، false، false، index، k، 0);
pgd.run();

//گروه گره
String grp = “grp”+Integer.toString(k+1);
model.nodeGroup().create(grp, “Results”);
model.nodeGroup(grp).set(“type”, “plotgroup”);
model.nodeGroup(grp).add(“plotgroup”, pg2);
model.nodeGroup(grp).add(“plotgroup”, pg3);
model.nodeGroup(grp).add(“plotgroup”, pg4);
model.nodeGroup(grp).label(“نتایج: مجموعه مواد”+Integer.toString(k+1));
model.nodeGroup(grp).placeAfter(“plotgroup”, “pg1”);

//بازآرایی گروه ها
if (k == nmat-1) {
if (contains(model.nodeGroup().tags()، “grp2”))
model.nodeGroup().move(“grp2”, 3);
}

}

مواد و روش ها
در نوار ابزار Home ، روی  Model  Builder کلیک کنید  تا به دسکتاپ اصلی بروید.
نمودارها را با استفاده از روش های مدل تولید کنید.
مدل ساز
1
در نوار ابزار Home ، روی  Model  Builder کلیک کنید .
2
 روی Method  Call کلیک کنید و genePlots را انتخاب کنید .
تعاریف جهانی
تولید قطعه
1
در پنجره Model  Builder ، در قسمت Global  Definitions روی GeneratePlots  1 کلیک کنید .
2
در پنجره تنظیمات برای فراخوانی روش  ، Generate Plots را در قسمت متن برچسب تایپ کنید .
3
در قسمت Tag text GeneratePlots را تایپ کنید .
4
 روی Run کلیک کنید .
نتایج
برای تجسم شکست در خاکریز با دو مجموعه پارامتر مواد مختلف، به قطعه های تولید شده بروید.
عامل ایمنی در مقابل زاویه شیب
1
در پنجره Model  Builder ، گره Results را گسترش دهید ، سپس روی Factor  of  Safety  vs.  Slope  Angle کلیک کنید .
2
در نوار ابزار Factor of Safety vs. Slope Angle ، روی  Plot کلیک کنید .
نتایج: مجموعه مواد 1
در پنجره Model  Builder ، گره Results> Results:  Material  Set  1 را گسترش دهید .
سطح 1
1
در پنجره Model  Builder ، گره Results>Results:  Material  Set  1>Equivalent  Plastic  Strain  1 را گسترش دهید ، سپس روی Surface  1 کلیک کنید .
2
در پنجره تنظیمات برای Surface ، برای گسترش بخش Range کلیک کنید .
3
تیک گزینه Manual  color  range را انتخاب کنید .
4
در قسمت Maximum text 0.15 را تایپ کنید .
5
در نوار ابزار Equivalent Plastic Strain 1 ، روی  Plot کلیک کنید .
نتایج: مجموعه مواد 2
در پنجره Model  Builder ، گره Results>Results:  Material  Set  2 را گسترش دهید .
سطح 1
1
در پنجره Model  Builder ، گره Results>Results:  Material  Set  2>Equivalent  Plastic  Strain  2 را گسترش دهید ، سپس روی Surface  1 کلیک کنید .
2
در پنجره تنظیمات برای Surface ، بخش Range را پیدا کنید .
3
تیک گزینه Manual  color  range را انتخاب کنید .
4
در قسمت Maximum text 0.08 را تایپ کنید .
5
در نوار ابزار Equivalent Plastic Strain 2 ، روی  Plot کلیک کنید .