Категории

Cуществуют следующие способы оплаты за занятия:

  • Абонемент на 8 посещений (срок действия 1 месяц) - 300 грн.;
  • Абонемент на 4 посещения (срок действия 1 месяц) - 200 грн.;
  • Абонемент на 12 посещений(срок действия 1 месяц) - 400 грн.;
  • Разовое посещение - 60 грн.
(ДЛИТЕЛЬНОСТЬ ЗАНЯТИЙ ПО 1,5 ЧАСА)

Скільки ж пам'яті потрібно для розрахунку великих моделей в COMSOL?

  1. практичний приклад
  2. Число ступенів свободи
  3. Як операційна система управляє пам'яттю
  4. Коли COMSOL використовує найбільше пам'яті?
  5. прямі вирішувачі
  6. ітераційні вирішувачі
  7. Прогноз необхідного обсягу пам'яті
  8. висновок

Наше деловое партнерство www.banwar.org

Один з найбільш частих питань, які нам задають: наскільки велику модель можна розрахувати в COMSOL Multiphysics? Виявляється, дати певну відповідь не так-то просто, тому в цій статті ми поговоримо про вимоги до пам'яті, розмірах моделей і про те, як можна спрогнозувати обсяг пам'яті, необхідний для розрахунку масштабних тривимірних задач методом кінцевих елементів.

практичний приклад

На графіку нижче показано обсяг пам'яті, необхідний для вирішення різних тривимірних задач методом кінцевих елементів в залежності від числа ступенів свободи в моделі.

Залежність вимог до пам'яті від числа ступенів свободи для деяких характерних завдань (апроксимація кривими другого порядку)
Залежність вимог до пам'яті від числа ступенів свободи для деяких характерних завдань (апроксимація кривими другого порядку).

Тут представлені п'ять різних випадків.

  • Випадок 1. Завдання про теплопередачі через сферичну оболонку. Між усіма поверхнями відбувається теплопередача випромінюванням. Ця модель розрахована за допомогою стандартного итерационного решателя.
  • Випадок 2. Механічний розрахунок консольної балки на основі прямого решателя (настройки за замовчуванням).
  • Випадок 3. Електромагнітна завдання, розрахована ітераційним вирішувачів (настройки за замовчуванням).
  • Випадок 4. Завдання на механіку конструкцій, аналогічна нагоди 2, але розрахована з використанням ітераційного решателя.
  • Випадок 5. Завдання про теплопередачі для блоку матеріалу. Враховується тільки теплопередача за рахунок теплопровідності. Ця модель розрахована за допомогою стандартного итерационного решателя.

На цьому графіку можна бачити, що для комп'ютера з 64 ГБ оперативної пам'яті (RAM) межею можливостей розрахунку можуть бути завдання розміром від приблизно 26 тисяч до майже 14 мільйонів ступенів свободи. Чим же обумовлений такий широкий діапазон? Давайте подивимося, як інтерпретувати ці дані ...

Число ступенів свободи

Для більшості завдань COMSOL Multiphysics вирішує набір основних диференціальних рівнянь в приватних похідних методом кінцевих елементів , Який ділить області вашої CAD-моделі на елементи, які визначаються набором вузлів на кордонах.

У кожному вузлі буде хоча б одна невідома, і число цих невідомих визначається фізикою розв'язуваної задачі. Наприклад, при розрахунку температури в кожному вузлі є тільки одна невідома (стандартно позначається T). При вирішенні задачі механіки конструкцій проводиться розрахунок деформації і результуючих напружень, тобто потрібно вирішити задачу для трьох невідомих (u, v, w) - зсувів кожного вузла в просторі xyz.

Для завдання про турбулентному потоці рідини потрібно розрахувати компоненти швидкості руху рідини (також стандартно позначаються u, v, w) і тиск (p), а також додаткові невідомі, що описують турбулентність. При вирішенні задачі дифузії за участю багатьох різних речовин для кожного вузла необхідно розраховувати стільки невідомих, скільки присутній хімічних компонентів. Крім того, у різних фізичних процесів в одній моделі може бути різна ступінь дискретизації за замовчуванням, тому уздовж ребер елемента, а також всередині елемента можуть з'являтися додаткові вузли.

