0
02188409038

راهکارهای رفع خطاهای همگرایی یا Convergence در نرم افزار COMSOL Multiphysics

در این مقاله قصد داریم در مورد راهکارهای حل خطای همگرایی در کامسول صحبت کنیم. خطای همگرا نشدن پاسخ در نرم افزار کامسول از رایجترین اشکالاتی است که کاربران این نرم افزار با آن مواجه میشوند. افراد زیادی مشکلات مشابهی در ارتباط با COMSOL Not Converging دریافت می‌کنند. که منجر به یک پیام خطا می شود که ممکن است به صورت زیر باشد:

  • Failed to find a solution (راه حلی پیدا نشد.)
  • The relative residual (0.28) is greater than the relative tolerance (باقیمانده نسبی (0.28) بیشتر از تلرانس نسبی است.)
  • Returned solution is not converged (تحلیل برگشتی همگرا نیست.)

حل مشکل همگرایی و واگرایی و همگرا نشدن در کامسول not convergence comsol

 

پیام های خطای همگرایی در کامسول مشابه این پیام برای تحلیلهای غیرخطی که همگرا نمیشوند نمایش داده می شوند. در اینجا برخی از دلایل و علائم احتمالی ذکر شده است.

دلایل خطای همگرا نشدن پاسخ در نرم افزار کامسول

1- مدل شما بسیار غیرخطی است.

این مورد برای مثال در مدل‌های انتقال جرم با واکنش‌های سریع صدق می‌کند. در این صورت سعی کنید برخی از عوامل غیر خطی شناخته شده در مسئله را برداشته و به آرامی با حل کننده پارامتریک و استفاده از تابع رمپ تغییرات آنها را به مسئله وارد کنید. به عنوان مثال ، مدل های Stationary با سرعت واکنش بالا یا به طور کلی مقادیر بزرگ ورودی، ممکن است منجر به مشکلات همگرایی شوند و  پیام های خطایی مانند”No convergence, even when using the minimum damping factor“, “NaN repeatedly found in solution” یا “ Failed to find a solution” را دریافت کنید.(لیست خطاهای متداول در کامسول را مطالعه کنید) برای حل آن طبق موراد زیر می توانید اقدام کنید:

1-1-سعی کنید با کاهش مقادیر منبع یا ورودی، مشکل را حل کنید و سپس با استفاده از حل قبلی هنگام تحلیل ، مقادیر ورودی را به تدریج افزایش دهید تا زمانی که به حل مسئله اصلی خود برسید. اما روشی که در ادامه راجع به آن صحبت میکنیم از حل کننده پارامتریک، برای افزایش تدریجی مقادیر منبع استفاده می­کند. در این حالت COMSOL Multiphysics شروع به حل مسئله با استفاده از مقدار اولیه پارامتر خواهد کرد. سپس اگر این استپ جواب داد، از این حل به عنوان حدس اولیه مقدار بعدی برای پارامتر استفاده خواهد کرد. این فرآیند تا رسیدن به آخرین مقدار پارامتر ادامه خواهد یافت. از آنجا که شما آخرین مقدار پارامتر را برابر با مقدار اصلی، تعیین کرده اید، آخرین حل با پاسخ اصلی مسئله شما مطابقت دارد. این روش به صورت مرحله ای در زیر توضیح داده شده است:

  • عبارت واکنش (Ri) (منبع یا ورودی) را در یک پارمتر ضریب فاکتور ( به عنوان مثال “k”) ضرب کنید.
  • روی گزینه Stationary کلیک کرده و در کادر settings تب study extensions گزینه Auxiliary sweep را انتخاب کنید. k را به عنوان پارامتری که قرار است سوئیپ شود وارد کنید.
  • در Parameter values، یک رنج از مقادیر در حال افزایش را برای k وارد کنید ، از یک مقدار کم شروع شود و در انتها به عدد 1 برسد، به عنوان مثال “1e-3 1e-2 1e-1 1”.
  • روی Compute کلیک کنید.

