Эффективное построение сетки с использованием сеточных последовательностей

Caty Fairclough 18/08/2016
Share this on Facebook Share this on Twitter Share this on Google+ Share this on LinkedIn

Замечали ли вы, что расчёт простой с виду модели иногда занимает много времени? Это может происходить из-за того, что автоматически созданная сетка содержит слишком много элементов. В таком случае бывает полезно переключиться c дефолтных на ручные настройки сетки (user-controlled mesh) для того, чтобы самостоятельно отредактировать сеточную последовательность в пакте COMSOL Multiphysics®. На одном из учебных примеров мы продемонстрируем все преимущества данного метода.

Выбор точной и эффективной сетки

Построение сетки — важный этап при моделировании, так как он напрямую определяет затраты вычислительных ресурсов при расчете. Более того, создание сетки — один из наиболее ресурсоёмких этапов при настройке и расчёте модели методом конечных элементов.

Как же правильно построить сетку для конкретной модели? Как правило, под этим выражением подразумевается выбор подходящего типа и размера конечных элементов. В COMSOL Multiphysics доступно четыре типа конечных элементов: тетраэдры, гексаэдры (параллелепипеды), треугольные призмы (призмы) и пирамиды. А также девять предустановленных размеров: от Очень мелкого (Extremely fine) до Очень крупного (Extremely coarse).

Meshing element types Эффективное построение сетки с использованием сеточных последовательностей
На рисунке изображены различные типы конечных элементов. Слева направо: тетраэдр, гексаэдр, треугольная призма и пирамида.

Как и другие доступные инструменты в COMSOL Multiphysics, построение сетки — очень гибкая и настраиваемая функция. Всего за насколько шагов вы легко построите сетку на каждой отдельной поверхности или каждом домене. По умолчанию автоматическая сетка с учетом физики (physics-controlled mesh) строится из конечных элементов разного типа и размера. Она может стать неплохой отправной точкой для изучения различных операций в построителе сеток и собственных модификаций путем добавления, перемещения, отключения и удаления узлов. Каждая операция выполняется последовательно согласно порядку, заданному в сеточной последовательности в узле Mesh (Сетка). Её настройка помогает уменьшить затраты на вычислительные ресурсы путём изменения числа, типа и размера конечных элементов. Эффективность и точность моделирования при этом сохраняется.

Настройка сеточной последовательности в COMSOL Multiphysics®

Теперь давайте разберём построение сетки на учебном примере электронного компонента, установленного на печатной плате с помощью шарикового припоя. Такой элемент может сильно нагреваться при длительной работе. Перегрев может как повредить устройство, так и создать опасность возгорания.

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

Electronic component geometry Эффективное построение сетки с использованием сеточных последовательностей
Электронный компонент, установленный на печатной плате с использованием шарикового припоя.

Для начала давайте автоматически построим сетку с учетом физики (physics-controlled mesh). По умолчанию — это произвольная тетраэдральная сетка. Размер конечного элемента устанавливается Нормальным (Normal), а сеточная последовательность, состоящая из узлов Размер (Size) и Произвольная тетраэдральная сетка (Free Tetrahedral), скрыта.

Default mesh for electronic component geometry Эффективное построение сетки с использованием сеточных последовательностей
Построенная для электронного компонента сетка по умолчанию.

В результате автоматического построения сетки мы получаем 45000 элементов. В целом, это — неплохое конечно-элементное разбиение. Однако, при таком построении есть области, в которых сетка уж слишком измельчена. Для нашей задачи такая точность не нужна, к тому же, это будет приводить к дополнительным затратам на вычислительные ресурсы при моделировании. Сейчас мы покажем, как настройка сеточной последовательности может уменьшить количество элементов…

Использование локальных размеров и других сеточных операций при настройке сеточной последовательности

Чтобы уменьшить количество элементов, нужно настроить сетку так, чтобы она была более мелкой в местах соединения, то есть в областях шарикового припоя, и более крупной в других. Для этого давайте посмотрим на локальные и глобальные размеры в сеточной последовательности. По умолчанию параметры настройки первого глобального размера будут применяться ко всем элементам в узле Free Tetrahedral 1. Первый элемент сеточной последовательности мы называем глобальным размером (Size), так как он используется для всех последующих узлов по умолчанию, если они не переопределены. Мы же хотим задать свой размер конечных элементов.