При розрахунку температурного поля T на тетраедальних елементах другого порядку вийде в цілому 10 невідомих на кожен елемент, а при вирішенні ламинарного рівняння Нав'є-Стокса для швидкості \ mathbf {u} = (u_x, u_y, u_z) і тиску p з дискретизацією першого порядку вийде в цілому 16 невідомих на кожен елемент
При розрахунку температурного поля T на тетраедальних елементах другого порядку вийде в цілому 10 невідомих на кожен елемент, а при вирішенні ламинарного рівняння Нав'є-Стокса для швидкості \ mathbf {u} = (u_x, u_y, u_z) і тиску p з дискретизацією першого порядку вийде в цілому 16 невідомих на кожен елемент.

COMSOL Multiphysics використовує інформацію про фізичних закономірностях, властивостях матеріалу, граничних умовах, типі і формі елемента, щоб побудувати систему рівнянь ( квадратну матрицю ), Які потрібно вирішити, щоб отримати відповідь для завдання на основі методу скінченних елементів. Розмір цієї матриці - це число ступенів свободи моделі, яке залежить від числа елементів, порядку дискретизації для кожного фізичного процесу і числа шуканих змінних.

Ці системи рівнянь зазвичай є розрідженими , Що означає, що більшість елементів у відповідній матриці нульові. У більшості типів моделей кінцевих елементів кожен вузол з'єднується тільки з сусідніми вузлами сітки. Відзначимо, що і форма елемента має значення: розрідженість матриці для сітки з тетраедрів буде відрізнятися від розрідженості для сітки з шестигранників (призм).

Деякі моделі можуть включати нелокальних з'єднання між вузлами, в результаті чого матриця системи стає щодо щільною. Теплопередача за допомогою випромінювання - це типова задача, в якій матриця системи буде щільною. Між поверхнями, які знаходяться в прямої видимості, буде відбуватися теплообмін випромінюванням, тому кожен вузол випромінюючих поверхонь повинен бути з'єднаний з усіма іншими вузлами. Результат добре видно на графіках, які я навів на початку цієї статті. Модель теплообміну з урахуванням випромінювання набагато більш вимоглива до пам'яті, ніж модель теплообміну без випромінювання.

Зверніть увагу, що на обсяг пам'яті, необхідної для розрахунку моделі COMSOL Multiphysics, впливає не тільки число ступенів свободи, але на розрідженість матриці системи. Тепер подивимося, як комп'ютер управляє пам'яттю.

Як операційна система управляє пам'яттю

COMSOL Multiphysics використовує алгоритми управління пам'яттю, які надає використовувана операційна система (ОС). Незалежно від того, яка ОС використовується, продуктивність цих алгоритмів практично однакова у всіх останніх версіях ОС, які ми підтримуємо.

Операційна система створює стек віртуальної пам'яті , Який програмне середовище COMSOL сприймає як безперервний простір вільної пам'яті. Цей безперервний блок віртуальної пам'яті насправді може бути зіставлений з різними фізичними об'єктами, тому деяка частина даних може зберігатися в оперативній пам'яті, а решта частини - на жорсткому диску. Місцем фактичного збереження даних (в оперативній пам'яті або на диску) управляє ОС, і за замовчуванням користувач ніяк не може впливати на це. Обсяг віртуальної пам'яті визначає сама ОС, і зазвичай змінювати його не потрібно.

Ідеально було б розміщувати дані, використовувані COMSOL Multiphysics, цілком в оперативній пам'яті, але при нестачі місця частина даних буде перенесена на жорсткий диск. Коли таке відбувається, всі запущені на цьому комп'ютері програми працюють значно повільніше.

Якщо ПО COMSOL запитує надто багато пам'яті, ОС встановить, що вона вже не може ефективно управляти пам'яттю (навіть з використанням жорсткого диска) і повідомить COMSOL Multiphysics, що вільної пам'яті більше немає. У цей момент користувач отримає повідомлення про брак пам'яті і COMSOL Multiphysics зупинить розрахунок моделі.

Тепер давайте подивимося, що робить COMSOL Multiphysics, коли ви отримуєте таке повідомлення про брак пам'яті, і що можна зробити в цій ситуації.

Коли COMSOL використовує найбільше пам'яті?

