SIMULFA - COMSOL & ABAQUS – Telegram
SIMULFA - COMSOL & ABAQUS
3.09K subscribers
1.09K photos
198 videos
207 files
891 links
Download Telegram
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Assigning Multiphysics to a Model Geometry in COMSOL Multiphysics®
مدت: 21 دقیقه
حجم: 50.8MB
فرمت: MP4

@Comsol_shs
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Coupling Piezoelectric, Thermal, and Structural Analyses in COMSOL®
مدت: 58 دقیقه و 17 ثانیه
حجم: 130MB
فرمت: MP4

@Comsol_shs
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Modeling Fluid-Structure Interaction with COMSOL Multiphysics®
مدت: 45 دقیقه و 25 ثانیه
حجم: 124MB
فرمت: MP4

@Comsol_shs
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
MEMS Simulation and Modeling with COMSOL Multiphysics Software
مدت: 03 دقیقه و 24 ثانیه
حجم: 20.3MB
فرمت: MP4

@Comsol_shs
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Modeling MEMS Devices with COMSOL Multiphysics®
مدت: 57 دقیقه و 48 ثانیه
حجم: 143MB
فرمت: MP4

@Comsol_shs
👍1
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Modeling Nonlinear Structural Mechanics in COMSOL Multiphysics®

مدت: 59 دقیقه و 29 ثانیه
حجم: 98.9MB
فرمت: MP4

@Comsol_shs
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Thermal-Structure Interaction in a MEMS Energy Harvester

مدت: 09 دقیقه و 41 ثانیه
حجم: 34.5MB
فرمت: MP4

@Comsol_shs
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Simulating Turbulent Flow in COMSOL Multiphysics®

مدت: 45 دقیقه و 31 ثانیه
حجم: 82.1MB
فرمت: MP4

@Comsol_shs
SIMULFA - COMSOL & ABAQUS
ویدئوی آموزشی موضوع: Simulating Turbulent Flow in COMSOL Multiphysics® مدت: 45 دقیقه و 31 ثانیه حجم: 82.1MB فرمت: MP4 @Comsol_shs
پاسخ_به_سوال
#ارور
#relative_tolerance
#کامسول

تعدادی از کاربران کامسول با متن ارور زیر مواجه می شوند:

Failed to find a solution.
The relative residual (0.28) is greater than the relative tolerance.
Returned solution is not converged.

