{{TutorialInfo |Topic=Метод конечных элементов |Level=Начальный |Time=Н/Д |Author=[[1](https://www.freecad.org/wiki/index.php?title=User):NewJoker NewJoker] |FCVersion=1.0 или выше |SeeAlso=Рабочая среда FEM }}
Общие сведения
Подготовка геометрии и создание сетки являются ключевыми этапами предварительной обработки для симуляций с использованием метода конечных элементов (МКЭ). Хотя доступное программное обеспечение для симуляций, интегрированное с CAD-средой (например, Модуль МКЭ в FreeCAD), делает заманчивым немедленное выполнение анализов новых конструкций, важно помнить, что МКЭ — это сложный метод, требующий правильно подготовленной геометрии и сетки для получения достоверных и точных результатов. Здесь особенно применимо правило «мусор на входе — мусор на выходе». Существуют и другие важные настройки, от которых сильно зависит точность МКЭ (например, свойства материалов и граничные условия), но первыми шагами и одними из наиболее частых источников проблем являются подготовка геометрии и создание сетки, которые обсуждаются на этой странице.
Типы геометрии, используемые для МКЭ в FreeCAD
- Линии (каркасы) — используются для анализов с балочными элементами
- Поверхности — используются для анализов с оболочечными и 2D-элементами (плоское напряжение/деформация и осесимметричные элементы)
- Тела — используются для анализов с объемными элементами
Выбор типа геометрии
Хотя большинство конструкций состоят из тел, часто настоятельно рекомендуется использовать линии или поверхности для МКЭ, если структура это позволяет:
- Если деталь является тонкой (длинной и узкой) и похожа на балку с регулярным поперечным сечением одного из поддерживаемых типов сечений балок (прямоугольное, круглое или трубчатое), то её следует анализировать с использованием балочных элементов (за исключением случаев, когда специфические виды нагрузки, реакции или неизбежные геометрические детали делают это предположение недействительным). В основном, необходимо нарисовать центральную линию (некоторые советы по её извлечению из существующей геометрии тела можно найти в этой теме форума — вкратце, используйте Draft Wire или Draft BSpline с соответствующими привязками и линиями в качестве опор) и применить сечение балки с опциональным поворотом. Не существует единого правила, определяющего, когда можно использовать балочные элементы, но часто рекомендуется, чтобы размеры поперечного сечения составляли менее 1/10 длины детали, чтобы предположение о балке считалось действительным.
Следует помнить, что балочные, оболочечные, плосконапряжённые/плоскодеформированные и осесимметричные элементы, используемые в CalculiX, не являются настоящими элементами такого типа (они не используют классические формулировки элементов, известные из литературы и других программ). Внутренне они преобразуются в объёмные элементы. Тем не менее, их использование рекомендуется в вышеупомянутых случаях.
Beam models
If a part is slender (long and thin) and beam-like and has a regular cross-section of one of the currently supported beam section types (rectangular, box, elliptical, circular, or pipe), then it should be analyzed using beam elements (unless there are some specific forms of loading, response, or unavoidable geometry details that invalidate this assumption).
Basically, one should draw a centerline (some tips on how to extract it from existing solid geometry can be found in this forum thread - in short, use Draft Wire or Draft BSpline with proper snaps and lines as supports) and apply beam section with optional rotation.
There's no single rule dictating when beam elements can be used, but it's often advised that the cross-section dimensions should be < 1/10 of the part's length for the beam assumption to be valid.
introduced in 1.1: Very slender beams may have negligible bending stiffness and truss elements can be used to model them. These elements cannot sustain bending. They only transmit axial forces, not moments. To use them, enable the ДанныеExclude Bending Stiffness property of the CalculiX solver. Instead of a profile, the ДанныеTruss Area property of the FEM ElementGeometry1D object is used to define their cross-section.
Тонкая деталь, подходящая для анализа с балочными элементами — выделена центральная линия
Shell models
- Если деталь имеет тонкие стенки (например, детали из листового металла), её следует анализировать с использованием оболочечных элементов (за исключением случаев, когда требуются точные результаты контакта или сталкиваются с ограничениями оболочечных элементов). Это очень важно и часто упускается из виду. Для достижения должной точности результатов (особенно при изгибе) необходимо использовать несколько элементов (не менее 3–5) в направлении толщины. В случае деталей с тонкими стенками это обычно приводит к созданию больших сеток (особенно при использовании тетраэдров, поскольку гексаэдральные элементы не могут быть сгенерированы в FreeCAD) и высокой вычислительной стоимости — высокие требования к вычислительной мощности и длительное время решения. Чтобы получить геометрию, подходящую для анализа с оболочечными элементами, следует нарисовать срединную поверхность детали (некоторые советы по её извлечению из существующей геометрии тела можно найти в этой теме форума, этой и этой — вкратце, примените PartDesign SubShapeBinder или Draft Facebinder, затем Part Offset и, наконец, используйте SubShapeBinder и Extrude для расширения краёв срединных поверхностей, чтобы закрыть зазоры между ними) и применить соответствующую толщину. Опять же, нет единого правила, но обычно рекомендуется, чтобы толщина составляла менее 1/10 от типичного глобального размера (длины/ширины), чтобы предположение об оболочке считалось действительным.
To obtain the geometry suitable for analysis with shell elements, one should draw a midsurface of the part (some tips on how to extract it from existing solid geometry can be found in this forum thread, this one and this one - in short, apply PartDesign SubShapeBinder or Draft Facebinder, then Part Offset and finally use SubShapeBinder and Extrude to extend edges of the midsurfaces and thus close the gaps between them) and apply proper thickness.
Again, there's no single rule regarding the applicability of shell elements, but it's usually recommended that the thickness should be < 1/10 of a typical global dimension (length/width) for the shell assumption to be valid.
introduced in 1.1: Very thin shells may have negligible bending stiffness and membrane elements can be used to model them. These elements cannot sustain bending. To use them, enable the ДанныеExclude Bending Stiffness property of the CalculiX solver.
Деталь с тонкими стенками, подходящая для анализа с оболочечными элементами — выделена срединная поверхность
Planar models
- В некоторых случаях также возможны 2D-анализы, которые можно включить, установив свойство ДанныеModel Space решателя CalculiX:
- Плоское напряжение — для тонких деталей, которые можно упростить до плоских поверхностей, представляющих профиль для выдавливания (толщина задаётся так же, как для оболочек), которые нагружаются и деформируются только в плоскости и имеют нулевое напряжение в направлении, перпендикулярном плоскости. Доступны только две степени свободы — перемещения по X и Y. Поверхности в этом случае должны лежать в плоскости XY. Этот подход довольно распространён. Например, тонкая пластина, подверженная растяжению, может быть проанализирована таким образом.
- Плоская деформация — для толстых деталей, которые можно упростить до плоских поверхностей, представляющих профиль для выдавливания (толщина задаётся так же, как для оболочек), которые нагружаются и деформируются только в плоскости и имеют нулевую деформацию в направлениях, перпендикулярных плоскости. Доступны только две степени свободы — перемещения по X и Y. Поверхности в этом случае должны лежать в плоскости XY. Этот подход менее распространён. Например, длинная плотина, стена или труба, подверженная равномерному давлению по всей длине, может быть проанализирована таким образом.
- Осесимметричный — для деталей, которые можно упростить до плоских поверхностей, представляющих профиль вращения (толщина здесь не имеет значения), и которые нагружаются равномерно по всей окружности. Доступны только две степени свободы — радиальное и осевое перемещение. Поверхности должны лежать в плоскости XY, справа от оси Y. Этот подход очень распространён. Например, некоторые сосуды под давлением, резиновые опоры, втулки, прокладки, фланцы и даже болтовые соединения (с учётом резьбы как осесимметричной) могут быть проанализированы таким образом.
Parts suitable for 2D analyses and their highlighted profiles that will be used in such analyses. From the left - plane strain, plane stress and axisymmetric models. Revolution axis is also shown for the axisymmetric case. It must coincide with the global Y axis.
Корректность геометрии
Геометрия, используемая для МКЭ, должна быть корректной. В первую очередь, в ней не должно быть пересечений. Это распространённая проблема, которая часто возникает, когда сборки моделируются без надлежащих ограничений между деталями. Инструмент Part SectionCut может помочь выявить такие пересечения между деталями. Конечно, Part Fuse может помочь устранить их, если они созданы намеренно. Другие проблемы с геометрией (такие как неразвёртываемые геометрии, избыточные рёбра или грани и т. д.) также должны быть исправлены перед переходом к созданию сетки. Инструмент Part CheckGeometry может быть полезен, но визуальная проверка также важна. При подготовке симуляции с использованием объёмных элементов, если есть сомнения, является ли деталь действительно твёрдым телом или просто замкнутой оболочкой, упомянутые инструменты (Part SectionCut и вкладка Shape Content в результатах инструмента Part CheckGeometry) могут это прояснить.
Нормали поверхностей
В случае поверхностной геометрии, используемой для анализов с оболочечными и 2D-элементами, направление нормалей поверхностей может быть важным. Они используются для определения положительной и отрицательной стороны сетки конечных элементов поверхности и влияют на такие аспекты анализа, как нагрузки от давления и контакт. Кроме того, 2D-анализы (плоское напряжение/деформация и осесимметричные) в CalculiX требуют, чтобы нормали были направлены в положительном направлении оси Z. Если они инвертированы, возникнут ошибки отрицательного якобиана.
Для проверки нормалей используйте один из следующих подходов:
- включите подсветку в Настройках и установите свойство ВидLighting объекта поверхности в значение «Одна сторона» — направление отрицательной нормали будет выглядеть темнее,
- используйте макрос Normal Vector,
- создайте сетку для поверхностной формы в модуле МКЭ — сетка будет окрашена только на стороне положительной нормали.
Для инвертирования нормалей используйте инструмент Инвертировать формы.
Использование поверхностных сеток для МКЭ
Поверхностные сетки MeshObject, обычно импортируемые из файлов STL, OBJ и подобных или созданные в Модуле работы с сетками, не могут использоваться напрямую для МКЭ. Сначала необходимо создать форму из сетки. Затем эта форма может быть разбита на сетку в модуле МКЭ для создания поверхностной (оболочечной / 2D) сетки конечных элементов. Если требуется объёмная (3D) сетка конечных элементов, после создания формы необходимо выполнить преобразование в твёрдое тело.
Самая большая проблема с формами, созданными из поверхностных сеток, заключается в том, что все их треугольники становятся гранями полученной формы. В МКЭ это делает назначение характеристик анализа (таких как нагрузки и граничные условия) особенно проблематичным. В случае плоских поверхностей очистка после преобразования в твёрдое тело может удалить избыточные треугольные грани. Однако в практических сценариях большинство из них всё же останутся, и поэтому использование поверхностных сеток для МКЭ не рекомендуется. Вместо этого следует использовать CAD-геометрии (созданные в FreeCAD или импортированные из файлов STEP/IGES). Иногда даже может иметь смысл воссоздать геометрию на основе поверхностной сетки.
Упрощение геометрии
Удаление мелких деталей
Конструкции, подготовленные в CAD-программах, обычно слишком детализированы для использования в симуляциях МКЭ. Во многих случаях их необходимо сначала упростить. Этот шаг часто упускается из виду, но он очень важен, поскольку получение качественной сетки может быть затруднительным, если деталь слишком сложная, и даже если такая сетка в итоге будет создана, она может быть очень плотной, что приведёт к неоправданно долгому времени решения. Поэтому всегда следует анализировать конструкцию и стараться максимально её упростить, оставляя только те геометрические особенности, которые могут существенно влиять на результаты (прочность/жёсткость) и, следовательно, не могут быть проигнорированы. Обычно исключаются следующие элементы:
- мелкие скругления и фаски,
- небольшие отверстия,
- другие мелкие детали,
- сварные швы,
- болты, резьбы,
- декоративные элементы (логотипы, гравировки).
Инструмент Удаление мелких деталей и дополнение Модуль упрощения геометрии могут быть полезны при упрощении деталей для симуляций.
Исходная геометрия кронштейна
Геометрия кронштейна, упрощённая с использованием только инструмента удаления мелких деталей
Замена деталей граничными условиями
В случае сборок (подробнее о них в одном из следующих разделов) некоторые детали часто можно исключить из симуляций и заменить граничными условиями, если они были прикреплены к анализируемым деталям. Такой подход оправдан, если исключённые детали значительно жёстче (с точки зрения конструктивной жёсткости, учитывающей не только упругость материала, но и геометрию детали), чем анализируемые детали, к которым они были присоединены. Это связано с тем, что фиксированные граничные условия обеспечивают жёсткость (как если бы анализируемая деталь была прикреплена к бесконечно жёсткому компоненту), а гибкие опоры, такие как пружинные элементы, недоступны в модуле МКЭ FreeCAD при использовании CalculiX (в Elmer есть Ограничение пружины).
Использование плоскостной симметрии
Упрощение геометрии для МКЭ также может включать разрезание её по одной из плоскостей симметрии для использования предположения о плоскостной симметрии в анализе. Это предположение справедливо только в том случае, если все следующие аспекты модели обладают симметрией в заданной плоскости:
- геометрия,
- нагрузки,
- граничные условия,
- реакция (нужно быть осторожным с частотными/анализами на потерю устойчивости при использовании симметрии — антисимметричные формы мод не будут получены).
Использование симметрии (1/2, 1/4 или 1/8 модели) рекомендуется, когда это возможно, поскольку это может значительно снизить вычислительные затраты на анализ. Другим преимуществом является устранение некоторых движений твёрдого тела, что упрощает закрепление детали. Условие симметрии должно быть применено к граням, принадлежащим плоскости разреза:
- перемещение в направлении, нормальном к плоскости симметрии, должно быть заблокировано для объёмных деталей,
- перемещение в направлении, нормальном к плоскости симметрии, и вращения, кроме как вокруг оси, нормальной к плоскости симметрии, должны быть заблокированы для оболочечных и балочных деталей.
Приложенная сила должна быть соответствующим образом уменьшена, если плоскость симметрии пересекает область, к которой приложена сила (не имеет значения при использовании нагрузки давлением).
Модель 1/8 цилиндрического сосуда под давлением с граничными условиями симметрии и внутренней нагрузкой давлением
Использование циклической симметрии
Другой, менее распространённый тип симметрии, доступный в FreeCAD FEM, — это циклическая симметрия. Она может быть задана с помощью ограничения связывания и позволяет анализировать только один представительный сектор структуры, состоящей из таких круговых узоров вокруг оси. Предполагается, что граничные условия и нагрузки также обладают этой формой симметрии. Могут быть приложены тангенциальные нагрузки, что позволяет моделировать кручение. Однако чаще всего с циклической симметрией используется центробежная нагрузка. Этот подход может применяться, например, для роторов, валов, турбин, вентиляторов и маховиков.
Разбиение геометрии
Основы разбиения
Так называемое разбиение представляет собой деление геометрии на более мелкие сегменты. В других программах оно обычно используется для создания гексаэдральной сетки, но в FreeCAD оно может быть полезно и по другим причинам:
- создание подобластей для назначения характеристик анализа,
- разделение деталей на секции из разных материалов,
- создание регионов для уточнения сетки,
- управление алгоритмом создания сетки путём принудительного следования дополнительным рёбрам (особенно полезно для контроля роста сетки Gmsh).
Разбиение граней твёрдых тел с помощью эскизов
Основное применение разбиения заключается в случаях, когда нагрузка (или граничное условие) должна быть приложена только к выбранной области поверхности детали. Самый простой способ добиться этого для твёрдых тел — создать эскиз с соответствующим контуром на этой грани и использовать инструмент Булевы фрагменты для разделения грани с помощью эскиза.
Деталь с разбиением грани для приложения нагрузки или граничного условия
Разбиение объёмов твёрдых тел с помощью опорных плоскостей
Ещё одна причина для разбиения — необходимость применения нескольких материалов к одной детали (без использования нескольких деталей, соединённых друг с другом). В этом случае разбиение можно выполнить с помощью опорной плоскости и инструмента Булевы фрагменты в режиме «Комбинированное тело».
Разбиение поверхностных геометрий с помощью эскизов
В случае поверхностных (оболочечных) геометрий самый простой способ создания разбиения на основе эскиза — использовать инструмент Булевы фрагменты (как для разбиения граней твёрдых тел). Однако, как объяснено здесь, если в настройках МКЭ включено создание групп сетки, это может работать некорректно, и следует использовать следующий подход: 1. Создайте грань для одной стороны, например, с помощью инструмента Создать грань (например, квадратная пластина с круглым отверстием). 2. Создайте грань для другой стороны аналогичным образом (например, круглая грань, заполняющая отверстие в квадратной пластине). 3. Примените инструмент Конструктор деталей в режиме «Оболочка из граней» с отключённой опцией «Очистить форму» к ранее созданным граням.
Квадратная пластина с разбиением на круглую грань
Разбиение граней твёрдых тел с помощью опорных плоскостей
Разбиение только выбранных граней твёрдого тела с использованием опорных плоскостей вместо эскизов без разделения всего объёма также является сложной задачей. Один из возможных подходов: 1. Разделите тело на грани. 2. Выберите эту грань и опорную плоскость и используйте инструмент Разделить на части. 3. Удалите контейнер Exploded Slice, не удаляя его содержимое. 4. Выберите все грани и срезы и Объедините их в оболочку. 5. Объедините оболочку в твёрдое тело или используйте инструмент Преобразовать в твёрдое тело. Другой способ: 1. Создайте подобъект грани, которую нужно разбить. 2. Разделите подобъект с помощью опорной плоскости, используя инструмент Разделить на части. 3. Создайте новое Тело (чтобы избежать циклической зависимости). 4. Создайте новый подобъект из рёбер, полученных от пересечения предыдущего подобъекта и опорной плоскости. 5. Выберите исходное тело и новый подобъект и используйте инструмент Булевы фрагменты. Другие идеи можно найти в этой теме форума, но они более специфичны для конкретных случаев.
Цилиндрическая грань отверстия, разделённая плоскостью для приложения нагрузки на 180° от штифта
Геометрии сборок
Одним из текущих основных ограничений модуля МКЭ является отсутствие поддержки нескольких сеток. На практике это означает, что нельзя создать сетку для каждой детали сборки отдельно, а затем соединить их с помощью соответствующих ограничений для анализа. Вместо этого необходимо создать единый объект, содержащий все детали сборки, и разбить его на сетку. Здесь есть несколько различных вариантов, все они основаны на булевых инструментах модуля Part. Выбор зависит от желаемого результата — должны ли отдельные детали/объёмы и их границы быть доступными для выбора (например, для назначения материалов или определения граничных условий, действующих на внутренние грани) или нет:
- Part Fuse — объединяет детали, делая невозможным их индивидуальный выбор, например, для определения материалов,
- Part Compound — создаёт составной объект, позволяя выбирать отдельные детали,
- Part JoinConnect — работает как Part Fuse, объединяет детали, делая невозможным их индивидуальный выбор,
- Part BooleanFragments — работает как Part Compound, позволяя выбирать отдельные детали.
Важно отметить, что если детали точно соприкасаются, на булевом объекте будет создана непрерывная сетка, и для симуляции не потребуются дополнительные ограничения (за исключением случаев, когда используется Part Compound и узлы не совпадают, или свойство «Coherence Mesh» Gmsh установлено в false). Если между деталями есть даже небольшой зазор (или пересечение в случае Part Compound), сетка не будет непрерывной, и потребуются ограничения, такие как связывание или контакт. Проведение частотного анализа — хороший способ определить, является ли сетка непрерывной: если детали не соединены, первые формы мод с визуализированной деформацией с помощью фильтра деформации покажут разделение — детали будут «разлетаться».
Первая форма моды частотного анализа, визуализированная с помощью фильтра деформации — анализировались два куба с небольшим начальным зазором
Часто рекомендуется использовать булевы фрагменты в режиме Compsolid, а затем применять к ним Фильтр составных объектов, особенно при анализе сборок из нескольких материалов и твёрдых тел, встроенных в другие твёрдые тела без вырезов (как в руководстве Сдвиг композитного блока в МКЭ). Как видно на вкладке «Shape Content» инструмента Проверка геометрии (важно использовать этот инструмент в случае сомнений в таких ситуациях), фильтр составных объектов удаляет составной объект и оставляет только Compsolid, состоящий из нескольких твёрдых тел, соединённых своими гранями.
Обходы ошибок, таких как:
ERROR: femelement_table != count_femelements
Error in get_femelement_sets -- > femelements_count_ok() failed!
и:
*ERROR in calinput: no material was assigned
to element …
включают:
- оставление последнего материала без привязки к какому-либо твёрдому телу (он будет автоматически назначен всем твёрдым телам, не указанным в других определениях материалов),
- использование Netgen вместо Gmsh для создания сетки,
- небольшое разделение деталей и применение ограничений связывания для их соединения в симуляции.
Такие ошибки вызваны отсутствием или перекрытием определений материалов в некоторых элементах. Эта публикация на форуме содержит ссылки, которые ясно это демонстрируют, и вся ветка обсуждения может быть полезна при возникновении подобных проблем.
Выбор внутренних элементов
Выбор внутренних регионов (например, граней/объёмов) может быть сложным. Это может потребоваться для применения различных материалов, объёмных нагрузок или граничных условий (особенно в тепловых и электромагнитных анализах). Возможны несколько способов:
- включение отсекающей плоскости на время выбора и указание внутренних граней,
- скрытие булева объекта, отображение только одной из деталей, к которой он был применён, и выбор её,
- включение прозрачности и использование Представления выбора с включённой опцией «Список выбранных объектов», как описано здесь,
- выбор другого внешнего объекта и редактирование свойства «References» на вкладке «Data» для данной характеристики анализа (требует ручного указания номера геометрического объекта).
Manually editing the References property
introduced in 1.1: If the selected face of CompSolid (Boolean fragments with CompSolid mode + Compound filter standard workflow described in the Assembly geometries section) belongs to two solids, a pop-up menu appears, allowing the selection of the proper solid.
Основы создания сетки
Выбор размера элемента
Слишком грубая сетка — одна из наиболее распространённых причин неточностей и других проблем в методе конечных элементов (FEM). Часто это связано с настройками автоматического генератора сетки — по умолчанию он создаёт слишком грубую, неподходящую сетку, если размер элемента не задан вручную и остаётся по умолчанию. Всегда следует знать примерные размеры детали, особенно размер наименьшего важного элемента (для его определения можно использовать инструмент Std Measure), и задавать максимальный размер элемента на основе этих данных.Существует также параметр минимального размера элемента, который может предотвратить создание слишком мелких элементов вокруг малых геометрических особенностей. Такие мелкие элементы могут приводить к чрезмерно плотной сетке (а иногда даже к сбоям или зависаниям FreeCAD при попытке сгенерировать подобную сетку). В общем случае лучше начинать с более грубой сетки (её создание занимает меньше времени), посмотреть, как она выглядит (для этого требуется некоторый опыт), и при необходимости уточнить её. Часто имеет смысл использовать плотную сетку только в областях интереса (зонах с большими градиентами или концентрациями напряжений — например, в местах вырезов или надрезов) и относительно грубую сетку на удалении от них. Таким образом, количество элементов можно значительно сократить, что приведёт к уменьшению времени решения задачи. Локальное уточнение сетки определяется с помощью инструмента FEM MeshRegion.
Сетка по умолчанию, слишком грубая
Глобально уточнённая сетка
Локально уточнённая сетка
Выбор типа элемента
Выбор типа элемента — задача непростая и зависит от множества факторов, однако общее правило заключается в том, что гексагональные и квадратные элементы предпочтительнее тетраэдрических и треугольных. Тем не менее, сложные геометрии невозможно разбить на сетку с гексагональными элементами, и FreeCAD не способен корректно их генерировать (только с использованием алгоритма Subdivision генератора сетки Gmsh, но результаты отличаются от ожидаемых для гексагональной сетки).
Квадратные или преимущественно квадратные сетки могут быть нормально сгенерированы на поверхностях — см. [[2](https://forum.freecad.org/viewtopic.php?t=20351) эту тему на форуме]. Гексагональные элементы можно импортировать из внешних генераторов сеток, таких как [[3](https://gmsh.info) Gmsh], и использовать в рабочей среде FEM, как показано в [[4](https://www.youtube.com/watch?v=vylt24G7qj4&t=932s) этом видео].
Выбор порядка элементов
Выбор порядка элементов (первого или второго) зависит от условий анализа, но в большинстве случаев предпочтение отдаётся элементам второго порядка. Это особенно важно для треугольных и тетраэдрических элементов — их элементы первого порядка (линейные) обычно не рекомендуются для регулярного использования и должны применяться только как заполняющие элементы в областях, не имеющих большого значения. Однако, поскольку FreeCAD не может корректно генерировать гексагональные элементы, в некоторых случаях можно использовать линейные тетраэдры, если сетка достаточно плотная. Особенно это актуально при выполнении анализов с контактами.
Quad and hex meshes
Quad meshes
Quadrilateral elements can be generated on surface geometries using both meshers:
Quad-dominated mesh generated with Netgen
Hex meshes
Hexahedral meshes can be generated on volume geometries using both meshers with some significant limitations:
- Gmsh - set the ДанныеSubdivision Algorithm to All Hexahedra - however, the resulting elements are not shaped as expected from hexahedral meshes used in practice,
- Netgen - introduced in 1.1: for simple extruded shapes, hex or hex-dominated meshes can be created by extrusion if the ДанныеQuad Dominated property is enabled and the ДанныеZRefine property is set to Regular (Custom requires specifying the height of each element in the extrusion direction). The extrusion direction can be changed from the default Z using the ДанныеZRefine Direction property. Element height can be specified as a fraction of the total height using the ДанныеZRefine Size property. This approach works only for first-order meshes (unless the generated elements are all hexahedrons).
Hex-dominated mesh generated with Netgen's ZRefine algorithm
Отрицательные якобианы
Если соблюдать приведённые выше правила (особенно касающиеся корректности геометрии, упрощения модели и выбора размера элемента), сетка должна генерироваться корректно. Однако в некоторых случаях геометрию невозможно сильно упростить, или же сама процедура моделирования корректна, но всё равно приводит к появлению мелких рёбер и граней. В таких ситуациях генерация сетки с элементами второго порядка может завершиться неудачей из-за отрицательных якобианов.
Причина заключается в том, что генераторы сеток должны следовать форме CAD-модели и размещать узлы середины сторон элементов второго порядка непосредственно на геометрию. Для сложных форм это может привести к чрезмерному растяжению элементов, из-за чего они становятся инвертированными. Якобиан является одной из наиболее распространённых мер качества сетки — он отражает отклонение элемента от его идеальной формы. Он становится отрицательным, когда элемент «выворачивается наизнанку» (инвертируется) — либо вследствие сильной деформации во время анализа (не рассматривается здесь), либо из-за указанных выше проблем при генерации сетки.
Отрицательные якобианы в FreeCAD FEM могут быть обнаружены Gmsh или CalculiX. Их расположение в сетке подсвечивается, когда анализ CalculiX запускается с помощью кнопки Run solver calculations. Следующие рекомендации могут помочь устранить проблему:
- установить для свойства Second Order Linear объекта FEMMeshGmsh значение true — в этом случае узлы середины сторон элементов второго порядка просто добавляются в середину прямых (изначально) рёбер элементов первого порядка, без привязки к геометрии, что в большинстве случаев решает проблему;
- использовать Netgen вместо Gmsh — Netgen менее подвержен проблемам с отрицательными якобианами, однако он не сообщает о них, поэтому пользователь может обнаружить их только при запуске анализа;
- дополнительно уменьшить размер элемента;
- экспортировать геометрию и попробовать создать сетку в интерфейсе Gmsh или Netgen (NGSolve) либо в другом отдельном генераторе сеток, таком как Salome_Meca — эти инструменты имеют дополнительные функции для устранения отрицательных якобианов (например, в Gmsh есть так называемые «High-order tools»);
- использовать элементы первого порядка — этот вариант следует рассматривать только как последнее средство, поскольку тетраэдры первого порядка известны своей низкой точностью.
Независимо от приведённых выше рекомендаций, важно ещё раз подчеркнуть, что отрицательные якобианы обычно являются следствием неаккуратного моделирования и отсутствия подготовки геометрии к анализу (особенно часто это встречается в STEP-моделях, загруженных с различных сайтов). Даже если в таких случаях сетку всё же удаётся сгенерировать, результаты, скорее всего, будут низкого качества (вспомните правило GIGO, упомянутое в первом абзаце). Поэтому очистка и подготовка геометрии к анализу в FEM всегда должны быть приоритетом.
Исследования сходимости сетки
Исследования сходимости сетки рекомендуются для всех серьёзных проектов, требующих высокой точности результатов. Причина заключается в том, что результаты могут значительно изменяться, приближаясь к корректным значениям по мере уточнения сетки. Следует использовать следующий подход:
- После получения первых результатов и их фиксации (обычно это максимальное эквивалентное напряжение по Мизесу, напряжение по Мизесу в заданной точке и максимальное перемещение) уточните сетку (глобально или, предпочтительно, локально — с помощью FEM MeshRegion) и повторно запустите расчёт.
- Проверьте результаты и запишите их новые значения. Если они существенно отличаются от исходных, выполните дальнейшее уточнение сетки и повторите анализ.
- Повторяйте процесс, если результаты всё ещё заметно (обычно увеличиваются) изменяются при уточнении сетки.
Обычно полезно построить график зависимости интересующего результата от плотности сетки. Это позволяет легче определить момент, когда результаты начинают сходиться. Допустимая разница между результатами двух последовательных расчётов обычно составляет несколько процентов (например, менее 5%).
В некоторых случаях может происходить так, что максимальные напряжения будут расти бесконечно, независимо от того, насколько плотной будет сетка. Такой нефизический эффект называется сингулярностью напряжений. Он может возникать по следующим причинам:
- сосредоточенные силы, приложенные к объёмным или оболочечным моделям;
- граничные условия, заданные в точках (отдельных узлах);
- острые углы;
- контакт, происходящий в угловой точке.
Типичные способы устранения сингулярностей напряжений:
- прикладывать нагрузки и граничные условия к небольшим площадям, а не к точкам — см. раздел о разбиении выше;
- добавлять малые скругления к острым углам (исключение из правила об удалении мелких скруглений при упрощении геометрии для FEM);
- учитывать пластичность материала, чтобы обеспечить перераспределение напряжений и ограничить их значения уровнями, допустимыми определением пластичности, при этом контролируя степень текучести (пластическую деформацию);
- игнорировать сингулярности и анализировать напряжения вдали от них, если это возможно (на основе принципа Сен-Венана).
Типичные графики сходимости сетки:
- перемещение (зелёная кривая) сходится быстро,
- максимальное напряжение в области выреза, например отверстия (синяя кривая), требует больше итераций уточнения сетки для достижения сходимости,
- максимальное напряжение в остром углу с жёстким граничным условием (красная кривая) вообще не сходится. Возникает сингулярность напряжений, и для устранения этого эффекта необходимо добавить малое скругление и смоделировать соединение более реалистичным, гибким образом.
Эта страница получена от https://wiki.freecad.org/FEM_Geometry_Preparation_and_Meshing