Постановка і вирішення завдання кінцевих елементів включає три етапи, що вимагають великих обсягів пам'яті: Побудова сітки, Збірка матриці і Розрахунок.

  • Побудова сітки (Meshing). На етапі побудови сітки CAD-геометрія розбивається на кінцеві елементи. Стандартний алгоритм побудови сітки покриває велику частину простору моделювання вільної сіткою з тетраедрів. Вільне побудова сітки з тетраедрів для великих складних структур потребують великого обсягу пам'яті. На практиці це іноді вимагає більше пам'яті, ніж саме рішення системи рівнянь, тому пам'яті може не вистачити вже на цьому етапі. Якщо ви виявите, що побудова сітки йде довго і вимагає значного обсягу пам'яті, то можна розділити геометрію на менші за розміром області. Як правило, чим менше області, тим менше пам'яті вони вимагають для побудови сітки. Будуючи сітку за кілька операцій, а не всю відразу, можна знизити вимоги до пам'яті. У цій статті також передбачається, що немає можливості спростити моделювання (наприклад, використовувати симетрію або граничні умови тонкого шару), щоб знизити складність моделі і зменшити розмір сітки.
  • Збірка матриці (Assembly). На етапі складання COMSOL Multiphysics формує матрицю системи і вектор, що описує навантаження. Збірка і зберігання цієї матриці вимагає значних обсягів пам'яті, можливо більше, ніж на етапі побудови сітки, але завжди менше, ніж на етапі розрахунку. Якщо на цьому етапі ви зіткнулися з нестачею пам'яті, то слід збільшити обсяг оперативної пам'яті в системі.
  • Рішення (Solving). На етапі вирішення COMSOL Multiphysics використовує загальні і дуже стійкі алгоритми, здатні вирішувати нелінійні задачі, що включають довільні комбінації фізичних процесів . Сутність всіх цих алгоритмів полягає в розрахунку системи лінійних рівнянь, який виконується за допомогою прямих або ітераційних методів . Розглянемо ці дві групи методів: коли їх слід використовувати і скільки пам'яті їм потрібно.

прямі вирішувачі

Прямі вирішувачі дуже стійкі і можуть впоратися практично з будь-якою проблемою при моделюванні методом кінцевих елементів. COMSOL Multiphysics використовує такі прямі вирішувачі розріджених матриць: MUMPS , PARDISO і SPOOLES . Крім того, є вирішувач для щільних матриць, який слід використовувати, тільки якщо матриця системи не є розрідженій.

Недолік всіх цих решателей в тому, що необхідний обсяг пам'яті і час вирішення дуже швидко ростуть із зростанням числа ступенів свободи і збільшенням щільності матриці. Щодо числа ступенів свободи це зростання дуже близький до квадратичного.

У момент написання статті прямі вирішувачі MUMPS і PARDISO в програмному середовищі COMSOL підтримують можливість використання зовнішньої пам'яті. В цьому режимі COMSOL Multiphysics забирає у ОС управління пам'яттю і безпосередньо визначає, який обсяг даних буде зберігатися в оперативній пам'яті, а також коли і як почати запис даних на жорсткий диск. Хоча COMSOL Multiphysics управляє пам'яттю більш ефективно, ніж операційна система, рішення зажадає більше часу, ніж при розміщенні даних цілком в оперативній пам'яті.

При наявності доступу до кластерного суперкомп'ютера, наприклад до Amazon Web Service ™ Amazon Elastic Compute Cloud ™, можна також використовувати вирішувач MUMPS, щоб розподілити ці завдання між безліччю вузлів кластера. Хоча це дозволяє вирішувати набагато більш масштабні завдання, важливо також розуміти, що розрахунок на кластері може виявитися більш довгим, ніж на одному комп'ютері .

Оскільки у прямих решателей обсяг споживаних ресурсів дуже швидко (практично квадратично) зростає зі збільшенням даних завдання, вони зазвичай використовуються тільки для декількох тривимірних фізичних інтерфейсів (хоча вони майже завжди використовуються для двовимірних моделей, де вони масштабуються набагато краще).

Найбільш поширений випадок, коли прямий вирішувач за замовчуванням використовується для тривимірних задач механіки конструкцій. Такий вибір зроблено з міркувань стійкості, при цьому для багатьох проблем механіки конструкцій можна використовувати ітераційний вирішувач. Використання методу перемикання параметрів решателя показано в прикладі моделі напруг в гайковий ключ .