لذا، بر آن شدم که در خصوص بروز این خطا در حل مسایل مختلف با کامسول و طرق رفع آن، چند سطری بنویسم. ارور فوق بیشتر در مسائل غیرخطی با وابستگی زیاد به هندسه رخ می دهد. در ذیل، شرح کوتاهی بر علل بروز این ارور در کامسول (به ترتیب اهمیت و فراوانی وقوع) و راه های امتحان شده برای رفع آن ذکر شده است. امیدوارم مفید واقع شود. لازم بذکر است که این پاسخ به سوال از دو بخش تشکیل شده است:
@comsol_shs
الف) غیرخطی بودن شدید مساله:
ارور relative residual بیشتر در زمانی رخ می دهد که عوامل غیرخطی ساز در مساله شما بیش از حد نرمال و پذیرفته شده برای الگوریتم حل کامسول فعال باشند. بعنوان مثال، در مساله ای که راجع به انتقال جرم لحظه ای به همراه واکنش های شیمیایی بسیار سریع (مثلا در کسری از ثانیه بیش از سی واکنش شیمیایی) باشد، واضح است که عوامل غیرخطی شدن این مساله برای الگوریتم حل مساله در کامسول آنقدر زیاد است که احتمال پایداری الگوریتم در حین حل مساله و همگرایی نتایج حاصل از حلقه های تکرار بسیار کم خواهد شد. در چنین مواردی، سعی کنید برخی از عوامل غیرخطی ساز مساله را تا جای ممکن حذف کرده و حتی الامکان از حلگرهای پارامتریک استفاده کنید. بعنوان مثال، مسائل پایا (Stationary) که در آنها میزان نرخ واکنش بالا باشد (یعنی Ri بالا) یا حتی Source term های بزرگی داشته باشند، از الگوریتم حل پایدارتری برخوردارند. البته توسل به این راهکار، هرچند می تواند ارور relative residual را رفع کند، اما به احتمال زیاد شما را با ارور مسج های زیر روبرو خواهد کرد:
No convergence, even when using the minimum damping factor
یا
NaN repeatedly found in solution
یا حتی
Error: Failed to find a solution
اما نگران نباشید! حتی در صورت بروز چنین ارور مسج هایی نیز می توان از دو راهکار زیر سود جست:
اول) ابتدا سعی کنید source term ها را اندکی کاهش داده و سپس به تدریج آنها را بزرگ کنید. فراموش نکنید که این راهکار مستلزم بکارگیری حلگر پارامتریک است. با بکارگیری این تکنیک، کامسول شروع به حل مساله با توسل به اولین multiplication factor خواهد کرد و در صورتیکه این ضریب درست عمل کرد، الگوریتم حل از آن بعنوان حدس اولیه مناسب برای بدست آوردن پارامتر بعدی استفاده خواهد کرد. این روال آنقدر ادامه می یابد تا مقدار آخرین پارامتر نیز معلوم شود و از آنجا که مقدار آخرین پارامتر توسط کاربر کامسول برابر با 1 (یک) تعیین می شود، آخرین راه حل (solution) به فرمولاسیون اصلی مساله افزوده می شود. برای اینکار، مراحل زیر را به ترتیب پیش بروید:
1. مقدار اولیه source term واکنش ها (Ri) را در یک متغیر multiplication factor، مثلا k، ضرب کنید.
2. روی نود Stationary در درخت طراحی کلیک کرده و چک باکس Continuation را انتخاب کنید و در بخش Continuation parameter تایپ کنید: k
3. در بخش Parameter values، بازه صعودی از اعداد را تایپ کنید. از یک مقدار خیلی کم (ولی منطقی!) شروع کنید تا به یک (1) برسید. مثلا: 1e-3، 1e-2، و 1
4. روی Compute کلیک کنید.
@comsol_shs
دوم) از حلگر وابسته به زمان استفاده کنید. با time-dependent کردن مساله، روند همگرایی معمولا بهتر می شود. تنها نکته ای که اینجا باید رعایت شود آنست که زمان کافی به کامسول برای همگرا کردن الگوریتم را بدهید. این زمان کافی، باید آنقدر طولانی باشد که منجر به حل همه جزییات مساله شود و در عین حال، آنقدر کوتاه نیز باشد که به الگوریتم فرصت واگرایی را ندهد. این زمان کافی، تضمین می کند که یک مساله time-dependent در فرصت داده شده به آن توسط کاربر به مساله ای کاملا Steady State تبدیل می شود و بدین ترتیب است که کامسول در واقع یک مساله Stationary را حل کرده است. برای اینکار، مراحل زیر را به ترتیب پیش بروید:
1. روی نود مدل در درخت طراحی راست کلیک کرده و Add Study را انتخاب کنید. گزینه Time Dependent را انتخاب کنید و روی Finish کلیک کنید.
2. در بخش Times، بازه زمانی مورد نیاز و البته کافی را به کامسول بدهید. مثلا: 0 تا 1e3
3. روی Compute کلیک کنید.


پایان بخش اول

@comsol_shs
پاسخ_به_سوال
#ارور
#relative_tolerance
#کامسول
[بخش دوم]

ب) شرایط مرزی که برای مساله تعریف کرده اید، یا مناسب نیستند یا کفایت لازم را ندارند، و یا یکدیگر را بصورت جزیی نقض می کنند. توصیه می شود در چنین مواردی، دستگاه معادلات حاکم بر مساله و شرایط مرزی آن را بررسی کنید.

ج) ممکن است برای مساله ای که در کامسول تعریف کرده اید و قصد حل آن را دارید، اصلا راه حل Stationary وجود نداشته باشد! بعنوان مثال، چشمه حرارتی (Heat Source) را در نظر بگیرید که توسط دیواره های عایقی محصور شده است. مسلم است که وقتی بخواهید میدان دمایی (Temperature Field) را برای این مساله بدست آورید، با میدان حرارتی روبرو خواهید شد که هیچگاه مقداری ثابت نخواهد داشت و همیشه روندی افزایشی را طی خواهد کرد. بنابراین، بدیهی است که مدلسازی این مساله در کامسول راه حل Stationary نخواهد داشت. بنابراین، در چنین مواردی، توصیه اکید بر استفاده از روش های time-dependent بمنظور حل مساله و دستیابی به نتایج معقول است.

د) در مدلسازی مسائل مهندسی، گاه رسیدن به راه حلی یکنواخت (Unique Solution) برای مساله ای با معادلات دیفرانسیل حاکم وابسته به زمان غیرممکن است. بعنوان مثال، جریان سیال در یک حفره (Cavity) را در نظر بگیرید. واضح است که اگر فشار موضعی این جریان در یک یا چند نقطه مشخص یا روی یک مقدار ثابت قفل نباشد، مساله بی نهایت جواب خواهد داشت! در این مورد، بهترین راهکار آن است که روی Head Node مربوط به فیزیک مساله کلیک راست کرده و زیر Points اقدام به انتخاب کردن Pressure Point Constraint نموده و فشار یک یا چند نقطه از هندسه را مقید کنید. مثلا فشار آن نقاط را صفر بگذارید یا هر عدد ثابتی که منطق مساله شما می پذیرد.

هـ) سایز نامناسب مش: گاهی مش آنقدر درشت (Coarse) است که نمی تواند شیب گرادیان مناسب را بدست دهد. چنین موردی در مسائل Natural Convection بویژه در مجاورت دیواره ها بسیار معمول است. در چنین مواردی، سعی کنید مش اطراف دیواره ها و لایه مرزی را بصورت موضعی و دستی ریز کنید.

و) در مورد مدل های Time-Dependent، وقتی یک مساله وابسته به زمان در کامسول همگرا نمی شود، بارزترین نشانه رفتاری حل آن در کامسول، طولانی شدن زمان حل است. در چنین مواردی، کاهش فاصله زمانی (Time Step) استراتژی خوبیست. ناگفته نماند که گاهی اوقات همگرا نشدن مسائل غیرخطی در کامسول ناشی از شرایط بشدت غیرخطی بودن آن مساله است. در این حالت، بازی کردن با برخی تنظیمات حل مساله در کامسول می تواند به بهبود همگرایی این تیپ از مسایل غیرخطی کمک شایانی کند. بعنوان مثال، روی نود Study در درخت طراحی مساله خود کلیک راست کرده و گزینه ای بنام Show Default Solver را انتخاب کنید. سپس، حلگر خود را که احتمالا Fully Coupled است را انتخاب کرده و در تب Settings، از میان گزینه های مختلف به سراغ Jacobian update بروید و تغییرات زیر را انجام دهید:
اول) حالت Minimal را به On every iteration تغییر دهید
دوم) مقدار Maximum number of iterations را افزایش دهید (مثلا از 4 به 25)
سوم) مقدار Tolerance factor را پایین بیاورید (مثلا از 1 به 1e-3)

پایان بخش دوم
@comsol_shs
پاسخ_به_سوال
#ارور
#relative_tolerance
#کامسول
[بخش سوم]


ز) در مورد مسایل غیرخطی و وابسته به زمانی مانند آنالیز موج، الکترومغناطیس، تنش های تانسوری غیرخطی، و مانند آن که دقت حل مساله بشدت وابسته به کیفیت مش ریزی روی فیزیک موج است، حل دستگاه معادلات موج وابسته به زمان با تعریف قید هایی روی time step های مورد استفاده در الگوریتم حل ممکن می شود. بطورکلی، امکان اینکه کاربر کامسول بتواند به تعادل لازم بین دقت نتایج و پایدار سازی الگوریتم حل چنین مسایل غیرخطی از طریق دستکاری در تنظیمات حلگر دست پیدا کند، وجود دارد. آنچه که در مورد این مسایل اهمیت دارد آنست که کاربر کامسول اصلا تشخیص دهد که اصلا چه سایز مشی برای مساله او مناسب است؟ پاسخ به این سوال نسبتا ساده است: درست مثل دامنه فرکانسی یا frequency domain، برای هر طول موج به تقریبا 5 (پنج) المان مش مرتبه دوم نیاز است. لازم بذکر است که در یک مساله دامنه زمانی (time domain)، موج مورد مطالعه در مساله تنها از یک فرکانس واحد برخوردار نبوده و مقدار فرکانسی آن بصورت یک طیف فرکانسی قابل بیان است. بعنوان مثال، مدلی را در نظر بگیرید که از پالس های گائوسی با انحراف معیار sqr(2)/(2*pi*f0) برخوردار باشد. در این حالت، بخش اعظم انرژی هر پالس (یعنی چیزی در حدود 95.5%) روی فرکانس های کمتر از f0 توزیع خواهد شد. بدین ترتیب، اگر بخواهیم بر مشکل ناشی از این فرکانس های مزاحم غلبه کنیم، باید حداکثر سایز مش را روی h0=c/(N*f0) تنظیم کنیم. در این شرط سایز، حرف c نماینده سرعت موضعی نور یا صوت بوده و N نیز نشاندهنده تعداد المان های مش روی هر طول موج است (همان N=5). اکنون باید بدنبال تایم استپی بگردیم که موج را بصورت مساوی در زمان تعریف کند. درست همانند مش که در مکان تعریف می کرد. واضح است که تایم استپ های خیلی بلند تناسب خوبی با تعداد مش ریخته شده روی مدل برقرار نمی کنند و از طرف مقابل، تایم استپ های خیلی کوتاه نیز تنها منجر به تطویل زمان حل خواهند شد...بدون اینکه روی دقت نتایج تاثیر قابل توجهی بگذارند. اینجاست که با مفهومی در کامسول با عنوان CFL مواجه می شویم. CFL رابطه بین سایز مش و طول تایم استپ است و با این فرمول تعریف می شود:
CFL=c*delta(t)/ h
که در آن، delta(t) بیانگر تایم استپ و h نماینده سایز مش است. مطابق تجربیات کسب شده، با مقدار N=5 برای تعداد المان های روی هر طول موج، عملا به مقدار CFL=0.2 خواهیم رسید که برای بسیاری از مسائل کافی است.
در حالت پیش فرض، حلگر تایم دیپندنت دائما مقادیر تایم استپ را برای تطابق با تلرانس های تعریف شده توسط کاربر کامسول تنظیم می کند. اما، در صورتیکه تئوری مساله را قبلا بخوبی مطالعه کرده اید و با توجه به توضیحاتی که بالاتر داده شد، می دانید که دقیقا به چه تایم استپی نیاز دارید، بهتر است مقدار آن را بصورت دستی به کامسول بدهید. برای اینکار، ابتدا روی نود Study راست کلیک کرده و Show Default Solver را انتخاب کرده و سپس روی تب Settings در نود Time-Dependent Solver کلیک کنید. نکته ای که در آخر لازم به ذکر می دانم آنست که تغییر مقدار times خروجی در نود Step 1: Time Dependent منجر به تغییر زمان های خروجی (output times) می شود که تاثیر اندکی روی تایم استپ هایی که حلگر تنظیم می کند، دارد.

@comsol_shs
#اطلاع_رسانی
#آموزش
#کامسول

پس از اتمام پست مربوط به بررسی علل بروز ارور Relative Tolerance، مبحث مهمی در آموزش نحوه کار با کامسول در حل مسائل CFD را شروع خواهیم کرد که به بیان تفارت دو تکنیک Level Set و Phase Field اختصاص دارد.
این مبحث آموزش COMSOL از چند بخش تشکیل می شود که به مرور و با اتمام هر بخش، در کانال آپلود خواهد شد.
#بلاگ
#آموزش
#توربوشارژر
#روتوردینامیک
#فرکانس
#کامسول
@comsol_shs

برای مخاطبینی که علاقمند به تحلیل و محاسبات روتوردینامیک (شامل آنالیز Eigenfrequency و آنالیز پاسخ فرکانسی) توربوشارژرها و شبیه سازی آنها با کامسول هستند، مطالعه بلاگ زیر توصیه می شود:

https://www.comsol.com/blogs/evaluating-a-turbocharger-design-with-rotordynamics-analysis/

در عین حال، فایل های هندسه توربوشارژر و مساله حل شده در این بلاگ در ذیل تقدیم شده است👇🏻👇🏻👇🏻

@comsol_shs
turbocharger_stability_analysis.mphbin
1.6 MB
👆🏻👆🏻👆🏻
فایل هندسه مساله در فرمت mphbin
@comsol_shs
turbocharger_stability_analysis.mph
685.1 MB
👆🏻👆🏻👆🏻
فایل مساله حل شده بصورت کامل با فرمت mph
@comsol_shs
👍1
#در_خانه_بمانیم
#کرونا پشت در خانه شما در کمین است...در کوچه، بازار، اداره، بانک، خیابان، و...
این قاتل اسیر نمی گیرد! بی صدا می کشد!
به اشتراک گذاشته شده از طرف جناب دکتر فاتحی

@comsol_shs
Media is too big
VIEW IN TELEGRAM
ویدئوی آموزشی
موضوع:
Setting Up and Running a Simulation with COMSOL Multiphysics®

مدت: 46 دقیقه و 18 ثانیه
حجم: 103MB
فرمت: MP4

@Comsol_shs
#پاسخ_به_سوال
#ارور
#MUMPS
با سلام و احترام
با توجه به سوال واصله در خصوص بروز اروری با متن MUMPS out-of-core، در ذیل به بررسی دلایل احتمالی و راهکار های مناسب برای غلبه بر این ارور پرداخته ایم:
معمولا حلگر MUMPS بمنظور همگرایی الگوریتم حل از تمامی منابع درون هسته ای یا in-core سیستم کامپیوتر (یا لپ تاپ) استفاده می کند. این ارور زیرمجموعه ارور های out-of-memory قرار می گیرد که به اتمام منبع پردازش کامپیوتر و در خطر قرار گرفتن ظرفیت حافظه موقت یک سیستم یا RAM اشاره دارد. بدین ترتیب، و در اینجا، وقتی حلگر MUMPS تشخیص می دهد که ظرفیت RAM در خطر قرار گرفته (با توجه به حاشیه امنی که در CPU تعریف شده) روند حل را متوقف کرده و پیغام فوق را نشان می دهد. بعنوان مثال، فرض کنید برای حل یک مساله در کامسول نیاز به 30GB از حافظه RAM با توسل به حلگر MUMPS باشد، در حالیکه ظرفیت اسمی RAM سیستم 24GB است. در این شرایط، حلگر MUMPS مقداری از کار را که جلو رفت، کم کم کند شده و حل را متوقف می کند. سپس پیغام کذایی فوق به نمایش درمی آید. اما، اگر RAM مورد نیاز بجای 30GB، به 20GB کاهش یابد، حلگر MUMPS حل را شروع کرده و به اتمام می رساند (هرچند به کندی).
حال، یکی از راهکارهای استانداردی که برای غلبه بر این مشکل وجود دارد، استفاده از In-core memory (MB) (چک باکس) در تنظیمات حل MUMPS است. با اینکار، کامسول الگوریتم حل MUMPS را ملزم به استفاده از disk RAM بمنظور حل مساله می نماید. این بدان معنی است که در مثال فوق (30 گیگ رم لازم و 24 گیگ موجود) با تیک زدن در چک باکس In-core memory (MB)، احتمال بروز خطای MUMPS out-of-core کمتر می شود. ولی به صفر نمی رسد!
نکته ای که لازم است در اینجا ذکر شود آن است که پس از تیک زدن چک باکس In-core memory (MB)، باید میزان استفاده از منابع disk RAM برای حلگر MUMPS مشخص شود. این مشخص سازی یک تکنیک هوشمندانه از طرف کاربر است...چراکه تجربه نشان داده که اتخاذ مقادیر بالا صرفا به معنای راه انداختن هرچه بهتر کار نیست!
به مثال فوق برمی گردیم: فرض کنید کاربر کامسول تیک In-core memory (MB) را فعال کرده و اجازه برداشت از حافظه را به میزان 8GB به کامسول می دهد. این یعنی حلگر MUMPS اجازه دارد باندازه 8GB از حافظه in-core استفاده کرده و باندازه 22GB از disk RAM برای حل مساله بردارد. اینطوری، احتمال بروز خطای MUMPS out-of-core کمتر می شود. اما به صفر نمی رسد...چراکه ممکن است این خطا دوباره ظاهر شود. چرا؟! خب معلوم است! سایر بخش های کامسول نیز به RAM نیاز دارند و غیر از آن، برنامه ها و نرم افزارهای جاری ویندوز نیز هستند که باندازه نیاز خود (نه بصورت مداوم) به برداشت از RAM نیاز دارند. بنابراین، واقعا اینکه چه عددی را پس از زدن تیک In-core memory (MB) وارد تنظیمات حلگر MUMPS کنید، هیچکس نمی داند و ممکن است از یک مساله به مساله و از یک کامپیوتر (حتی!) تا یک کامپیوتر دیگر (حتی بغل دستی اش!) فرق کند.
تجربه شخصی من آنست که استفاده از این آپشن (یعنی تیک زدن در چک باکس In-core memory (MB) و دادن عددی برای اجازه دادن به کامسول برای برداشت از disk RAM) منجر به کندی شدید روند حل شده و زمان حل را بسیار بالا می برد که بنظر من ارزشش را ندارد. تجربه شخصی من پناه بردن به حلگرهای دیگری مانند PARADISO را نیز رد میکند. چراکه در آنجا نیز آسمان همین رنگ است!
خب پس اگر پیغام ارور MUMPS out-of-core را دیدیم، چاره چیست؟ بهترین راه حل در این مورد، به ترتیب، عبارتند از کاهش سایز مساله (تعداد DOF را کاهش دهید)، اضافه کردن RAM به سیستم (حتی تا دو برابر کردن را امتحان کرده ام!)، و در آخر: parallel processing...البته، استفاده از تکنیک هایی مانند allocation factor که قبلا توضیح داده بودم در این کانال نیز می تواند کارساز باشد...اما، معجزه نمی کند.