1-2-از مطالعه Time Dependent استفاده کنید. با وابسته ساختن مسئله به زمان، معمولاً همگرایی هموارتری به دست می آورید. دقت شود که بازه زمانی برای حل مسئله به اندازه کافی بزرگ در نظر گرفته شود، به طوری که به نقطه ای برسید که پاسخ نسبت به زمان تغییرات نداشته باشد. این نشان می‌دهد که حل به حالت پایدار رسیده‌ است. بنابراین، در این حالت COMSOL Multiphysics حل پایا را محاسبه نموده است که به صورت مرحله ای در زیر توضیح داده شده است:

  • روی گزینه Model کلیک راست کرده و Add Study را انتخاب کنید. Time Dependent را انتخاب کرده و بخش مطالعه را ببندید.
  • در قسمت Times ، یک محدوده از زمان‌ها را برای مثال “range(0,1e-1,1e2)” وارد کنید. (در انتخاب اعداد step برای همگرایی بهتر و stop برای رسیدن به پاسخ پایا دقت شود)
  • روی Compute کلیک کنید.

2- شرایط مرزی شما، یا با یکدیگر و یا با حدس اولیه شما متناقض است.

سیستم معادلات و شرایط مرزی خود را بررسی کنید. (آموزش اشتباهات رایج در زمان کار با کامسول را مشاهده کنید)

3- هیچ حل پایا یا ثابتی برای مسئله شما وجود ندارد.

به عنوان مثال ، یک منبع گرمایی دائماً مثبت، که توسط دیواره های عایق احاطه شده ، منجر به ایجاد یک درجه حرارت می شود که برای همیشه افزایش می یابد و هرگز به حالت ثابت نمی رسد. اما اجرای یک مطالعه وابسته به زمان می تواند به شما کمک کند تا بفهمید چجه اتفاقی در مسئله شما رخ میدهد.

4-دلیل همگرا نشدن پاسخ در کامسول وجود حل های غیر منحصر به فرد برای مسئله است.

به عنوان مثال ، یک مسئله جریان حفره، باید فشار را در یک نقطه قفل کند در غیر این صورت مشکل بی نهایت راه حل به وجود می آید. روی فیزیک کلیک راست کرده و Pressure Point Constraint را در قسمت Points انتخاب کنید. و نقطه را به یک فشار دلخواه محدود کنید ، به عنوان مثال 0. (این موضوع به طور مشابه در مسائل مختلفی ممکن است اتفاق بیوفتد. با علم به تئوری مسئله در فیزیکهای مختلف میتوانید از شرطهای مشابه استفاده نمایید.)

5-مش خیلی ضعیف است و به این دلیل نمی تواند تغییرات زیاد را حل کند.

این یک سناریوی معمول است، به عنوان مثال، در نزدیکی دیواره ها در مسائل همرفت طبیعی. در جایی که انتظار تغییرات زیاد متغییر نسبت به فضا در حل را دارید، سعی کنید مش را به طور محلی اصلاح کنید .

6- همگرایی جواب در کامسول برای مدلهای غیرخطی وابسته به زمان 

6-1- وقتی یک حل کننده وابسته به زمان در همگرایی مشکل دارد، راهکار پیش فرض ، کاهش سرعت است. کاهش گام زمانی، استراتژی خوبی است زیرا در غیر این صورت به دلیل تغییر سریع زمان، مشکلات همگرایی بوجود می آیند. با این حال، عدم همگرایی همچنین می تواند نتیجه غیرخطی بودن شدید مسئله باشد.

6-2-برخی از تنظیماتی که ممکن است به شما کمک کنند عبارتند از:

به گزینه Fully Coupled در زیرمجموعه گره study بروید. (آموزش روش حل Fully Coupled و Segregated را مطالعه کنید) برای اینکه این گره ظاهر شود، ممکن است لازم باشد ابتدا روی Study کلیک راست کرده و Show Default Solver را انتخاب کنید. وقتی در Settings  گزینه Fully Coupled هستید، تنظیمات را به این شرح انجام دهید:

در بخش Method and Termination ، گزینه Jacobian update را از Minimal (حداقل) به On every iteration (در هر بار تکرار) تغییر دهید. گزینه Maximum number of iterations (حداکثر تعداد تکرار) را از 4 به 25 و گزینه Tolerance factor را از 1 به 1e-3 تغییر دهید. Jacobian update در حالت On every iteration ، ثبات فرایند غیرخطی را افزایش می دهد. Maximum number of iterations تعداد تکرارها را تعیین می کند. فرآیندی که در غیر اینصورت توسط Tolerance factor کنترل می شود.

7- برای مدلهای امواج وابسته به زمان