ітераційні вирішувачі

Ітераційні вирішувачі вимагають набагато менше пам'яті, ніж прямі вирішувачі, але для їх хорошої роботи потрібно більш ретельна настройка параметрів.

Для всіх попередньо визначених фізичних інтерфейсів, де це було розумно зробити, настройки итерационного решателя за замовчуванням забезпечують стійкість рішення. Вони автоматично преднастроени і не вимагають втручання користувача, тому при використанні вбудованих фізичних інтерфейсів не слід турбуватися про ці настройках.

Ітераційного вирішувачі потрібно значно менше пам'яті і часу, ніж прямому вирішувач для тієї ж задачі, тому їх слід застосовувати завжди, коли це можливо. У цьому випадку зростання споживаних ресурсів у міру збільшення розмірів завдання набагато ближче до лінійного (на відміну від квадратичного росту, властивого прямим вирішувач).

На момент написання статті, ітераційні вирішувачі слід використовувати на комп'ютері з достатнім для вирішення завдання об'ємом оперативної пам'яті. Тому якщо при використанні ітераційного решателя видається повідомлення про брак пам'яті, то слід збільшити обсяг оперативної пам'яті комп'ютера.

Також можна використовувати ітераційний вирішувач на кластерному комп'ютері за допомогою методів поділу області (Domain Decomposition) . Цей клас ітераційних методів був недавно реалізований в нашому програмному забезпеченні, тому ознайомтеся з нашими актуальними публікаціями, щоб більше дізнатися про це.

Прогноз необхідного обсягу пам'яті

Хоча наведені вище дані дають уявлення про верхній і нижній межах вимог до пам'яті, діапазон між ними досить широкий. Часто можна бачити, як введення в модель невеликих змін, наприклад додавання нелокальних взаємозв'язків, таких як теплообмін випромінюванням, може істотно змінити вимоги до пам'яті. Розглянемо загальні рекомендації по прогнозуванню вимог до пам'яті.

Почніть з репрезентативною моделі, яка включає всі фізичні процеси, які потрібно розрахувати, і приблизно відповідає реальній складності геометрії. Почніть з самої грубої сітки з можливих, а потім поступово подрібнюйте сітку. Можна також почати з невеликої репрезентативною моделі і поступово збільшувати її розмір.

Розрахуйте кожну модель, відстежуючи споживання пам'яті. Використовуйте вирішувач за замовчуванням. Якщо це прямий вирішувач, використовуйте для ваших тестів режим зовнішньої пам'яті, або спробуйте використовувати замість нього ітераційний вирішувач. Апроксимується ці дані полиномом другого порядку і використовуйте цю криву для прогнозу обсягу пам'яті, який буде потрібно в майбутньому для більш об'ємною завдання. Це найнадійніший спосіб передбачити вимоги до пам'яті для великих і складних тривимірних мультіфізіческіх моделей.

Як ми бачимо, споживання пам'яті буде залежати (щонайменше) від геометрії, сітки, типу елементів, комбінації розраховуються фізичних процесів, взаємозв'язку між цими процесами і обсягу нелокальних взаємозв'язків моделі. При цьому слід зазначити, що вимоги до пам'яті можна спрогнозувати далеко не у всіх випадках. Можливо, доведеться повторити цю процедуру кілька разів для різних варіантів вашої моделі.

Потрібно зауважити, що створення і розрахунок великих моделей найбільш ефективним способом може зажадати глибоких знань не тільки параметрів решателя, але і загальних методів моделювання за допомогою технології кінцевих елементів. Якщо у вас виникнуть питання по конкретної моделі, зверніться за консультацією в вашу службу підтримки COMSOL .

висновок

Тепер ви розумієте, чому вимоги до пам'яті для моделі COMSOL Multiphysics можуть змінюватися в найширших межах. Також ви зможете з упевненістю спрогнозувати вимоги до пам'яті для великих моделей і вирішити, яке обладнання краще підходить для ваших завдань моделювання.

Amazon Web Services і Amazon Elastic Compute Cloud є товарними знаками Amazon.com, Inc. або афілійованих компаній в США і (або) інших країнах.

Чим же обумовлений такий широкий діапазон?
Коли COMSOL використовує найбільше пам'яті?