Для этого щёлкаем правой кнопкой мыши по узлу Free Tetrahedral 1 и добавляем подузел с локальным размером элемента(Size). Он будет применяться для доменов с нашим шариковым припоем. С помощью такой настройки мы можем выделить именно те части геометрии, в которых нам необходимо получить самые точные результаты. Сделав эти нехитрые шаги, мы уже получаем 28000 конечных элементов, что почти в два раза меньше по сравнению с построенной изначально сеткой по умолчанию.

Customized mesh with COMSOL Multiphysics Эффективное построение сетки с использованием сеточных последовательностей
Настроенная сетка, с подробным разрешением только вокруг областей шарикового припоя.

Чтобы ещё больше сократить количество элементов, можно воспользоваться функцией протяжения сетки (Swept). Она поможет ещё немного упростить сетку и сократить вычислительные ресурсы. Применяем узел Free Tetrahedral 1 только к доменам, относящимся к шариковому припою. Теперь мы хотим использовать верхнюю границу печатной платы и нижнюю поверхность электронного компонента в качестве начальных плоскостей для протяжки. Важно отметить, что на некоторых областях этих граней уже построена сетка, так как они соприкасаются с шариковым припоем.

Добавляем узел Free Triangular (свободная треугольная сетка). Добавляя новые узлы в сеточную последовательность, можно переопределять сетку на необходимых нам доменах. Например, в данном случае будет использоваться сетка Free Tetrahedral 1 вместо Free Triangular 1. При желании этот порядок можно изменить, перемещая узлы в сеточной последовательности. Однако, в таком случае вам надо быть внимательнее и не допускать, чтобы узлы зависили от предыдущих операций. В ином случае программа может выдать ошибку.

Free Triangular mesh Эффективное построение сетки с использованием сеточных последовательностей
Построение Free Triangular 1сетки на верхней границе печатной платы и нижней поверхности электронного компонента.

Теперь давайте опять обратим внимание на локальные и глобальные размеры в сеточной последовательности. В добавленном узле Free Triangular 1 размер конечных элементов по умолчанию определился согласно первому глобальному размеру (Size). Нам это не подходит. Чтобы переопределить сетку, добавим в узел Free Triangular 1 подузел локальный размер и выберем тип Сoarser (крупная сетка). Построив сетку, мы увидим, что она такая же, как и предыдущая. Это произошло из-за того, что построитель сеток в COMSOL использовал ранее определённую сетку на краях шарикового припоя и глобальный размер для элементов (который мы задали Normal) на внешних границах. Поэтому подузел локальный размер применился только к внутренней области элементов.

Чтобы исправить эту неточность, нужно в первом глобальном размере (Size) поставить самую крупную сетку во всей геометрии. А затем уже можно добавлять локальные подузлы и выбирать более мелкие размеры конечных элементов. После этой настройки мы уже сможем переопределять размер элементов для функции Swept (сетка протяжкой) с помощью подузла Coarser. В результате получаем количество конечных элементов, равное примерно 17000.

Revised mesh with fewer elements Эффективное построение сетки с использованием сеточных последовательностей
Построение ещё более измельчённой сетки с использованием функции протяжки.

Можно ещё более точно оптимизировать и донастроить сетку путём указания направления протяжки. Построив сетку таким образом, мы получили 21000 конечных элементов. В важных для нас областях, а именно — доменах с шариковым припоем, сетка была измельчена.

Mesh focusing on important design elements Эффективное построение сетки с использованием сеточных последовательностей
Измельчённая сетка в важных для расчета областях, при сохранении более крупного размера в остальных доменах.

Таким образом, можно сделать вывод о том, что настройка сеточной последовательности – это мощный инструмент при создании модели. Он позволяет уменьшить количество конечных элементов, оптимизировать затраты на вычислительные ресурсы и уменьшить время моделирования, сохраняя при этом точность результатов. Желаете узнать больше об эффективном построении сеток в COMSOL Multiphysics? Изучите дополнительные ресурсы по этой теме, пройдя по ссылкам ниже.

Посмотрите дополнительные ресурсы по построению сеток


Загрузка комментариев...

Темы публикаций


Теги