میزان دقت در حل یک مدل که معادله ای را برای امواج الکترومغناطیسی، آکوستیکی و ساختاری و یا هر نوع امواج دیگری حل می کند، اغلب توسط این موضوع که مش چقدر به خوبی امواج را در برمیگیرد، محدود می شود. معادلات موج وابسته به زمان همچنین محدودیتهایی را در استپهای زمانی استفاده شده توسط حلگر ایجاد می کند.(آموزش روشهای Time Stepping در کامسول را مطالعه کنید) در ادامه این مقاله توضیح می دهیم که چگونه می توانید مش و تنظیمات حلگر را کنترل کنید تا یک حل دقیق بدست آورید و مشکلات مربوط به واگرایی یا همگرا نشدن پاسخ در کامسول را رفع کنید.

با تصمیم گیری در مورد اندازه مش که می خواهید استفاده کنید شروع کنید. دقیقاً مانند دامنه فرکانس، حداقل به 5 عدد المان مش مرتبه دوم (second-order) در یک طول موج نیاز دارید. به خاطر داشته باشید که در یک تحلیل زمانی ، موج شما فقط از یک فرکانس تشکیل نشده است ، بلکه می تواند به عنوان یک طیف فرکانسی توصیف شود. به عنوان مثال مدلی را در نظر بگیرید که از پالس های گاوس با انحراف استاندارد:

√2/(2πf0)

استفاده می کند. با استفاده از این عبارت ، بیشترین مقدار انرژی (95.5٪) در پالس در فرکانسهای کمتر از f0 توزیع می شود. اگر می خواهید این فرکانس ها را حل کنید، حداکثر اندازه مجاز المان مش از رابطه ( h0 = c / (N * f0 محاسبه می شود ، که c سرعت نور یا صوت است و N = 5 تعداد المان مش در طول موج است.

شما باید گام های زمانی برای حل موج در طول زمان را نیز به همان خوبی که سایز مش مناسب را در طول فضا تعیین میکنید، انتخاب کنید. گام زمانی بزرگ، به صورت بهینه از مش استفاده نمی کند و گام زمانی کوچک، منجر به زمان حل طولانی تر می شود و هیچ پیشرفت قابل توجهی در نتایج حاصل نمی شود. رابطه بین اندازه مش و اندازه گام زمان به عنوان عدد CFL شناخته می شود: CFL = c * Δt / h ، که در این رابطه Δt گام یا استپ زمانی و h اندازه المان مش است. در عمل ، با المانهای مش مرتبه دوم پیش فرض ، ثابت می شود که تعداد CFL=0.2 تقریباً بهینه می باشد.

به طور پیش فرض، حلگر وابسته به زمان به طور مداوم گام زمانی را تنظیم می کند تا تلرانسهای مشخص شده توسط شما را برآورده کند. اگر از قبل گام زمانی که می خواهید توسط حلگر استفاده شود را می دانید، تنظیم دستی آن آسان تر و کارآمدتر است. این کار در تب Settings در گره Time-Dependent Solver انجام می شود. برای اینکه این گره ظاهر شود ، ممکن است لازم باشد روی گره Study کلیک راست کرده و Show Default Solver را انتخاب کنید. توجه داشته باشید که تغییر رنج times در گره Step 1: Time Dependent ، زمان های موجود در نتایج خروجی را کنترل می کند، اما تأثیر کمی بر گام های زمانی دارد که توسط حلگر استفاده می شود. (آموزش کنترل گامهای زمانی Time-Dependent Solver در کامسول را مطالعه کنید)

 

این متن از وبسایت community در مورد نکات خطای همگرایی در کامسول به فارسی برگردان شده است. با توجه به تغییرات نرم افزار در طی سالهای اخیر برخی از قسمتهای متن تغییر داده شده و توضیحاتی به متن اضافه شده است. میتوانید نظرات خود را در مورد اینکه این متن تا چه برای شما کاربردی بوده است در انتهای این صفحه در بخش نظرات برای ما ارسال نمایید، تا در انتخاب مقالات مناسب در ادامه مورد نظر قرار دهیم. استفاده از این متن با ذکر نام کامسولفا مجاز است. مشاهده متن اصلی

میتوانید از تجارب خود در مورد اینکه در چه مسئله ای کدام راهکار برای شما کارگشا بود در بخش نظرات، برای ما بنویسید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *