رفع خطای کمبود حافظه در نرمافزار کامسول
- علی داودالحسینی

احتمالاً برای شما هم پیش آمده حین حل یک مدل به خطای کمبود حافظه در نرمافزار کامسول یا Out of Memory Error بربخورید. در این نوشتار میخواهیم به بررسی علل بهوجود آمدن این خطا و روشهای رفع آن بپردازیم.
قبل از بررسی روشهای مرتفع کردن این خطا، در ابتدا قصد داریم یک سری گام ضروری را به عنوان پیشنیازهای رفع این خطا بررسی کنیم.
لازم به ذکر است روشهای رفع اکثر خطاهای مهم در نرمافزار کامسول هم در صفحه دوره “شبیهسازی حرفهای” و هم در خود دوره به تفضیل بررسی شده است.
📣دقت بفرمایید تمامی این موارد در هر مدلسازی فارغ از اینکه با خطای کمبود حافظه روبرو شوید یا خیر، بسیار مفید و مؤثر خواهد بود. پس سعی کنید هنگام مدلسازی تمامی این موارد را چک کنید و با بکارگیری آن مدل خود را بهبود ببخشید.
پیشنیازهای رفع خطای کمبود حافظه در نرمافزار کامسول
قبل از بررسی روشهای برطرف کردن خطای کمبود حافظه در نرمافزار کامسول، در ابتدا میخواهیم یک سری گام ضروری را به عنوان پیشنیازهای رفع این خطا بررسی کنیم.
1-مقدار حافظه موجود در سیستم خود را بررسی کنید.
به عنوان اولین گام برای رفع این مشکل، باید بررسی شود چه مقدار حافظه RAM در دسترس در سیستم شما وجود دارد. علت این خطا این است که کامسول مقدار حافظهی بیشتری از آنچه در سیستم شما هست، برای حل آن مدل درخواست میکند.
2-اندازه مدل کامسول خود را چک کنید.
مرحلهی بعدی چک کردن تعداد درجات آزادی مدل (DOF) است. این عدد در شروع حل، در پنجره Message نمایش داده میشود. با استفاده از روشهایی میتوان تعداد تقریبی درجه آزادی را بر حسب تعداد المان مش پیش بینی کرد.
3-با حل یک مدل کوچکتر، مقدار حافظه مورد نیاز برای حل مدل اصلی خود را پیشبینی کنید.
همیشه سعی کنید قبل از حل مدل اصلی، یک مدل کوچکتر با همان فیزیک یا با مش درشت حل کنید. سپس میزان مموری مورد استفاده نرمافزار برای حل این مدل را بررسی کنید. در ادامه میتوانید از یک سری روشها (مثلاً فیت کردن یک تابع polynomial درجه 2) برای پیشبینی میزان مموری مورد نیاز برای حل مدل اصلی استفاده کنید. دانستن اندازه مدلی که در حال حل آن هستید بسیار مهم است.
دورههای جامع
نمایش همهراه حلهای رفع خطای کمبود حافظه در نرمافزار کامسول
بعد از انجام این مراحل یعنی آگاهی از مقدار مموری سیستم خود و میزان مموری مورد نیاز برای حل آن مدل میتوانید چندین روش را برای برطرف نمودن خطای کمبود حافظه در نرمافزار کامسول بکار بگیرید که در ادامه متن به آن اشاره شدهاست.
1-از یک کامپیوتر با حافظه بیشتر استفاده کنید.
اگر تهیه یک سیستم با سختافزار قویتر برای شما مقدور نیست، میتوانید از سرورهای محاسباتی استفاده کنید. با یک سرچ ساده میتوانید ببینید کدام دانشگاهها یا مراکز خصوصی چنین سیستمهایی را در اختیار شما قرار میدهند. سپس با مقایسه تعرفهها و مشخصات سیستمها، بهترین سیستم را برای خود اجاره کنید.
2-مدل خود را ساده کنید.
تکنیکهای زیادی وجود دارد که شما میتوانید با استفاده از آنها مدل خود را ساده کنید که در ادامه اکثر این تکنیکها بررسی شده است. شما میتوانید یک یا چند تکنیک مختلف را همزمان استفاده کنید.
الف-از تقارن بهره بگیرید.
اگر هندسه شما متقارن است (یا نزدیک به متقارن است) و شما انتظار پاسخی متقارن (یا نزدیک به متقارن) دارید، بررسی کنید ببینید آیا میتونید با استفاده از تقارن اندازه مدل خود را کوچک کنید. برای مثال اگر هندسه سه بعدی شما در یک جهت خاص دچار تغییر سطح مقطع نمیشود میتوانید از مدل دو بعدی استفاده کنید. همچنین اگر مدل سه بعدی شما حول محور چرخش خود، سطح مقطع یکنواخت دارد، احتمالا میتوانید از مدل دو بعدی متقارن برای شبیهسازی آن مدل بهره ببرید.
ب-از مدلسازی سازههای نازک بپرهیزید.
گاهی اوقات یک سازه با دیواره نازک یا یک شکاف کوچک نیازی به مدلسازی بهصورت مستقیم ندارد. اکثر فیزیکها شامل یک سری شرایط مرزی هستند که میتواند به نمایندگی از آن سازههای نازک استفاده شود و در نتیجه از مدلسازی آن بخش نازک و مشریزی روی آن Domain پرهیز شود. برای مثال تمامی فیزیکهایی که از گزینه Shell (یا در خود فیزیک مربوطه یا بهصورت فیزیک جداگانه) پشتیبانی میکنند به همین منظور ایجاد شدهاند.
پ-پیچیدگی هندسه را کاهش دهید.
با دقت مدل خود را بررسی کنید ببینید آیا ویژگی یا جزئیاتی هست که برای تحلیل به آن نیاز نداشته باشید. مواردی را که جنبه تزئینی دارند حذف کنید. اگر هندسه خود را با CAD از منبع دیگری وارد کردهاید با استفاده از عملگر Defeaturing and Repair هر گونه سطح غیرضروری برای تحلیل را حذف کنید.
ت-از گزینههای موجود در Virtual Operation استفاده کنید.
بخش Virtual Operation برای تقریب هندسه بهمنظور مش زدن استفاده میشود. این گزینه میتواند در هر هندسهای و با هدف نادیده گرفتن جزئیاتی که برای تحلیل ضروری نیستند مورد استفاده قرار گیرد.
3-از تکنیک submodeling استفاده کنید.
تکنیک submodeling یک فرایند حل ترتیبی از مدلها با سطوح متفاوت از جزئیات و مشهای مختلف است. در این لینک به تفصیل در مورد این روش صحبت شده است.
4-از مش اسمبلی استفاده کنید.
بسته به فیزیکی که در حال استفاده از آن هستید ممکن است بتوانید از مش اسمبلی استفاده کنید. این گزینه به شما اجازه میدهد بتوانید از مشهای ناهمخوان برای قطعات مختلفی که اندازههای مختلف دارند و بهم متصل میشوند استفاده کنید. این گزینه بطور خاص برای فیزیکهای Solid Mechanics و Heat Transfer توصیه میشود.
5-از مش متفاوت استفاده کنید.
شما معمولا احتیاج به اندازه سایزهای مختلف مش خواهید داشت. حلهای المان محدود باید توسط تکرار حل با اندازه مشهای مختلف اعتبارسنجی شوند. همیشه با یک مش درشت شروع کنید و سپس بهصورت تدریجی اندازه مش را کاهش دهید در حالیکه میزان تغییرات نتایج را رصد میکنید. هرچه مش را ریزتر میکنید، حل المان محدود بهصورت افزایشی دقیقتر میشود. استفاده از گزینه Adaptive Mesh یا مشریزی دستی را بررسی کنید.
6-از مرتبه گسستهسازی کم استفاده کنید.
اکثر فیزیکها بهصورت پیشفرض از مرتبه دوم، quadratic، استفاده میکنند. استفاده از مرتبه اول، Linear، را بررسی کنید. این مسئله باید با بحث سایز مشهای مختلف تواماً بررسی شود.
7-از یک حلگر متفاوت استفاده کنید.
اگر از مدلهای 2D-axisymmetric, 2D, 1D استفاده میکنید، نیاز به مموری معمولاً کم هست، پس احتمال اینکه در این موارد به خطای کمبود حافظه در نرمافزار کامسول بربخورید پایین است. بنابراین اگر این خطا را در این گونه از مدلها دریافت کردید ابتدا به فکر ارتقای سختافزار سیستم خود باشید! اگر در حال حل مدل با چندفیزیک هستید قاعده کلی استفاده از روش fully coupled برای حل تمامی فیزیکها بهصورت همزمان است. برای حل مسائل مولتیفیزیکس به روش segregated سوییچ کنید.
اگر در حال کار بر روی مدلهای 3D هستید حلگر پیشفرض تکراری یا Iterative برای مسائل تکفیزیکی است، اما فیزیکهای مشخصی نیز وجود دارند که بهصورت پیشفرض از حالت مستقیم یا Direct استفاده میکنند. حلگرهای Iterative مموری کمتری نیاز دارند و به نسبت سریعتر از حلگرهای Direct هستند. اگر حلگر Direct در حال استفاده است، بررسی کنید که آیا امکان استفاده از حلگر Iterative هست یا خیر. برای مدلهای چندفیزیکی نرمافزار بصروت پیشفرض از روش Segregated استفاده میکند و هر فیزیکی را بهصورت جداگانه با حلگر Direct یا Iterative حل میکند.

به منظور انجام پروژه کامسول
ضبط آموزش اختصاصی برای فراگیر
پشتیبانی کامل از آموزش