1О продукте и о справочнике
↑ К оглавлению1.1Что такое WebCAE
WebCAE — пакет инженерного анализа методом конечных элементов полного цикла. В нём есть подготовка геометрии (импорт CAD и параметрическое построение), построение сетки, назначение материалов, граничных условий и нагрузок, расчёт и обработка результатов. Основная область — прочность и динамика конструкций: объёмные тела, оболочки, балки и их сочетания. Дополнительно поддерживаются теплопередача, связанные термомеханические задачи, акустика и течения жидкости.
Продукт работает на двух платформах с одним и тем же расчётным ядром:
- десктопное приложение (Windows, macOS) — нативный решатель, многопоточность, объём задачи ограничен только памятью машины;
- браузер — то же ядро, скомпилированное в WebAssembly; удобно для знакомства и небольших моделей, ограничено памятью вкладки и одним потоком.
Эталоном считается десктопный нативный путь. Числа верификации снимаются на нём. Если результаты платформ на какой-то модели различаются, верным считается нативный результат, а расхождение описывается явно (см. Платформы, производительность и контроль качества).
1.2Как читать справочник
Справочник описывает, что именно считает программа: в какой постановке, какими элементами и методами, с какими допущениями. Он не заменяет учебник по МКЭ, но формулы в нём взяты из реализации, а не из учебника. Где реализация проще классической постановки, это сказано прямо.
Разделы идут в порядке расчётного цикла:
- Геометрия и CAD и Сетки — откуда берётся расчётная модель.
- Модели материалов, Граничные условия, нагрузки и связи, Контакт и соединения — что задаёт пользователь.
- Библиотека конечных элементов — как дискретизируется модель.
- Линейные виды анализа, Нелинейные расчёты и динамика, Теплопередача и мультифизика — какие задачи решаются и в какой постановке.
- Решатели — как решаются получившиеся системы уравнений.
- Результаты, постпроцессинг и оценка прочности — что получает инженер и как это вычисляется.
- Проекты, сценарии и автоматизация, Платформы, производительность и контроль качества — как с этим работать и почему результатам можно доверять.
Типовая структура подраздела: назначение, постановка и уравнения, что задаётся и что получается, способ реализации, ограничения, проверка (ссылки на кейсы верификации), пример команды сценария.
1.3Статусы готовности
Каждый подраздел помечен одним из трёх статусов:
| Статус | Что означает |
|---|---|
| стабильно | Входит в выпущенную версию, доступно и из интерфейса, и из сценария, подтверждено кейсами верификации или сверкой с аналитическим решением. |
| бета | Реализовано, доступно пользователю и покрыто автоматическими тестами, но появилось после последнего выпуска или проверено на узком наборе задач. |
| эксперимент | Прототип, инженерная оценка или модуль с частичным охватом. Полной сверки с независимым эталоном пока нет; результаты требуют самостоятельной проверки. |
Статус ставится осторожно: если сомнение было между двумя, выбран более строгий. Статусы пересматриваются с каждым выпуском.
1.4Единицы измерения
Внутри решателя все величины находятся в согласованной системе СИ: длина в метрах, сила в ньютонах, напряжение, давление и модуль упругости в паскалях, плотность в кг/м³, температура в кельвинах. Решатель размерно-агностичен: он решает систему уравнений, и ответ верен только при согласованных единицах на входе. Поэтому перевод единиц выполняется в одном месте, на границе между моделью и решателем, и нигде больше.
Пользователь независимо выбирает две вещи:
- систему ввода нагрузок и свойств: СИ, метрическую инженерную (мм, Н, МПа) или имперскую;
- единицу длины сцены, в которой хранится геометрия; обычно миллиметры, как в исходном CAD.
Результаты показываются с подписанными единицами. Формулы справочника записаны в любой согласованной системе: если не оговорено иное, предполагается СИ.
1.5Проверка и верификация
Утверждения о точности опираются на открытую программу верификации: более двухсот задач с аналитическими решениями, задачи NAFEMS и MacNeal–Harder, нелинейные и динамические бенчмарки. Для каждой задачи опубликованы постановка, эталонное значение, полученное значение, отклонение и версия решателя, на которой выполнен прогон. По тексту справочника ссылки ведут на конкретные кейсы; полный список — на странице Верификация.
Допуск сверки с эталоном в программе верификации — 5 %. Ослаблять его, чтобы кейс прошёл, нельзя: расхождение больше допуска считается дефектом и устраняется в расчёте, а не в критерии.
1.6Связанные страницы
- Библиотека элементов — сводные карточки элементов.
- Язык сценариев DSL — полный справочник команд.
- MCP-сервер — управление моделью из ИИ-ассистентов.
- Верификация — все кейсы с числами.
2Геометрия и CAD
↑ К оглавлениюРасчёт в WebCAE начинается с геометрии: твёрдых тел, листов и линий в виде граничного представления (B-Rep). Тело приходит из CAD-файла, строится из примитивов и эскизов или собирается из стержней и оболочечных патчей. Всё дальнейшее — сетка, граничные условия, результаты — привязано к граням, рёбрам и вершинам этого представления. Поэтому раздел описывает не только способы получить геометрию, но и то, как к её элементам можно обращаться и что происходит с привязкой, когда геометрия меняется.
Каждая операция проходит через единый командный слой. Кнопка на ленте, пункт контекстного меню и строка DSL выполняют одну и ту же команду, поэтому всё, что построено мышью, воспроизводится скриптом (синтаксис — на странице /docs/dsl). Исключения названы в подразделах: срединные поверхности и синхронизация с Onshape доступны только из интерфейса, импорт файла по пути из DSL работает в пакетном режиме.
2.1Геометрическое ядро и единицыстабильно
Геометрию строит и проверяет открытое ядро Open CASCADE Technology (OCCT 7.9). Тело в документе бывает твёрдым (solid), листовым (shell), каркасным (wire) или точкой. Булевы операции, скругления, сшивка и проверка валидности выполняются средствами OCCT. Ядро собрано для десктопного приложения и для браузера (WebAssembly) из одного исходного кода.
Единицы устроены в три слоя.
- Геометрия живёт в миллиметрах. Координаты примитивов, эскизов и импортированных моделей — единицы сцены (мм).
- Солвер получает данные в СИ (метры, ньютоны, паскали, килограммы). Пересчёт выполняется на границе солвера в одном месте, пользователь его не видит.
- Единица скрипта задаётся командой
units m|mm|in. Она действует на размеры, которые не являются координатами сцены: размер элементаsize=, радиусы и размеры зон сгущения, процедурные балки, оболочки и точечные массы. Координаты команд построения тел (box,primitive,move) не пересчитываются и остаются миллиметрами сцены.
units считается метровым: mesh tet size=6 в нём означает шесть метров. Начинайте скрипт с units mm. Команды построения тел единицу скрипта не учитывают — это сознательное решение, но оно легко приводит к ошибке в смешанных скриптах.units mm
box dx=20 dy=20 dz=100
list faces of body12.2Импорт STEPстабильно
STEP (AP203, AP214, AP242) — основной формат обмена. Файл читает STEP-читатель OCCT; единицы файла приводятся к миллиметрам. Содержимое раскладывается на тела: твёрдые тела, при их отсутствии — оболочки, иначе весь результат одним телом. Имена тел берутся из данных STEP по возможности. Крупные сборки показываются постепенно, по мере тесселяции.
После чтения каждое тело проходит проверку валидности (аналог BRepCheck), и модель получает один из статусов готовности:
- валидное твёрдое тело — объёмную сетку можно строить;
- валидный лист — доступна только поверхностная сетка;
- требует проверки — часть тел сборки имеет замечания, остальные пригодны;
- не поддерживается или ошибка чтения — расчёт не запускается, причина выводится кодом.
Если проверка по какой-то причине не выполнялась, статус помечается как непроверенный и не выдаётся за «годный». Объёмная сетка листового тела блокируется явно, с кодом причины, а не молча подменяется другой.
В интерфейсе файл загружается кнопкой импорта или перетаскиванием на холст. Из DSL команда import с путём к файлу работает в пакетном (node) режиме; внутри приложения используйте загрузку через интерфейс.
import "bracket.step"
list faces of body12.3Импорт IGES и STLбета
IGES читается ядром OCCT, после чтения поверхности сшиваются в оболочки и, если замкнуты, — в тело. В DSL формат задаётся параметром format=iges или расширением файла. Как и для STEP, из DSL импорт по пути выполняется в пакетном режиме.
STL — сетка из треугольников, а не B-Rep. WebCAE читает бинарный и текстовый STL, склеивает совпадающие вершины, проверяет водонепроницаемость (каждое ребро — ровно у двух треугольников) и по ней относит тело к твёрдым или листовым. Чтобы к граням можно было обращаться по номеру, треугольники сегментируются на «грани» по двугранному углу между соседними треугольниками (порог по умолчанию — около 35°); границы сегментов становятся рёбрами. Для такого фасетного тела объёмная сетка строится по самим треугольникам.
2.4Нумерация топологиистабильно
Каждая грань, ребро и вершина получает номер. Это тот же номер, что виден в дереве модели рядом с узлом, и тот же адрес, который принимает DSL: surface number N, edge number N, vertex number N. Для тел нумерация идёт в дереве по телам.
Правила нумерации:
- номер выдаётся один раз на сущность и привязан к её устойчивому идентификатору в реестре топологии, а не к позиции в массиве;
- номер не переиспользуется после удаления: счётчик только растёт, чтобы ссылка в отчёте или скрипте не начала указывать на другую сущность;
- если грань пережила операцию с тем же устойчивым идентификатором, её номер прежний; новые грани получают новые номера;
- слово вида (
surface,edge,vertex) обязательно и проверяется:surface number 27отвергается, если 27 — вершина; - адреса по габариту (
face z-,vertex "x-,y-,z-") и голые индексы не поддерживаются и дают явную ошибку. В сборке «грани z-» не существует, и такой адрес молча попадал бы в чужую сущность.
Узнать номера можно командами list faces of <body> и list edges of <body>: они печатают номер, площадь, центроид и нормаль каждой грани либо длину, середину и направление каждого ребра.
list faces of body1
fix surface number 3
load surface number 5 pressure=-1000000list faces до такой операции, нужно перечитывать после неё. Когда привязка граничного условия теряется, запись остаётся и помечается (см. лечение геометрии).fix surface number N, например Пластина с отверстием и Подкреплённая B-Rep панель.2.5Примитивы, булевы операции и преобразованиястабильно
Базовый набор операций над телами:
- примитивы:
box,cylinder,sphere,cone,torus,wedge,pipe,hollowBox, полусферы (primitive <shape> params); - булевы операции
boolean union|cut|intersect target= tool=, сшивка и объединение (sew,union); - скругления и фаски рёбер (
fillet,chamfer), полое тело заданной толщины (hollow); - преобразования:
move,rotate,mirror,scale, линейный и круговой массивы (pattern); - построение по профилю:
sketch(контур по точкам),extrude,revolve,sweep,loft; - прямое редактирование граней: смещение (
offset_face,pull), перенос (move_face) и литейный уклон (draft_face).
Булева операция строится средствами OCCT с историей: ядро сообщает, какие грани изменены, порождены или удалены, и по этой истории переносятся номера и привязки.
units mm
box dx=60 dy=40 dz=10
primitive cylinder r=8 h=10
boolean cut target=body1 tool=body22.6Параметрическая CAD-модельбета
Параметрическая модель хранит не тело, а рецепт: эскиз, затем операции над ним. Правка эскиза или размера пересчитывает цепочку и заменяет тело на месте — оно сохраняет имя, цвет и номера.
Эскиз лежит на плоскости (xy, xz, yz, опорная плоскость или грань) в локальных координатах (u, v) в миллиметрах. Сущности эскиза: ломаная и прямоугольник, окружность, дуга. Операции над эскизом: extrude (добавить, вырезать или новое тело), revolve, sweep по пути-эскизу, loft по сечениям, thread (резьба — косметическая или геометрическая). Доступна правка эскиза: перенос, поворот, зеркало, смещение контура, обрезка и продление.
Ограничения эскиза включают совпадение точек, горизонталь, вертикаль, параллельность, перпендикулярность, коллинеарность, равенство, концентричность, середину, симметрию, касание, фиксацию и размеры (расстояния, угол, радиус, диаметр). Размеры можно называть и менять по номеру.
Решатель ограничений сводит их к невязкам \mathbf{r}(\mathbf{x}) по координатам эскиза и минимизирует \tfrac{1}{2}\lVert \mathbf{r}\rVert^{2} методом Левенберга–Марквардта с численным якобианом \mathbf{J}:
Число степеней свободы эскиза — n_{\text{dof}} = n_{\text{var}} - \operatorname{rank}(\mathbf{J}). Определение по рангу корректно и при дублирующих ограничениях, где разность «переменные минус уравнения» дала бы отрицательное число. Эскиз получает статус полностью определённого, недоопределённого (с числом степеней свободы) или переопределённого (с перечнем конфликтующих ограничений). Если система не решается, геометрия эскиза не изменяется частично.
Интерфейс: панель параметрических операций (FeaturePanel), группа «Операции» на ленте, ветви в дереве модели. DSL: команда cad с подкомандами sketch, extrude, revolve, sweep, loft, thread, constraint, dimension, solve, recompute, move, rotate, mirror, offset, trim, extend.
cad sketch plane=xy points=0,0,40,0,40,20,0,20 id=sketch1
cad extrude sketch=sketch1 distance=10
cad recompute2.7Лечение геометрии и auto-fixбета
Импортированная модель часто непригодна для сетки: зазоры между гранями, вырожденные рёбра, мелкие фаски и отверстия мельче элемента. WebCAE различает три действия.
- Лечение при импорте. Ограниченный по бюджету набор стадий: сшивка оболочек, исправление формы средствами OCCT (ShapeFix), слияние копланарных и соосных граней (UnifySameDomain), сборка замкнутой оболочки в тело. Результат проверяется на валидность, а повторный прогон на том же входе даёт ту же форму.
- Auto-fix перед сеткой. Работает по копии. Исходное тело, дерево модели и сырой STEP не изменяются ни при каком исходе. Мелкие особенности (короткие рёбра, малые грани, узкие слайверы, отверстия и скругления меньше элемента) заклеиваются, чтобы мешер не дробил сетку под них. Пороги привязаны к размеру элемента, который задаёт пользователь, а не к абсолютным миллиметрам. Каждая стадия обязана доказать, что стало не хуже: результат валиден, число тел не изменилось, объём не ушёл больше допустимого. Иначе стадия откатывается, а причина попадает в отчёт.
- Явные команды.
defeature <body> maxHoleRadius= maxFaceArea=удаляет отверстия и грани по вашим порогам;repair <body> [merge] [heal] tolerance=сливает швы и исправляет зазоры с заданным допуском;simplifyотбрасывает мелкие тела сборки по порогам объёма и диагонали;shrinkwrapстроит внешнюю оболочку сборки. Автоматический режим включается и выключается командойautofix on|off;autofix element=<mm>печатает отчёт для заданного размера элемента.
Граничные условия не теряются молча. Если стадия auto-fix унесла бы грань, с которой связано граничное условие, стадия откатывается на менее агрессивную конфигурацию. Если привязка всё же теряется (правка геометрии, повторный импорт), запись граничного условия остаётся в модели и помечается как осиротевшая, а отчёт перечисляет такие записи поимённо. Расчёт с осиротевшим условием не запускается, пока привязка не восстановлена: сетка без нужной грани выглядела бы как успешный расчёт другой задачи.
autofix on element=2
defeature body1 maxHoleRadius=1.5
repair body1 merge heal tolerance=0.012.8Импринт и разрезаниестабильно
Импринт наносит на грань линию или плоскость и рассекает грань по ней; в B-Rep появляются внутренние рёбра и новые грани с собственными номерами. Это основной способ получить на листе линии стрингеров и шпангоутов, зоны приложения нагрузки или участки закрепления, не меняя объём тела. Рёбра импринта становятся линиями сетки, поэтому стержни, посаженные на них, делят узлы с оболочкой.
Варианты команды:
imprint <body> points=x,y,z,…— ломаная, проецируемая на лист вдоль заданного направления или по нормали (project=);imprint <body> plane point=x,y,z normal=x,y,z— сечение листа или тела плоскостью;imprint <body A> <body B>— импринт двух тел друг на друга (общие следы на касающихся гранях);split target=<body> plane=<name>илиpoint= normal=— разрезание тела на независимые части.
Параметр fuzzy= задаёт допуск операции в единицах скрипта.
units mm
imprint body1 points=-10,100,0, 2010,100,0
list edges of body12.9Сборки из нескольких телбета
Сборка — набор тел в одном документе. Тело можно скрыть, подавить (исключить из расчёта), сдвинуть и повернуть. Пересечение тел определяется замером объёма их общей части. Касающиеся тела можно склеить в единую модель или оставить раздельными с контактом. При склейке WebCAE выравнивает топологию общих граней булевой операцией (fragment), а для реального объёмного пересечения посадки с натягом предлагает три режима: вырезать (объём отдаётся меньшему телу), разделить на части или оставить как есть (тогда материал в натяге считается дважды, о чём выводится предупреждение). Допуск отбора пар и допуск самой булевой операции задаются отдельно.
Перед расчётом проверяется связность сетки сборки: тела, которые «склеить всё» не смогло соединить (нет касания), образуют отдельные куски без закреплений, и линейный расчёт на них расходится. Такие случаи ловятся до решателя. Подробности склейки сеток — в разделе «Сетки».
2.10Срединные поверхностиэксперимент
Для тонкостенных деталей объёмная модель избыточна: лист толщиной 2 мм удобнее считать оболочкой. Операция «срединная поверхность» (только интерфейс, панель операций над геометрией) ищет пары почти параллельных граней, расстояние между которыми лежит в заданном диапазоне толщин, и строит между ними листовое тело. Находятся пары плоских и цилиндрических граней; области, сходящиеся в углах, замыкаются подтяжкой свободных кромок к плоскостям сопряжения. Найденная толщина пары выводится в имени листа; толщину сечения оболочки (section shell t=) нужно задать отдельно.
2.11Каркас, балки и оболочечные патчистабильно
Для ферм, рам и подкреплённых оболочек WebCAE строит расчётную модель напрямую, минуя твёрдое тело. Есть два способа.
Параметрический каркас frame. Узлы и стержни нумеруются с 1 в порядке создания. Стержень — балка Тимошенко с сечением из библиотеки или заданным размерами (прямоугольник, круг, труба, двутавр, швеллер, уголок, тавр, коробка); стержню можно задать иное сечение на втором конце (конус) и шарниры на концах. Оболочка задаётся патчами из четырёхугольных ячеек: плоским четырёхугольником (geom=quad), цилиндром или конусом (geom=cyl), линейчатой поверхностью между двумя ломаными (geom=ruled) или явной сеткой точек (geom=points). Узлы патча в пределах допуска совпадают с существующими, поэтому оболочка и стержни делят общие узлы. Рёбра жёсткости добавляются командой frame stiffen по линиям сетки патча.
Балки на рёбрах B-Rep. assign beam edges=… section=rect w= h= flush=outer|inner [ecc=] сажает стержни Тимошенко на выбранные рёбра листового тела (в том числе на рёбра импринта). Параметр flush прижимает ребро к внешней или внутренней поверхности обшивки, ecc смещает ось стержня по нормали. Смещение учитывается кинематически, так что эффективная жёсткость включает слагаемое теоремы Штейнера I = I_{0} + A\,e^{2} (здесь e — расстояние от оси стержня до срединной поверхности обшивки), а не только собственный момент инерции сечения.
Что получает пользователь: модель, в которой стержни и оболочки связаны общими узлами, а не жёсткими связями-приближениями. Расчёты — статика, модальный анализ, устойчивость; для модального анализа свободного тела (корпус судна, самолёт) предусмотрен режим без проверки механизма, формы с первой по шестую в нём жёсткие.
units mm
frame node at=0,0,0
frame node at=1000,0,0
frame member 1 2 section=rect w=20 h=40
frame support node=1 dofs=all
frame load node=2 force=0,0,-500
frame solve staticframe probe shellcheck: число незаменённых дублей узлов и T-стыков должно быть нулём, иначе конструкция разорвана.2.12Синхронизация с Onshapeбета
Приложение подключается к документу Onshape (авторизация OAuth 2.0), получает модель в формате STEP с указанием версии (microversion) и загружает её как обычный импорт. Повторная синхронизация заменяет импортированные тела новой версией и пытается перенести граничные условия, нагрузки, закрепления и контакты на изменённую геометрию.
Перенос идёт по геометрическому сопоставлению: для каждой грани, ребра и вершины старой модели ищется ближайшая по положению, ориентации и размерам сущность новой модели. Записи, для которых надёжного соответствия не нашлось, не удаляются: они возвращаются в списке «требуют проверки», и итоговое сообщение называет число перенесённых и неперенесённых условий. Обращение к новой геометрии идёт только номерами документа.
2.13Коннектор FreeCADэксперимент
Дополнение для FreeCAD добавляет команду «Analyze in WebCAE». Она экспортирует выбранные тела или все видимые тела документа в STEP и открывает их в WebCAE: в браузере или в десктопном приложении по собственной ссылке. Передача односторонняя и одноразовая.
Mod); публикация в каталоге FreeCAD Addon Manager не подтверждена. Автоматического теста связки с запущенным FreeCAD нет.2.14Импорт и экспорт сетокэксперимент
Готовую сетку можно взять из внешней программы и отдать наружу. Поддерживаются Abaqus (.inp), Gmsh (.msh; экспорт — формат 2.2) и Nastran (.bdf, .nas). Кроме сеток, экспортируются деформированная поверхность и изоповерхность оптимизации топологии (STL, STEP).
- Меню «Проект» экспортирует сетку с телами (
SOLID_<k>) и поверхностями (SURF_<N>, то естьsurface number N) и импортирует их обратно. Координаты в файле — в СИ (метры). - DSL:
import mesh file="model.inp"иexport mesh file="out.msh" [deformed] [scale=k]. Импорт сеток в DSL читает узлы и тетраэдры, без тел и поверхностей; экспорт пишет координаты в единицах сцены (мм) без пересчёта.
import mesh file="part.inp"
export mesh file="part_out.bdf"3Сетки
↑ К оглавлениюСетка превращает B-Rep-геометрию в конечные элементы. WebCAE строит тетраэдры (tet4, tet10) для произвольных тел, гексаэдры, призмы и пирамиды там, где геометрия позволяет, четырёхугольные и треугольные элементы оболочки на листах и балочные элементы вдоль линий. Типы элементов и их формулировки описаны на странице /docs/elements; здесь — как сетка строится, чем управляется и как оценивается её качество и достаточность.
Мешинг работает в двух средах: десктопное приложение (нативный процесс мешера) и браузер (WebAssembly). Оба собраны из одного исходного кода, но на одной и той же геометрии результат может отличаться числом элементов и качеством. Эталоном считается нативный путь; веб справочный. Некоторые возможности есть только в десктопе (пограничные слои, мешинг крупных сборок без ограничений) — это сказано в подразделах.
3.1Тетраэдральный мешерстабильно
Тетраэдры строит открытый мешер Netgen 6.2 поверх геометрии OCCT. Поверхностная сетка строится на гранях B-Rep, объёмная — методом Делоне с добором продвигающимся фронтом и последующей оптимизацией формы элементов (перестановки, сглаживание); подробно метод описан в Schöberl J., NETGEN: An advancing front 2D/3D-mesh generator based on abstract rules, Computing and Visualization in Science, 1997. Сетка конформна: на общей границе двух граней узлы совпадают.
Результат построения:
- узлы и тетраэдры первого (tet4) или второго (tet10) порядка;
- регион (номер тела) у каждого элемента, чтобы материалы назначались по телу;
- граничные треугольники, у каждого — номер грани B-Rep, из которой он порождён. Поэтому условия, заданные как
surface number N, переживают перестроение сетки: они привязаны к грани, а не к узлам.
Пользователь задаёт размер, плавность перехода (grading), плотность по кривизне (safety), минимальный размер и порядок элемента (управление размером). Есть три профиля качества: «Черновая» (быстрая грубая сетка без оптимизации, первый порядок), «Стандартная» и «Финальная» (полная оптимизация для рабочего расчёта).
Если сетка не построилась или получилась непригодного качества, мешер повторяет попытки с изменёнными параметрами. Это никогда не происходит молча: приложение показывает баннер, какие тела смешаны на изменённых настройках, какие грубее заказанного размера и почему (профиль, плотность или ограничение браузера). Тела, которые не удалось смешить, перечисляются отдельно и исключаются из расчёта только с вашего согласия.
Построение можно прервать кнопкой «Отмена» или командой mesh cancel. Для сборки частичный результат (уже смешанные тела) сохраняется.
units mm
box dx=60 dy=30 dz=10
mesh tet size=3 order=1mesh tet size=5, 0.48 %), Продольный отклик стержня (0.03 %), Пластина с отверстием (четверть модели против полной, 1.38 %).3.2Порядок элементов P1 и P2стабильно
Линейный тетраэдр tet4 даёт постоянные деформации в элементе и «запирается» на изгибе и в почти несжимаемых материалах. Квадратичный tet10 имеет десять узлов (четыре угла и шесть середин рёбер), деформации линейны, а ребро и грань могут быть криволинейными. На той же сетке tet10 обычно заметно точнее tet4; цена — число узлов, которое для типичной тетраэдральной сетки растёт примерно в 7–8 раз.
P2-сетка строится в два шага. Мешер строит P1-сетку, затем добавляет узлы середин рёбер и сдвигает те из них, что лежат на границе, на поверхность CAD: ребро и грань элемента получают кривизну исходной геометрии. После этого каждый элемент проверяется на положительный якобиан. Определитель отображения tet10 — точно кубический полином, поэтому его раскладывают по базису Бернштейна степени 3 на тетраэдре: если все 20 коэффициентов одного знака, якобиан положителен во всей области элемента (Johnen A., Remacle J.-F., Geuzaine C., Geometrical validity of curvilinear finite elements, J. Comput. Phys., 2013). У элементов, где условие нарушено, средние узлы выпрямляются локально, и сетка остаётся пригодной для расчёта. Критерий достаточный, не необходимый: выпрямление может сработать и там, где элемент был допустим.
Порядок задаётся глобально параметром order=1|2 команды mesh или переключателем «Линейные/Квадратичные» в панели сетки. Для гексаэдров порядок задаётся тем же переключателем: после построения hex8 серединные узлы ставятся в середину прямого ребра, а на криволинейном ребре — на поверхность примитива (hex20). Призмы и пирамиды гибридных сеток остаются первого порядка; квадратичные гибриды отключены (отказ вслух, см. гибридные зоны).
units mm
mesh tet size=4 order=23.3Локальный порядок элементабета
Деталь можно считать на tet4, а квадратичные элементы оставить только в нужной области. Размер h и порядок p при этом остаются независимыми настройками: зона refine zone … order=2 оставляет tet10 в элементах, пересекающих сферу, плюс один слой элементов перехода, а вне зоны остаются tet4.
Чтобы поле перемещений осталось непрерывным, на общем ребре P2-элемента и соседнего tet4 середина ребра связывается с его концами уравнением связи:
где u_{a}, u_{b} — перемещения угловых узлов ребра, u_{\text{m}} — перемещение его среднего узла. Связь снимает квадратичную добавку ровно на границе областей и подаётся в солвер как обычное уравнение связи.
units mm
mesh tet size=6 order=1
refine zone at=30,15,5 radius=8 size=1.5 order=23.4Управление размером элементастабильно
Размер элемента задаётся из нескольких источников одновременно, и итог определяет не приоритет, а минимум. В точке \mathbf{p} мешер получает
где h_{\text{glob}} — глобальный размер, h_{\text{face}} — размер, заданный на грани, R — локальный радиус кривизны, s — параметр плотности по кривизне (safety), h_{\text{zone},k} — размеры зон сгущения, накрывающих точку, h_{\text{min}} и h_{\text{max}} — нижний и верхний пределы размера. Следствия, которые легко принять неверно: размер на грани не «важнее» зоны (внутри зоны побеждает меньший), и ни один вход не может укрупнить результат относительно глобального размера.
Параметры:
- глобальный размер — задаётся в миллиметрах или пресетом по характерному габариту L: «Черновая» L/10, «Стандартная» L/20, «Мелкая» L/40;
- safety s — плотность по кривизне h \le R/s, диапазон 0.3–6, по умолчанию 1.5. Меньший s даёт более грубую сетку на скруглениях и отверстиях. Это единственный рычаг, когда размер определяет кривизна, а не ползунок: интерфейс показывает, сколько граней ограничено кривизной, и предсказывает число элементов;
- grading — плавность перехода от мелких элементов к крупным; меньше — плавнее;
- минимальный размер — нижний предел; 0 — автоматически (доля от максимального размера);
- размер на теле, грани, ребре, вершине — вкладки «Размер элемента» и «Локальный размер»; в DSL — зоны с привязкой к
surface number N; - зоны сгущения — сфера (центр, радиус, размер),
refine zone at=x,y,z radius=r size=h. Для локального гексаэдрового слоя есть цилиндр, кольцо вокруг отверстия, бокс, скругление и тороидальные зоны (см. гибридные зоны); - сброс зон —
refine clear.
Режим «Поле размеров» красит тела по действующему размеру элемента и показывает, какой источник его определил и упирается ли он в нижний предел. Из гистограммы качества можно выбрать худшие элементы и поставить локальный размер на тех гранях CAD, которых они касаются («Уточнить зону»).
units mm
mesh tet size=5 safety=1.2
refine zone at=50,20,0 radius=15 size=1.5
refine clearunits это метры (см. единицы). Размер на ребре и вершине реализуется как локальное сгущение вокруг них, а не как жёсткое задание длины элемента на ребре. Нижний предел размера может не дать построить заказанный размер; интерфейс сообщает об этом и называет итоговый размер.mesh tet size=12 и локальный слой) и Субмоделирование в задаче Кирша.3.5Пограничные слоиэксперимент
Для пристенных зон (гидродинамика, тонкие контактные слои) нужны призматические слои вдоль стенки. Слои задаются числом слоёв n, коэффициентом роста q (диапазон 1–5) и толщиной первого слоя h_{1}. Суммарная толщина — сумма геометрической прогрессии:
Интерфейс (панель «Пограничные слои») показывает эту суммарную толщину. Слои строятся Netgen на выбранных гранях; в расчётной сетке призмы разбиваются на тетраэдры. Слои задаются в интерфейсе десктопного приложения; те же параметры доступны из встроенной консоли JS.
mesh с параметрами слоёв (inflate=, layers=, ratio=, first=) отказывает: изотропное сгущение нельзя выдавать за пограничный слой. Функция новая и без независимой верификации; в интерфейсе она так и помечена.3.6Метрики качества сеткибета
Для тетраэдров в приложении считаются три группы величин.
Форма элемента (панель «Качество сетки»). Отношение рёбер \mathrm{ER} = \ell_{\max}/\ell_{\min} по шести рёбрам тетраэдра. Гистограмма строится по q = 1/\mathrm{ER} в десяти интервалах от 0 до 1; наведение на столбец подсвечивает элементы на холсте, клик оставляет только их.
Нормированный якобиан (SICN). В паспорте сетки поле называется SICN (signed inverse condition number), и с ним сравниваются пороги допуска. Фактически мешер считает для тетраэдра нормированный определитель рёбер, исходящих из его первой вершины:
Правильный тетраэдр даёт q_{J} = 1/\sqrt{2} \approx 0.71, прямоугольный угол из взаимно ортогональных рёбер даёт 1. Это не полное определение SICN из литературы (по которому правильный тетраэдр даёт 1): величина считается по одному углу и годится для сравнения сеток внутри WebCAE, но не для сопоставления с числами других пакетов. Вывернутым считается элемент, знак определителя которого отличается от преобладающего в сетке; нулевой определитель — вырожденный.
Допуск. Порог принятия q_{J,\min} \ge 0.1 применён так:
- принята — вывернутых и вырожденных элементов нет, \min q_{J} \ge 0.1;
- предупреждение — якобиан положителен везде, но \min q_{J} < 0.1 (слайверы): расчёт разрешён, выводится подсказка о возможной ненадёжности;
- отклонена — есть вывернутые или вырожденные элементы либо пустая сетка: расчёт блокируется;
- несвязные куски сетки (сборка распалась) блокируют расчёт безусловно: матрица жёсткости сингулярна.
Для гексаэдров порог тот же, мера — минимум масштабированного якобиана по всем восьми углам элемента (определение Verdict); неположительных быть не должно. Для tet10 валидность определяется по коэффициентам Бернштейна (см. порядок элементов).
Линейный hex8 запирается на изгибе: при малом числе элементов по толщине слоя прогиб получается заниженным, и интерфейс показывает такое предупреждение рядом с сеткой.
3.7Объёмная гексаэдральная сеткабета
Структурированные гексаэдры дают регулярную сетку с предсказуемым числом элементов по толщине, но построить их автоматически можно не для любого тела. Приложение пробует маршруты по убыванию простоты, а при неудаче честно возвращается к тетраэдрам.
- Структурированные примитивы. Параллелепипед, цилиндр (топология O-grid: центральный квадратный блок и четыре полярных блока), сфера, усечённый конус, полусферы: трансфинитная интерполяция,
mesh hex nx=… ny=… nz=…. - Протяжка. Тело определяется как призматическое («2.5D»): сечение с отверстиями протягивается по направлению; допускаются тела вращения.
- Декомпозиция. Тело делится на призмы, сечение каждой — четырёхугольный блок; интерфейсы согласуются, затем в каждом блоке строится структурированная гекса-сетка и узлы сшиваются.
- Отказ. Если ни один маршрут не дал принятой сетки, строится тетраэдральная сетка, а причина выводится кодом: молчаливой подмены нет.
Построенная гекса-сетка проходит приёмку перед использованием: объём сетки сверяется с точным объёмом тела, свободные грани должны лежать на границе B-Rep, сетка обязана быть одной связной компонентой без висячих узлов и граней, общих более чем для двух элементов, минимум масштабированного якобиана по восьми углам — не ниже порога качества (0.1). Сетка, не прошедшая приёмку, не уходит в расчёт.
В десктопном приложении дополнительно доступны внешние генераторы, если они установлены: HOHQMesh (плоские детали постоянной толщины) и блочный метод HexaBlock из SALOME. В режиме «Авто» они подключаются по цепочке «структурированная протяжка → HexaBlock → тетраэдры».
units mm
box dx=60 dy=30 dz=10
mesh hex size=5mesh tet и локальные гекса-зоны. Из DSL после mesh hex size=… поддержана статика одного тела на принятой гекса-сетке (расчёт в скриптовом пути идёт на WebAssembly-решателе); несколько тел, локальные гекса-зоны в том же скрипте, модальный анализ, устойчивость и тепло на такой сетке не поддержаны. Команда mesh hex decompose только строит сетку и печатает отчёт. Гекса-сетка строится одним и тем же кодом в браузере и в десктопе (нативной версии мешера нет).3.8Локальные гекса-зоны и гибридные сеткибета
Когда нужен гексаэдральный слой в одном месте (кромка отверстия, шейка вала, контактная накладка), остальное тело остаётся тетраэдральным. Зона задаётся относительно выбранной грани или объёма, остальные параметры — слоёв, прогрессия, способ сопряжения.
Виды зон:
refine tube surface number N thickness=t— слой вдоль цилиндрической грани (кромка отверстия, шейка вала);refine inflate surface number N thickness=t— слой вдоль плоской или сферической грани (контактная накладка);refine box at=… dx= dy= dz=— бокс внутри тела, заполняемый структурированными гексаэдрами (с обрезкой по границе приclip=on);refine sweep surface number A to surface number B— призма между двумя параллельными плоскими гранями одного тела.
Параметры слоя: layers (1–12), bias — коэффициент прогрессии толщин от стенки (1–3), elements=wedge|hex — тип элементов слоя, conform=weld|mpc — способ сопряжения.
Согласованность стыка. Билинейный след четырёхугольной грани гекса не совпадает с кусочно-линейным следом двух тетраэдров над той же гранью, поэтому простое склеивание hex8 с tet4 не проходит патч-тест. По умолчанию слой строится из призм (wedge6): призма над каждым треугольником интерфейса согласована с тетраэдрами по построению. При elements=hex переход выполняется пирамидами (pyr5): интерфейсная ячейка hex8 делится к собственному центру на пирамиды, а на гранях со стороны тетраэдров пирамиды заменяются двумя тетраэдрами с той же диагональю. Способ conform=mpc строит независимый слой и связывает его с тетраэдрами узловыми уравнениями связи.
Измеренное согласие смешанных сеток в патч-тесте (максимальная относительная ошибка перемещений): призмы со склейкой с тетраэдрами — около 10^{-14} (веб-платформа); прямая склейка hex8 с двумя tet4 — 3.1 \times 10^{-3} (нативная); переход hex8 → pyr5 → tet4 — 9 \times 10^{-15} (нативная). Числа разных платформ не смешиваются.
Для задачи Кирша (пластина с отверстием) гибридная сетка с призмами у кромки даёт ошибку максимума \sigma_{\theta} в пределах 0.1–0.9 % и среднеквадратичную ошибку по дуге отверстия 0.7–1.2 % на 1635–4473 степенях свободы. Чисто тетраэдральная сетка на 1374–12828 степенях свободы колеблется в пределах −17…+4 % по пику, а среднеквадратичная ошибка по дуге не опускается ниже 5.3 %.
units mm
refine tube surface number 12 thickness=3 layers=3 bias=1.2
refine sweep surface number 1 to surface number 2 layers=4elements=hex требует переходных пирамид; старый файл со склейкой hex8 прямо с tet4 к повторному расчёту не допускается — сетку нужно перестроить.3.9Сетки сборок и контактных парбета
У сборки две задачи, и они противоположны. Тела, связанные неподвижно (сварка, клей, посадка с натягом), должны делить узлы на стыке — иначе матрица жёсткости распадается на несвязные блоки. Тела, которые могут расходиться или скользить (контакт), мешаются независимо, а стык обеспечивает контактный алгоритм решателя.
Склейка (bonding=1). Касающиеся тела мешатся как одна конформная модель: общие грани получают общие узлы по построению. Режимы: склеить всё, склеить выбранные группы, не склеивать (bonding=0). Для касаний, зазоров в пределах допуска и перекрытий выполняется своя булевая операция; допуск отбора пар (bondtol=) и допуск самой операции (fuzzy=) задаются раздельно. Режим стыков glue=auto|contact|full: быстрая склейка по касанию, полный поиск пересечений либо автоматический выбор. Перекрытие трактуется параметром interference=cut|split|ignore: отдать объём меньшему телу (по умолчанию), раздробить пересечение (объём точный, но осколок посадки может быть тонкой плёнкой) или оставить как есть (материал в натяге считается дважды).
Контактные пары. Тела, не склеенные между собой, мешаются каждое отдельно; узлы на контактных поверхностях не обязаны совпадать. Перед расчётом проверяется готовность интерфейса: контактные области могли схлопнуться в один регион, пар не нашлось, зазор слишком велик, либо склеенная пара не конформна. Каждый такой исход сообщается явно.
Параллельный мешинг. При раздельном мешинге тела строятся независимо и параллельно, прогресс показывается по телам, результат собирается в одну сетку. Если тело не удалось смешить в нативном режиме, оно может быть добрано встроенным веб-мешером; приложение предупреждает, что такие сетки могут немного отличаться. При склейке сборка мешится как единая модель.
Сшивка готовой сетки. Команда weld [tol=] и панель «Сшить» объединяют совпадающие узлы уже построенной сетки в пределах допуска (0 — автоматически, малая доля диагонали габарита). Это сшивка узлов, а не геометрии: полезно для оболочечных патчей, смешанных намеренно.
units mm
mesh tet size=8 bonding=1 glue=auto interference=cutinterference=split могут сорвать мешинг. Размер safety на отдельном теле действует, только когда тела мешатся по отдельности. Мешинг крупных сборок в браузере ограничен памятью вкладки, поэтому настройки там фиксированы; для тяжёлых сборок используйте десктопное приложение.3.10Сетки оболочек и балокбета
Оболочки. Лист (B-Rep shell) мешится поверхностной сеткой: mesh shell size=h element=tri|quad. Треугольники строятся на каждой грани в параметрическом пространстве — ограниченная триангуляция Делоне по контуру грани с проекцией на поверхность. Четырёхугольники получаются из треугольников по схеме «1 → 3»: каждый треугольник делится на три четырёхугольника через центроид и середины рёбер. Середина ребра общая у соседей, поэтому сетка конформна на швах граней, а элементы целиком четырёхугольные при любом числе треугольников. Размер ребра четырёхугольника составляет от 0.29 до 0.5 длины ребра исходного треугольника, поэтому исходная триангуляция строится заметно крупнее.
Для граней-четырёхугольников с прямыми сторонами (коробки, пластины) параметр pattern=structured (вместе с element=quad) строит структурированную сетку трансфинитным блендингом Кунса с согласованными делениями рёбер. Если в форме есть неподходящая грань (отверстие, дуга), команда отказывает с номером грани, а не смешивает несовместимые сетки.
Балки. Балочная сетка строится вдоль выбранных линий (рёбер B-Rep): задаётся число элементов или размер; общие узлы со смежной оболочкой возникают при посадке балки на ребро (Каркас и балки). Элементы для сборки компилируются на шаге расчёта.
units mm
mesh shell size=10 element=quad
assign beam edges=3,7 section=rect w=10 h=30 flush=outermesh shell element=quad pattern=structured, 0.09 %). Тест защемлённой пластины против решения Тимошенко на четырёхугольной сетке даёт отклонения −2.2, −0.8, −0.35 и +0.35 % на размерах 25, 12, 10 и 6 мм.3.11Индикатор ошибки Зенкевича–Жу и адаптивное сгущениебета
Максимум напряжения не отличает реальную концентрацию (отверстие, галтель) от артефакта грубой сетки. Для этого используется индикатор ошибки Зенкевича–Жу. Конечно-элементное поле напряжений \boldsymbol{\sigma}_{h} разрывно между элементами. Восстанавливается непрерывное поле \boldsymbol{\sigma}^{*} локальным сглаживанием по патчу элементов вокруг узла, и ошибка на элементе оценивается энергетической нормой невязки:
где \mathbf{C} — матрица упругости. Относительная ошибка модели \eta_{\text{rel}} = \eta \,/\, \sqrt{\lVert\boldsymbol{\sigma}^{*}\rVert_{E}^{2}+\eta^{2}}. Для tet10 восстановление выполняется по суперсходящимся точкам Гаусса методом SPR (Zienkiewicz O.C., Zhu J.Z., The superconvergent patch recovery and a posteriori error estimates, Int. J. Numer. Meth. Eng., 1992); интеграл по элементу берётся точно, без квадратурной погрешности. Для tet4 и смешанных сеток используется усреднение по узлам, у которого точность ниже.
Команда hotspots по индикатору и полю напряжений находит очаги и их размеры, команда refine adaptive замыкает цикл: расчёт → очаги → зоны сгущения в очагах → перестроение сетки → расчёт. Цикл останавливается, когда выполнено одно из условий: индекс сходимости сетки (GCI, см. исследование сходимости) не выше цели, диагностирована сингулярность, относительная ошибка \eta_{\text{rel}} не выше заданной, исчерпано число проходов.
Параметры refine adaptive: passes — число проходов от 1 до 8 (по умолчанию 3); gci — целевая полоса GCI в процентах (по умолчанию 5); tol — целевая относительная ошибка ZZ в процентах; refine — во сколько раз уменьшать размер элемента в очаге на проходе (по умолчанию 1.8); minsize — нижний предел размера; grading, max_hotspots, at=, radius= — плавность перехода, число очагов и явная область измерения. После выполнения доступны замеры adaptive_passes, adaptive_verdict, adaptive_gci_percent, adaptive_richardson_peak, adaptive_zz_error_percent.
units mm
solve
refine adaptive passes=3 gci=5 tol=2 refine=1.6 minsize=0.5
probe adaptive_verdictСубмоделирование (submodel at=… box=… size=… order=2) продолжает ту же идею: вокруг концентратора вырезается подобласть, мешится мелко (в том числе квадратичными tet10), а на секущие границы переносятся перемещения глобальной грубой модели по принципу Сен-Венана (метод граничной интерполяции перемещений). Перемещения узлов секущих границ, включая средние, задаются неоднородным условием Дирихле через уравнения связи.
submodel и refine adaptive в одной постановке: грубая P1-сетка (h = 6 мм) занижает пик на 41.3 %, итог после субмоделирования с локальным tet10 отличается от K_t = 3.08 на −3.57 %. Один кейс на две функции, поэтому статус осторожный.3.12Исследование сходимости по сеткебета
Сходимость по сетке — это не сходимость решателя. Здесь серия независимых расчётов на всё более мелкой сетке отвечает на вопрос: к чему стремится выбранная величина (чаще всего — пик напряжения у концентратора). Если она не устаканивается, любое число в таблице результатов — артефакт сетки.
Метрика ряда — максимум поля внутри сферы вокруг очага предыдущей итерации, а не глобальный максимум: на разных сетках глобальный максимум может стоять в разных местах модели (у отверстия на одной, у заделки на другой), и тогда сравниваются разные точки. Характерный размер элемента берётся из самой сетки в сфере как h = \overline{\Delta V_{e}}^{\,1/3} (Celik I.B. et al., Procedure for estimation and reporting of uncertainty due to discretization in CFD applications, J. Fluids Eng., 2008), а не из заказанного размера: мешер выдаёт не тот размер, который просили.
Для трёх последних сеток с размерами h_{1} > h_{2} > h_{3} и значениями f_{1}, f_{2}, f_{3}:
Здесь p — наблюдаемый порядок сходимости, f_{\text{ext}} — экстраполяция Ричардсона на бесконечно мелкую сетку, GCI — индекс сходимости сетки по Роучу (ASME V&V 20), полоса неопределённости равна \mathrm{GCI}\cdot\lvert f_{3}\rvert. Порядок p считается знаковым (у Celik стоит модуль всего выражения): знак p и есть диагноз расходимости. Для неравных r_{21}, r_{32} берётся среднее геометрическое r_{\text{eff}}, а не итерационная формула Celik.
Вердикт по ряду:
- сошлось — GCI не выше цели (по умолчанию 5 %), результат записывается как f_{\text{ext}} \pm полоса;
- продолжайте измельчать — ряд сходится, но полоса ещё широкая; то же при знакопеременных приращениях (ряд качается вокруг предела, экстраполяция недостоверна);
- вероятно сингулярность — p \le 0, приращения не убывают: пик растёт с измельчением. Это типично для острого входящего угла (напряжение растёт как h^{-\lambda}, для угла 270° \lambda \approx 0.456), точечной силы или жёсткой заделки по ребру. Сетка не поможет — добавьте скругление или смените постановку;
- мало данных — меньше трёх сеток; некорректно — размер не убывает, пик нулевой или нечисловой, либо сетка между итерациями не менялась.
Молчаливой остановки по лимиту итераций нет: вердикт всегда один из перечисленных.
4Модели материалов
↑ К оглавлениюРаздел описывает определяющие соотношения, которые считает WebCAE: что входит в закон, какие параметры задаёт пользователь, в каких видах анализа закон работает и чем проверен. Часть моделей реализована в вычислительном ядре, но не доведена до расчёта тела; такие модели помечены как экспериментальные, и в их подразделах это сказано прямо.
Соглашения. Растяжение положительно. Напряжения и деформации в законах записаны в порядке Фойгта [xx,\,yy,\,zz,\,xy,\,yz,\,zx]; сдвиговые деформации инженерные (\gamma_{ij} = 2\varepsilon_{ij}), сдвиговые напряжения тензорные (\tau_{ij} = \sigma_{ij}). На границе решателя всё в СИ (Па, К, кг/м³, с); в интерфейсе поля ввода принимают МПа, ГПа, psi, °C и пересчитывают в СИ при вводе. В DSL напряжения и модули задаются в паскалях, температуры пластичности — в кельвинах.
| Модель | Анализ | Статус |
|---|---|---|
| Изотропная упругость | все линейные и нелинейные виды | стабильно |
| 3D-ортотропия с ориентацией | линейная статика, тетраэдры | бета |
| Слоистая оболочка | статика, модальный, устойчивость, тепловая нагрузка | стабильно |
| Пластичность J2 | нелинейная статика солидов (десктоп), явная динамика | стабильно |
| Джонсон–Кук | явная динамика; в статике без скорости и температуры | стабильно |
| Нео-Гук | нелинейная статика солидов | стабильно |
| Критерии разрушения материала | явная динамика (эрозия) | бета |
| Критерии прочности по упругому решению | постпроцессор | бета |
| Муни–Ривлин, Йео, Арруда–Бойс, Огден | ядро; в расчёт тела не подключены | экспериментально |
| F = Fe·Fp, Нортон–Бейли, Перзина, Прони, Друкер–Прагер, GTN | ядро; в расчёт тела не подключены | экспериментально |
4.1Линейно-упругий изотропный материалстабильно
Базовый закон всех линейных расчётов и упругая часть всех нелинейных. Достаточен, пока напряжения не доходят до текучести, а деформации малы по сравнению с единицей.
Закон Гука в форме Фойгта:
Блок \mu на диагонали соответствует инженерным сдвигам: \tau_{xy} = \mu\gamma_{xy}. Допустимо -1 < \nu < 0.5. При \nu \to 0.5 матрица \mathbf{C} вырождается по объёмной части, и линейные тетраэдры запираются; для почти несжимаемых материалов берите элементы второго порядка (см. элементы).
Пользователь задаёт модуль Юнга E, коэффициент Пуассона \nu, плотность \rho (см. следующий подраздел). Результат — перемещения, деформации, напряжения и производные величины (эквивалентные по Мизесу, главные), которые разбирает раздел линейных анализов.
Один материал назначается телу целиком. Для сборки из нескольких тел у каждого тела свой материал, в том числе разные E, \nu, \rho на стыке тел.
material E=200e9 nu=0.3 density=78504.2Плотность, тепловое расширение и температурные зависимостистабильно
Плотность \rho (кг/м³) нужна модальному анализу, динамике, гравитации и ускорению; без неё запрос с массой отказывает, а не берёт умолчание. Для оболочки и ламината масса берётся из плотности материала или слоёв.
Тепловое расширение задаётся коэффициентом линейного расширения \alpha (1/К). Тепловая деформация изотропна, напряжение определяется механической частью:
Тепловые нагрузки и связанные задачи описывает раздел тепла и мультифизики. Здесь важно, что \alpha постоянен: зависимости \alpha(T) нет. Температурные зависимости в моделях материалов есть в трёх местах: таблица теплопроводности \kappa(T) (kappa_table="T:k,…", температура в °C, между узлами линейно, вне таблицы — константа крайнего значения), температурный множитель предела текучести в модели Джонсона–Кука и тепловое расширение слоёв ламината. Модуль Юнга от температуры не зависит.
4.3Библиотека материаловстабильно
Встроенная библиотека — единая таблица пресетов; ею пользуются карточка материала в интерфейсе, DSL и программный интерфейс. Пресет несёт E, \nu, \rho, теплопроводность, теплоёмкость, \alpha и предел текучести для коэффициента запаса.
- Стали: общая конструкционная (200 ГПа, 0.3, 7850 кг/м³), 20, 40Х, 09Г2С, нержавеющая 304.
- Алюминий: общий (70 ГПа, 0.33), Д16Т, 6061.
- Титан: общий (116 ГПа, 0.32) и ВТ6; медь (120 ГПа, 0.34); пластики ABS и PA6.
- Резина как нео-гуковский материал: \mu = 3.36 МПа, K = 166.7 МПа.
- Пластичные пресеты: сталь S355 (J2, \sigma_y = 355 МПа), алюминий 6061-T6 (J2), медь OFHC и сталь 4340 (Джонсон–Кук).
- Среды для CFD: воздух, вода, моторное масло, керосин.
Значения справочные, групповые: теплоёмкость и пределы для конкретной марки возьмите из своего сертификата. Предел текучести в обычном пресете нужен только коэффициенту запаса и не включает пластичность; пластичность появляется у пресетов с явным законом и у материалов, где вы её задали.
Пользователь добавляет свои материалы в библиотеку проекта, правит их и назначает телам. Для слоистых оболочек есть отдельная библиотека ортотропных материалов слоя (встроенный однонаправленный пластик 140/10 ГПа).
В DSL пресет подставляет базу, а явные параметры её переопределяют:
material steel E=210e94.43D-ортотропный материал и ориентациябета
Для материалов, у которых свойства различаются по трём осям: однонаправленные и тканые композиты, древесина, прокат. Закон задаётся девятью независимыми константами E_1, E_2, E_3, \nu_{12}, \nu_{23}, \nu_{13}, G_{12}, G_{23}, G_{13} в осях материала и ориентацией осей в каждом элементе.
Матрица податливости в порядке Фойгта, сдвиги инженерные:
Коэффициенты Пуассона определены как \nu_{ij} = -\varepsilon_j/\varepsilon_i при одноосном \sigma_i; симметрия задаёт \nu_{ji} = \nu_{ij}E_j/E_i. Положительная определённость проверяется до расчёта: E_i > 0, G_{ij} > 0, 1 - \nu_{ij}\nu_{ji} > 0 для трёх пар и
Непроходящий набор отказывает с названием нарушенного условия.
Ориентация. В центроиде каждого элемента строится правая тройка (\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3), строки матрицы \mathbf{Q} — её векторы в глобальных осях. Матрица жёсткости элемента получается поворотом Бонда, а напряжения возвращаются в оси материала:
Режимы задания тройки:
surface— ось \mathbf{e}_3 равна внешней нормали ближайшего к центроиду треугольника опорной грани; \mathbf{e}_1 — проекция заданного направленияaxisна касательную плоскость, \mathbf{e}_2 = \mathbf{e}_3\times\mathbf{e}_1. Подходит для слоистых деталей по криволинейной поверхности.cartesian— единая тройка: \mathbf{e}_3 вдольnormal, \mathbf{e}_1 — проекцияaxis.cylindrical— \mathbf{e}_3 радиально от оси цилиндра черезorigin.spherical— \mathbf{e}_3 радиально от точкиorigin.
Угол angle поворачивает \mathbf{e}_1, \mathbf{e}_2 вокруг \mathbf{e}_3: \mathbf{e}_1' = \cos\theta\,\mathbf{e}_1 + \sin\theta\,\mathbf{e}_2. Если проекция заданной оси вырождена, берётся запасное направление; число таких элементов фиксируется в результате. Тройки можно показать на модели.
Решение отдельное от общей изотропной сборки: для тетраэдров TET4 и TET10 жёсткость собирается по повёрнутым матрицам, система решается методом сопряжённых градиентов с блочным предобуславливателем по узлам, связи (CE, жёсткие области) вводятся штрафом. Результаты: перемещения, напряжения в глобальных осях и в осях материала (localStressXX…XZ, зонд ortho_local_s11_max и аналоги), поле троек.
material E1=140e9 E2=10e9 E3=10e9 nu12=0.3 nu23=0.4 nu13=0.3 G12=5e9 G23=3.5e9 G13=5e9 density=1600
orientation surface number 3 axis=1,0,0 angle=30В интерфейсе ортотропный закон выбирается в карточке материала («Ортотропная 3D», девять констант, опорная поверхность, направление, угол); режимы цилиндрический и сферический доступны из DSL.
4.5Слоистые оболочки: теория ламинатовстабильно
Слоистая оболочка заменяет набор слоёв одним осреднённым по толщине законом — пакетом жёсткостей. Подходит для композитных панелей и сэндвичей, где толщина мала по сравнению с размерами. Слои задаются снизу вверх (от -z_e к +z_e) своим ортотропным материалом, толщиной и углом.
Слой в осях материала, плоское напряжённое состояние:
Поворот на угол \theta от оси x_e элемента против часовой стрелки вокруг +z_e (c = \cos\theta, s = \sin\theta):
Члены \bar Q_{16}, \bar Q_{26} пропорциональны \sin 2\theta и меняют знак вместе с углом; на 0^\circ и 90^\circ они равны нулю, поэтому проверки только на этих углах знак и сдвиговые члены не ловят. Корпус проверок продукта прогоняет \pm15^\circ, \pm30^\circ, \pm45^\circ, \pm60^\circ, \pm75^\circ и несимметричные пакеты.
Для слоя k между z_{k-1} и z_k (от отсчётной поверхности) пакет жёсткостей на единицу ширины:
Здесь \boldsymbol\varepsilon_0 = [\varepsilon_{xx}, \varepsilon_{yy}, \gamma_{xy}], \boldsymbol\kappa = [\kappa_{xx}, \kappa_{yy}, \kappa_{xy}] с инженерной кривизной кручения, \varepsilon(z) = \varepsilon_0 + z\kappa. Матрица связи \mathbf{B} ненулевая у несимметричных пакетов; растяжение тогда вызывает изгиб. Поперечный сдвиг слоя \bar{\mathbf{Q}}_s строится из G_{13}, G_{23} тем же поворотом:
Поправка на неравномерность сдвига: по умолчанию k_s = 5/6 на все слои. Вариант shear=energetic берёт k_s^{(k)} = \min\bigl(1,\ \tfrac56\,G_{\max}/G_k\bigr) по слоям (мягкий сердечник сэндвича приближает k_s к 1); это инженерная эвристика, не вывод из условий равновесия.
Смещение отсчётной поверхности на z_0 от срединной плоскости (offset=bottom|middle|top|number) пересчитывает пакет без повторной сборки: \mathbf{B}' = \mathbf{B} + z_0\mathbf{A}, \mathbf{D}' = \mathbf{D} + 2z_0\mathbf{B} + z_0^2\mathbf{A}.
Элемент — четырёхузловой MITC4 (Dvorkin, Bathe 1984; Bathe, Dvorkin 1985): сдвиг по ковариантным деформациям в точках связи, мембрана и изгиб на 2\times 2 точках Гаусса, вращение вокруг нормали стабилизировано штрафом Хьюза–Брецци с мембранной сдвиговой жёсткостью A_{66}. Пакет (\mathbf{A},\mathbf{B},\mathbf{D},\mathbf{A}_s) входит в элемент напрямую, так что изотропная оболочка — частный случай пакета (\mathbf{A} = Et/(1-\nu^2)\,\mathbf{C}, \mathbf{D} = Et^3/(12(1-\nu^2))\,\mathbf{C}, \mathbf{B}=0).
Ось x_e, от которой отсчитываются углы слоёв, задаётся проекцией опорной оси на оболочку (axis=X|Y|Z), системой координат (cs=) и поворотом phi=. Если опорная ось почти нормальна к элементу, берётся запасная ось, число таких элементов сообщается.
Тепловая нагрузка оболочки входит через усилия \mathbf{N}_T = \int \bar{\mathbf{Q}}\,\bar{\boldsymbol\alpha}\,\Delta T\,dz и моменты \mathbf{M}_T; напряжения слоя считаются по механической деформации \varepsilon - \bar\alpha\Delta T(z). Для слоя нужны \alpha_1, \alpha_2 (вдоль и поперёк волокна).
Что задаёт пользователь: ортотропный материал слоя (E1 E2 nu12 G12 G13 G23, плотность, прочности, \alpha_1, \alpha_2) и раскладку (plies="name:thickness:angle,…", symmetric, repeat, offset, shear). Толщины слоёв задаются в единицах длины скрипта, модули в паскалях. В интерфейсе — редактор раскладки слоёв в сечениях оболочек. Постановка одна и та же на обеих платформах: в десктопе (эталон) оболочки считаются нативным путём, в браузере — веб-сборкой.
ortho name=ud E1=140e9 E2=10e9 nu12=0.3 G12=5e9 G13=5e9 G23=3.5e9
section shell laminate plies="ud:0.25:45,ud:0.25:-45,ud:0.25:0" symmetric=truemesh shell element=quad): у треугольного элемента нет связи мембраны с изгибом. Не поддержаны: геометрическая нелинейность многослойного пакета, неявная динамика (масса ламината к ней не подключена, расчёт не подменяется изотропной оболочкой). Теория первого порядка: линейный по толщине профиль перемещения, постоянный по толщине сдвиг. Относительно трёхмерной упругости она занижает прогиб толстых пластин: -10 \ldots -12\,\% при отношении сторона/толщина 4–10, -4\ldots-5\,\% при 20, -0.2\,\% при 100 (перекрёстный пакет, эталон — трёхмерное решение Пагано, воспроизведённое независимым кодом).4.6Критерии отказа слоя и межслойные напряжениябета
Постпроцессор по слоям: по обобщённым деформациям оболочки в элементе (или их узловому восстановлению SPR) считаются напряжения слоя в осях материала (\sigma_1, \sigma_2, \tau_{12}) в точках низ, середина, верх слоя, затем индексы отказа. Для критериев нужны прочности слоя X_t, X_c, Y_t, Y_c, S в ortho; без любой из них критерий отказывает с именем поля.
- Максимальных напряжений: FI = \max\bigl(\lvert\sigma_1\rvert/X,\ \lvert\sigma_2\rvert/Y,\ \lvert\tau_{12}\rvert/S\bigr), X и Y выбираются по знаку напряжения.
- Цай–Хилл: FI = (\sigma_1/X)^2 - \sigma_1\sigma_2/X^2 + (\sigma_2/Y)^2 + (\tau_{12}/S)^2.
- Цай–Ву: FI = F_1\sigma_1 + F_2\sigma_2 + F_{11}\sigma_1^2 + F_{22}\sigma_2^2 + F_{66}\tau_{12}^2 + 2F_{12}\sigma_1\sigma_2, F_1 = 1/X_t - 1/X_c, F_{11} = 1/(X_tX_c), F_{12} = -\tfrac12\sqrt{F_{11}F_{22}}.
- Хашин (плоский, четыре моды): разрыв волокна при растяжении (\sigma_1/X_t)^2 + (\tau_{12}/S)^2, потеря устойчивости волокна (\sigma_1/X_c)^2, растрескивание матрицы при растяжении (\sigma_2/Y_t)^2 + (\tau_{12}/S)^2, при сжатии (\sigma_2/2S_{23})^2 + \bigl[(Y_c/2S_{23})^2 - 1\bigr]\sigma_2/Y_c + (\tau_{12}/S)^2; индекс слоя — максимум по модам.
- Расслоение: FI = (\tau_{13}/S_{13})^2 + (\tau_{23}/S_{23})^2 по межслойному сдвигу.
Запас прочности RF — множитель нагрузки, при котором FI = 1: для линейного критерия 1/FI, для квадратичных 1/\sqrt{FI}, для Цай–Ву и «матрица–сжатие» Хашина — положительный корень уравнения a\lambda^2 + b\lambda = 1. Зонды DSL: laminate_fi_<criterion>, laminate_rf_<criterion>, laminate_s1, laminate_s2, laminate_t12, laminate_t13, laminate_t23 с суффиксом _plyN для слоя N (1 — нижний).
Межслойные напряжения по теории первого порядка: \tau_{13}, \tau_{23} постоянны по толщине слоя. Опция interlaminar=equilibrium восстанавливает \tau_{xz}, \tau_{yz} интегрированием уравнений равновесия по толщине от свободной нижней грани (градиенты берутся по соседним элементам сетки), \sigma_{zz} — оценка по тому же принципу.
4.7Пластичность J2стабильно
Модель Губера–Мизеса для металлов: упругая работа до предела текучести, затем пластическое течение с упрочнением. Применяется в нелинейных расчётах объёмных тел (малые деформации или геометрическая нелинейность) и в явной динамике. Общая схема нелинейных итераций описана в разделе о нелинейности материала.
Поверхность текучести с тензором обратных напряжений \boldsymbol\alpha:
где \mathbf{s} — девиатор напряжения. Интегрирование — радиальное возвращение (Simo, Hughes, Computational Inelasticity, 1998, гл. 3; Wilkins, 1964). Пробный упругий шаг \mathbf{s}^{\mathrm{tr}} = 2\mu\,\mathrm{dev}(\boldsymbol\varepsilon - \boldsymbol\varepsilon_p); если f^{\mathrm{tr}} \le 0, шаг упругий. Иначе, с нормалью \mathbf{n} = \boldsymbol\xi^{\mathrm{tr}}/\lVert\boldsymbol\xi^{\mathrm{tr}}\rVert:
Скалярное уравнение для приращения эквивалентной пластической деформации \Delta p строго монотонно, корень единственный: для линейного упрочнения \Delta p = f^{\mathrm{tr}}/(3\mu + H), для кривой — безопасный Ньютон с бисекцией на скобке [0,\ f^{\mathrm{tr}}/3\mu]. Касательная — алгоритмическая (согласованная с интегратором), симметричная:
Упрочнение. Кривая \sigma_c(p) — диаграмма односного монотонного нагружения:
- идеальная пластичность: \sigma_c = \sigma_{y0};
- линейное по касательному модулю E_t: \sigma_c = \sigma_{y0} + Hp, H = E E_t/(E - E_t);
- мультилинейное: таблица (p_i, \sigma_i), первая точка p_0 = 0 задаёт \sigma_{y0}, p строго возрастает, \sigma не убывает; за последней точкой напряжение постоянно (идеальная пластичность), а не продолжается по наклону.
Доля кинематического упрочнения \beta \in [0, 1] (0 — изотропное, 1 — линейное кинематическое по Прагеру) смешивает механизмы: радиус R = \sigma_{y0} + (1-\beta)\bigl(\sigma_c(p) - \sigma_{y0}\bigr), сдвиг центра \Delta\boldsymbol\alpha = \sqrt{2/3}\,\beta\,\bigl[\sigma_c(p_{n+1}) - \sigma_c(p_n)\bigr]\,\mathbf{n}. Односная диаграмма от \beta не зависит, а обратная текучесть (эффект Баушингера) зависит. Разупрочнение запрещено (H \ge 0).
Кинематика нелинейной статики: в режиме геометрической нелинейности закон принимает деформацию Грина–Лагранжа и возвращает второй тензор Пиолы–Кирхгофа (пластичность аддитивна в этой паре: малые деформации, большие повороты); вывод — напряжение Коши \sigma = \mathbf{F}\mathbf{S}\mathbf{F}^T/J. В режиме «только материал» \varepsilon = \mathrm{sym}\nabla\mathbf{u}. История нагружения (loadpath="1,0") даёт остаточные деформации после разгрузки и циклы.
Что задаёт пользователь: E, \nu (упругая часть), \sigma_{y0} (yield=, Па), упрочнение (hardening=linear|multilinear, et=, curve="p:σ,p:σ,…"), kinematic=. Результат: эквивалентная пластическая деформация (узловое поле, зонд plastic_strain), доля пластифицированных точек Гаусса, для идеальной пластичности — предельная доля нагрузки.
material E=210e9 nu=0.3 plasticity=j2 yield=250e6 hardening=linear et=1e9
nlgeom material loadpath="1,0"
solve4.8Джонсон–Кукстабильно
Закон для металлов при высоких скоростях деформации и нагреве: предел текучести растёт со скоростью и падает с температурой. Основная область — явная динамика: удар, пробитие, разгон.
Скоростной множитель включается только при \dot\varepsilon^* > 1 (ниже — единица: квазистатика служит нижней границей). Возвращение то же, что у J2, но в уравнение для \Delta p входит скорость шага \dot{\bar\varepsilon}_p = \Delta p/\Delta t и текущий температурный множитель. Адиабатический разогрев включается заданием теплоёмкости c_p материала закона: \Delta T = \eta\,q\,\Delta p/(\rho c_p), \eta — доля Тейлора–Куинни (0.9 по умолчанию); температура меняется ступенчато, текучесть шага считается при температуре начала шага.
Параметры: A, B (Па), n, C, m, \dot\varepsilon_0 (epsdot0, 1/с), T_{\mathrm{room}} (troom, К), T_{\mathrm{melt}} (tmelt, К), taylor, cp. Кинематическое упрочнение с Джонсоном–Куком не сочетается (отказ).
material E=120e9 nu=0.34 density=8900 plasticity=jc A=90e6 B=292e6 n=0.31 C=0.025 m=1.09 tmelt=1356 cp=3854.9Критерии разрушения материалабета
Критерии работают внутри пластичного закона J2 или Джонсона–Кука и нужны для эрозии элементов в явной динамике; статика и модальный анализ их игнорируют. Срабатывание любого критерия — отказ точки Гаусса. Что делает продукт с элементом, описано в разделе об эрозии.
- \varepsilon_p \ge \varepsilon_{\mathrm{fail}} — предельная эквивалентная пластическая деформация (
ep:). - Накопленное повреждение Джонсона–Кука D = \sum \Delta\varepsilon_p/\varepsilon_f \ge 1 (
jc:d1/d2/d3/d4/d5):
Знак d_3 — как у Johnson, Cook (Eng. Fract. Mech. 21(1), 1985, 31–48): у металлов d_3 < 0; \eta ограничено интервалом [-3, 3].
- \sigma_1 \ge \sigma_{\max} — наибольшее главное напряжение (
smax:, Па). - \sigma_m \ge p_{\mathrm{spall}} — гидростатическое растяжение, отрыв (
spall:, Па).
Повреждение D жёсткость не снижает: оно только запускает отказ.
material steel plasticity=j2 yield=355e6 fail="ep:0.25,smax:1.2e9"4.10Нео-гуковский материалстабильно
Гиперупругий материал для резины и эластомеров при конечных деформациях. Работает в нелинейной статике солидов в постановке Total Lagrangian (геометрическая нелинейность).
Второй тензор Пиолы–Кирхгофа \mathbf{S} = 2\,\partial W/\partial\mathbf{C}, касательная \mathbb{D} = 4\,\partial^2 W/\partial\mathbf{C}\partial\mathbf{C} выписана аналитически (сверка с конечными разностями — до 10^{-8}). Выходное напряжение — Коши, \boldsymbol\sigma = \mathbf{F}\mathbf{S}\mathbf{F}^T/J. Постоянные \mu, \kappa берутся из E, \nu материала формулами из подраздела об изотропной упругости (в карточке резины задаются \mu и K). Элементы: HEX8, TET4, WEDGE6, PYR5, HEX20, TET10, HEX27.
nlgeom on); в линейной статике и на пути коробки с тетраэдрами нелинейный материал отказывает, а не считается линейно под нелинейным именем.material E=1e7 nu=0.45 model="neo-hookean" density=1100
nlgeom on4.11Муни–Ривлин, Йео, Арруда–Бойс, Огденэксперимент
Потенциалы для кривых растяжения резины, которые нео-гуковский закон не описывает. Ядро содержит все четыре с аналитической касательной; полной связки «карточка материала — расчёт тела» в текущей версии нет, поэтому раздел экспериментальный.
К каждому потенциалу добавляется объёмная часть \tfrac\kappa2(J-1)^2 (у Арруда–Бойса \tfrac\kappa2\bigl[\tfrac12(J^2-1)-\ln J\bigr]); \kappa = 2/D_1, если задан параметр сжимаемости D_1. Модули малых деформаций: Муни–Ривлин \mu_0 = 2(C_{10}+C_{01}), Йео \mu_0 = 2C_{10}, Арруда–Бойс \mu_0 = \mu, Огден \mu_0 = \sum\mu_p (соглашение Abaqus; классическое c_p = \mu_p/\alpha_p выбирается флагом ogden_abaqus=false). Для Огдена главные растяжения получаются спектральным разложением \mathbf{C}.
4.12Конечные упругопластические деформации F = Fe·Fpэксперимент
Мультипликативная пластичность нужна там, где аддитивная схема J2 неверна: деформации в десятки процентов. Реализован прототип закона, не подключённый к интерфейсу и DSL.
Градиент разлагается \mathbf{F} = \mathbf{F}_e\mathbf{F}_p, \det\mathbf{F}_p = 1. Упругость — Генки в упругой конфигурации: из спектрального разложения \mathbf{C}_e = \mathbf{F}_e^T\mathbf{F}_e получаются логарифмические деформации h_a = \tfrac12\ln\lambda_a, напряжение Кирхгофа \boldsymbol\tau = K\,\mathrm{tr}(\mathbf{h})\,\mathbf{1} + 2\mu\,\mathrm{dev}(\mathbf{h}). Течение ассоциированное по Мизесу с линейным упрочнением \sigma_y = \sigma_{y0} + Hp; приращение \Delta p = f^{\mathrm{tr}}/(3\mu + H) находится замкнуто в пространстве логарифмических деформаций, пластическая часть обновляется экспонентой \mathbf{F}_p^{n+1} = \exp(\Delta p\,\mathbf{N})\,\mathbf{F}_p^{n}, \mathbf{N} = \tfrac32\,\mathrm{dev}(\boldsymbol\tau)/q. Схема того же типа, что у Eterovic, Bathe (1990), и Simo (1992). Для передачи в итерации Ньютона напряжение Коши \boldsymbol\sigma = \boldsymbol\tau/J пересчитывается во второй тензор Пиолы–Кирхгофа, касательная \partial\mathbf{S}/\partial\mathbf{E} берётся центральными разностями четвёртого порядка; на элементах HEX8, HEX20, HEX27 и TET10 применяется \bar F-коррекция против объёмного запирания.
4.13Ползучесть Нортона–Бейлиэксперимент
Степенная ползучесть металлов при высоких температурах и длительных нагрузках: деформация растёт при постоянном напряжении, напряжение релаксирует при постоянной деформации.
q — эквивалентное напряжение Мизеса; в ядре есть упрочнение по времени и по деформации и интегральная форма \bar\varepsilon_{cr} = A q^n t^m (NAFEMS Test 10B). Шаг — неявный Эйлер с радиальным возвращением и скалярным уравнением для q_{n+1}, касательная аналитическая. Параметры в DSL: creep_a, creep_n, creep_m.
4.14Вязкопластичность Перзиныэксперимент
Пластическое течение с зависимостью от скорости: напряжение может превосходить статический предел, избыток вызывает вязкопластическое течение.
Неявный Эйлер, скалярное уравнение \Delta p - \Delta t\bigl\langle (f^{\mathrm{tr}} - (3\mu + H)\Delta p)/\eta\bigr\rangle^m = 0 на скобке, касательная аналитическая. При \Delta t\to\infty закон стремится к статическому J2, при малом \eta — к жёсткой пластичности.
4.15Вязкоупругость: ряды Прони и реологические цепиэксперимент
Линейная вязкоупругость полимеров: релаксация модуля во времени. Модуль сдвига в виде ряда Прони, объёмный — аналогично:
Внутренние переменные ветвей обновляются точной экспоненциальной рекуррентой (Simo, Hughes, 1998, §10.2): \mathbf{h}_i^{n+1} = e^{-\Delta t/\tau_i}\mathbf{h}_i^n + 2G_0 g_i\,\beta_i\,\Delta\mathbf{e}, \beta_i = (1 - e^{-\Delta t/\tau_i})\,\tau_i/\Delta t; до шести ветвей, при отсутствии k_i берётся k_i = g_i. Отдельно есть одномерные цепочки Максвелла, Кельвина–Фойгта, Зенера и Бюргерса с точным экспоненциальным шагом и термомеханический демпфер с балансом энергии.
4.16Друкер–Прагер для грунтов и горных породэксперимент
Пластичность с зависимостью от давления для грунта, бетона и горных пород: предел сдвига растёт с обжатием, течение сопровождается дилатансией.
Конус подобран по меридиану трёхосного сжатия поверхности Мора–Кулона, поэтому предельное осевое напряжение при боковом давлении P_c равно
Потенциал неассоциированный: g = q + \beta p, \beta = 6\sin\psi/(3-\sin\psi), угол дилатансии 0 \le \psi \le \varphi. Возврат на гладкую стенку конуса, при проекции за вершину — возврат в вершину (de Souza Neto, Perić, Owen, 2008, §8.3). Касательная при \psi \ne \varphi несимметрична. Параметры в DSL: cohesion (Па), friction_angle, dilatancy_angle (градусы).
4.17Пористая пластичность GTNэксперимент
В ядре есть только функция текучести Гурсона–Твергора–Нидлмана \Phi = (q/\sigma_y)^2 + 2q_1 f\cosh\bigl(3q_2 p/2\sigma_y\bigr) - (1 + q_3 f^2) = 0 и кривая предельного эквивалентного напряжения по давлению. Эволюции пористости, интегратора напряжений и подключения к расчёту нет.
4.18Критерии прочности по упругому решениюбета
Постпроцессор коэффициента запаса поверх узловых полей напряжений: смена критерия или предела не требует нового расчёта. Не часть закона материала и не пластичность. Для каждого узла считается использование u, запас n = 1/u (ограничен сверху для нулевого напряжения).
| Критерий | Использование u |
|---|---|
| Мизес | \sigma_{vm}/\sigma_y |
| Треска | (\sigma_1 - \sigma_3)/\sigma_y |
| Сен-Венан | (\sigma_1 - \nu\sigma_3)/\sigma_y |
| Ранкин | \max(\sigma_1/S_t,\ -\sigma_3/S_c) |
| Кулон–Мор | \sigma_1/S_t - \sigma_3/S_c при \sigma_1 \ge 0 \ge \sigma_3; иначе по знаку главных напряжений |
| Друкер–Прагер | \bigl[\sigma_{vm} + \beta(\sigma_1+\sigma_3)\bigr]/\sigma_{eq}, \beta = \frac{S_c-S_t}{S_c+S_t}, \sigma_{eq} = \frac{2S_tS_c}{S_c+S_t} |
| Гудман, Содерберг, Гербер | \sigma_{vm}/2S_f + \sigma_{vm}/2S_u; \sigma_{vm}/2S_f + \sigma_{vm}/2S_y; \sigma_{vm}/2S_f + (\sigma_{vm}/2S_u)^2 |
5Граничные условия, нагрузки и связи
↑ К оглавлениюГраничное условие или нагрузка в WebCAE — это запись. В записи четыре части: вид (закрепление, нагрузка, жёсткая связь, уравнение связи), элемент (перемещение, сила, давление, ускорение и т. д.), компонента с величиной и список объектов геометрии, к которым запись приложена: вершины, рёбра, грани или тело. Объекты адресуются номерами из дерева модели (surface number 3, edge number 7, vertex number 2), а не направлением в габарите. Форма в дереве и команда сценария создают одну и ту же запись, логика у них общая; грамматика команд описана на странице /docs/dsl.
Компилятор записей собирает все записи в одну постановку и передаёт её решателю. Записи складываются: давление и сила на одной грани дают одну суммарную тягу, закрепления разных компонент одной грани накапливаются. Величины вводятся в системе единиц проекта (единица подписана рядом с полем), геометрия хранится в мм, а на границе решателя всё переводится в СИ: метры, ньютоны, паскали, килограммы. Перевод выполняется в одном месте; повторного перевода ниже по тракту нет.
Температурные воздействия (заданная температура, тепловой поток, конвекция, излучение, объёмное тепловыделение) и температурный перепад для термоупругости описаны в разделе о тепловом анализе: Теплопередача и мультифизика. Контакт и склейка тел — в разделе Контакт и соединения. Здесь собраны механические воздействия и связи.
| Что задаётся | К чему прикладывается | Как входит в расчёт |
|---|---|---|
| Закрепление, заданное перемещение | вершина, ребро, грань, тело | исключение степеней свободы |
| Связь по нормали (каток, симметрия) | грань | уравнения связи по узлам грани |
| Сила | вершина, ребро, грань, тело | узловые силы |
| Давление, распределённая сила | грань | согласованные узловые силы по грани |
| Ускорение, сила тяжести | вся модель | объёмная сила \rho\,\mathbf{a} |
| Удалённая сила, момент, перемещение | вершина, ребро, грань, тело | виртуальный ведущий узел и RBE2 |
| Жёсткая связь RBE2, уравнение MPC | вершины, рёбра, грани, тела | исключение зависимых степеней свободы |
5.1Закрепления и заданные перемещениястабильно
Закрепление обнуляет перемещение узлов выбранной геометрии по одной, двум или трём осям. Заданное перемещение даёт этим узлам ненулевое значение d. Оба случая — условия Дирихле u_i = d для множества степеней свободы S.
Условия выполняются точно, без штрафа. Степени свободы из S исключаются из системы: решение записывается как \mathbf{u} = \mathbf{T}\,\mathbf{u}_{\mathrm{f}} + \mathbf{u}_0, где \mathbf{u}_{\mathrm{f}} — свободные степени, \mathbf{u}_0 несёт ненулевые значения d, и решается редуцированная система
Множители Лагранжа не вводятся. Тот же механизм исключения обслуживает жёсткие связи и уравнения MPC, подробности — в разделе Решатели.
Что задаёт пользователь: цель (вершина, ребро, грань или тело), компоненту all, x, y или z и величину. Нулевая величина — закрепление, ненулевая — заданное перемещение в единицах длины проекта. Компонента all с ненулевой величиной задаёт одно и то же значение по всем трём осям. Результат: поле перемещений и реакции опор (команда reactions, раздел Результаты).
Правила, которые стоит знать:
- закрепления x, y и z на одной грани накапливаются; три оси — это полное закрепление;
- на степень свободы допускается одна зависимая связь. Поэтому закрепление (d=0) сильнее заданного перемещения на той же грани и той же оси; из двух заданных перемещений на одну грань и ось действует первое по порядку, а различие значений даёт предупреждение;
- заданное перемещение допускается только на грани. Запись на вершине, ребре или теле с ненулевым значением не пропадает молча: расчёт сообщает, что для неё нужна грань;
- модель с заданным перемещением считается закреплённой: предупреждение «нет закрепления» не выдаётся;
- закрепление на одной вершине солида даёт предупреждение: реакция собирается в одном узле, напряжение там растёт при сгущении сетки, и максимум напряжения становится свойством сетки, а не модели. Три вершины, гасящие шесть жёстких мод, постановка допускает;
- для солидов закрепляются только поступательные степени свободы. Запись «поворот» на грани солида решателем не принимается; опоры балок и оболочек задаются командами каркаса (
frame support).
fix surface number 1
fix surface number 2 component=z value=0.5
fix edge number 45.2Связь по нормали: каток и плоскость симметриистабильно
Связь по нормали запрещает узлам грани двигаться вдоль нормали к поверхности и оставляет им свободу в касательной плоскости. С нулевой величиной это каток или плоскость симметрии. С ненулевой — заданное перемещение вдоль наружной нормали (раздутие, обжатие).
Для узла a грани записывается уравнение
где \mathbf{n}_a — узловая нормаль. Она получается усреднением нормалей смежных граничных треугольников с весом, равным их внутреннему углу при узле (Thürmer G., Wüthrich C., Computing vertex normals from polygonal facets, Journal of Graphics Tools, 1998). Вес по площади проверен и отвергнут: на плоском четырёхугольнике, разрезанном диагональю, он смещает нормаль, а вес по углу от разрезания не зависит.
Если узел лежит на стыке двух граней со связями по нормали, в нём появляется несколько уравнений на три степени свободы. Они приводятся полным методом Гаусса–Жордана с выбором ведущего элемента, и нормали не усредняются. Две ортогональные плоскости симметрии дают две независимые строки, и узел остаётся скользить вдоль линии их пересечения. Почти параллельные нормали (гладкая поверхность, разрезанная на две грани) дают избыточную строку, она отбрасывается. Противоречащие связи дают предупреждение, и строка не применяется. В углу трёх независимых плоскостей узел закреплён.
Специального типа «симметрия» нет. Плоскость симметрии — это связь по нормали с d=0, а на плоской грани, перпендикулярной оси, она эквивалентна закреплению одной компоненты. Нагрузки на симметричной части модели задаются долей от полной: если вырезана четверть, прикладывается четверть силы. Антисимметрии (условия u_t = 0 и u_n свободно) в продукте нет.
fix surface number 2 component=normal value=0
fix surface number 3 component=normal value=0.055.3Сосредоточенные силы, линейные силы и силы на телостабильно
Сила задаётся вектором (Н) и прикладывается к вершине, ребру, грани или телу. Что именно решатель делает с равнодействующей, зависит от вида цели.
- Вершина. Сосредоточенная сила идёт в один узел сетки. Вершина должна разрешаться ровно в один узел; иначе расчёт отказывает. Под точечной силой напряжение сингулярно, значения рядом с точкой зависят от сетки, судить о результате нужно по сечениям вдали от точки (принцип Сен-Венана).
- Ребро. Равнодействующая делится поровну между узлами, лежащими на ребре. Доли одинаковы для всех узлов ребра, длина участков, приходящихся на узел, не учитывается. Поэтому на ребре с неравномерной сеткой нагрузка получается не равномерной линейной, а «поровну на узел».
- Грань. Равнодействующая \mathbf{F} делится на площадь грани в м²: получается равномерная тяга \mathbf{t}=\mathbf{F}/A, которая интегрируется согласованно (следующий подраздел). Поэтому сумма узловых сил равна \mathbf{F}.
- Тело. Равнодействующая распределяется по объёму: \mathbf{f}_a = (\mathbf{F}/V)\int_{\Omega} N_a\,dV, где V — объём тела. Для сборки адресуется тело; без указания тела сила действует на всю модель.
Сосредоточенный момент на солиде не задаётся: у узла объёмного элемента нет вращательной жёсткости. Момент, приложенный к области, задаётся удалённой нагрузкой. Для балок и оболочек узловые силы и моменты доступны командой frame load node=… force=… moment=… (см. Каркас, балки и оболочечные патчи).
load vertex number 3 force=0,0,-100
load edge number 5 force=0,-2000,0
load surface number 2 force=5000 component=z5.4Давление и распределённые силы на гранистабильно
Давление p действует по нормали к грани и считается положительным, когда прижимает к телу. Распределённая сила — это тяга \mathbf{t}_d в Па, заданная вектором. На грани действует тяга
где \mathbf{n}_{\mathrm{out}} — внешняя нормаль. Узловые силы согласованные:
Внешняя нормаль каждой грани определяется по смежному элементу: нормаль направлена от центроида элемента-владельца. Так знак давления верен и на внутренних поверхностях (канал трубы, расточка), где центроид всей модели лежит вне материала. Для плоских граней линейных элементов (tri3, quad4) интеграл берётся точно. Для граней квадратичных элементов применяются tri6 (трёхточечная квадратура) и quad8 (квадратура Гаусса 3\times3). На плоской грани tri6 угловые узлы получают 0, а серединные — по трети равнодействующей; на плоском прямоугольнике quad8 угловые узлы получают -1/12 равнодействующей, серединные — +1/3. Это классические узловые доли квадратичных элементов.
Сила на грани (в Н) переводится в тягу делением на площадь грани в м²; запись distributed_force задаётся сразу в Па. Давление и силы на одной грани складываются в одну нагрузку.
frame load patch=… p=…), для балок — погонной нагрузкой (frame load member=… q=…).units mm
load surface number 1 pressure=10
load surface number 4 distributed_force=2 component=y5.5Следящее давлениебета
Следящее давление поворачивается вместе с гранью и всегда действует по нормали текущей, деформированной конфигурации. Для больших перемещений и поворотов это единственная верная модель давления газа или жидкости. Грань параметризована координатами (\xi,\eta), текущие координаты \mathbf{x}=\sum N_a(\xi,\eta)\,\mathbf{x}_a, где \mathbf{x}_a=\mathbf{X}_a+\mathbf{u}_a. Узловая сила при доле нагрузки \lambda:
Схема Hibbitt (1979), см. также Wriggers, Nonlinear Finite Element Methods, 2008, §4.2.5. Грани tri3, quad4, tri6 и quad8, квадратура подобрана так, что интеграл берётся точно, и сумма сил и моментов по замкнутой поверхности равна нулю с машинной точностью. Касательная жёсткость нагрузки аналитическая и в общем случае несимметрична (нагрузка одной грани неконсервативна); для замкнутой поверхности под постоянным давлением сумма по граням симметрична. Подробности постановки и вклад в итерации Ньютона — в разделе Нелинейные расчёты и динамика.
Режим давления выбирается в настройках нелинейного расчёта тел: «следящее» или «мёртвое». При включённой геометрической нелинейности по умолчанию действует следящее. В режиме «только материальная нелинейность» (малые деформации) давление мёртвое. Для произвольной грани есть явная команда nlgeom follower nodes="…" p=… с узлами грани (3, 4, 6 или 8 штук, p>0 прижимает).
5.6Ускорение, сила тяжести и вращениестабильно
Ускорение — объёмная нагрузка на всю модель. Задаётся вектор \mathbf{a} в м/с²; на материал действует массовая сила
Сила тяжести — частный случай. Для силы тяжести вдоль -z задаётся a_z=-9.81\,\mathrm{m/s^2}: знак перед \rho\mathbf{a} положительный, вектор \mathbf{a} — это направление действия массовой силы. Для составляющих по x, y и z записи складываются в один вектор. Узловые силы вычисляются согласованным интегрированием по объёму, так что равнодействующая равна \rho V\mathbf{a} с точностью до интегрирования.
Нужна плотность материала. Для оболочки без плотности ускорение исчезло бы молча, поэтому расчёт отказывает с просьбой задать плотность. Для сборок плотность берётся по телам.
Центробежная нагрузка как отдельное статическое воздействие \omega^2\rho\,r в списке нагрузок отсутствует. Вращающиеся конструкции учитываются иначе: гироскопические члены и разупрочнение от вращения входят в анализ ротора (Роторная динамика), начальная угловая скорость задаётся в неявной динамике, а сейсмическое возбуждение основания — ускорением основания в динамике и спектральном анализе (относительная постановка \mathbf{F}=-\mathbf{M}\boldsymbol{\iota}\,\mathbf{a}_0\,k(t)).
load accel=-9.81 component=z5.7Удалённая сила, момент и перемещениебета
Удалённая нагрузка прикладывает силу \mathbf{F} и момент \mathbf{M} в произвольной точке \mathbf{x}_m (она может лежать вне тела), передавая их выбранной грани, ребру, вершине или телу. В точке создаётся виртуальный ведущий узел. Узлы цели становятся зависимыми по правилу жёсткого тела:
а сила и момент прикладываются к ведущему узлу. После исключения зависимых узлов они распределяются по цели как эквивалентная нагрузка. Удалённое перемещение задаёт степени свободы ведущего узла: три смещения и три поворота, каждую ось можно включить или отключить. Точка, силы и моменты задаются в выбранной локальной системе координат.
remote load surface number 2 point=150,5,5 force=1000,0,0 moment=0,0,5
remote motion surface number 2 point=1,2,3 translate=0.01,0,0 uaxes=1,0,05.8Жёсткие связи RBE2 и уравнения связистабильно
Жёсткая область (RBE2) заставляет зависимые узлы двигаться вместе с ведущим как одно жёсткое тело; формулы приведены в разделе Библиотека конечных элементов. В записи указываются ведущая цель и ведомые цели — любые из вершины, ребра, грани или тела.
Как это вводится в расчёт. Узлы ведущей и ведомых целей образуют одно жёсткое тело; ведущим выбирается узел, ближайший к центроиду ведущей цели. Для квадратичных сеток зависимыми становятся и серединные узлы. Зависимые степени свободы исключаются преобразованием \mathbf{u}=\mathbf{T}\mathbf{u}_{\mathrm{f}}+\mathbf{u}_0: множители Лагранжа и штраф не применяются, цепочки зависимостей сворачиваются, редуцированная система решается тем же решателем (см. Решатели). Конфликт двух связей на одну степень свободы или цикл останавливают расчёт с кодом причины.
Чтобы связь не противоречила другим условиям, перед расчётом из неё исключаются:
- узлы, закреплённые граничными условиями (число исключённых сообщается предупреждением);
- узлы, уже зависимые в другой жёсткой связи (пересечение убирается);
- узлы ведущей цели, которые уже зависимы в другой связи: они не выбираются ведущими, а если свободных узлов нет, связь пропускается.
Если не остаётся ни одного ведомого узла, связь пропускается с предупреждением.
В проекте можно задать уравнение связи общего вида \sum_i c_i\,u_i = r (MPC) для степеней свободы вершин. Первый член уравнения — зависимая степень свободы, остальные — ведущие. Свободные уравнения создаются только в форме интерфейса; команды сценария для них нет (для каркасов есть frame constraint). Кинематические шарниры (вращательный, цилиндрический, сферический) собираются из жёстких областей и линейных уравнений вокруг виртуальных ведущих узлов; команды сценария для них нет, проверочного кейса нет.
pinned и coupling-x/y/z в форме предлагаются как «шарнирные» и «по одной оси», но в решателе все эти записи проходят тем же каналом RBE2 с полной связью. Для связи только по одному направлению задавайте уравнение MPC. На солидах (три степени свободы в узле) отличие от «шарнирной» связи не видно; на балках и оболочках оно существенно.rigid link master vertex number 6 slaves surface number 25.9Локальные системы координатбета
Локальная система координат (СК) нужна для нагрузок, направленных по наклонным осям. Декартова СК задаётся началом, осью z и, при необходимости, направлением оси x. Триэдр строится так: \mathbf{e}_z — нормированный вектор оси z, \mathbf{e}_x — ортогонализованная по Граму–Шмидту ось x, \mathbf{e}_y=\mathbf{e}_z\times\mathbf{e}_x. Если ось x не задана или параллельна z, достраивается произвольный перпендикуляр, и в этом случае повернуть СК вокруг z можно, только указав x.
Компонента x записи, привязанной к СК, с заданной величиной q означает вектор q\,\mathbf{e}_x (аналогично y, z). Поворот делается один раз, в компиляторе нагрузок; все величины ниже по тракту уже глобальные. Начало СК используется только для удалённых точек, сосредоточенная сила как свободный вектор его не читает. Привязка к СК действует на силу, распределённую силу, ускорение, удалённую силу и удалённое перемещение.
cs turned origin=0,0,0 axisZ=0,0,1 axisX=1,1,0
load surface number 2 fx=1000 cs=turned5.10Преднатяг болтовэксперимент
Виртуальный болт моделирует затяжку соединения без построения резьбы: два фланца стягиваются осевым усилием F_0, а болт несёт его как упругий стержень. Подходит для оценки раскрытия стыка и нагрузки на болт в сборках.
Как строится модель. В центроидах опорных граней головки и гайки создаются два ведущих узла; каждый связан с узлами своей грани жёсткой областью. Между ведущими узлами вводится балка Тимошенко с площадью сечения A и осевой жёсткостью k_b=EA/L, где L — расстояние между центроидами. К ведущим узлам прикладывается самоуравновешенная пара сил \pm F_0 вдоль оси болта. Усилие можно задать силой F_0 или моментом затяжки: F_0 = T/(K\,d), где K — коэффициент закручивания (по умолчанию 0.2), d — диаметр. Площадь сечения: номинальная \pi d^2/4, площадь сечения по напряжениям A_s=\tfrac{\pi}{4}(d-0.9382\,P)^2 с шагом крупной резьбы (ISO 898-1) или заданная вручную. Класс прочности (8.8, 10.9, 12.9) определяет предел текучести по умолчанию: 640, 900 и 1080 МПа; значение можно задать вручную.
Постобработка для каждого болта: рабочее усилие F_{\mathrm{work}}=F_0+k_b\,\Delta u, где \Delta u — относительное осевое смещение ведущих узлов в решении; напряжение \sigma=F_{\mathrm{work}}/A; запас \mathrm{SF}=\sigma_y/\sigma. Помечаются текучесть болта, низкий запас (меньше 1.25) и раскрытие стыка, когда рабочее усилие падает почти до нуля.
bolt появилась после выпущенной версии.bolt surface number 10 surface number 20 preload=20000 diameter=12 class=10.95.11Пружины и точечные массыбета
Пружина — упругая связь между двумя областями модели или между областью и неподвижным основанием; точечная масса — одноузловой элемент без жёсткости. Оба элемента описаны в разделе Библиотека конечных элементов, здесь — как они входят в список условий.
Пружина создаётся записью со своей целью (грань, ребро или вершина) и жёсткостью k в Н/м; для основания указывается слово ground вместо второй цели. Дополнительно можно задать поперечную жёсткость, крутильную жёсткость и силу предварительного натяга F_0. Постобработка выдаёт удлинение \Delta L и рабочее усилие F=F_0+k\,\Delta L. Точечная масса — команда mass, в продукте она влияет на модальный и динамический анализ каркасов из балок и оболочек.
spring surface number 3 ground k=2e6 preload=100
mass node=1000,0,0 m=1005.12Циклическая симметрияэксперимент
Циклическая симметрия позволяет считать один сектор диска, колеса или лопаточного венца вместо всей конструкции. Постановка: сектор повторяется N раз вокруг оси, угол сектора \Delta\theta=2\pi/N. Узлы нижней границы сектора поворачиваются на +\Delta\theta вокруг оси (формула Родрига) и сопоставляются с узлами верхней границы в пределах допуска. Для каждой пары накладываются три уравнения связи
Это гармоника с индексом k=0: деформированное состояние одинаково во всех секторах. После расчёта результат можно развернуть на полные 360^\circ: перемещения поворачиваются, тензор напряжений поворачивается как тензор (эквивалентное напряжение по Мизесу при этом не меняется).
Для гармоник k\ge1 (волны Флоке–Блоха) в коде формируется связь с комплексным фазовым множителем \mathrm{e}^{\mathrm{i}k\Delta\theta} по вещественной и мнимой частям. Статический решатель вещественный и такого поля не несёт, поэтому гармоники k\ge1 в расчёте не используются.
Пользователь задаёт нижнюю и верхнюю границы сектора (грани), число секторов, ось и допуск: в интерфейсе — секция «Циклическая симметрия» шага граничных условий, в сценарии — команда cyclic. Расчёт сектора — линейная статика с уравнениями связи.
cyclic появились после выпущенной версии.cyclic surface number 1 surface number 2 sectors=12 axis=0,0,1 tol=0.055.13Шаги, фазы и временные законы нагрузкибета
У записей нагрузок нет собственного понятия «этап», но несколько расчётов используют их по-разному.
- Линейная статика. Ползунок шагов нагрузки показывает масштабирование единственного решения: поля умножаются на долю s/N. Реального пошагового нагружения здесь нет.
- Нелинейная статика. Нагрузка и заданные перемещения нарастают пропорционально доле \lambda; путь нагружения
loadpath="1,0"включает разгрузку,"1,-1,1"— цикл. Подробности в разделе Нелинейные расчёты и динамика. - Гармонический отклик. Сила, давление и распределённая сила могут нести фазовый угол \Delta\varphi: F(t)=F\cos(\omega t+\Delta\varphi) (параметр
phase, градусы). Ускорение фазы не несёт. Статический расчёт фазу игнорирует и сообщает об этом. - Динамика. Нагрузка умножается на амплитудный закон k(t), заданный таблицей
amplitude="t:k,…". - Рождение и смерть тел. Этапы возведения и выемки включают и отключают тела целиком: Нелинейные расчёты и динамика.
5.14Что происходит с записями при перестройке геометриибета
Автоматическое лечение геометрии, сшивка, подавление тела и булевы операции могут убрать грань или вершину, к которой была привязана запись. Правило такое: запись никогда не удаляется молча.
- Запись остаётся в состоянии проекта и помечается как осиротевшая («цель потеряна»); в отчёте о лечении названо, сколько записей потеряли привязку и каких.
- Осиротевшая запись не переносится на другие объекты. Если несколько граней слились в одну, ни одна из исходных записей не переезжает на объединённую грань: перенос изменил бы физический смысл, пока пользователь не выберет грань сам.
- Расчёт не делает вид, что записи нет. В сценариях расчёт отказывает с перечнем потерянных записей и их целей. В интерфейсе запись исключается из расчёта с предупреждением по имени; если после этого нет закрепления, расчёт блокируется.
- Запись, у которой нет приёмника в решателе (например, автосвязь стыка срединных поверхностей, пока узлы стыка не построены), не превращается в уравнения-заглушки: она помечается как нереализованная, и расчёт отказывает с её именем.
- Автоматическое лечение геометрии получает список граней, на которых стоят записи, и не снимает их.
6Контакт и соединения
↑ К оглавлениюСборка из нескольких тел требует решения, как тела связаны на стыке. Для каждой пары тел в WebCAE выбирается один режим: склейка, пружинная связь, контакт без трения, контакт с трением или отсутствие связи. Режим задаётся в панели «Соединения» (матрица пар) или командой contact; для всей сборки можно задать режим по умолчанию, а для отдельной пары переопределить его.
Режимы существенно различаются по постановке. Склейка (bonded, tied) линейна: стык передаёт любые силы и не раскрывается. Контакт без трения односторонний: тела передают только сжатие и могут разойтись, поэтому задача нелинейна и решается шагами нагрузки. Трение добавляет зависимость от истории. Не каждый режим доступен в каждом виде расчёта. Если пара задана режимом, который выбранный расчёт не несёт, расчёт отказывает вслух; он не заменяет режим другим и не считается без пары.
| Режим | Линейная статика | Нелинейная статика | Неявная динамика | Платформа |
|---|---|---|---|---|
| Bonded (общие узлы) | да | да, как единое тело | по правилам расчёта (динамика) | десктоп и браузер |
| Tied (точная связь MPC) | да | отказ | отказ | десктоп и браузер |
| Penalty (пружинная связь) | да | отказ | отказ | десктоп и браузер |
| Frictionless (без трения) | да, шагами нагрузки | да | да | только десктоп |
| Frictional (трение Кулона) | отказ | отказ | да | только десктоп |
Модальный анализ, линейная устойчивость и гармонический отклик с контактом без трения линеаризуются: нормальная жёсткость берётся по зазору на момент расчёта, набор активных пар в собственной задаче не обновляется. Эталоном считается десктопное (нативное) приложение; браузер поддерживает склейку и пружинную связь.
6.1Поиск контактных парбета
Команда contact pairs all|visible <mode> и кнопка в панели создают пары для всех касающихся тел сборки. Критерий — расстояние между поверхностями тел, а не пересечение габаритных ящиков: ящик ничего не знает о форме, и деталь, стоящая в вырезе другой, для него неотличима от детали, которая вырезу лишь соседствует. Расстояние считается по тесселяции границы, которую строит ядро OpenCascade при импорте. Для каждой пары определяется вид стыка: касание, измеримый зазор (конструктивный стык) или нахлёст с объёмом пересечения (запрессовка либо ошибка сборки). Допуск относителен: привязан к габариту сборки. Пары у порога можно уточнить точным расстоянием между телами в B-Rep.
Кнопка «Проверить связность» находит группы тел и «плавающие» компоненты, не связанные ни закреплением, ни режимом соединения. В модальном анализе, устойчивости и гармонике расчёт отказывает с перечнем несвязанных тел, пока группы не связаны.
contact pairs all tied
contact body1 body2 frictionless6.2Склейка по общим узлам (bonded)стабильно
Самая надёжная связь: на этапе построения сетки соприкасающиеся грани тел получают общие узлы, и поле перемещений непрерывно через стык по построению. В решателе дополнительных условий нет, тела просто делят степени свободы. Эта склейка не вносит погрешности, кроме геометрической, и работает во всех видах расчёта.
Управление — параметрами сетки: bonding=0|1 включает склейку, glue=auto|contact|full выбирает быстрый поиск касаний или полный поиск пересечений, interference=cut|split|ignore определяет, что делать с реальным нахлёстом. В режиме cut спорный объём отдаётся меньшему телу (штырь вытесняет материал плиты), стык становится точным касанием, объём равен объединению. В режиме split нахлёст фрагментируется: объём точный, но осколок посадки может оказаться тонкой плёнкой, которая срывает сетку. В режиме ignore нахлёст сохраняется, материал считается дважды.
mesh tet size=125 bonding=1 glue=full6.3Склейка на несогласованных сетках (tied)бета
Склейка tied нужна, когда сетки двух тел на стыке разные: разная плотность, раздельные узлы. Каждому узлу ведомой стороны (slave) находится точка проекции на грань ведущей стороны (master), и перемещение ведомого узла выражается через узлы грани барицентрическими весами w_k:
Это три уравнения связи на узел, для квадратичных сеток серединные узлы входят в пары. Связь выполняется точно: ведомые степени свободы исключаются из системы, как у жёсткой связи (Решатели), множители Лагранжа не вводятся. Метод — узел-к-поверхности (NTS); он основан на общей постановке контакта в Wriggers P., Computational Contact Mechanics, 2006.
Настройки панели «Соединения»:
- Формулировка. «Авто» выбирает кинематическую связь для прямого решателя и пружинную для итерационного решателя с алгебраическим многосеточным предобуславливателем на больших сборках. «Кинематический (Exact MPC)» и «Штрафной» задают выбор явно.
- Предел зазора MPC. Отношение расстояния ведомый–ведущий к размеру ведущей грани; пара за пределом отвергается (по умолчанию 0.8).
Перед расчётом выполняется проверка стыка: согласованные грани с общими узлами пропускаются, стык без единой найденной пары, зазор больше предела и расчёт с одним регионом отказывают с причиной.
contact body1 body2 tied6.4Штрафная связь (penalty)бета
Пара penalty использует ту же геометрию пар, что tied, но связь податлива: между ведомым узлом и точкой на ведущей грани ставится пружина жёсткости k. При k\to\infty решение стремится к tied. Режим нужен, когда точная связь ухудшает обусловленность на больших сборках или когда стык должен немного уступать.
Пользователь задаёт множитель к расчётной жёсткости (по умолчанию 1.0, для склейки 10.0) или собственное значение k в Н/м.
6.5Контакт без трения (frictionless)стабильно
Тела передают только сжатие по нормали к поверхности. Условия Синьорини для зазора g и нормального давления p:
зазор g = g_0 + \mathbf{n}\cdot\bigl(\mathbf{u}_s - \sum_k w_k\,\mathbf{u}_{m_k}\bigr) для узла s ведомой стороны и точки на ведущей грани. Условия регуляризуются штрафом с потенциалом \Pi_c=\tfrac12\,k\sum\langle -g\rangle^2 (где \langle x\rangle=\max(x,0)): давление p=k\langle -g\rangle, касательная жёсткость активной пары k\,\mathbf{n}\mathbf{n}^{\mathsf T} симметрична и положительно определена. Пара активна при проникновении g<0; чтобы набор активных пар не дребезжал, переключение дополнено гистерезисом.
Расчёт идёт шагами нагрузки. На каждом шаге решается нелинейная система методом Ньютона с демпфированием и немонотонным линейным поиском (условие Армихо); штраф нарастает до заданного значения по шагам. Число шагов задаётся на вкладке расчёта. Пары заново ищутся после шага на деформированной конфигурации, значение зазора переносится так, чтобы переоткрытие пары не добавляло ложного смещения.
Название mortar в продукте относится к постановке с весовым зазором. Связь строится по узлам ведомой грани: каждому ведомому узлу сопоставляются до трёх узлов ведущей грани с барицентрическими весами, зазор и нормаль берутся в точке проекции. Полного интегрирования сегмент-к-сегменту с отсечением многоугольников (Popp A., Gee M., Wall W., A finite deformation mortar contact formulation using a primal–dual active set strategy, 2009) в продукте нет. Расширенный лагранжиан (метод Узавы) реализован в ядре как исследовательская опция; в продуктовый путь не включён, и решение держится на штрафе. Поэтому остаётся остаточное проникновение порядка p/k.
Пользователь задаёт жёсткость контакта k (Н/м) или множитель к расчётной, число шагов нагрузки и тела пары. Результаты: давление контакта по граням, статус (раскрыт, контакт), контактная сила, история по шагам нагрузки.
contact frictionless
mesh tet size=0.25 order=1 bonding=0
load surface number 8 force=-25 component=z
solve
extract contact_pressure target="surface number 7"6.6Контакт с трением Кулонабета
Трение ограничивает касательную силу в контакте законом Кулона: \lVert\mathbf{t}_t\rVert\le\mu\,p_n, сцепление ниже предела и скольжение на пределе. Закон необратим, поэтому ответ зависит от истории нагружения: для каждой активной точки контакта запоминается принятое состояние.
В неявной переходной динамике для каждого ведомого узла хранится положение на ведущей грани и накопленное упругое проскальзывание \mathbf{e}. Касательная сила регуляризована длиной s_{\mathrm{tol}} — упругим проскальзыванием на пределе Кулона:
где пробное упругое проскальзывание \mathbf{e}_{\mathrm{tr}}=\mathbf{e}_{\mathrm{old}}+\Delta\mathbf{s}_t складывается из предыдущего значения и касательного смещения узла относительно материальной точки ведущей грани, а затем плавно ограничивается длиной s_{\mathrm{tol}}. Ограничение непрерывно дифференцируемо, поэтому касательная жёсткость определена и в зоне перехода. Закон даёт настоящее статическое трение: блок под горизонтальной силой ниже предела остаётся на месте. Касательная находится центральными разностями силы пары и согласована с ней, включая движение проекции при смене фасета.
Пользователь задаёт коэффициент \mu в пределах 0<\mu\le10 (по умолчанию в форме 0.3) и необязательно длину s_{\mathrm{tol}} (параметр slip, м; по умолчанию доля ребра грани контакта). Результаты: контактное давление, статус (раскрыт, сцепление, скольжение), счётчики сцепления и скольжения, работа сил трения, число смен фасета.
В ядре нелинейного контакта есть и квазистатический вариант с возвратом на конус Кулона (проба сцепления и радиальный возврат при \Phi=\lVert\mathbf{t}_{\mathrm{tr}}\rVert-\mu p_n>0, согласованная касательная для скольжения), он проверен на аналитических задачах; в продукте он не подключён.
u0=static с парой, где задано трение, отказывает. Тела не должны делить узлы.contact body1 body2 frictional mu=0.3
solve transient dt=0.001 tend=0.36.7Контакт при больших перемещениях и самоконтактбета
В геометрически нелинейной статике тел контакт строится на деформированной конфигурации: пары ищутся заново на каждой сборке, то есть на каждой итерации Ньютона, а не только между шагами нагрузки. Поверхность — треугольники граней тел (грани гексаэдров делятся на два треугольника). Для ведомого узла находится ближайшая точка на ведущих треугольниках (проекция по Эриксону), зазор
где \mathbf{n} — нормаль контакта, интерполяция узловых нормалей ведущей грани: она непрерывна через рёбра и вершины, иначе направление силы скачет над ребром между некомпланарными фасетами. Контакт активен при g<0; на ведомый узел действует штраф \varepsilon\,g\,\mathbf{n} в конвенции внутренней силы ядра, на узлы ведущего треугольника — равная и противоположная сила с барицентрическими весами, так что третий закон Ньютона выполняется точно. Касательная согласована с силой и находится центральными разностями по двенадцати координатам пары (она несимметрична). Встречные нормали отсекают ложные пары: узел нижней грани тела не «проникает» в верхнюю грань того же тела сквозь толщу.
Штраф выбирается автоматически: \varepsilon=\kappa\,E\,h, где E — меньший из модулей двух тел, h — средняя длина ребра граней, \kappa — множитель, который задаёт пользователь (по умолчанию 10). Самоконтакт включается флажком на вкладке расчёта (там же задаётся \kappa): поверхность тела контактирует сама с собой, треугольники в топологической окрестности узла из поиска исключаются. Для узловых списков балок и оболочек есть команды nlgeom contact и nlgeom beamcontact.
nlgeom on method=load steps=10
contact body1 body2 frictionless
solve6.8Контакт балок и оболочекэксперимент
Для балок контакт линия–линия (Wriggers P., Zavarise G., On contact between three-dimensional beams undergoing large deflections, 1997): для пары отрезков берутся ближайшие точки осей \mathbf{x}_1(\xi), \mathbf{x}_2(\zeta), зазор
где r — радиусы сечений, сила — штраф вдоль нормали, переносимый на четыре узла линейными весами (сумма сил и сумма моментов равны нулю). Для параллельных отрезков берётся середина перекрытия и сила умножается на долю перекрытия, чтобы результат не зависел от сдвига сеток. Возможен самоконтакт балки.
Для оболочек контакт строится по срединной поверхности со смещением на половину толщины: g = s\,(\mathbf{x}_s-\mathbf{p})\cdot\mathbf{n}-(o_s+o_m), где o — смещения, s=\pm1 — сторона. Сторона ведущей двусторонней оболочки запоминается по паре узел–треугольник, иначе узел, прошедший срединную поверхность за одну итерацию, выталкивался бы с обратной стороны.
Пары задаются командами nlgeom contact и nlgeom beamcontact со списками узлов в нумерации модели, радиусами сечений и штрафом.
6.9Контакт в явной динамикебета
В явной схеме действует эродирующий контакт: односторонний штрафной узел–сегмент по всей внешней поверхности живых элементов. Поверхность обновляется по мере эрозии, ударник встречает вновь открытую каверну. Жёсткость штрафа задаётся долей жёсткости ведущей грани \alpha (параметр contactStiffness, по умолчанию 0.25): слишком малая даёт глубокое проникновение, слишком большая — прирост энергии, который виден в энергетическом балансе. В истории выводятся энергия контакта и общий баланс.
Описание схемы, эрозии и критериев — в разделе Нелинейные расчёты и динамика.
explicit erodingContact=on contactStiffness=0.256.10Тепловой контактбета
Тепловой контакт связывает температуры двух раздельных тел через проводимость стыка h_c: q_c=h_c\,(T_A-T_B). Он не зависит от механического контакта и на механику не влияет. Постановка, допуск зазора и результаты описаны в разделе Теплопередача и мультифизика; там же сверка с эталоном.
В ядре есть и модель проводимости, зависящая от давления и зазора, h_c(p_n,g_n) по типу Купера–Микича–Яновича (Cooper M., Mikic B., Yovanovich M., Thermal contact conductance, 1969): при замкнутом стыке h_c=h_0+h_p\,(p_n/p_{\mathrm{ref}})^{\alpha}, при зазоре h_c=k_{\mathrm{gas}}/(g_n+g_0) с отсечкой по предельному зазору. Эта модель проверена только внутренним тестом ядра; в интерфейсе и сценарии она не подключена: пользователь задаёт постоянную h_c, и давление механического контакта на проводимость не влияет.
contact body1 body2 thermal hc=10006.11Когезионные зоны (CZM)эксперимент
Когезионная зона описывает расслоение клеевых и композитных швов законом «тяга–раскрытие». В продукте закон билинейный: упругая ветвь с жёсткостью K до пиковой тяги T_{\max}, затем линейное разупрочнение до полного разрушения при раскрытии \delta_f:
где D\in[0,1] — скалярная переменная повреждения, не убывающая при разгрузке; G_c — энергия разрушения (площадь под диаграммой). Для смешанной моды эффективное раскрытие \delta_m=\sqrt{\delta_n^2+\delta_s^2}, критерий разрушения — степенной по Бенцеггаху–Кеньону (Benzeggagh M., Kenane M., 1996):
где G_I=\tfrac12 K_n\delta_n^2, G_{II}=\tfrac12 K_t\delta_s^2, показатель \eta по умолчанию 1.45. В смешанной моде \delta_0 и \delta_f вычисляются для текущего соотношения мод; начало повреждения эквивалентно квадратичному критерию номинальных напряжений при пропорциональном нагружении (Camanho P., Dávila C., 2002).
Пользователь задаёт пару поверхностей (ведущая и ведомая) и параметры; в панели «Соединения» у пары есть флажок когезионного контакта с полями прочности T_n и энергии G_{Ic}, остальные параметры доступны командой сценария: жёсткости K_n, K_t (Н/м³), прочности T_n, T_s (Па), энергии разрушения G_{Ic}, G_{IIc} (Дж/м²), показатель \eta. Результат: максимальное и среднее повреждение D по интерфейсу, пиковые нормальная и касательная тяга, максимальное раскрытие, число обработанных пар узлов.
Важно, как закон входит в расчёт. В продукте интерфейс вычисляется как постпроцессор: по перемещениям уже готового решения скачок на каждом ведомом узле сравнивается с ближайшим ведущим узлом, и считаются повреждение и тяги. Равновесие с разупрочнением внутри глобальной итерации не пересчитывается, поэтому результат не показывает, как падает несущая способность шва по мере роста трещины. Интеграция закона в нелинейное решение (пары контакта с повреждением) есть в ядре на уровне пары узел–поверхность, но в интерфейс и сценарий не выведена.
contact cohesive master="surface number 3" slave="surface number 4" kn=1e12 kt=1e12 tn_max=30e6 gc_n=4506.12Признак «сошлось» для контактабета
В контактной задаче сходимость Ньютона не гарантирует физического равновесия: набор активных пар может дребезжать, а штрафная задача может «сойтись» к решению с неподвижным телом без опоры. Поэтому признак «сошлось» складывается из нескольких условий, а не только из итераций Ньютона.
- Для контакта без трения в пошаговом режиме нужно достигнуть полной нагрузки: если шаги оборваны или отменены, признак ложный.
- Физическая невязка равновесия, посчитанная по свободным степеням свободы (без стабилизирующей жёсткости), не должна превышать допуск в процентах нагрузки. Только это условие не зависит от того, что сделал Ньютон.
- Если Ньютон не сошёлся, допускается запасной критерий малого проникновения, но только при наличии пар с проникновением в итоговом решении. Расчёт без контакта под нагрузкой не получает «сошёлся» из-за пустого набора.
- Сообщение называет число активных пар, невязку равновесия в процентах нагрузки и максимальное перемещение; для тела без опоры («механизм») или несомкнувшегося контакта это сказано явно.
Для нелинейной статики признак строится по критерию Ньютона–Рафсона (см. Нелинейные расчёты и динамика), и результат не принимается, если задача не сошлась. Режим, который расчёт не несёт, отказывает: тела с общими узлами не берутся в контакт, трение в статике не откатывается к паре без трения.
7Библиотека конечных элементов
↑ К оглавлениюСтруктурные элементы собираются в одну глобальную систему: у каждого узла шесть степеней свободы [u_x, u_y, u_z, \theta_x, \theta_y, \theta_z]. Объёмные элементы несут только три перемещения; вращательные степени свободы узлов, к которым не подходят ни балки, ни оболочки, ни жёсткие связи, не имеют жёсткости и закрепляются автоматически. Так в одной модели сосуществуют тела, оболочки, балки, пружины и точечные массы.
Раздел описывает, какие элементы есть, в какой постановке построены и где у них пределы. Краткий каталог с кодами типов и числом узлов — на странице /docs/elements; сводная таблица в конце раздела сверена с кодом ядра.
7.1Общие соглашениястабильно
Все объёмные элементы изопараметрические (кроме Tet10, см. ниже). Градиенты функций формы по физическим координатам берутся через якобиан отображения:
Деформации и напряжения записываются в порядке Фойгта [\varepsilon_{xx},\varepsilon_{yy},\varepsilon_{zz},\gamma_{xy},\gamma_{yz},\gamma_{zx}] с инженерными сдвигами \gamma = 2\varepsilon. Матрица \mathbf{B} собирается из градиентов форм: блок узла i — это \partial N_i/\partial x в строке \varepsilon_{xx} и столбце u_x, \partial N_i/\partial y в строке \varepsilon_{yy} и столбце u_y, \partial N_i/\partial z в строке \varepsilon_{zz} и столбце u_z, а сдвиговые строки несут по два градиента (например, \gamma_{xy}: \partial N_i/\partial y в столбце u_x и \partial N_i/\partial x в столбце u_y). Изотропная упругость:
Матрица жёсткости элемента — квадратура по точкам Гаусса:
Те же функции формы и те же квадратуры использует геометрически нелинейный путь (Total Lagrangian): там касательная состоит из материальной и геометрической частей, \mathbf{K}_T = \mathbf{K}_{\text{mat}} + \mathbf{K}_{\text{geo}}, а материал по умолчанию — Сен-Венан–Кирхгоф (подробнее в разделе Нелинейные расчёты и динамика). Материалы с анизотропией, пластичностью и гиперупругостью описаны в разделе Модели материалов; здесь рассматривается только сам элемент.
Граничные условия и связи (жёсткие области, уравнения связи) исключаются из системы точно, по схеме «ведущий — ведомый»: решается система \mathbf{T}^{\mathsf T}\mathbf{K}\,\mathbf{T}\,\mathbf{u}_r = \mathbf{T}^{\mathsf T}\mathbf{f}, а не штрафная. Это не портит обусловленность и не даёт приближённого выполнения связей.
Единицы. Геометрия задаётся в миллиметрах (или в единицах, объявленных командой units), на границе решателя всё пересчитывается в СИ: метры, ньютоны, паскали, килограммы. Размеры сечений, толщины оболочек и массы точечных элементов пользователь вводит в тех же единицах, что и геометрию (массы — в килограммах).
7.2Линейный тетраэдр Tet4стабильно
Четырёхузловой симплекс с постоянной деформацией. Это основной элемент автоматической генерации сеток по произвольной CAD-геометрии: он устойчив к форме тела, но слабо передаёт изгиб.
Функции формы совпадают с барицентрическими координатами, N_i = L_i, i = 1,\dots,4. Градиенты \nabla L_i постоянны, поэтому \mathbf{B} тоже постоянна, а точное интегрирование даёт
то есть одна точка Гаусса в барицентре. Напряжение постоянно по элементу, \boldsymbol{\sigma} = \mathbf{C}\mathbf{B}\mathbf{u}_e; узловое поле строится осреднением по смежным элементам.
Элемент проходит кусочный тест на произвольно искажённой сетке: аффинное поле перемещений воспроизводится до машинной точности. Но постоянная деформация означает паразитную жёсткость на изгибе. На консольном брусе из \approx 1400 тетраэдров первая собственная частота завышена на 22\,\% (тот же размер элемента с Tet10 даёт -0.16\,\%). Для изгибающихся тел берите Tet10.
mesh tet size=10 order=17.3Квадратичный тетраэдр Tet10стабильно
Десятиузловой элемент: четыре вершины и шесть середин рёбер. Квадратичное поле перемещений даёт линейно меняющуюся деформацию внутри элемента и снимает основную часть изгибного запирания Tet4 на той же сетке.
Функции формы через барицентрические координаты (N_i — вершина, N_{ij} — середина ребра между вершинами i и j):
Градиенты: \nabla N_i = (4L_i - 1)\nabla L_i, \nabla N_{ij} = 4(L_j\nabla L_i + L_i\nabla L_j). Интегрирование — четырёхточечное правило степени 2 с точками (a,b,b,b) и перестановками, a = 0.5854101966, b = 0.1381966011, веса V_e/4. Для элемента с прямыми рёбрами подынтегральное выражение \mathbf{B}^{\mathsf T}\mathbf{C}\mathbf{B} — многочлен второй степени, и правило точное.
Важная особенность реализации: в основном ассемблере Tet10 субпараметрический. Геометрия определяется четырьмя вершинами (отображение линейное, якобиан постоянен), а поле перемещений — десятью узлами. Положения серединных узлов, смещённых на кривую CAD-поверхности, в матрице жёсткости не используются: элемент интегрируется как прямоугольный по рёбрам. Это сохраняет невырожденность на кривых границах, но объём и жёсткость элементов у криволинейной границы считаются по хорде, а не по дуге. Для гладкой границы ошибка убывает с размером элемента, но отдельного повышения точности за счёт кривых рёбер нет. Так построен основной ассемблер; в ветке расчёта нескольких тел со склейкой и контактом используются другие реализации элементов, и их отображение может отличаться.
Поверхностные нагрузки на гранях Tet10 интегрируются согласованно по шестиузловым треугольникам (Tri6), а не раскладываются по вершинам поровну.
Напряжение в ядре вычисляется в центроиде элемента, где вклад угловых узлов обнуляется (4L_i - 1 = 0). Для узловой картины постпроцессор считает напряжение в каждом узле элемента и осредняет по числу смежных элементов, поэтому на границе материалов и у концентраторов поле сглажено.
mesh tet size=10 order=27.4Гексаэдр Hex8стабильно
Восьмиузловой трилинейный элемент для регулярных объёмов: протяжённых тел, брусьев, плит и слоёв у стенки отверстия. На структурированной сетке даёт гладкое поле напряжений и меньшее число элементов, чем тетраэдры.
Функции формы в натуральных координатах (\xi,\eta,\zeta) \in [-1,1]^3:
Интегрирование — полное, 2\times2\times2 точки Гаусса в \pm 1/\sqrt{3}, веса равны единице. Матрица \mathbf{K}_e собирается по формуле из раздела «Общие соглашения» без каких-либо модификаций.
Здесь важно сказать прямо: в линейном пути у Hex8 нет ни B-bar (селективной объёмной проекции), ни несовместных мод, ни редуцированного интегрирования. Элемент испытывает сдвиговое запирание на изгибе, когда по высоте балки стоит мало элементов, и объёмное запирание при \nu \to 0.5. Лечение — измельчение сетки по высоте или переход на Hex20. Примеры: консольная балка на структурированной сетке 128\times8\times8 даёт 1.03\,\% отклонения от Эйлера–Бернулли; консоль на сетке 96\times6\times6 (шесть элементов по высоте) даёт около 2\,\% из-за сдвигового запирания. В явной динамике Hex8 — отдельный одноточечный элемент с контролем «песочных часов» по Фланагану–Белычко; он не связан с матрицей из этого подраздела.
Напряжение вычисляется в центре элемента, \xi = \eta = \zeta = 0.
mesh hex size=5 order=17.5Гексаэдр Hex20 (серендипов)стабильно
Двадцатиузловой элемент: восемь вершин и двенадцать середин рёбер, без узлов в центрах граней и в центре тела. Квадратичная интерполяция делает его существенно мягче Hex8 на изгибе: одного слоя элементов по толщине достаточно для разумной оценки. Применяется для колец вокруг отверстий, усталостных концентраторов и контактных задач, где нужна гладкая геометрия границы.
Функции формы серендипова семейства. Вершина с координатами (\xi_i,\eta_i,\zeta_i) = (\pm1,\pm1,\pm1):
Середина ребра, параллельного оси \xi (\xi_i = 0):
для рёбер вдоль \eta и \zeta — по аналогии. Интегрирование 3\times3\times3 (27 точек Гаусса, \pm\sqrt{0.6} и 0 с весами 5/9, 8/9, 5/9). В отличие от Tet10, Hex20 полностью изопараметрический: используются координаты всех двадцати узлов, поэтому кривизна рёбер на CAD-границе учитывается в \mathbf{J}.
Напряжение вычисляется в центре элемента. Элемент проходит кусочный тест на искажённой сетке до машинной точности; на одиночной консоли снятие запирания относительно Hex8 существенное.
mesh hex … order=2); произвольные CAD-тела разбиваются тетраэдрами. В одной сетке с Tet10 Hex20 возможен только в экспериментальном виде, см. Квадратичный переход Hex20–Tet10. Узловое осреднение напряжений использует значения в центрах элементов.mesh hex size=5 order=27.6Гексаэдр Hex27 (триквадратичный)эксперимент
Двадцатисемиузловой элемент полного квадратичного базиса Лагранжа: к узлам Hex20 добавлены центры шести граней и центр тела. Функции формы — произведения одномерных квадратичных многочленов Лагранжа:
где (a,b,c) \in \{-1,0,1\}^3 — положение узла n. Интегрирование 3\times3\times3. Элемент полнее серендипова: точнее на сильном искажении и изгибе, но дороже.
В сеточный конвейер продукта Hex27 не входит: мешер его не строит, поэтому элемент доступен только при прямой подаче связности. Матрица масс Hex27 в неявной динамике не реализована, и такой расчёт отказывает с указанием причины; модальный и тепловой анализ работают.
7.7Призма Wedge6стабильно
Шестиузловая линейная призма: треугольник в основании и линейная интерполяция по высоте. Возникает в призматических слоях у стенки (inflation) и в переходах между гексаэдрами и тетраэдрами.
Функции формы — произведение барицентрических координат основания на линейный множитель по высоте:
где k — номер вершины основания, знак минус для нижнего треугольника (\zeta=-1), плюс для верхнего. Интегрирование — произведение трёхточечного правила на треугольнике (точки (1/6,1/6), (2/3,1/6), (1/6,2/3), веса 1/6) и двухточечного правила Гаусса по высоте: всего шесть точек. Сумма весов равна объёму эталонной призмы, 1.
Элемент линейно полон, поэтому проходит кусочный тест на сшитом стыке с Tet4. Вырожденный (неположительный) якобиан останавливает расчёт с сообщением.
7.8Пирамида Pyr5бета
Пятиузловая линейная пирамида: четырёхугольное основание и вершина. Нужна как переходный элемент в гибридных сетках, где четырёхугольная грань гексаэдра встречается с двумя треугольными гранями тетраэдров.
Прямое «вырождение» гексаэдра в пирамиду (слияние четырёх верхних узлов) не линейно полно и не проходит кусочный тест, поэтому используется рациональный базис пирамидального элемента (Zgainski и соавторы). В реализации он записан в «схлопнутых» координатах, \hat a, \hat b \in [-1,1], w \in [0,1), где физические координаты сечения сужаются как (1-w):
В физических координатах \xi = \hat a(1-w), \eta = \hat b(1-w) базис содержит рациональное слагаемое \xi_i\eta_i\,\xi\eta/(1-w) — отсюда название. Интегрирование: 2\times2 точки Гаусса по (\hat a, \hat b) и два узла Гаусса по w на [0,1], всего восемь точек. Точки не попадают в вершину w=1, где отображение вырождено. Объём равен трети произведения площади основания на высоту, как у настоящей пирамиды. Напряжение вычисляется на оси пирамиды при w = 1/2.
7.9Гибридные сетки: Hex8, Wedge6, Pyr5, Tet4бета
Гибридная сетка соединяет слой гексаэдров или призм (у стенки отверстия, в зоне концентрации, в протяжённом блоке) с тетраэдральным остатком. Стык делается двумя способами: сшивкой по общим узлам (conformal; переход через Pyr5 и Wedge6) либо уравнениями связи узел–поверхность. Для конформного стыка грань Hex8 делится к центру на пирамиды, а пирамида на стороне двух Tet4 — на два Tet4 по той же диагонали, так что треугольные грани совпадают.
Корректность стыка проверяется кусочным тестом: на сшитой сетке «призмы + тетраэдры» воспроизводится однородное поле напряжений до 5\cdot10^{-13}. Напряжение в гибридной сетке считается в точке узла каждого элемента и осредняется по смежным элементам: центр первого слоя гексаэдров у стенки отверстия отстоит на полслоя, и значение в центре занижает пик напряжений на 12–15 %.
mesh … order=2 не поддерживается и отказывает с сообщением. Напряжение разрывно на стыке, осреднение — выбор визуализации, а не равновесная величина.7.10Квадратичный переход Hex20–Pyr13–Tet10эксперимент
Стык квадратичных элементов требует совпадения следов на общей грани: восьмиузловая грань Hex20 должна встретиться с двумя шестиузловыми гранями Tet10. Для этого есть два прототипа; из пользовательского конвейера (сценарий, мешер) они недоступны.
Первый — «общий след» (common trace) для плоских интерфейсов Hex20–Tet10. Грань несёт девять узлов: четыре угла, четыре середины рёбер и середину диагонали триангуляции. Условие совпадения следов — три линейных соотношения на узловые значения (девять значений должны быть значениями одного полного квадратичного многочлена на параллелограмме). Они применяются как уравнения связи, а ведущие степени свободы выбираются глобальным приведением Гаусса–Жордана в точной рациональной арифметике, так что жёсткие моды и все квадратичные поля сохраняются. Сетка собирается отдельным адаптером (вырезка прямоугольной полости из тела с Tet10 и вставка Hex20). На сетке из 96 Tet10 и одного Hex20 при заданном точном квадратичном поле на границе отклонение по перемещениям составило порядка 10^{-8}.
Второй — преобразователь линейной гибридной сетки в конформную квадратичную Hex20–Pyr13–Tet10 с общими гранями Quad8 и Tri6. Тринадцатиузловая пирамида Pyr13 — пирамидальный элемент второго порядка (5 вершин и 8 середин рёбер). Как элемент жёсткости Pyr13 в решателе отсутствует. Есть только функции формы и проверка якобиана в точках Гаусса на стороне подготовки сетки; в выпуск этот преобразователь не вошёл, расчёт на такой сетке недоступен.
mesh order=2 вместе с зонами гексаэдров отказывает. Прототип общего следа рассчитан на плоские (параллелограммные) интерфейсы; для криволинейных стыков он не доказан. Переходные Wedge6 и Pyr5 не имеют квадратичных форм. Расчёт гибридных квадратичных сеток нужно считать исследовательским.7.11Запирание: что есть и чего нетстабильно
Запирание — паразитная жёсткость элемента, когда его интерполяция не может воспроизвести нужную деформацию. Ниже честный перечень того, что реализовано.
- Сдвиговое запирание изгибных элементов. Оболочка MITC4 снимает его предполагаемыми поперечными сдвигами (подраздел Оболочка MITC4). Треугольная оболочка DKT вводит кирхгофовы связи в серединах сторон и поперечных сдвигов не содержит. Балка Тимошенко строится стандартной \Phi-модификацией эрмитовой матрицы; при малой \Phi она переходит в элемент Эйлера–Бернулли без запирания.
- Сдвиговое запирание объёмных элементов. Лечится порядком: Tet10, Hex20, Hex27 вместо Tet4, Hex8, Wedge6, Pyr5. Для Hex8 нет ни B-bar, ни несовместных мод, ни редуцированного интегрирования (в линейном пути).
- Объёмное запирание при \nu \to 0.5. Смешанной формулировки нет: по мере приближения \nu к 0.5 линейные элементы жёстче, чем должны быть. Квадратичные элементы запирание ослабляют, но не снимают; для почти несжимаемых материалов используйте гиперупругие модели (см. Модели материалов).
- F-bar. Для мультипликативной пластичности конечных деформаций \mathbf{F} = \mathbf{F}_e\mathbf{F}_p на элементах Hex8, Hex20, Hex27 и Tet10 вводится объёмное осреднение градиента деформации (F-bar): \bar{\mathbf{F}} = (\bar J / J)^{1/3}\mathbf{F}, где \bar J — среднее по элементу. Этот код присутствует только в рабочей версии и в выпуске не вошёл; считайте его экспериментальным.
- Явная динамика. Hex8 интегрируется в одной точке с точным объёмно-усреднённым градиентом и контролем «песочных часов» по Фланагану–Белычко (вязкая и жёсткостная формы).
- Мембранное запирание оболочек. Мембрана четырёхугольной оболочки — обычный билинейный Q4 с полным интегрированием, без несовместных мод; на грубых сетках при изгибе в плоскости он жёстче точного решения. Для треугольной оболочки мембрана — CST постоянной деформации.
7.12Балка Тимошенкостабильно
Двухузловой пространственный стержневой элемент для каркасов, ферм и рёбер жёсткости. Шесть степеней свободы в узле, двенадцать на элемент. Материал и сечение задаются шестью числами: E, G, A, I_y, I_z, J. Модуль сдвига берётся как G = E/(2(1+\nu)).
Жёсткость в локальных осях (x вдоль оси от узла 1 к узлу 2) — замкнутая форма, интегрирования по точкам нет. Осевая и крутильная части:
Изгиб в плоскости xy (степени свободы v_1,\theta_{z1},v_2,\theta_{z2}):
В плоскости xz матрица та же с заменой I_z \to I_y, \kappa_y \to \kappa_z и обратными знаками у связок «перемещение–поворот», так как \theta_y = -dw/dx. При \Phi \to 0 получается элемент Эйлера–Бернулли (длинная тонкая балка), при больших \Phi — сдвиговая податливость растёт; запирания нет. Коэффициент сдвига в продукте фиксирован: \kappa_y = \kappa_z = 5/6 (прямоугольник, классика Тимошенко); значение не зависит от формы сечения.
Ориентация. Локальная ось x — от узла 1 к узлу 2. Опорный вектор — глобальная Z (для почти вертикальной балки, \lvert x_z\rvert > 0.9999, — глобальная Y). Далее y = v_{\text{ref}} \times x, нормированный, z = x \times y. В глобальные оси матрица переводится преобразованием \mathbf{K}_g = \mathbf{T}^{\mathsf T}\mathbf{K}_l\,\mathbf{T}, \mathbf{T} = \operatorname{blockdiag}(\mathbf{R},\mathbf{R},\mathbf{R},\mathbf{R}).
Внутренние усилия на концах восстанавливаются как \mathbf{f}_l = \mathbf{k}_l\,\mathbf{u}_l с соглашением: N > 0 — растяжение, T > 0 — момент по правилу правой руки вдоль оси от узла 1 к узлу 2; перерезывающие силы и изгибающие моменты выдаются как внутренние усилия сечения.
frame node at=0,0,0
frame node at=1000,0,0
frame member 1 2 section=rect w=40 h=80
frame support node=1 dofs="all"
frame load node=2 force=0,0,-50007.13Расширенная балка: сдвиг, смещения и неструктурная массастабильно
Расширенный тип балки расширяет элемент Тимошенко до двадцати двух чисел и снимает три допущения базового: ось через центр тяжести, сечение в главных осях, нулевой крен.
- Крен и опорный вектор. Поворот сечения вокруг оси балки на заданный угол и произвольный опорный вектор, задающий плоскость xy (вместо автоматического).
- Центробежный момент I_{yz}. Если оси сечения не главные, элемент поворачивается на угол главных осей \alpha, \tan 2\alpha = -2I_{yz}/(I_y - I_z), где изгиб в двух плоскостях развязан.
- Смещение осевой линии. Центр сечения смещён от узла на каждом конце независимо (жёсткое плечо): \mathbf{u}_c = \mathbf{u}_n + \boldsymbol{\theta}\times\mathbf{r}, \boldsymbol{\theta}_c = \boldsymbol{\theta}_n. Гибкая длина — расстояние между центрами сечений на концах. Так моделируется ребро жёсткости, лежащее на поверхности листа, с учётом теоремы Штейнера: вместо искусственного увеличения моментов инерции эксцентриситет передаётся геометрически.
- Центр сдвига. Элемент строится в центре сдвига, где изгиб и кручение развязаны; к центру сечения он переводится тем же жёстким плечом \mathbf{s}: \mathbf{K}_c = \mathbf{T}_s^{\mathsf T}\mathbf{K}_{sc}\mathbf{T}_s. Появляется связь изгиб–кручение, когда силовая линия проходит не через центр сдвига.
- Коэффициенты сдвига \kappa_y, \kappa_z в данных элемента задаются отдельно (по умолчанию 5/6).
- Неструктурная масса на единицу длины (кг/м): добавляется как согласованная трансляционная масса.
Жёсткость узла получается как \mathbf{K}_n = \mathbf{A}^{\mathsf T}\mathbf{K}_c\mathbf{A}, где \mathbf{A} переводит степени свободы узлов в степени свободы центров сечений. Те же \mathbf{A} применяются к массе, геометрической жёсткости и тепловой силе. При нулевых дополнительных данных матрицы совпадают с базовой балкой. Выбор типа автоматический: расширенный тип включается при ненулевом крене, смещениях, центре сдвига или неструктурной массе.
assign beam edges=12,14 section=rect w=10 h=30 flush=outer7.14Шарниры балокстабильно
Шарнир на конце балки отключает передачу одного из трёх моментов — M_y, M_z или крутящего T — в локальных осях балки. Допускаются шарнир на любом из концов и шарнир в пролёте.
Реализация — без штрафных пружин. Конец балки с шарниром получает собственный узел-двойник в тех же координатах: три перемещения двойника равны перемещениям основного узла, повороты связываются только по неосвобождённым осям уравнением \mathbf{a}\cdot(\boldsymbol{\theta}_d - \boldsymbol{\theta}_n) = 0. Освобождённый поворот остаётся свободной степенью двойника, и его жёсткость целиком даёт элемент — это статическая конденсация, выполняемая решателем. Узел, в котором все балки освобождены по одной оси, закрепляется по этому повороту; приложенный к такому повороту момент уравновесить нечем, расчёт отказывает с названием узла.
7.15Библиотека сечений балокстабильно
Сечение выбирается по типу и размерам; из них вычисляются A, I_y, I_z, J и крайние волокна c_y, c_z (модули сопротивления W_y = I_y/c_z, W_z = I_z/c_y). Типы: прямоугольник, коробчатое сечение, сплошной круг, труба, двутавр, тавр, швеллер, уголок. В ядре предусмотрен и прямой ввод A, I_y, I_z, J, c_y, c_z набором чисел.
Составные профили считаются суммированием прямоугольников с переносом Штейнера, вырезы — прямоугольники с отрицательным знаком:
Постоянная кручения Сен-Венана:
- круг и труба — полярный момент, J = \pi (D^4 - d^4)/32;
- сплошной прямоугольник со сторонами a \ge b — формула Рорка, J = a\,b^3\left[\tfrac13 - 0.21\tfrac{b}{a}\left(1 - \tfrac{b^4}{12a^4}\right)\right];
- коробка — тонкостенный замкнутый контур по Бредту, J = 4A_m^2\,t / s, где A_m — площадь по средней линии, s — её периметр, t — меньшая толщина стенки;
- двутавр, тавр, швеллер, уголок — открытый тонкостенный профиль, J = \tfrac13\sum b_i t_i^3.
Для открытых профилей это оценка первого порядка: скругления и стыки полок со стенкой в A, I и J не учитываются.
По внутренним усилиям строится распределение напряжений по сечению: \sigma = N/A \pm M_y z/I_y \pm M_z y/I_z; касательные от перерезывающих сил — по формуле Журавского (статические моменты считаются численно по сетке точек сечения), от кручения — по формулам для круга и трубы, по Бредту для коробки и по теории тонкостенных открытых профилей для остальных. Эквивалентное напряжение — по Мизесу.
7.16Сечения по сетке и каталог профилейэксперимент
В ядро добавлен отдельный модуль характеристик произвольного сечения: многоугольник с вырезами. Площадь, центр тяжести, I_y, I_z, I_{yz} и главные оси вычисляются точно по контуру (теорема Грина). Кручение и сдвиг находятся конечно-элементным расчётом на сетке Tri6 из двух задач Пуассона для функции депланации \omega и функции поперечного сдвига \Psi:
Здесь I_p — полярный момент, k_s — энергетический коэффициент сдвига (энергия сдвига балки Тимошенко приравнивается к энергии упругого решения), \mathbf{g} — сдвиговое поле. Определяется также центр сдвига. Модуль возвращает сдвиговую площадь k_s A: для узкого прямоугольника 5/6, для тонкой круговой трубы ровно 1/2. К модулю добавлен каталог стандартных профилей (двутавры IPE, HEA, HEB, HEM по EN и двутавры и швеллеры по ГОСТ 8239 и ГОСТ 8240).
7.17Коротационная балкастабильно
Для задач с большими перемещениями и поворотами балка пересчитывается в коротационной формулировке Баттини–Пакосте (Battini J.-M., Pacoste C., CMAME 191, 2002). Конфигурация задаётся положениями узлов и полными поворотами узлов \mathbf{R}_g; приращение поворота — пространственный спин \delta\mathbf{w}, обновление мультипликативное, \mathbf{R}_g \leftarrow \exp(\delta\mathbf{w})\,\mathbf{R}_g (сложение углов на конечных поворотах неверно).
Жёсткая рама элемента строится по хорде и усреднённой оси y узлов. Деформационные величины в этой раме малы при малой деформации: удлинение \bar u = l - l_0 и повороты \bar{\boldsymbol\theta}_i = \log\left(\mathbf{R}_r^{\mathsf T}\mathbf{R}_{g,i}\mathbf{R}_0\right). К ним применяется линейный элемент Тимошенко из предыдущих подразделов без изменений, \mathbf{f}_l = \mathbf{K}_l\,[\bar u, \bar{\boldsymbol\theta}_1, \bar{\boldsymbol\theta}_2]. Внутренние силы в глобальных осях получаются точной виртуальной работой; касательная матрица — численным дифференцированием аналитических внутренних сил с тем же спиновым обновлением, что и у Ньютона, поэтому согласована с итерацией.
Поддержаны базовая балка и расширенная без смещений и центра сдвига; иначе расчёт отказывает вслух, а не молча подменяет физику.
7.18Оболочка MITC4стабильно
Четырёхузловой плоский элемент оболочки Рейсснера–Миндлина для листов, пластин и тонкостенных конструкций. На каждый узел шесть степеней свободы; элемент строится в локальной раме и складывается из трёх частей: мембраны, изгиба с поперечным сдвигом и штрафа на вращение вокруг нормали.
Локальная рама строится по узлам: нормаль — векторное произведение диагоналей, ось e_1 направлена по ребру 1\to2 после ортогонализации к нормали. Четыре узла проецируются в плоскость рамы, коробление не моделируется. Матрица элемента в глобальных осях: \mathbf{K}_g = \mathbf{T}^{\mathsf T}\mathbf{K}_l\,\mathbf{T}. Для изгибной части используются не векторы вращения \theta_x, \theta_y, а углы наклона нормали \beta_x = -\theta_y, \beta_y = \theta_x, поэтому вращательный блок \mathbf{T} содержит дополнительную перестановку.
Мембрана — билинейный изопараметрический Q4 в плоском напряжении, полное интегрирование 2\times2:
Изгиб. Кривизны и поперечные сдвиги:
Изгибная часть интегрируется по 2\times2 Гаусса. Для сдвига применён MITC4 (Dvorkin E. N., Bathe K.-J., 1984; Bathe K.-J., Dvorkin E. N., 1985): ковариантные компоненты сдвига вычисляются только в четырёх точках привязки, в серединах сторон, и интерполируются линейно:
где точки привязки A,C лежат при \xi=0, \eta=\mp1, а D,B при \xi=\mp1, \eta=0. Ковариантная компонента в точке привязки \gamma_\xi = \partial_\xi w - (\partial_\xi x\,\beta_x + \partial_\xi y\,\beta_y) вычисляется с якобианом именно в этой точке. В декартовы [\gamma_{xz},\gamma_{yz}] они переводятся на каждой точке интегрирования через \mathbf{J}^{-1}. Предполагаемые сдвиги снимают сдвиговое запирание при t/L \to 0. На прямоугольном элементе формулы совпадают с прямоугольной версией до машинной точности.
Напряжения вычисляются в центре элемента, \xi=\eta=0: мембранное \boldsymbol{\sigma}_m = \mathbf{C}_{ps}\boldsymbol{\varepsilon}_m плюс изгибное на верхнем и нижнем волокнах, \sigma_b = \pm 6m/t^2, m = \mathbf{D}_b\boldsymbol{\kappa}. Выдаются \sigma_{xx}, \sigma_{yy}, \tau_{xy} и эквивалент по Мизесу в плоском напряжении \sqrt{\sigma_{xx}^2 - \sigma_{xx}\sigma_{yy} + \sigma_{yy}^2 + 3\tau_{xy}^2} на каждом волокне; поперечные касательные напряжения этим путём не восстанавливаются. Узловая нагрузка от давления — согласованная (\int N_i\,p\,dA с полным якобианом); давление направлено против внешней нормали элемента.
Смещение отсчётной поверхности z_0 (параметр offset=bottom|middle|top или число в команде section shell) учитывается в пакете жёсткостей: \mathbf{B}' = \mathbf{B} + z_0\mathbf{A}, \mathbf{D}' = \mathbf{D} + 2z_0\mathbf{B} + z_0^2\mathbf{A}; тогда элемент эквивалентен жёстко смещённому изотропному (проверено тестом).
units mm
section shell t=4
mesh shell size=40 element=quad pattern=structured7.19Вращение вокруг нормали (drilling)стабильно
Мембрана Q4 и CST не содержат вращательной степени свободы \theta_z вокруг нормали, а у узла оболочки она есть и входит в глобальную систему. Без добавки матрица вырождена по этой степени свободы. Привязка \theta_z к нулю (заземляющая пружина) завышала бы жёсткость изгиба кривых оболочек, поэтому применён штраф Хьюза–Брецци (Hughes T. J. R., Brezzi F., 1989): он привязывает \theta_z не к нулю, а к вращению собственного поля перемещений элемента:
Здесь \gamma — безразмерный параметр штрафа, подобранный по тестам и малый по сравнению с мембранной жёсткостью; в интерфейсе и в сценарии он не доступен. Штраф не вносит заметной энергии в состоянии чистой мембраны или чистого изгиба, а связывает вращения смежных некомпланарных оболочек на изломе. Для элемента с ламинатом используется мембранная сдвиговая жёсткость пакета.
7.20Треугольная оболочка CST и DKTстабильно
Трёхузловой плоский элемент для неструктурированных поверхностных сеток: треугольники строятся любым поверхностным мешером без рекомбинации. Состоит из мембраны CST, изгиба DKT и того же штрафа вращения вокруг нормали.
Мембрана — симплекс постоянной деформации: \mathbf{B} постоянна, \mathbf{K}_m = t\,A\,\mathbf{B}^{\mathsf T}\mathbf{C}_{ps}\mathbf{B}, одна точка. Изгиб — Discrete Kirchhoff Triangle (Batoz J.-L., Bathe K.-J., Ho L.-W., 1980): кривизны выражены через девять степеней свободы [w,\theta_x,\theta_y] трёх узлов при дискретном выполнении гипотезы Кирхгофа в серединах сторон, \boldsymbol{\kappa} = \mathbf{B}_{DKT}(\xi,\eta)\,\mathbf{u}. Интегрирование — три точки в серединах сторон с весами A/3. Поперечного сдвига в DKT нет, сдвигового запирания нет по построению.
Напряжение: мембранное постоянно по элементу, изгибное берётся в центроиде, \xi=\eta=1/3, \sigma_b = \pm 6m/t^2 на верхнем и нижнем волокне.
surface=quad).units mm
mesh shell size=20 surface=tri7.21Ламинатная оболочка (пакет ABD)бета
Четырёхузловая оболочка MITC4, в которую вместо изотропных E, \nu, t подаётся конститутивный пакет на единицу ширины:
Пакет собирается по слоям классической теории ламинатов с поперечным сдвигом первого порядка (FSDT). Для слоя k с границами z_{k-1}, z_k (от отсчётной поверхности):
где \bar{\mathbf{Q}}_k — приведённая жёсткость слоя, повёрнутая на угол укладки (угол отсчитывается от оси x_e элемента вокруг нормали), \bar{\mathbf{Q}}^s_k — поперечная сдвиговая жёсткость слоя. Коэффициент сдвига: равномерный 5/6 или «энергетический» по слою, \kappa_k = \min\{1, \tfrac56\,G_{\max}/G_k\} (для сэндвичей с мягким сердечником \kappa \to 1). В остальном элемент совпадает с MITC4: сдвиг с предполагаемыми деформациями использует полную матрицу \mathbf{A}_s (2\times2), добавляется связь мембрана–изгиб \mathbf{B} и штраф вращения. Изотропный случай воспроизводится тождественно (регрессия на уровне 10^{-12}).
Дополнительно: послойные напряжения в осях материала и критерии отказа — максимальных напряжений, Цая–Хилла, Цая–Ву, Хашина (двумерный) и индекс расслоения по межслойным касательным; межслойные напряжения восстанавливаются либо из FSDT, либо из уравнений равновесия. Температурные усилия \mathbf{N}_T, \mathbf{M}_T вычисляются по КЛТР слоёв.
units mm
ortho name=ud E1=140e9 E2=10e9 nu12=0.3 G12=5e9 G13=5e9 G23=3.5e9
section shell laminate plies="ud:0.25:0,ud:0.25:45" repeat=2 symmetric=true shear=energetic
mesh shell size=40 element=quad pattern=structured7.22Коротационные оболочкистабильно
Для больших перемещений и поворотов оболочки применяется коротационная формулировка EICR (element-independent corotational; Rankin–Nour-Omid; Felippa C. A., Haugen B., CMAME 194, 2005) поверх линейных элементов MITC4 и CST+DKT. Как у коротационной балки, конфигурация — положения узлов и полные повороты, обновление мультипликативное.
Рама элемента определяется только положениями узлов: для четырёхугольника нормаль по диагоналям, ось e_1 — проекция вектора между серединами противоположных сторон; для треугольника — по ребру 1\to2. Деформационные степени свободы — перемещения узлов в раме \bar{\mathbf{u}}_i = \mathbf{R}_r^{\mathsf T}(\mathbf{x}_i - \mathbf{x}_c) - \mathbf{R}_0^{\mathsf T}(\mathbf{X}_i - \mathbf{X}_c) и повороты \bar{\boldsymbol\theta}_i = \log(\mathbf{R}_r^{\mathsf T}\mathbf{R}_{g,i}\mathbf{R}_0). К ним без изменений применяется линейная жёсткость элемента: \bar{\mathbf{f}} = \mathbf{K}_l\,\bar{\mathbf{d}}. Внутренние силы — точный градиент энергии \tfrac12\bar{\mathbf{d}}^{\mathsf T}\mathbf{K}_l\bar{\mathbf{d}} по глобальным степеням свободы (член проектора снимает работу жёстких мод рамы и трансляции центроида); касательная — разностями от аналитической силы, согласованной со спиновым обновлением.
Код поддерживает и ламинатный тип, но отдельного кейса верификации для него нет.
7.23Точечная массабета
Одноузловой элемент с шестью степенями свободы без жёсткости (\mathbf{K} = 0). Параметры: масса m (кг) и три момента инерции I_{xx}, I_{yy}, I_{zz} в глобальных осях (в единицах СИ). Матрица масс диагональна:
Используется для навесного оборудования, двигателей и балласта в модальном и динамическом анализе каркасов и оболочечных моделей. Точку можно задать узлом или координатами.
units mm
mass node=1000,0,0 m=100 Ixx=0.5 Iyy=0.5 Izz=0.87.24Пружинабета
Упругая связь между двумя областями модели или между областью и неподвижным основанием. Область выбирается гранью, ребром или вершиной.
Реализация: в центроиде каждой из выбранных областей создаётся ведущий узел; он связан с узлами области жёсткой областью (RBE2); между ведущими узлами ставится двухузловой элемент Тимошенко с эквивалентными свойствами. Задаётся продольная жёсткость k (Н/м); подбирается E_{\text{eq}} = kL/A_{\text{eq}} при фиксированной площади, так что EA/L = k. Поперечная жёсткость k_t и крутильная k_\theta — необязательные: I_{\text{eq}} = k_t L^3 / (12 E_{\text{eq}}), J_{\text{eq}} = k_\theta L / G_{\text{eq}}; без них изгибная и крутильная жёсткость пренебрежимо мала. Режим «три оси» ставит три независимых ортогональных пружины k_x, k_y, k_z к основанию. Возможен предварительный натяг F_0 — самоуравновешенная пара сил вдоль оси пружины. Постпроцессор выдаёт удлинение \Delta L = (\mathbf{u}_B - \mathbf{u}_A)\cdot\mathbf{e} и рабочее усилие F = F_0 + k\,\Delta L.
spring surface number 3 ground k=2e6 preload=1007.25Жёсткие элементы и уравнения связистабильно
Жёсткая область (RBE2) заставляет зависимые узлы двигаться вместе с ведущим как одно жёсткое тело:
Тем самым передаются и силы, и момент, а стыковка узлов с тремя и шестью степенями свободы (объёмное тело с балкой) решается без особых приёмов.
Общее уравнение связи \sum_i c_i u_i = r (в терминах других систем — CE/MPC) тоже исключается точно: первый член — ведомая степень свободы, остальные — ведущие. Конфликт ведомых степеней и цикл связей обнаруживаются и останавливают расчёт.
rigid link master vertex number 6 slaves surface number 27.26Матрицы масс, геометрическая жёсткость, напряжениястабильно
Матрица масс. Для объёмных элементов в модальном анализе масса элемента \rho V_e делится поровну между его узлами (сосредоточенная, диагональная), только трансляции. Для правильного Hex8 и Tet4 это совпадает с HRZ-лампингом; для Tet10 и Hex20 равное деление даёт верную суммарную массу, но частоты получаются неточными (на изгибных модах консоли P2 всё же даёт хороший результат). Согласованной массы солидов в модальном анализе нет. Для балок и оболочек в ядре реализованы обе матрицы — сосредоточенная и согласованная.
- Балка Тимошенко: согласованная масса Пшеменецкого с вращательной инерцией изгиба \rho I и инерцией кручения \rho J; при \Phi \to 0 — эрмитова масса. Эта инерция критична для глубоких балок и высоких мод (NAFEMS FV5).
- Оболочка (MITC4, CST+DKT): согласованная трансляционная масса M_{ab} = \rho t\int N_aN_b\,dA, для треугольника в замкнутой форме \rho t A/12\cdot[2\ 1\ 1; 1\ 2\ 1; 1\ 1\ 2]; вращательная инерция изгиба в модальной массе не учитывается.
- Неявная динамика солидов: на выбор согласованная \rho\int N^{\mathsf T}N\,dV, сосредоточенная HRZ (диагональ согласованной, масштабированная на полную массу — всегда положительна, в отличие от суммы по строке серендиповых элементов) и «поровну по узлам». Для Hex27 матрица масс в динамике не реализована.
- Балки и оболочки в неявной динамике несут трансляционную массу и вращательную инерцию узла: для балки \tfrac12\rho L\,\operatorname{diag}(I_y+I_z, I_y, I_z) на конец, для оболочки \rho t^3/12\cdot A_i, где A_i — доля площади, приходящаяся на узел. Эта постановка появилась после последнего выпуска.
- Явная динамика: диагональная масса (HRZ-лампинг); для Hex8 правильной формы это \rho V/8 в узле.
Геометрическая жёсткость \mathbf{K}_\sigma (для устойчивости и предварительно нагруженных частот). Для солидов — от действительного тензора напряжений, блок на три перемещения:
Для балки — от осевого усилия N (матрица Пшеменецкого, вклад N/L в изгибных блоках). Для оболочек — только от мембранных усилий \mathbf{N} на все три трансляции, \int \nabla u_k^{\mathsf T}\mathbf{N}\nabla u_k\,dA; вклад вращений не учитывается. Знак един для всех типов: растяжение стабилизирует.
Напряжения на уровне элемента. Базовое восстановление — по формуле \boldsymbol{\sigma} = \mathbf{C}\mathbf{B}\mathbf{u}_e в характерной точке элемента (центр для гексаэдров и призм, центроид для тетраэдров, ось на середине высоты для пирамиды). Узловое поле — осреднение по смежным элементам; для Tet10 и гибридных сеток напряжение сначала считается в узлах каждого элемента, затем осредняется. Для балки — концевые усилия \mathbf{f} = \mathbf{k}\mathbf{u} и оценка в крайних волокнах; для оболочки — на верхнем и нижнем волокнах в центре элемента. Более точные способы (сглаживание, индикатор ошибки) описаны в разделе Результаты, постпроцессинг и оценка прочности.
7.27Тепловые элементыбета
Тепловая задача — скалярное поле T (одна степень свободы на узел) на тех же геометриях: Tet4, Hex8, Wedge6, Pyr5 и квадратичные Tet10, Hex20, Hex27 с теми же квадратурами и функциями формы. Элемент: K^e_{ij} = \int\kappa\,\nabla N_i\cdot\nabla N_j\,dV, нагрузка от объёмного тепловыделения F^e_i = \int Q\,N_i\,dV. Грани квадратичных элементов — Tri6 и Quad8 — это не самостоятельные элементы, а грани для интегрирования граничных условий: шестиузловой треугольник с шеститочечным правилом Данавана степени 4 и восьмиузловой четырёхугольник с правилом Гаусса 3\times3; на них интегрируются поток, конвекция, излучение и тепловой контакт. Постановки (стационарная, нестационарная, нелинейная с излучением, теплового контакта, термоупругость) описаны в разделе Теплопередача и мультифизика.
7.28Сводная таблицастабильно
В таблице n — число узлов, DOF — степеней свободы элемента, «Масса» — какая матрица реализована в модальном анализе. Подробности — в подразделах выше.
| Элемент | n | DOF | Квадратура | Особенность | Масса (модальный анализ) | \mathbf{K}_\sigma | Статус |
|---|---|---|---|---|---|---|---|
| Tet4 | 4 | 12 | 1 точка | постоянная деформация | \rho V/4 в узле | есть | стабильно |
| Tet10 | 10 | 30 | 4 точки (степень 2) | субпараметрический | \rho V/10 в узле | есть | стабильно |
| Hex8 | 8 | 24 | 2\times2\times2 | полное интегрирование, без B-bar | \rho V/8 в узле | есть | стабильно |
| Hex20 | 20 | 60 | 3\times3\times3 | серендипов, изопараметрический | \rho V/20 в узле | есть | стабильно |
| Hex27 | 27 | 81 | 3\times3\times3 | триквадратичный Лагранж, не строится мешером | \rho V/27 в узле | есть | экспериментально |
| Wedge6 | 6 | 18 | 3 × 2 | переходный, призматический слой | \rho V/6 в узле | есть | стабильно |
| Pyr5 | 5 | 15 | 2\times2\times2 в схлопнутых координатах | рациональный базис, переходный | \rho V/5 в узле | есть | бета |
| Балка Тимошенко | 2 | 12 | замкнутая форма | \kappa = 5/6, кручение Сен-Венана | согласованная + вращательная инерция | осевое усилие | стабильно |
| Расширенная балка | 2 | 12 | замкнутая форма | крен, плечи, центр сдвига, NSM | согласованная в центрах сечений | осевое усилие | стабильно |
| Оболочка MITC4 | 4 | 24 | 2\times2 | MITC4-сдвиг, штраф Хьюза–Брецци | согласованная, трансляции | мембранные усилия | стабильно |
| Оболочка CST+DKT | 3 | 18 | 1 / 3 точки | DKT-изгиб, CST-мембрана | согласованная, трансляции | мембранные усилия | стабильно |
| Ламинатная оболочка | 4 | 24 | 2\times2 | пакет ABD, FSDT, до 36 чисел | масса пакета на площадь | мембранные усилия пакета | бета |
| Коротационные балка и оболочка | 2 / 3 / 4 | 12 / 18 / 24 | как линейные | EICR, большие повороты | в неявной динамике | — | стабильно |
| Точечная масса | 1 | 6 | — | \mathbf{K}=0 | диагональная m, I | — | бета |
| Пружина | 2 | 12 | замкнутая форма | эквивалентная балка и жёсткие пауки | — | — | бета |
| Жёсткая область (RBE2) | 1 + k | 6 на узел | — | исключение связей | — | — | стабильно |
Чего в библиотеке нет: Pyr13 и Wedge15 как элементов жёсткости; квадратичных оболочек; плоских (деформации, напряжения) и осесимметричных элементов в структурном ассемблере — такие задачи моделируются оболочками и узким клином объёмных элементов с условиями симметрии, плоские элементы есть только в явной динамике; балки с депланационной степенью свободы; нелинейных и односторонних пружин.
Короткий каталог элементов с кодами типов — на странице /docs/elements.
8Линейные виды анализа
↑ К оглавлениюВ этом разделе собраны расчёты, в которых конструкция остаётся линейно-упругой, перемещения и повороты малы, а нагрузка от них не зависит. К ним относятся статика, собственные частоты и формы, устойчивость по собственным значениям, установившийся отклик на гармоническое возбуждение, отклик на спектр и на случайную вибрацию, а также вспомогательные приёмы: субмоделирование, редукция суперэлементом и роторная динамика. Контакт, пластичность, большие перемещения и переходная динамика во времени описаны в разделе Нелинейные расчёты и динамика. Элементы и их формулировки — в разделе Библиотека конечных элементов; способы решения систем и собственных задач — в разделе Решатели.
Общие положения для всех видов анализа:
- у балок и оболочек шесть степеней свободы в узле (три перемещения и три поворота), у объёмных элементов три перемещения;
- закрепления, уравнения связи и жёсткие области исключаются из системы методом «мастер–слейв», поэтому в собственных задачах и в гармонике действуют те же связи, что и в статике;
- на границе решателя используется СИ (м, Н, Па, кг), геометрия хранится в миллиметрах, перевод выполняется в одном месте (см. Единицы измерения);
- матрица масс объёмных элементов сосредоточенная: масса элемента делится поровну между его узлами, для квадратичных элементов — включая серединные узлы. Для балок и оболочек в модальном анализе каркасов доступна согласованная матрица масс;
- результаты нативного (десктопного) и браузерного путей строятся по одной постановке; эталоном считается нативный.
| Вид анализа | Что получается | Статус | Команда сценария |
|---|---|---|---|
| Статика | перемещения, деформации, напряжения, реакции | стабильно | solve static |
| Модальный | частоты и формы колебаний | стабильно | solve modal |
| Модальный с преднапряжением | частоты и формы под нагрузкой | бета | solve modal prestress=on |
| Устойчивость | критические множители нагрузки и формы | стабильно | solve buckling |
| Гармонический отклик | АЧХ, ФЧХ, поля на частоте | стабильно | solve harmonic |
| Спектр ответа | базовая сила, перемещения, напряжения | стабильно | solve spectrum |
| Случайная вибрация (PSD) | СКЗ 1σ и 3σ | экспериментально | solve psd |
| Субмоделирование | локальное решение у концентратора | бета | submodel |
| Суперэлемент Крейга–Бэмптона | редуцированные матрицы | экспериментально | cms |
| Роторная динамика | диаграмма Кэмпбелла | экспериментально | solve rotor |
8.1Линейная статикастабильно
Статика определяет перемещения конструкции под неизменной нагрузкой. Применяйте её, когда напряжения лежат в упругой области, перемещения малы по сравнению с размерами, а инерцией можно пренебречь.
Постановка
Принцип возможных перемещений для линейно-упругого тела: для любого допустимого \delta\mathbf{u}
где \mathbf{C} — тензор упругости, \mathbf{b} — объёмная сила (в том числе от ускорения), \mathbf{t} — поверхностная нагрузка (давление, распределённая сила), \mathbf{F}_i — сосредоточенные силы. После дискретизации функциями формы элементов получается система
где \mathbf{B} — матрица деформаций (градиенты функций формы). Для балок и оболочек локальные матрицы жёсткости поворачиваются в общие оси, и все типы элементов собираются в одну систему с шестью степенями свободы в узле.
Закрепления и связи
Закрепления (в том числе с заданным ненулевым перемещением), уравнения связи \sum_i c_i u_i = r и жёсткие области исключаются из системы линейным преобразованием:
Закрепление — это связь без ведущих степеней свободы (u = \text{const}). Жёсткая область ведёт зависимый узел по кинематике твёрдого тела: \mathbf{u}_d = \mathbf{u}_m + \boldsymbol{\theta}_m \times (\mathbf{x}_d - \mathbf{x}_m). Она передаёт и силы, и момент, поэтому годится для стыковки объёмных элементов с балочными и оболочечными. Конфликтующие или циклические связи приводят к отказу с кодом ошибки, а не к молчаливому выбору одной из них. Степени свободы с нулевой жёсткостью (например, повороты в узлах, где есть только объёмные элементы) закрепляются автоматически, чтобы матрица не была вырожденной.
Редуцированная система симметрична и положительно определена, если конструкция закреплена от движения как жёсткое целое. Способ решения (прямая факторизация или метод сопряжённых градиентов с предобуславливателем) выбирается по размеру задачи, подробности в разделе Решатели.
Что задаёт пользователь и что получает
Задаются материалы, закрепления, нагрузки (силы, давление, ускорение, моменты, дистанционные нагрузки), связи и контакты в линейной постановке. Результат: перемещения узлов, деформации и напряжения (компоненты, эквивалентное по Мизесу, главные), реакции опор, усилия в балках и мембранные и изгибные усилия в оболочках. Эквивалентное напряжение вычисляется как
Подробнее о восстановлении напряжений и оценке прочности — в разделе Результаты, постпроцессинг и оценка прочности.
В сценарии статика — это тип расчёта по умолчанию:
material E=200000000000 nu=0.3 density=7850
fix surface number 1
load surface number 2 force=5000 component=z
solve staticВ интерфейсе расчёт запускается на шаге «Расчёт», результаты смотрятся на шаге результатов.
8.2Модальный анализстабильно
Модальный анализ находит собственные частоты и формы свободных колебаний закреплённой конструкции. Его применяют, чтобы избежать резонанса, оценить жёсткость и массу конструкции и как основу для гармонического, спектрального и случайного анализов.
Постановка
Обобщённая задача на собственные значения для редуцированных матриц:
Формы \boldsymbol{\varphi}_r ортогональны по матрице масс: \boldsymbol{\varphi}_i^{\mathsf{T}} \mathbf{M} \boldsymbol{\varphi}_j = m_i\,\delta_{ij}. В выдаче формы масштабируются по максимуму модуля перемещения: \max \lvert \mathbf{u} \rvert = 1. Это только удобная нормировка для показа; обобщённая масса m_r при ней не равна единице и учитывается при расчёте участия (см. спектр ответа).
Матрица масс собирается из плотности материала (объёмные элементы, оболочки, балки), неструктурной массы балок и ламинатных оболочек и сосредоточенных масс, заданных пользователем. Сосредоточенная масса не несёт вращательной инерции, кроме явно заданной у сосредоточенной массы.
Коэффициенты участия и эффективные массы
Для направления d (единичный вектор \mathbf{t}_d в степенях свободы) считаются
Сумма эффективных масс по всем модам стремится к массе свободных поступательных степеней свободы (масса на закреплённых узлах уходит в основание). Эти величины выводятся в спектральном анализе, где они определяют охват массы; панель обычного модального расчёта показывает частоты и формы.
Как реализовано
Редуцированные матрицы \mathbf{K}_r = \mathbf{T}^{\mathsf{T}}\mathbf{K}\mathbf{T} и \mathbf{M}_r = \mathbf{T}^{\mathsf{T}}\mathbf{M}\mathbf{T} приводятся диагональным масштабированием к хорошей обусловленности; низшие моды ищутся подпространственными итерациями с одной факторизацией жёсткости (для каркасов — блочным методом LOBPCG). Свободные конструкции (балки, оболочки): низшие нулевые моды возвращаются нулевыми частотами, для факторизации применяется сдвиг спектра. Подробности и выбор метода по размеру задачи — в разделе Решатели.
Что задаёт пользователь и что получает
Число мод, закрепления, материалы с плотностью, сосредоточенные массы, связи. Результат: частоты в герцах, формы колебаний (для просмотра и анимации). Плотность обязательна: без массы собственных частот нет, и расчёт отказывает.
fix surface number 1
solve modal nmodes=6
probe frequency mode=18.3Модальный анализ с преднапряжениембета
Нагрузка меняет собственные частоты: растяжение жёстче (частоты растут), сжатие мягче (частоты падают, у границы устойчивости стремятся к нулю). Такой расчёт нужен для струн, лопаток, сжатых стоек и вообще для конструкций, работающих под большой постоянной нагрузкой.
Постановка
Сначала решается линейная статика под приложенной нагрузкой и находятся напряжения \boldsymbol{\sigma}_0. Затем по ним собирается матрица геометрической жёсткости (жёсткости напряжённого состояния) \mathbf{K}_\sigma и решается задача
Для объёмного элемента блок матрицы \mathbf{K}_\sigma по паре узлов a, b — скалярный интеграл, повторённый на три перемещения:
Знак таков, что растяжение даёт положительный вклад, сжатие — отрицательный.
Почему решается именно эта задача, а не формула f = f_0\sqrt{1 - P/P_{\text{cr}}}. Формула — одномодовая редукция Рэлея–Ритца, точная, только когда форма колебаний совпадает с формой выпучивания. Для шарнирной балки это так (отклонение 0 %), для консоли ошибка до 4 %, но для шарнирной пластины 2:1 при половине критической нагрузки формула занижает частоту на 14 %, а при критической обращает её в ноль вместо истинных 60 % от f_0. Поэтому в продукте считается полная задача.
Что задаёт пользователь и что получает
Закрепления, нагрузки (поверхностные, сосредоточенные, объёмные), число мод; в интерфейсе — отметка «учитывать нагруженное состояние», в сценарии — prestress=on. Результат: частоты и формы под нагрузкой.
Расчёт отказывает вслух, а не возвращает правдоподобное число, в случаях: нет плотности; ничего не закреплено; нагрузка нулевая (преднапряжения нет, это обычная модалка); матрица \mathbf{K} + \mathbf{K}_\sigma потеряла положительную определённость (конструкция уже выпучилась, собственных частот нет); собственная задача не сошлась.
fix surface number 1
load surface number 2 force=-1000 component=z
solve modal nmodes=3 prestress=on8.4Линейная устойчивостьстабильно
Расчёт по собственным значениям находит множитель нагрузки \lambda_{\text{cr}}, при котором идеальная конструкция теряет устойчивость (бифуркация), и форму выпучивания. Применяется для стоек, рам, оболочечных панелей и пластин.
Постановка
Под опорной нагрузкой \mathbf{f}_{\text{ref}} решается линейная статика, по перемещениям находятся внутренние усилия и собирается матрица геометрической жёсткости \mathbf{K}_G = \mathbf{K}_\sigma(\mathbf{u}_{\text{ref}}). Критический множитель — наименьшее положительное \lambda задачи
Критическая нагрузка равна \lambda_{\text{cr}}\,\mathbf{f}_{\text{ref}}. Опорной считается вся нагрузка модели: поверхностная, сосредоточенная, объёмная и от ускорения. Множитель относится ко всей нагрузке сразу.
\mathbf{K}_G собирается по типу элемента:
- балка — через осевое усилие N (среднее по концам элемента), согласованная геометрическая жёсткость Пшемецкого (блок ниже);
- оболочка — через мембранные усилия N = \sigma_m t (четырёхугольные, треугольные и ламинатные оболочки);
- объёмный элемент — через тензор напряжений \boldsymbol{\sigma}, как в предыдущем подразделе.
Для балки блок «прогиб–поворот» в плоскости v–\theta_z (в плоскости w–\theta_y — зеркальный блок с противоположными знаками связи):
Конвенция знаков одна для всех типов (растяжение стабилизирует, сжатие дестабилизирует), поэтому смешанные модели собираются в одну матрицу.
Порядок форм
Возвращается заданное число наименьших положительных множителей по возрастанию. Отрицательные \lambda (потеря устойчивости при обратном направлении нагрузки) не выводятся: для них поменяйте знак нагрузки. Кратные значения (например, симметричные формы квадратной пластины) выводятся как отдельные формы. Форма масштабируется по максимуму перемещения.
Как реализовано
Матрица -\mathbf{K}_G знаконеопределена и низкоранговая, поэтому прямая обратная итерация на ней расходится. Используются сдвиг спектра и K-ортонормирование подпространства (для масштабных задач) либо плотный решатель симметричной пары (для малых). Проверка по независимому плотному решателю совпала до шести знаков. Подробности — в разделе Решатели.
fix surface number 1
load surface number 6 force=-100 component=z
solve buckling nmodes=2
probe load_factor mode=18.5Гармонический откликстабильно
Гармонический анализ определяет установившийся отклик конструкции на нагрузку, меняющуюся по гармоническому закону, в заданном диапазоне частот. Результат — амплитудно-частотные и фазо-частотные характеристики и поля на выбранной частоте. Применяется для оценки резонансов и амплитуд колебаний при вибрационных нагрузках.
Постановка
Нагрузка F\cos(\omega t + \varphi) представляется комплексной амплитудой \hat{\mathbf{F}} = \mathbf{F}\,e^{i\varphi}, отклик \mathbf{u}(t) = \operatorname{Re}\left(\hat{\mathbf{u}}\,e^{i\omega t}\right) удовлетворяет
Фазовый угол \varphi задаётся у каждой нагрузки отдельно (положительный опережает), поэтому можно задать противофазные силы. Нагрузки группируются по фазам, модальные силы получаются комплексными. Выводятся амплитуда \lvert \hat{\mathbf{u}} \rvert, фаза, амплитуды скорости \omega\lvert \hat{\mathbf{u}} \rvert и ускорения \omega^{2}\lvert \hat{\mathbf{u}} \rvert, огибающая максимума по модели и пиковые частоты; на выбранной частоте и фазе доступно поле перемещений.
Модели демпфирования
Выбирается одна из трёх моделей, они взаимно исключают друг друга.
Модальное. Одна доля критического \zeta на все удержанные моды: \mathbf{C}_m = \operatorname{diag}(2\zeta\, m_j\,\omega_j).
Рэлея. \mathbf{C} = \alpha\mathbf{M} + \beta\mathbf{K}. В модальном базисе матрица диагональна точно, доля критического демпфирования моды
Коэффициенты задаются прямо (\alpha в 1/с, \beta в с) либо по двум парам «частота — доля критического» (f_1, \zeta_1), (f_2, \zeta_2):
Пара, дающая отрицательный \alpha или \beta (то есть отрицательное демпфирование на части спектра), отвергается. В режиме Рэлея \zeta отдельно не добавляется.
Рэлея по телам. У каждого тела сборки своя пара (\alpha_r, \beta_r), \mathbf{C} = \sum_r (\alpha_r\mathbf{M}_r + \beta_r\mathbf{K}_r). Демпфирование непропорциональное, модальная матрица полная:
На каждой частоте решается комплексная система размера числа мод. Диагональное приближение не используется: оно теряет связь мод через границу тел. Панель результатов предупреждает о нулевом демпфировании, о доле критического выше единицы и о сильной непропорциональности.
Структурного (гистерезисного) демпфирования нет.
Два метода решения
Модальная суперпозиция. Отклик раскладывается по удержанным формам \hat{\mathbf{u}} = \sum_j \boldsymbol{\varphi}_j q_j, на каждой частоте решается система
Для постоянной \zeta это q_j = \hat{f}_j / \left[m_j(\omega_j^{2} - \omega^{2} + 2i\zeta\omega_j\omega)\right]. Метод быстрый, но зависит от числа удержанных мод: вклад отброшенных высших мод (статическая поправка) не добавляется. Модальная сила учитывает только поступательные компоненты нагрузки и форм. Сетка частот линейная или логарифмическая с необязательным сгущением вокруг резонансов.
Прямой метод (Direct FRF). Без усечения базиса решается полная разреженная комплексная система \left(\mathbf{K} - \omega^{2}\mathbf{M} + i\omega\mathbf{C}\right)\hat{\mathbf{u}} = \hat{\mathbf{F}} на каждой частоте (разреженная LU-факторизация с упорядочением COLAMD; структура факторизуется один раз на весь диапазон). Демпфирование Рэлея задаётся по элементам: \mathbf{C} = \sum_e(\alpha_e\mathbf{M}_e + \beta_e\mathbf{K}_e), общая пара — частный случай. Поддерживаются все типы элементов, включая балки и оболочки, а также однородные уравнения связи и жёсткие области. На каждой частоте проверяется невязка комплексной системы; при её превышении или при сингулярности (недемпфированный резонанс) расчёт останавливается с ошибкой и не подменяется модальным. Дополнительно выводятся комплексные поля: реакции опор, напряжения (линейные компоненты как комплексные амплитуды), усилия в балках, напряжения в оболочках. Нелинейные инварианты вроде эквивалентного напряжения Мизеса для комплексных амплитуд не вычисляются. Прямой метод включается явно (method=direct) либо выбирается автоматически при демпфировании Рэлея по телам, если доступен нативный решатель. Он требует демпфирования Рэлея (постоянная \zeta определена только в модальном базисе) и доступен только в десктопном приложении.
Что задаёт пользователь и что получает
Диапазон частот (f_{\min}, f_{\max}), число точек, число мод для модального метода, модель демпфирования, нагрузки с фазами. Результат: АЧХ и ФЧХ в выбранных узлах, огибающая по модели, пиковые частоты, поля на частоте, у прямого метода — ещё реакции и напряжения.
fix surface number 1
load surface number 2 force=-1000 component=z phase=0
solve harmonic fmin=380 fmax=440 npoints=61 nmodes=6 zeta=0.05
probe harmonic_amplitude x=200 freq=406Прямой метод с демпфированием Рэлея, заданным двумя парами:
solve harmonic method=direct rayleigh f1=50 z1=0.02 f2=500 z2=0.05 fmin=10 fmax=1000 npoints=408.6Спектр ответа (RSA)стабильно
Спектральный анализ оценивает максимальный отклик конструкции на движение основания, заданное расчётным спектром ускорений (сейсмика, ударные и вибрационные спектры). Расчёт идёт поверх готового модального анализа и не требует интегрирования по времени.
Постановка
Основание движется с ускорением a_g(t) в направлении d (вектор \mathbf{t}_d):
Для моды m с периодом T_m и псевдоускорением из спектра S_a(T_m) пиковые значения (участие \Gamma и эффективная масса M_{\text{eff}} — как в модальном анализе, формулы выше):
где V_m — модальная базовая сила. Масса считается по сосредоточенной матрице масс собственной задачи; форма умножается на \Gamma, поэтому результат не зависит от нормировки и знака формы.
Комбинация мод
Пиковые вклады r_m одной величины (со знаками!) комбинируются по одному из правил:
- SRSS: R = \sqrt{\sum_m r_m^{2}}, для разнесённых частот;
- CQC: R = \sqrt{\sum_m\sum_n \rho_{mn}\, r_m r_n}, для близких частот, с коэффициентом корреляции Дер Киурегяна (Der Kiureghian, 1981):
- ABS: R = \sum_m \lvert r_m \rvert, консервативная верхняя оценка.
Доля критического \zeta в CQC задаёт корреляцию; ординаты нормативных спектров заданы для 5 % и от \zeta не пересчитываются. Направления возбуждения комбинируются после мод: SRSS по направлениям, R = \sqrt{\sum_d R_d^{2}}, либо правило 100–30–30 (ASCE 7-16, п. 12.5.3): R = \max_d\left(R_d + 0.3\sum_{e\neq d}R_e\right).
Остаточная масса
Отброшенные моды дают жёсткий отклик на ускорение нулевого периода (ZPA). Остаточная масса M_{\text{res},d} = M_{\text{ref},d} - \sum_m M_{\text{eff},m,d}, где M_{\text{ref},d} — масса незакреплённых поступательных степеней свободы. Поправка к базовой силе V_{\text{res}} = M_{\text{res},d}\cdot \text{ZPA}_d складывается с модальным откликом по SRSS (NRC Regulatory Guide 1.92, ANSYS: missing mass). Для полей перемещений и напряжений остаточная часть находится отдельным статическим решением \mathbf{K}\mathbf{u}_{\text{res}} = \text{ZPA}\,\mathbf{M}\,(\mathbf{t}_d - \sum_m\Gamma_{m,d}\boldsymbol{\varphi}_m) с теми же связями. Нормы требуют охвата не менее 90 % массы по каждому направлению (СП 14.13330, ASCE 7-16, п. 12.9.1.1): при меньшем охвате результат помечается предупреждением, что он не годен для проектирования, и надо увеличить число мод.
Расчётные спектры
- СП 14.13330.2018: расчётная сейсмичность площадки 7, 8, 9 баллов, категория грунта I–IV, коэффициенты назначения K_0, допускаемых повреждений K_1, рассеивания энергии K_\psi; для вертикальной составляющей — отдельный спектр по тем же формулам с K_\psi = 1 и множителем 0,75 (п. 5.12).
- ASCE 7-16 и 7-22: параметры S_s, S_1 (7-16, коэффициенты F_a, F_v по таблицам) или S_{DS}, S_{D1} (7-22), класс грунта, период T_L, R, I_e.
- Пользовательская таблица пар (период или частота, S_a) с линейной или логарифмической интерполяцией, в долях g или м/с².
Параметры нормы не подставляются молча: недостающее называется в ошибке до запуска модалки.
Что получается
Таблица мод (частота, период, обобщённая масса, \Gamma, эффективные массы и доли, накопленные доли, S_a, модальная базовая сила), охват массы по направлениям, базовая сила по направлениям и результирующая, поля. Перемещения комбинируются покомпонентно и неотрицательны (огибающая), знак перемещения при комбинации теряется, как принято в RSA. Компоненты напряжений и деформаций комбинируются по знаку модальных вкладов до применения SRSS или CQC. Эквивалентное напряжение Мизеса, главное напряжение и эквивалентная деформация не вычисляются из огибающих компонент: они строятся как максимумы квадратичного инварианта на эллипсоиде SRSS/CQC-комбинаций («пик на эллипсоиде спектра ответа», response-spectrum ellipsoid peak). Это пик огибающей, а не максимум по времени заданной акселерограммы; такие поля доступны для комбинированного результата при SRSS по направлениям и правилах SRSS или CQC по модам.
fix surface number 1
solve spectrum code=sp14 intensity=8 soil=II dir=x,y combine=cqc dircombine=srss zeta=0.05 nmodes=20
probe spectrum_base_shear dir=x
probe spectrum_cumulative_mass dir=x8.7Случайная вибрация (PSD)эксперимент
Анализ случайных вибраций оценивает среднеквадратичный (СКЗ) отклик на стационарное гауссово возбуждение основания, заданное спектральной плотностью мощности ускорения (PSD, ASD) — типично для транспорта, авиации, космической техники.
Постановка
Возбуждение — односторонняя плотность S_a(f) в единицах g^2/Гц (или в единицах СИ, м²/с⁴ на Гц) по таблице точек «частота — плотность» с кусочно-логарифмической (log–log) или линейной интерполяцией. Между точками (f_1, S_1), (f_2, S_2) при log–log S(f) = S_1(f/f_1)^{k}, k = \ln(S_2/S_1)/\ln(f_2/f_1). Входное СКЗ a_{\text{rms}} = \sqrt{\int S_a\,df} интегрируется аналитически по сегментам.
Отклик строится модальной суперпозицией. Передаточная функция моды j по относительному перемещению и по абсолютному ускорению:
Ковариация обобщённых координат вычисляется прямым интегрированием по частоте (метод трапеций по сетке со сгущением вокруг резонансов), без предположения о разнесённости частот:
Дисперсия отклика в узле: \sigma^{2} = \sum_j\sum_k \phi_j\,\phi_k\,V_{jk}, где \phi_j — значение формы j в узле. Матрица корреляции CQC \rho_{jk} (та же формула, что в спектре ответа) вычисляется и выводится как диагностика, но сама дисперсия использует V_{jk}. Выводятся СКЗ 1σ, значение 3σ (утроенное СКЗ, вероятность непревышения 99,73 % для гауссова процесса) для относительных перемещений, абсолютных ускорений и эквивалентных напряжений Мизеса.
Для одномассовой системы с белым шумом получается формула Майлза (Miles, 1954):
(вторая формула — для малого демпфирования).
Как реализовано и что упрощено
Из модального анализа берутся частоты, формы и коэффициенты участия по направлению \Gamma (по массе, как в спектре ответа); модальные напряжения восстанавливаются из форм. Напряжение Мизеса оценивается как \sigma_{\text{vM}}^{2} \approx \sum_j\sum_k s_j s_k V_{jk}, где s_j — эквивалентное напряжение Мизеса j-й формы. Это упрощение: скаляр Мизеса не имеет знака и взаимных корреляций компонентов тензора, поэтому оценка точна для одной доминирующей моды и ориентировочна при заметном вкладе нескольких. По перемещениям используется модуль вектора формы в узле, а результат записывается в компоненту направления возбуждения. Усталость и распределение максимумов не рассчитываются: 3σ — линейное масштабирование СКЗ, а не пик во времени.
solve psd) использует массовое участие и модальные напряжения; для инженерных выводов опирайтесь на него. Сходимость по числу мод и по густоте частотной сетки проверяйте сами.fix surface number 1
solve psd psd=[(20,0.01),(80,0.04),(350,0.04),(2000,0.005)] dir=z zeta=0.02 modes=10
probe psd_disp_3sigma
probe psd_stress_1sigma8.8Субмоделированиебета
Метод граничной интерполяции перемещений (Cut Boundary Displacement Method) позволяет получить точные напряжения у концентратора (отверстия, галтели), не измельчая сетку всей детали. Опирается на принцип Сен-Венана: вдали от концентратора поле перемещений грубой сетки близко к точному, даже если пик напряжений на кромке занижен в 1,5–2 раза.
Постановка
- Решается глобальная модель на умеренной сетке: поле \mathbf{u}_g(\mathbf{x}).
- Вокруг зоны интереса вырезается локальная подмодель: пересечение тела с секущим боксом по булевой операции, затем мелкая сетка (линейная или квадратичная).
- Грани подмодели делятся на секущие (проходят внутри исходного тела) и исходные свободные (отверстие, галтель, внешние грани).
- В каждом узле секущих граней (включая серединные узлы квадратичных элементов) ставится условие Дирихле с интерполированным глобальным перемещением:
Интерполяция барицентрическая по тетраэдрам глобальной сетки (линейная или квадратичная по порядку глобальных элементов); точки вне глобальной сетки на криволинейной границе проецируются на ближайший элемент.
- Локальная система решается тем же структурным решателем; свободные грани остаются без нагрузки.
Что задаёт пользователь и что получает
В интерфейсе подмодель запускается в секции «Субмоделирование» шага результатов (она вызывает ту же команду, что и сценарий). После глобального solve задаются: центр at=x,y,z (по умолчанию — очаг максимума напряжений или найденный очаг концентрации), размер зоны radius= или box=dx,dy,dz, размер элемента подмодели size=, порядок order=1|2. Результат: пик напряжения Мизеса в подмодели вне пристеночного слоя у секущей границы, число узлов на секущей границе и число элементов (submodel_peak_vm, submodel_cut_node_count, submodel_element_count).
mesh tet size=12 order=1
fix surface number 1
load surface number 3 pressure=-100000000
solve static
submodel at=60,30,4 box=36,36,8 size=2.4 order=2
probe submodel_peak_vm8.9Редукция Крейга–Бэмптона (CMS)эксперимент
Метод синтеза форм компонентов (Craig, Bampton, 1968) заменяет крупную подсборку суперэлементом: граничными степенями свободы и небольшим числом нормальных мод с закреплённой границей. Применяется для сборок, где подсистему многократно используют в динамике.
Постановка
Степени свободы делятся на граничные b и внутренние i. Статические моды (принуждения) и нормальные моды с закреплённым интерфейсом:
Преобразование и редуцированные матрицы:
Матрица масс \hat{\mathbf{M}} имеет единичный блок по модальным координатам. Полное поле восстанавливается обратным преобразованием.
Что есть на деле
Реализованы плотные матричные операции: статические и нормальные моды, редуцированные матрицы, восстановление перемещений и напряжений для линейных тетраэдров, редуцированный вектор нагрузки. Модуль проверен автоматическими тестами на малых матрицах (предел Гюйана, блочно-диагональность \hat{\mathbf{K}}, совпадение низших собственных значений). Команда cms и секция «Суперэлемент Крейга–Бэмптона» в результатах принимают граничную поверхность и число мод, но в текущей сборке конечно-элементная сетка пользователя в них не передаётся: расчёт идёт на встроенной тестовой цепочке масс и пружин. Поэтому использовать эти команды для редукции реальной подсборки нельзя.
cms boundary="surface number 1" modes=68.10Роторная динамикаэксперимент
Роторная динамика исследует, как вращение меняет собственные частоты: гироскопический эффект расщепляет изгибные частоты на прямую (FW) и обратную (BW) прецессию. Результат оформляется диаграммой Кэмпбелла (частоты как функция скорости вращения) с линиями синхронного возбуждения 1× и 2× и критическими скоростями на их пересечениях.
Постановка
В системе отсчёта, вращающейся с угловой скоростью \Omega вокруг оси:
Здесь \mathbf{G} — кососимметричная матрица кориолисовых членов (\mathbf{G}^{\mathsf{T}} = -\mathbf{G}), \mathbf{M}_{\text{spin}} — разупрочнение от центробежных сил в плоскости, перпендикулярной оси. Задача линеаризуется в пространстве состояний с матрицей
и решается полной несимметричной задачей на собственные значения (приведение Хаусхолдера к форме Гессенберга и QR-алгоритм с двойным сдвигом). Из пар комплексно-сопряжённых собственных значений берётся частота \operatorname{Im}\lambda и доля критического демпфирования -\operatorname{Re}\lambda/\lvert\lambda\rvert. Критические скорости — пересечения \omega_i(\Omega) = k\,\Omega для k = 1, 2, найденные линейной интерполяцией по сетке скоростей.
Что есть на деле
Это не полноценный расчёт ротора пользователя, а прототип:
- матрица \mathbf{G} строится из кориолисовых членов сосредоточенных масс; гироскопический момент дисков через полярный момент инерции, подшипники с жёсткостью и демпфированием и перекрёстные коэффициенты масляной плёнки в расчётном пути не участвуют;
- направление прецессии определяется по знаку сдвига частоты относительно неподвижного ротора, а моды сопоставляются по порядку номера в списке частот, без отслеживания по форме, поэтому на пересечениях мод классификация может быть неверной;
- команда
solve rotorи секция «Роторная динамика» в результатах считают диаграмму для встроенной двухстепенной модели (масса 2 кг, жёсткость 2·10⁴ Н/м, гироскопический коэффициент 0,4), а не для сетки пользователя; параметры оси, диапазона скоростей, числа шагов и мод управляют только разверткой.
solve rotor axis=z speed_min=0 speed_max=1000 steps=20 modes=4
probe rotor_crit_speed_19Нелинейные расчёты и динамика
↑ К оглавлениюРаздел описывает расчёты, в которых жёсткость зависит от решения или в которых нельзя пренебречь инерцией: большие перемещения и повороты, потеря устойчивости с проходом предельных точек, этапы возведения и выемки, неявная и явная динамика. Линейная статика, модальный анализ и линейная потеря устойчивости описаны в разделе Линейные виды анализа. Модели материалов (пластичность, гиперупругость, ползучесть) — в разделе Модели материалов, контакт — в разделе Контакт и соединения, линейные решатели — в разделе Решатели.
Единицы те же, что везде: геометрия в миллиметрах, на границе решателя — СИ (метры, ньютоны, паскали, килограммы, секунды). Результаты возвращаются в единицах интерфейса. Время в динамике задаётся в секундах.
Где что считается:
| Возможность | Десктоп (эталон) | Браузер |
|---|---|---|
| Геометрическая нелинейность, длина дуги, этапы | да | нет, явный отказ |
| Неявная динамика солидов | да | да, только упругие модели и Total Lagrangian без контакта, связей и пластичности |
| Неявная динамика балок и оболочек | да | ограниченно |
| Явная динамика | да | да |
Расчёт, которого платформа не несёт, отказывает с названной причиной. Тихой подмены линейным решением нет: в нелинейном пути любой неподдержанный тип элемента, связь или материал вызывает ошибку с текстом, а не упрощённый ответ.
9.1Геометрическая нелинейность солидовстабильно
Включается, когда линейная жёсткость перестаёт описывать конструкцию: перемещения сравнимы с размерами сечения, элемент заметно поворачивается, давление остаётся нормальным к деформируемой поверхности. Для объёмных тел используется полная Лагранжева формулировка (Total Lagrangian): все интегралы берутся по начальной конфигурации V_0.
Постановка
Градиент перемещений и градиент деформации в точке Гаусса:
Градиент строится по перемещениям, а не по \nabla(\mathbf{X}+\mathbf{u}): при \lvert\mathbf{u}\rvert \ll \lvert\mathbf{X}\rvert вычитание близких чисел теряет знаки. По той же причине тензор Грина–Лагранжа считается через \mathbf{H}:
Второй тензор Пиолы–Кирхгофа \mathbf{S} вычисляется по закону материала. По умолчанию это модель Сен-Венана–Кирхгофа:
Для больших деформаций резины и эластомеров выбираются гиперупругие модели: сжимаемый Нео-Гук с энергией W = \tfrac{\mu}{2}(\bar I_1 - 3) + \tfrac{\kappa}{2}(J-1)^2, \bar I_1 = J^{-2/3} I_1, а также Муни–Ривлин, Йео, Арруда–Бойс и Огден (параметры — в разделе Модели материалов). Формулировка чисто перемещенческая, без отдельного поля давления.
Виртуальная работа внутренних сил \int_{V_0} \mathbf{S}:\delta\mathbf{E}\,dV_0 даёт вектор внутренних сил и касательную матрицу. В записи Фойгта с инженерным сдвигом (порядок 11, 22, 33, 12, 23, 13):
Матрица \mathbf{B}_{NL} зависит от \mathbf{F}: для узла i и компоненты m строка E_{11} равна F_{m1}\,\partial N_i/\partial X, строка \gamma_{12} равна F_{m1}\,\partial N_i/\partial Y + F_{m2}\,\partial N_i/\partial X и так далее. Касательная — сумма материальной и геометрической частей:
Касательная аналитическая и симметричная (кроме вкладов следящих нагрузок и контакта). Для изотропного Сен-Венана–Кирхгофа \mathbb{D} постоянна. Для гиперупругих и упругопластических законов \mathbb{D} — согласованная касательная закона, поэтому сходимость Ньютона квадратичная.
Квадратуры те же, что в линейной сборке (раздел Библиотека конечных элементов): TET4 — одна точка, TET10 — четыре, HEX8 — 2\times2\times2 (полное интегрирование), HEX20 — 3\times3\times3. Ядро несёт также призмы, пирамиды и HEX27. Маршруты кнопки Solve и DSL подключают тетраэдры и гексаэдры первого и второго порядка и гибридную сетку Hex8–Pyr5–Tet4; другие сочетания типов отказывают вслух.
Что получает пользователь
Перемещения, реакции опор (\mathbf{f}_{\mathrm{int}} - \lambda\,\mathbf{f}_{\mathrm{ext}} в конечной конфигурации), деформации Грина–Лагранжа, истинные напряжения Коши и по ним эквивалентные напряжения по Мизесу и главные напряжения. Напряжения Коши получаются push-forward'ом:
Значение элемента — среднее по объёму V_0 по точкам Гаусса; значение узла — среднее по примыкающим элементам с весом в виде их объёма V_0. Это не суперсходимое восстановление: на градиентных участках узловые пики сглажены. Для принятых шагов нагружения сохраняются полные поля, и в постпроцессоре можно переключаться между шагами. Память снимков ограничена бюджетом; при переполнении шаги прореживаются равномерно, первый и последний остаются.
Настройки общие для панели Solution и DSL: число шагов нагрузки, потолок итераций на шаг, допуск невязки, режим давления (следящее или мёртвое), множитель штрафа контакта. Следящее давление действует по нормали текущей конфигурации: \mathbf{f}_a = -\lambda p \int N_a\,\tilde{\mathbf{n}}\,d\xi\,d\eta, где \tilde{\mathbf{n}} = \mathbf{x}_{,\xi}\times\mathbf{x}_{,\eta}. Касательная этой нагрузки учтена и в общем случае несимметрична (нагрузка одной грани неконсервативна).
nlgeom on pressure=dead steps=10 maxiter=25 tol=1e-6
solve staticЗапирание низкого порядка при больших перемещениях измерено на изгибе консоли L/h = 20 при PL^2/EI = 10 (40 элементов по длине, один по толщине). Эталон — эластика Эйлера, интегрированная независимо. Максимальная ошибка перемещения конца:
| Элемент | Ошибка |
|---|---|
| TET4 | 56.5 % |
| HEX8 | 8.9 % |
| TET10 | 0.16 % |
| HEX20 | 0.19 % |
Это запирание на конкретной сетке, а не гарантия для произвольной геометрии. Для изгиба при больших перемещениях используйте элементы второго порядка.
9.2Коротационные балки и оболочкистабильно
Для балок и оболочек полная лагранжева формулировка избыточна: деформации остаются малыми, большими бывают повороты. Здесь используется коротационный (corotational) подход: рама элемента следует за узлами, в ней применяется линейный элемент, а геометрическая нелинейность целиком идёт от поворота рамы.
Конфигурация узла — положение \mathbf{x} = \mathbf{X} + \mathbf{u} и полный поворот \mathbf{R}_g\in SO(3). Приращение поворота — пространственный спин \delta\mathbf{w}, обновление мультипликативное:
Складывать углы нельзя: на больших поворотах это неверно. В результате поворот узла выводится как вектор \log\mathbf{R}_g с углом в диапазоне [0, \pi].
Балка
Формулировка Battini и Pacoste (2002). Рама элемента \mathbf{R}_r строится по хорде и среднему положению оси y узловых поворотов. Деформационные величины в раме:
Они малы при малой деформации, поэтому к ним применяется линейный элемент Тимошенко без изменений: \bar{\mathbf{f}}_l = \mathbf{K}_l\,[\bar u,\bar{\boldsymbol\theta}_1,\bar{\boldsymbol\theta}_2]^{T}. Внутренние силы получаются точной виртуальной работой с учётом производной вращения; касательная аналитическая (совпадение с конечными разностями — до 10^{-9}).
Оболочка
Элементно-независимая коротационная формулировка EICR (Rankin и Nour-Omid; Felippa и Haugen, CMAME 194, 2005) поверх линейных оболочек: четырёхугольник с мембраной Q4, изгибом MITC4 и фиктивной жёсткостью вращения вокруг нормали; треугольник — CST с изгибом DKT. Рама элемента зависит только от положений узлов. Силы — точный градиент энергии \tfrac12\bar{\mathbf{d}}^{T}\mathbf{K}_l\bar{\mathbf{d}} по глобальным степеням свободы; проекторное слагаемое снимает работу на жёстких модах рамы. Касательная аналитическая.
Что получает пользователь
Перемещения и повороты узлов (повороты — вектором полного поворота), реакции, усилия балок N, V_y, V_z, T, M_y, M_z на концах в текущей раме элемента. Для оболочек считается эквивалентное напряжение по Мизесу по верхнему и нижнему волокну в центре элемента, по линейным соотношениям от деформационных величин рамы; выдаётся большее из двух. Полей напряжений по толщине в нелинейном расчёте нет.
Узловые моменты задаются осевыми векторами, неподвижными в пространстве и сопряжёнными пространственному спину. В плоских задачах такая нагрузка консервативна; в пространственных следящих моментов нет.
frame solve static nlgeom=on steps=10 maxiter=30 tol=1e-69.3Итерации Ньютона–Рафсона и шаги нагружениястабильно
Задача: найти \mathbf{u}, при котором внутренние силы уравновешивают приложенные при доле нагрузки \lambda. Невязка на свободных степенях свободы:
Нагрузка нарастает от \lambda = 0 до \lambda = 1 шагами. На каждом шаге выполняется метод Ньютона–Рафсона с полным пересчётом касательной на каждой итерации:
Повороты обновляются мультипликативно (см. предыдущий подраздел). Касательную раскладывает разреженное LU (библиотека Eigen), символический анализ шаблона разреженности переиспользуется между итерациями. LU, а не Холецкий, потому что касательная коротационных элементов вне равновесия несимметрична; подробнее о линейных решателях — в разделе Решатели.
Критерий сходимости
Шаг принимается, когда относительная невязка не превышает допуск:
Здесь f_{\mathrm{ref}} — опорная норма нагрузки (ниже). Критерий только по невязке; критерия по приращению перемещений или по энергии нет. Опорная норма учитывает следящие нагрузки (иначе чисто следящая задача с нулевой внешней силой в равновесии давала бы относительную невязку 1) и, при нагружении заданными перемещениями или разгрузкой в \lambda = 0, нижнюю границу по полной нагрузке модели. Итерация, у которой невязка мала уже до первого решения, не засчитывается: хотя бы одно приращение выполняется.
Автоматическое дробление шага
Начальный шаг \Delta\lambda — доля 1/N от заданного числа шагов. Если Ньютон не сошёлся за отведённое число итераций (или невязка нечисловая), шаг отбрасывается, состояние откатывается на последнее принятое и \Delta\lambda делится пополам. Если Ньютон сошёлся быстро, шаг растёт. Рост и дробление ограничены снизу и сверху. Дробление ниже минимума — отказ «автошаг исчерпан». Все принятые шаги и откаты считаются и показываются в результате.
Путь нагружения
Для упругопластических задач и циклов нагрузка может идти по произвольной последовательности целевых долей \lambda: \{1, 0\} — нагрузка и полная разгрузка (остаточная деформация), \{1, -1, 1\} — цикл. Автошаг работает на каждом отрезке. Путь нагружения поддержан только управлением по нагрузке.
Что задаёт пользователь
| Параметр | DSL | Смысл |
|---|---|---|
| Число шагов | steps= | целевое число шагов до \lambda = 1 (по умолчанию 10) |
| Итерации на шаг | maxiter= | потолок итераций Ньютона (по умолчанию 25) |
| Допуск невязки | tol= | относительный допуск \varepsilon (по умолчанию 10^{-6}) |
| Потолок шагов | maxsteps= | общее число принятых шагов, включая дробление |
| Контрольная степень свободы | controldof= | для кривой «нагрузка — перемещение»; по умолчанию наибольшее \lvert u\rvert |
| Путь нагружения | loadpath="1,0" | целевые доли \lambda подряд |
Причины отказа, которые видит пользователь, фиксированы: автошаг исчерпан (равновесие не найдено); достигнут потолок числа шагов; вырожденная касательная (механизм или предельная точка при управлении по нагрузке); приземление на \lambda=1 не сошлось; неверный вход; путь убежал на нефизичную ветвь (длина дуги). Вместе с причиной сообщается достигнутое \lambda и число шагов.
9.4Метод длины дуги Крисфилдастабильно
Когда на пути нагружения есть предельные точки по нагрузке (snap-through) или откат (snap-back), управление по нагрузке в них останавливается: касательная вырождена. Метод длины дуги растёт вдоль самой кривой равновесия, а не вдоль \lambda.
Неизвестные — приращения \Delta\mathbf{u} и \Delta\lambda с дополнительным уравнением связи. Реализован цилиндрический вариант Крисфилда: ограничение на длину дуги накладывается только на перемещения свободных степеней свободы,
Корректор на итерации раскладывается как \delta\mathbf{u} = \delta\mathbf{u}_r + \delta\lambda\,\delta\mathbf{u}_t, где \delta\mathbf{u}_r = \mathbf{K}_T^{-1}\mathbf{r}, \delta\mathbf{u}_t = \mathbf{K}_T^{-1}\mathbf{f}_{\mathrm{ref}}, а \delta\lambda — корень квадратного уравнения
Из двух корней берётся тот, при котором обновлённое приращение образует меньший угол с приращением до коррекции. Комплексные корни — шаг дробится.
Предиктор касательный; знак приращения нагрузки определяется по Фенгу: знаком скалярного произведения предыдущего приращения и касательного вектора. Этого недостаточно на snap-back многих степеней свободы, поэтому добавлена проверка Крисфилда на разворот: принятое приращение шага обязано образовать острый угол с предыдущим, иначе шаг отвергается и дуга режется вдвое. Длина дуги подстраивается по числу итераций корректора. Если шаг дуги пересёк \lambda = 1, он откатывается и «приземляется» на \lambda = 1 управлением по нагрузке малыми подшагами. Если приземление невозможно (ветвь с отрицательной жёсткостью), принимается последний сошедшийся шаг дуги.
В результате пользователь получает полную историю \lambda(u) вдоль пути: с участками \lambda, убывающей при росте u, и с \lambda<0 после snap-back. Выбор метода — в шаге Solve (список «Метод») и в DSL (method=arc).
frame solve static nlgeom=on method=arc steps=40 maxiter=40 tol=1e-6loadpath) с длиной дуги тоже отказывает. Приёмка длины дуги проводилась на упругих балках и оболочках; прохода предельных точек для твёрдых тел с пластичной историей нет. Метод строит путь, но не выбирает ветвь за пользователя: на бифуркации с несколькими ветвями путь зависит от несовершенства (следующий подраздел). Предохранитель останавливает расчёт с отказом «путь убежал», если нагрузка по модулю уходит слишком далеко от заданной.9.5Начальные несовершенства и закритическое поведениебета
Совершенная конструкция под сжатием теряет устойчивость по бифуркации; реальная — по предельной нагрузке, которая зависит от формы и амплитуды начальных отклонений (чувствительность к несовершенствам, Koiter). Типичная цепочка: линейный расчёт устойчивости \to внесение несовершенства по найденной форме \to нелинейный расчёт длиной дуги.
Команда imperfection берёт k-ю собственную форму линейной потери устойчивости \boldsymbol\phi_k, нормирует её по наибольшему поступательному перемещению и смещает координаты узлов сетки:
Здесь w_0 — наибольшее смещение в единицах длины модели (параметр scale). Несколько команд подряд складывают формы (многомодовое несовершенство). Применимо к оболочечным сеткам, объёмным сеткам и каркасам. Команда требует предшествующего solve buckling на той же модели и меняет геометрию рабочей модели: последующие расчёты идут по возмущённой сетке.
solve buckling nmodes=3
imperfection mode=1 scale=0.5
solve static nlgeom=on method=arc steps=20 maxiter=30 tol=1e-5imperfection пока нет.9.6Нелинейность материала в итерацияхстабильно
Материальная нелинейность входит в тот же цикл Ньютона. На каждой точке Гаусса хранится история закона (принятое состояние); на итерации закон вычисляется от принятого состояния, а не накапливается по итерациям. Принятое состояние обновляется после сошедшегося шага, при откате шага состояние остаётся прежним. Поэтому повторная сборка при тех же перемещениях идемпотентна, а дробление шага не портит историю.
Закон возвращает напряжение и согласованную касательную \partial\mathbf{S}/\partial\mathbf{E}. Для пластичности по Мизесу (изотропное, кинематическое, мультилинейное упрочнение) и Джонсона–Кука на вход закона идёт тензор Грина–Лагранжа, на выходе второй тензор Пиолы–Кирхгофа: пластичность аддитивна в этой паре. Описание законов и их параметров — в разделе Модели материалов.
Режим «только материальная нелинейность» (nlgeom=material) отключает геометрическую нелинейность солидов: \boldsymbol\varepsilon = \mathrm{sym}\,\nabla\mathbf{u}, \mathbf{K}_{\mathrm{geo}} не собирается, давление мёртвое.
Для идеальной пластичности исчерпание автошага у последней цели нагрузки означает исчерпание несущей способности. В этом случае продукт возвращает последнее сошедшееся равновесие как результат и сообщает предельную долю нагрузки (\lambda_{\mathrm{lim}}); с упрочнением такой отказ остаётся ошибкой расчёта.
material steel plasticity=j2 yield=250e6
nlgeom material steps=20 loadpath="1,0"
solve static9.7Заданные перемещения в нелинейной постановкебета
Нагружать можно не только силой, но и заданным перемещением (привод, посадка, растяжение образца). В нелинейной статике ненулевое заданное перемещение вводится линейным уравнением связи на трансляционных степенях свободы с правой частью, пропорциональной \lambda:
Здесь c_i — коэффициенты связи (для заданного перемещения одна степень свободы с коэффициентом 1), \bar r — заданное значение (в метрах на границе решателя); первый член уравнения — зависимая степень свободы. Перемещение растёт вместе с долей нагрузки и в путях нагружения \{1, 0\} возвращается к нулю. Связь на трансляциях остаётся точной при больших перемещениях. Заданные перемещения совместимы с силами, следящим давлением и путём нагружения.
При нагружении одними перемещениями внешней силы нет, и обычная опорная норма невязки равна нулю: невязка округления делилась бы на ноль и расчёт ложно не сходился. Поэтому опорная норма берётся по энергетическому масштабу заданных перемещений. Это изменение не затрагивает расчёты, нагруженные силами.
9.8Неявная динамика солидовстабильно
Переходная динамика с учётом инерции и демпфирования, когда нагрузка меняется во времени быстро по сравнению с периодом основного тона, но удары и волны напряжений не нужны (для них — явная схема). Решается полудискретное уравнение движения
с нагрузкой \mathbf{F}(t) = k(t)\,\mathbf{F}_0, где k(t) — кусочно-линейная амплитуда по таблице пар «время — множитель».
Схемы
Реализованы Newmark-\beta и HHT-\alpha (Хилберт–Хьюз–Тейлор). Обобщённой \alpha-схемы (Chung–Hulbert) нет. Обе схемы записаны в одной форме:
Newmark — это \alpha = 0; по умолчанию \beta = 1/4, \gamma = 1/2 (правило трапеций: безусловно устойчиво, без численного демпфирования). Для HHT-\alpha параметр \alpha\in[-1/3, 0], а \beta = (1-\alpha)^2/4, \gamma = (1-2\alpha)/2; численное демпфирование высоких частот тем сильнее, чем меньше \alpha: предел спектрального радиуса при \Omega\to\infty равен (1+\alpha)/(1-\alpha). Обобщённые \beta, \gamma принимаются при \gamma \ge 1/2 и \beta \ge (\gamma + 1/2)^2/4, то есть только безусловно устойчивые; остальные (в том числе «линейное ускорение») отказывают, чтобы не допустить тихой неустойчивости.
Неизвестная схемы — приращение \Delta\mathbf{u} шага. Ньютон идёт по эффективной касательной
Демпфирование Рэлея \mathbf{C} = a_R\mathbf{M} + b_R\mathbf{K}_0; \mathbf{K}_0 — касательная начальной конфигурации, она не обновляется по ходу расчёта (как материальное демпфирование в промышленных кодах). Коэффициенты задаются парой (a_R, b_R) или двумя парами «частота — доля критического». Если шаг не сошёлся, он режется пополам рекурсивно до заданной глубины (подшаги внутри одного шага вывода). При малых деформациях без пластичности (\mathbf{K} постоянна) используется быстрый линейный путь с одной факторизацией на весь расчёт.
Что задаёт пользователь
Шаг h и конечное время обязательны. Масса: согласованная (по умолчанию), сосредоточенная по HRZ либо «поровну по узлам». Кинематика: малые деформации либо большие перемещения (Total Lagrangian). Начальные условия: статика под полной нагрузкой («отпускание») или нули; начальная скорость всем узлам или выбранному телу. Ускорение основания задаётся в относительной постановке \mathbf{F} = -\mathbf{M}\boldsymbol\iota\,\mathbf{a}_0\,k(t). Результат: перемещения, скорости, ускорения в точках-пробниках по времени, ряды энергий (кинетическая, внутренняя работа, рассеяние демпфированием, работа внешних сил, баланс), максимум по Мизесу и пластической деформации, кадры поля и огибающая Мизеса по узлам.
solve transient dt=1e-4 tend=0.05 scheme=hht alpha=-0.05 amplitude="0:0,0.001:1"
solve transient dt=1e-4 tend=0.05 rayleigh f1=50 z1=0.02 f2=500 z2=0.05Ключи alpha= и beta= здесь параметры схемы, а не коэффициенты Рэлея. Альтернатива прямому интегрированию — модовая суперпозиция (method=modal) с точным интегралом Дюамеля и статической поправкой остаточных мод; она линейна и не заменяет нелинейную динамику.
9.9Неявная динамика балок и оболочек, связи и основаниебета
Для балок и оболочек динамика ведётся на группе поворотов SO(3). Узел несёт вращательную инерцию; уравнение Эйлера для вращения в пространственной форме
Приращение поворота шага \Delta\boldsymbol\theta = \log(\mathbf{R}\,\mathbf{R}_n^{T}) входит в Newmark/HHT, касательная вращательного блока включает производную \mathbf{T}^{-1}. Масса: согласованная или сосредоточенная; поддержана начальная угловая скорость \mathbf{w}_0 (жёсткое вращение вокруг центра масс).
Для солидов дополнительно доступны: связи CE/MPC и RBE2, нормальные связи, удалённые силы и моменты, заданное движение опор (u = k(t)\bar u в абсолютной постановке), ускорение основания (сейсмическое возбуждение). Динамика идёт в независимых степенях свободы с редуцированной массой \mathbf{M}_r = \mathbf{T}^{T}\mathbf{M}\mathbf{T}. Контакт и трение (штраф узел–поверхность, регуляризованное кулоновское трение) описаны в разделе Контакт и соединения.
9.10Явная динамикастабильно
Явная схема нужна для быстрых процессов: удар, пробитие, взрывное нагружение, распространение волн. Шаг по времени ограничен условием Куранта–Фридрихса–Леви, зато нет решения системы уравнений и итераций: одна оценка внутренних сил на шаг. Уравнения движения интегрируются схемой центральных разностей (скоростная форма Верле) с диагональной матрицей масс:
Сосредоточенная масса по HRZ (Hinton–Rock–Zienkiewicz): диагональ согласованной массы, отмасштабированная на полную массу элемента. Она положительна и для элементов второго порядка, где суммирование по строке даёт отрицательные массы угловых узлов.
Критический шаг
Шаг не превышает оценки времени пробега волны через самый малый элемент:
Здесь L_e — характерный размер элемента (для гексаэдра V/A_{\max}, для тетраэдра 3V/A_{\max}, где A_{\max} — наибольшая грань), \alpha_{\Delta t} — коэффициент запаса, который задаёт пользователь (dtScale). Для HEX8 используется строгий предел элемента 2/\omega_{\max} по максимальному собственному числу \mathbf{M}^{-1}\mathbf{K}_e. Для куба при \nu=0.3 он равен 0.735\,L_e/c (объёмное «дыхание»), поэтому оценка L_e/c сама по себе не безопасна. Шаг пересчитывается по ходу счёта: по живым элементам и по текущему размеру при конечных деформациях. Если в сетке есть вырожденные элементы с аномально малым характерным размером, их масса масштабируется, чтобы они не обнуляли шаг всего расчёта. Масштабирование искажает инерцию этих элементов.
Элементы, материалы, нагрузки
Трёхмерные TET4, TET10, HEX8; двумерные QUAD4 и QUAD8 (плоская деформация или плоское напряжение). HEX8 — одноточечный элемент с точным объёмно-усреднённым градиентом и контролем «песочных часов» по Фланагану–Белычко (вязкая и жёсткостная формы, коэффициент задаёт пользователь, расчёт сообщает отношение энергии песочных часов к внутренней и предупреждает о чрезмерном). Материалы: линейно-упругий, J2 с идеальным, линейным или мультилинейным упрочнением (изотропная и кинематическая доли), Джонсон–Кук (скорость, температура, адиабатический разогрев), уравнение состояния Ми–Грюнайзена для ударных волн (см. раздел Модели материалов). Объёмная вязкость q_1 (линейная) и q_2 (квадратичная) подавляет осцилляции на фронтах.
Нагрузки и условия: начальная скорость тела или поверхности, закрепление, симметрия, заданное движение поверхности (скоростью или перемещением по таблице), жёсткая стенка, объёмная сила и тяжесть, поглощающая граница. В расчёте ведётся энергетический баланс: кинетическая и внутренняя энергия, энергия песочных часов, энергия эрозии, работа внешних воздействий.
Конечные деформации
Для TET4 и HEX8 включается режим конечных деформаций (largeStrain=on): обновлённая Лагранжева формулировка, градиенты на текущей сетке, гипоупругость Яумана с поворотом накопленных деформаций по Хьюзу–Уингету, текущий объём и размер элемента в оценке шага. Без него постановка геометрически линейная (малые деформации и повороты). Для ударов с деформациями порядка единицы этот режим необходим: удар Тейлора в геометрически линейной постановке отклоняется от теории на 1.6 % и 5.1 % (при безразмерной нагрузке \rho U^2/\sigma_y, равной 0.25 и 0.5).
material E=124e9 nu=0.34 density=8960 plasticity=j2 yield=300e6
explicit endTime=0.00017 dtScale=0.8 largeStrain=on
bc explicit_velocity body vx=-91.5
bc rigid_wall plane x 0 friction=0
solve explicit9.11Эрозия элементов и разрушениебета
Для расчётов пробития и откола элемент, достигший критерия разрушения, удаляется из внутренних сил. Критерии можно комбинировать, разрушение наступает при достижении любого:
- предельная эквивалентная пластическая деформация \varepsilon_p \ge \varepsilon_{\mathrm{fail}};
- накопленное повреждение Джонсона–Кука D = \sum \Delta\varepsilon_p/\varepsilon_f, где \varepsilon_f = [d_1 + d_2 e^{d_3\eta}]\,[1 + d_4\ln\dot\varepsilon^*]\,[1 + d_5 T^*];
- максимальное главное напряжение \sigma_1 \ge \sigma_{\max};
- отрывное давление \sigma_m \ge p_{\mathrm{spall}}.
Удалённый элемент перестаёт нести силы, но масса его узлов остаётся (импульс сохраняется), шаг считается по живым элементам, внутренняя энергия элемента фиксируется как энергия эрозии, и энергетический баланс остаётся замкнутым. Эродирующий контакт — односторонний штрафной узел–сегмент по всей внешней поверхности живых элементов; по мере эрозии открываются новые грани, и ударник встречает образовавшуюся каверну.
material steel plasticity=j2 yield=355e6 fail="ep:0.25,smax:1.2e9"
explicit endTime=0.03 dtScale=0.8 largeStrain=on erodingContact=on9.12Волновые задачи в явной динамикебета
Распространение упругих волн в грунте и твёрдом теле. Источники: давление или касательная нагрузка на грань, сила в узле, взрывная полость с давлением по закону во времени, гладкий центр расширения (безвихревая объёмная сила, чистая P-волна). Законы во времени: импульс Рикера, экспонента, свип частоты, гармоника, ступень, таблица. Упругие слои задают расслоённое полупространство. Виртуальные геофоны записывают перемещение, скорость и ускорение в узле или в ближайшем к заданной точке узле; по ним считаются PPV, время прихода и скорость волны. Поля \nabla\cdot\mathbf{u} и \lvert\nabla\times\mathbf{u}\rvert выводятся на сетку и в узлы.
Неотражающая граница Лисмера–Кулемейера задаёт напряжения, пропорциональные скорости:
Плотность и скорости волн берутся по материалу смежного элемента, нормаль — по самой грани, демпфер входит в шаг неявно.
explicit geophone at=0,0,-100 name=g1
explicit layer axis=z at=-300 E=2e9 nu=0.3 density=1800
bc explicit_absorbing surface number 49.13Рождение и смерть элементов, этапы возведения и выемкистабильно
Для возведения сооружения по ярусам, выемки грунта, проходки туннеля и послойного наплавления набор активных элементов меняется от этапа к этапу, нагрузки и закрепления кумулятивны, перемещения и напряжения накапливаются. Задаётся список этапов: каждый этап включает тела (рождение) и выключает тела (смерть) в своём начале.
Метод «мягких элементов»: сетка остаётся целиком, размер системы не меняется между этапами. Неактивный элемент не удаляется; его внутренняя сила и касательная умножаются на малый множитель мягкости s (параметр stagesoft), закон упругий и без истории, плотность и вес ему не назначаются. Ошибка алгоритма пропорциональна множителю: относительная погрешность порядка 0.04\,s. Узлы, принадлежащие только неактивным элементам, следуют за активной частью: в начале этапа их положение задаётся по ближайшему узлу границы с активным телом.
Рождение. В начале этапа опорная конфигурация нового элемента принимается равной текущей: \mathbf{H} = \nabla(\mathbf{u} - \mathbf{u}_{\mathrm{ref}}) = \mathbf{0}, \mathbf{S} = \mathbf{0}, история пластичности чистая. Элемент рождается ненапряжённым на деформированной конфигурации, а не на исходной сетке. Смерть. Элемент становится мягким, его остаточная сила обнуляется; снятую им нагрузку конструкция принимает постепенно вместе с приращением нагрузки этапа.
Нагружение этапа идёт по параметру \lambda\in[0,1]:
где \mathbf{b} — внутренняя сила для нового набора активных элементов на конфигурации \mathbf{u}_0 в начале этапа (равновесной по построению), \mathbf{f}_{\mathrm{stage}} — полная нагрузка этапа. Разность \mathbf{f}_{\mathrm{stage}} - \mathbf{b} несёт и приращение внешней нагрузки, и «силу выемки» умерших элементов. Ньютон и автошаг — общие с нелинейной статикой. Допуск этапа измеряется по полной нагрузке модели. Вес и объёмные силы назначаются по телам: у неактивного тела веса нет.
Результаты хранятся по этапам; команда stage view переключает просмотр и замеры.
nlgeom on pressure=dead
stage add name=L1
stage add name=L2 activate=body2
solve static
stage view 29.14Связка T(t) → u(t)бета
Нестационарная температура может нагружать конструкцию в динамике. Связь односторонняя: шаг теплопроводности даёт T_{n+1}, термонагрузка \mathbf{f}_{\mathrm{th}}(T_{n+1}) входит в механику; обратного влияния деформации на температуру (член Гоу–Джоуля) нет. Два режима: квазистатика (на каждом тепловом шаге \mathbf{K}\mathbf{u} = \mathbf{f}_{\mathrm{ext}} + \mathbf{f}_{\mathrm{th}}(T), без инерции) и динамика — тот же интегратор Newmark/HHT, что в неявной динамике, с термонагрузкой в правой части; HHT берёт (1+\alpha)\mathbf{f}_{\mathrm{th}}(T_{n+1}) - \alpha\mathbf{f}_{\mathrm{th}}(T_n). Один тепловой шаг приходится на заданное число механических. Постановка нестационарной теплопроводности — в разделе Теплопередача и мультифизика.
9.15Отмена расчётабета
Кнопка «Отмена» в шаге Solve выставляет флаг отмены нативного решателя и прерывает ожидание результата. Что именно остановится, зависит от расчёта.
Флаг опрашивается: в цикле явной динамики на каждом шаге (расчёт возвращает частичный результат со статусом «отменён»), в нестационарной теплопроводности после каждого шага (частичные кадры), в шагах нагружения контакта mortar. В цикле Ньютона нелинейной статики, в неявной динамике и в стадийном расчёте точки опроса нет: интерфейс показывает отмену сразу, но ядро может дойти до конца текущего вызова.
9.16Честность флага «сошлось»стабильно
Нелинейный расчёт, который показывает результат под видом решения, хуже расчёта, который отказал. В продукте принято следующее.
Для управления по нагрузке расчёт считается сошедшимся только если достигнута \lambda = 1 (или последняя цель пути нагружения) и последний шаг сошёлся по невязке. Исчерпанный автошаг, потолок числа шагов, вырожденная касательная, нечисловые значения — отказ с кодом причины, достигнутым \lambda и числом шагов, а не последний шаг под видом результата. В интерфейсе статус звучит «Сошлось: достигнута \lambda = 1» либо «Не сошлось: причина». Проверка: задача без равновесия возвращает converged = false и \lambda < 1.
Частичный прогресс не маскируется: пользователь видит число принятых шагов, откатов и итераций. Для идеальной пластичности предельная нагрузка — отдельный явный результат, помеченный как предельная доля нагрузки. Вывернутый элемент (с неположительным якобианом) считается нечисловым и режет шаг: расчёт под давлением, превышающим предельное, не возвращает «сошедшееся» решение с отрицательным объёмом. Нативные результаты проверяются на полноту: старый бинарь, не знающий пластичности или пути нагружения, отказывает с просьбой обновить приложение, а не возвращает упругий ответ.
10Теплопередача и мультифизика
↑ К оглавлениюРаздел описывает тепловые задачи (теплопроводность, излучение, тепловой контакт), термоупругость, обтекание потоком жидкости или газа (CFD) и акустику полостей. Модули разные по зрелости: теплопроводность и термоупругость считаются и в десктопе, и в браузере, CFD — только в десктопе; акустика и эффект Гоу–Джоуля пока экспериментальные. Статус каждого подраздела стоит в заголовке, ограничения вынесены в отдельные врезки.
Единицы на входе и выходе: геометрия в мм, время в секундах, температура в °C (в формулах излучения ядро само переводит её в кельвины), теплопроводность \kappa в Вт/(м·К), теплоёмкость c_p в Дж/(кг·К), плотность в кг/м³, плотность теплового потока в Вт/м², коэффициент теплоотдачи h в Вт/(м²·К), объёмное тепловыделение Q в Вт/м³, коэффициент теплового расширения \alpha в 1/К. На границе солвера — СИ.
Десктопная сборка считает нативным ядром, браузерная — тем же кодом в WebAssembly. Эталоном считается десктоп. На проверенных задачах (нелинейное тепло, связная термоупругая динамика) числа двух платформ совпадают до печатаемых цифр. CFD доступен только в десктопе.
10.1Стационарная теплопроводностьбета
Стационарная задача даёт установившееся поле температуры при заданных температурах, потоках, конвекции и объёмном тепловыделении. Применяется для оценки перепадов температуры в деталях, мощности теплоотвода и как первый шаг связной термоупругости.
Постановка
Уравнение Фурье для изотропного материала в области \Omega:
Граничные условия на непересекающихся частях границы (нормаль \mathbf n внешняя):
- температура: T=T_D;
- поток, положительный внутрь тела: \kappa\,\partial_n T=q;
- конвекция: -\kappa\,\partial_n T=h\,(T-T_\infty);
- излучение в среду: -\kappa\,\partial_n T=\varepsilon\sigma\,(T_K^4-T_{\infty K}^4) — см. нелинейную теплопроводность.
Слабая форма для линейного случая (без излучения): найти T, равную T_D на границе с заданной температурой, такую что для любой пробной функции w
Дискретизация даёт симметричную положительно определённую систему \mathbf K\,\mathbf T=\mathbf F с матрицей K_{ij}=\int_\Omega\kappa\,\nabla N_i\cdot\nabla N_j\,dV+\int_{\Gamma_h}h\,N_iN_j\,dA и вектором F_i=\int_\Omega Q\,N_i\,dV+\int_{\Gamma_q}q\,N_i\,dA+\int_{\Gamma_h}h\,T_\infty N_i\,dA.
Что задаёт пользователь и что получает
Пользователь задаёт \kappa материала (отдельно для каждого тела), температуры, потоки и коэффициенты конвекции на гранях по номерам поверхностей, объёмное тепловыделение Q для всего тела или для выбранного тела. Результат — поле температуры в узлах, минимум и максимум, баланс мощности в ваттах:
Слева — тепловыделение и входящий поток, справа — теплоотвод через грани с заданной температурой (по реакциям), конвекцию и излучение. Расхождение баланса показывает, согласованы ли ГУ с матрицей.
Как реализовано
Элементы — линейные и квадратичные тетраэдры (тип 4 и 10 узлов). Ядро умеет и гексаэдры 8/20/27 узлов, клин и пирамиду. Граничные грани — треугольники и четырёхугольники первого и второго порядка. Матрица разреженная: небольшие системы решаются прямым разложением LDL^T, большие — методом сопряжённых градиентов с предобуславливателем неполным Холецким. Без закреплённой температуры или конвекции хотя бы на одной грани задача вырождена (температура определена с точностью до константы), и расчёт отказывает с пояснением.
Интерфейс: тепловой анализ в ленте, тепловые ГУ («Тепловой поток», «Объёмное тепловыделение») на шаге граничных условий, результат — поле «Температура» и баланс мощности.
material preset=steel kappa=40
thermal surface number 1 temperature=100
thermal surface number 2 convection=25 ambient=20
load heat_generation=2e6
solve thermal10.2Нестационарная теплопроводностьбета
Нестационарный расчёт даёт эволюцию температуры при изменяющихся во времени нагрузках: нагрев и остывание, тепловой удар, циклические режимы. Он нужен, когда важна тепловая инерция детали, а не только установившийся режим.
Постановка
Матрица теплоёмкости C_{ij}=\int_\Omega\rho c_p\,N_iN_j\,dV — согласованная либо диагональная HRZ (Hinton, Rock, Zienkiewicz, 1976): диагональ согласованной матрицы, отмасштабированная на элемент так, чтобы сумма равнялась \int\rho c_p\,dV. Диагональная матрица убирает осцилляции на резком фронте, но поддерживается только для линейных элементов.
Интегрирование по времени — \theta-метод:
При \theta=1 схема — неявный Эйлер: первый порядок, L-устойчива, монотонна. При \theta=\tfrac12 — Кранк–Николсон: второй порядок, A-устойчива, но на скачке нагрузки даёт затухающие колебания — это свойство схемы. Матрица шага постоянна, поэтому факторизуется один раз. Шаг подгоняется под конечное время: \Delta t_{\text{used}}=t_{\text{end}}/\lceil t_{\text{end}}/\Delta t\rceil. Возможен и заданный пользователем неравномерный график шагов.
Что задаёт пользователь
Обязательны шаг \Delta t, конечное время и начальная температура: начальное состояние продукт не угадывает. Дополнительно — плотность и c_p материала, схема \theta и тип теплоёмкости, пробники (точки в мм, привязываются к ближайшему узлу), число сохраняемых кадров поля. Каждый канал нагрузки умножается на кусочно-линейную таблицу времени k(t): температура T_D(t)=T_D\,k_T(t), поток, коэффициент конвекции, температура среды, тепловыделение. Вне таблицы множитель постоянен. Температура на узлах с заданным значением в момент t=0 равна T_D(0), поэтому скачок стенки при t=0 не создаёт импульса в первом шаге.
Баланс энергии
Суммирование строк уравнения шага даёт точное тождество
где P — суммарная мощность тепловыделения, потока и реакций на заданной температуре за вычетом конвекции и излучения. Продукт выводит невязку этого тождества и независимый интеграл накопленной энергии \int\rho c_p\,\Delta T\,dV. Невязка порядка машинной означает, что реакции, конвекция и источники собраны согласованно с матрицей.
Интерфейс: на шаге расчёта переключатель «Стационарное / нестационарное», поля шага, времени, схемы, таблиц k(t).
material preset=steel kappa=40 specific_heat=460
thermal surface number 1 temperature=120
solve thermal transient dt=0.1 tend=16 t0=20 theta=0.5 probes="10,0,0;20,0,0"10.3Нелинейная теплопроводность: κ(T) и излучениебета
Нелинейный режим включается автоматически, если в модели есть граница с излучением или таблица \kappa(T). Применяется для высокотемпературных режимов: остывание нагретой детали, теплоотвод излучением, материалы со сильной зависимостью проводимости от температуры.
Постановка
Излучение с поверхности в среду по закону Стефана–Больцмана:
здесь \sigma в Вт/(м²·К⁴), \varepsilon — степень черноты.
Зависимость \kappa(T) — кусочно-линейная таблица пар «температура : проводимость»; вне таблицы берётся значение крайней точки. Невязка и касательная матрица стационарной задачи:
Касательная полная и несимметричная (из-за \kappa'), поэтому порядок сходимости метода Ньютона–Рафсона квадратичный. В нестационарном расчёте на каждом шаге \theta-метода решается нелинейное уравнение
с якобианом \tfrac{1}{\Delta t}\mathbf C+\theta\,\mathbf J_{\text{int}}. Шаг Ньютона демпфируется по норме невязки; критерий сходимости — относительная невязка с учётом уровня округления.
Что задаёт пользователь и что получает
Излучение: степень черноты \varepsilon\in(0,1] и температура среды в °C. Таблица \kappa(T) — пары «°C : Вт/(м·К)», температуры строго возрастают, \kappa>0. Результат дополняется числом итераций Ньютона, историей невязки и мощностью излучения в балансе. Если метод не сошёлся, температура не отдаётся: расчёт отказывает, а не выдаёт приближение.
material preset=steel kappa_table="0:20,400:60" specific_heat=460
thermal surface number 2 radiation=0.85 ambient=20
solve thermal transient dt=5 tend=600 t0=900 theta=0.510.4Тепловой контакт стыкабета
Тепловой контакт моделирует термическое сопротивление между двумя раздельными телами сборки: поток через стык пропорционален скачку температуры. Нужен для болтовых и прессовых соединений, прокладок, контактных площадок. Механический контакт описан в разделе Контакт; тепловой от него не зависит и на механику не влияет.
Постановка
Одно тело пары — ведомое (slave, первое в команде), второе — ведущее (master). В точках Гаусса ведомых граней находится проекция на ведущую поверхность; точка засчитывается как стык, если расстояние до ведущей грани не больше допуска, нормали почти антипараллельны, а зазор направлен вдоль нормали. Остальные грани тел остаются адиабатными. Вклад в матрицу \mathbf K_c=\sum h_c\,w\,\boldsymbol\varphi\boldsymbol\varphi^T, где \boldsymbol\varphi=[N_s;\,-N_m], симметричен и полуопределён: стык сам тепла не создаёт и не уносит. Метод — коллокация по ведомым точкам, без множителей mortar. Поскольку вклад линеен, сам по себе контакт Ньютона не включает.
Что задаёт пользователь и что получает
Проводимость стыка h_c в Вт/(м²·К) и допуск зазора в мм (по умолчанию — четверть среднего размера грани). Результат: мощность через стык, площадь связанных поверхностей, число связанных точек, средний скачок температуры. Если h_c\le0, стык не найден в пределах допуска или тела склеены общими узлами, расчёт отказывает: стык не молча изолируется и не молча идеален.
contact body1 body2 thermal hc=1000
thermal surface number 5 temperature=100
thermal surface number 32 temperature=0
solve thermal10.5Термоупругость (односторонняя, статика)бета
Односторонняя термоупругость: температура влияет на напряжённо-деформированное состояние, обратного влияния деформации на температуру нет. Применяется для температурных напряжений в деталях при известном или рассчитанном поле температуры.
Постановка
Тепловая деформация изотропна: \boldsymbol\varepsilon_{th}=\alpha\,\Delta T\,\mathbf I, \Delta T=T-T_{\text{ref}}, где T_{\text{ref}} — температура без напряжений. Напряжение определяется механической частью деформации:
Твёрдые тела
Для изотропного материала \mathbb C\,\boldsymbol\varepsilon_{th}=c_0\,(1,1,1,0,0,0)^T, где
Узловые силы собираются для всех семи типов твёрдых элементов. Для квадратичного тетраэдра нагрузка интегрируется более точной квадратурой, чем жёсткость (27 точек): подынтегральная функция содержит произведение градиента формы и квадратичного поля \Delta T. Напряжения восстанавливаются из полной деформации, поэтому в постпроцессоре из них вычитается шаровая часть c_0\,\mathbf I. Источник \Delta T: равномерное значение, заданное пользователем, либо узловое поле из стационарного теплового расчёта (связанная термоупругость).
Балки и рамы
Задаётся равномерное \Delta T и перепады температуры между гранями сечения \Delta T_y, \Delta T_z. Температура сечения T(y,z)=T_{\text{ref}}+\Delta T+g_y\,y+g_z\,z, g_y=\Delta T_y/h_y. Эквивалентные узловые силы: осевая N_T=E\,A\,\alpha\,\Delta T, изгибные M_{T,z}=E\,I_z\,\alpha\,g_y и M_{T,y}=E\,I_y\,\alpha\,g_z. Те же величины вычитаются из внутренних усилий. Поперечных сил и кручения от нагрева нет.
Оболочки
Для изотропной оболочки в плоском напряжённом состоянии c_0=E\,\alpha\,\Delta T/(1-\nu) (не 1-2\nu: третье направление не стеснено). Для слоистой оболочки (MITC4) тепловые усилия и моменты вычисляются по слоям:
Здесь \bar{\mathbb Q}_k — приведённая жёсткость слоя в осях элемента, \bar{\boldsymbol\alpha}_k=(\alpha_1c^2+\alpha_2s^2,\ \alpha_1s^2+\alpha_2c^2,\ 2(\alpha_1-\alpha_2)\,sc)^T — коэффициенты расширения слоя, повёрнутые на угол укладки (сдвиг инженерный), z отсчитывается от отсчётной поверхности, знак изгибной части задаётся принятым направлением кривизны. Температура по толщине линейна: задаются \Delta T в срединной плоскости и перепад «верх минус низ». Напряжения слоёв считаются по механической деформации \boldsymbol\varepsilon-\bar{\boldsymbol\alpha}_k\,\Delta T(z).
Что задаёт пользователь
Коэффициент \alpha материала и нагрев: равномерное \Delta T (в DSL deltaT=) либо поле температуры из теплового расчёта (только для твёрдых тел). Для балки — dt, dty, dtz; для оболочки — shell_temperature dt=… gradient=… или temperature=… reference=… (температура без напряжений). Нулевой режим нагрузкой не считается, \alpha при этом не требуется; при ненулевом \Delta T без \alpha расчёт отказывает вслух.
nlgeom) не поддерживается.Интерфейс: тип анализа «Термоупругость» (поля \Delta T и \alpha), «Связанная термоупругость» на шаге расчёта (тепло → напряжения), для балок и оболочек — поля температуры в их панелях.
material preset=steel
fix surface number 1
solve thermoelastic deltaT=8010.6Связная термоупругая динамикабета
Нестационарный расчёт «температура → перемещения»: тепловое поле меняется во времени, механика отвечает с учётом инерции. Применяется для теплового удара, быстрых нагревов, термоупругих волн, где квазистатическое приближение недопустимо.
Что здесь значит «связная»
Связь односторонняя: температура T(t) влияет на перемещения \mathbf u(t), обратного влияния (нагрева от деформирования) в продуктовом расчёте нет. Название унаследовано от постановки «тепло и механика на одной сетке в одном шаге». Для стали безразмерная сила обратной связи
около 1 %. Для быстрых процессов (удар, ультразвук) эта поправка может быть значимой, см. Гоу–Джоуль.
Постановка
Оператор термонагрузки \mathbf G собирается один раз тем же интегралом, что и в статике, F_i=\int c_0\,\nabla N_i\,dV, и на шаге сводится к умножению матрицы на вектор. Порядок на шаге — «тепло, затем механика» (изотермическое расщепление Армеро–Симо, 1992): сначала \theta-шаг тепла даёт T_{n+1}, затем термонагрузка \mathbf f_{th}(T_{n+1}) входит в правую часть шага механики. Для HHT-α интегратор берёт (1+\alpha)\,\mathbf f_{th}(T_{n+1})-\alpha\,\mathbf f_{th}(T_n). При односторонней связи схема безусловно устойчива, порядок равен меньшему из порядков схем тепла и механики.
Два режима:
- Квазистатика без инерции: на каждом тепловом шаге решается \mathbf K_s\,\mathbf u=\mathbf f_{\text{ext}}+\mathbf f_{th}; линейная задача факторизуется один раз. Допускается упругопластический материал J2 (только в десктопе).
- Динамика: интегрирование Ньюмарка или HHT-α, тепловой шаг равен нескольким механическим.
В тепловой части можно использовать излучение и \kappa(T) из нелинейной теплопроводности.
Что задаёт пользователь и что получает
Шаг, конечное время и начальная температура обязательны; температура без напряжений, схема тепла \theta, схема механики, затухание Рэлея, таблицы k(t) тепловых и механических нагрузок, пробники. Результат: поля температуры и перемещений по кадрам, ряды T, \mathbf u, \dot{\mathbf u} в пробниках, тензор напряжений с вычетом тепловой деформации, эквивалентные напряжения, огибающая, энергии, баланс тепла.
solve thermoelastic transient mode=dynamic dt=1e-6 tend=2e-4 t0=20 tref=20 scheme=hht alpha=-0.210.7Эффект Гоу–Джоуляэксперимент
Обратный канал термоупругой связи «деформация → температура»: при быстром сжатии тело нагревается, при растяжении остывает. Эффект включается как объёмный источник в уравнении тепла.
Что реализовано
При адиабатическом нагружении отсюда следует \Delta T=-\dfrac{T_{\text{ref}}\,\beta}{\rho c_p}\,\operatorname{tr}\boldsymbol\varepsilon (Кельвин, 1853; Био, 1956). Схема — с запаздыванием по шагу: после механического шага собирается узловая мощность и подмешивается в правую часть следующего теплового шага. Работает только в квазистатическом режиме; динамика с эффектом отказывает.
Терминологическая оговорка. В литературе «эффект Гоу–Джоуля» — это энтропийная упругость эластомеров: растянутая резина нагревается, а при нагреве сжимается. Здесь реализован линейный термоупругий (пьезокалорический) эффект Кельвина для сжимаемого линейно-упругого тела. Модель энтропийной упругости резины, связанная с гиперупругими законами, не реализована.
10.8CFD: несжимаемое течение (SU2)стабильно
CFD считает стационарное течение жидкости или газа вокруг тела или внутри канала: поля скорости и давления, силы на стенках, потери давления, расход. Расчёт идёт во внешнем решателе SU2 (Stanford University Unstructured, открытый код, лицензия LGPL-2.1) в десктопном приложении; в браузере CFD недоступен.
Какие уравнения решаются
Несжимаемые уравнения Навье–Стокса (постоянные плотность и вязкость):
В ламинарном режиме \mu_t=0. В турбулентных режимах — осреднённые по Рейнольдсу уравнения (RANS) с вихревой вязкостью \mu_t из модели Menter k–\omega SST (1994) или Spalart–Allmaras (1992). Эйлеровы (невязкие) и сжимаемые уравнения не используются. Энергия не решается: течение изотермическое, подъёмной силы Архимеда нет.
Метод — вершинно-центрированные конечные объёмы на двойственной сетке исходных тетраэдров (Economon и др., AIAA J., 2016). Конвективные потоки — расщепление разности потоков (FDS) со вторым порядком по схеме MUSCL и ограничителем Венкатакришнана; турбулентные величины — противопоточной схемой. Установление — неявный Эйлер по псевдовремени с адаптивным числом Куранта, при необходимости с геометрической многосеточностью.
Что задаёт пользователь и что получает
Среда: воздух, вода, масло или керосин (плотность и вязкость настраиваются в материалах). Граничные условия по номерам поверхностей: вход со скоростью (величина, направление, интенсивность турбулентности), выход с избыточным давлением, стенка с прилипанием (с опциональным мониторингом сил), стенка со скольжением, плоскость симметрии. Неразмеченные грани становятся стенкой с прилипанием, без мониторинга сил; список таких граней выводится в предупреждения. Для турбулентных расчётов у стенок нужны призматические слои сетки (y⁺ порядка единицы): модели интегрируются до стенки.
Критерий остановки задаёт пользователь: максимум итераций и допуск. При наличии стенки с мониторингом сил сходимость определяется стабилизацией коэффициента силы (критерий Коши), для внутренних течений — относительным падением невязки давления.
Результаты в СИ: поля скорости и давления, завихренность, Q-критерий, C_p, касательное напряжение на стенке, y^+, коэффициенты C_d, C_l и силы (при заданных опорной площади и длине), перепад давления между входами и выходами, массовые расходы, история невязок. Постпроцессор: срезы, линии тока, изоповерхности, частицы.
Связь с остальным продуктом
CFD использует ту же геометрию, тот же журнал нумерации поверхностей и тот же вьюпорт. Расчёт односторонний и изолированный: передачи давления в прочностной расчёт и теплового сопряжения (CHT) нет, силы и давления вы переносите вручную.
Интерфейс: настройки CFD на шаге расчёта, граничные условия и постпроцессор «Течение».
cfd fluid air
cfd set speed=15 turbulence=sst iterations=500
cfd inlet surface number 1
cfd outlet surface number 2
cfd wall surface number 3 monitor=on
solve cfd10.9CFD: нестационарные задачи и движение телбета
Нестационарный режим нужен, когда течение не выходит на стационар (срыв вихрей за цилиндром, пульсации) или когда границы движутся: вращение стенки, ротор, поршнеобразное перемещение тела.
Что реализовано
Физическое время интегрируется двойным шагом по времени (dual time stepping) второго порядка: на каждом физическом шаге выполняются внутренние итерации до сходимости. Пользователь задаёт шаг, длительность, число внутренних итераций и частоту сохранения кадров. Сессия сохраняется на диске, расчёт можно отменить и продолжить с контрольной точки; кадры воспроизводятся в постпроцессоре.
Движение:
- вращающаяся стенка (скорость поверхности задаётся по оси и частоте вращения);
- вращающаяся система координат для области жидкости (подход MRF) — стационарное осреднённое решение для ротора;
- заданный перенос тела вдоль одного направления (линейный, гармонический, выражение, таблица) с деформацией сетки по упругой ALE-схеме первого порядка по времени; скорость стенки контролируется относительно шага сетки;
- заданное и свободное вращение ротора с одной степенью свободы (момент, демпфирование).
Результаты движения — перемещение, скорость, сила, мощность и работа, нормированные на выбранный кадр.
cfd set mode=transient dt=0.001 time=0.005 inner=40 output=1
solve cfd10.10Акустика полости (уравнение Гельмгольца)эксперимент
Модальный анализ воздушной (или заполненной жидкостью) полости: собственные частоты и формы колебаний давления. Применяется для оценки резонансов объёмов — камер, воздуховодов, салонов.
Постановка
Уравнение Гельмгольца для амплитуды давления p при гармоническом процессе e^{i\omega t}:
На стенках — условие акустической жёсткости \partial_n p=0 (естественное граничное условие). Конечноэлементная дискретизация приводит к обобщённой задаче на собственные значения
Для замкнутой жёсткой трубы длиной L частоты продольных мод f_n=n\,c_0/(2L), включая нулевую (постоянное давление). Нулевая мода присутствует и в расчёте.
Как реализовано
Элемент — линейный тетраэдр с согласованной акустической массой. Матрицы плотные, задача решается приведением к стандартной форме через разложение Холецкого матрицы \mathbf M_a и диагонализацией симметричной матрицы методом Якоби. Такой подход применим к малым полостям (до нескольких сотен узлов); для крупных сеток он слишком медленный и ёмкий по памяти.
Пользователь задаёт скорость звука c_0 (воздух 343 м/с, вода 1481 м/с), плотность \rho_0 и число мод. Полостью считается тело, по которому построена тетраэдральная сетка. Результат: частоты в Гц, формы давления по узлам, анимация стоячей волны p(\mathbf x)\cos\omega t в окне просмотра.
impedance= и fsi= команды разбираются и проверяются на числовую адресацию, но на собственные частоты не влияют. Формы нормированы условно, поэтому печатаемый после расчёта «уровень звукового давления» физического смысла не имеет; используйте только частоты и формы. Отклик на источник в этом расчёте не строится. Если сетки нет, расчёт подставляет встроенный пробный канал 1 м × 0.1 м × 0.1 м: перед запуском убедитесь, что сетка построена. Сборка только на тетраэдрах; зависимость от размера сетки и сходимость по частотам не исследованы.Интерфейс: секция «Виброакустика (Гельмгольц)» на шаге результатов.
solve acoustics c0=343 rho0=1.204 modes=5
probe acoustic_f110.11Виброакустикаэксперимент
Виброакустика описывает взаимодействие колеблющейся конструкции и воздуха в полости: структура излучает звук, давление в полости нагружает структуру. В продукте этот расчёт как единая связанная задача отсутствует; имеются отдельные заготовки.
Что есть в коде
- Импеданс границы (условие Робина). Матрица демпфирования \mathbf C_a=\dfrac{\rho_0}{Z_a}\int_{\Gamma_z}N^TN\,dA с акустическим импедансом Z_a в Рэлях (Па·с/м); для воздуха волновое сопротивление \rho_0c_0\approx413 Рэлей.
- Матрица связи структуры с полостью \mathbf C_{fsi}=\int_{\Gamma}\mathbf N_u^T\,\mathbf n\,N_p\,dA на общей границе.
- Частотный отклик полости на источник: \left(\mathbf K_a-\omega^2\mathbf M_a+i\omega\,\mathbf C_a\right)\mathbf p=\mathbf q с решением на сетке частот и пересчётом в уровень звукового давления \text{SPL}=20\log_{10}(p_{\text{rms}}/p_{\text{ref}}), p_{\text{ref}}=20 мкПа для воздуха и 1 мкПа для воды.
Это отдельные функции с модульными тестами. Связанная система «структура — полость» из них не собирается, частотный отклик и матрицы импеданса в расчёт из интерфейса и DSL не подключены. Доступен только модальный расчёт акустики полости с жёсткими стенками.
11Решатели: прямые, итерационные, собственные
↑ К оглавлениюПосле дискретизации любая линейная задача сводится к системе алгебраических уравнений с разреженной матрицей. Раздел описывает, как эти системы решаются: какие методы применяются, почему они корректны для матриц МКЭ, как продукт проверяет результат и в каких случаях честно отказывает. Описаны методы и границы их применимости; подбор внутренних параметров в раздел не входит.
В реализации используются открытые библиотеки: MFEM (разреженные матрицы и метод сопряжённых градиентов), Eigen (разреженные разложения и малые плотные задачи), AMGCL (алгебраический многосеточный предобуславливатель, только в десктопном приложении). На macOS прямое разложение выполняет также Apple Accelerate. Вся арифметика ядра идёт в двойной точности (IEEE 754 binary64). На границе решателя действует система СИ: метры, ньютоны, паскали, килограммы. Пользователь видит результаты в своих единицах, перевод выполняется в одном месте.
Эталоном считается нативный путь десктопного приложения. Браузерная сборка использует те же формулы, но однопоточна, ограничена памятью вкладки и не содержит многосеточного предобуславливателя. Различия указаны в тексте.
11.1Системы уравнений МКЭ: разреженность, определённость, связистабильно
Статическая задача после сборки имеет вид
Матрица жёсткости \mathbf{K} обладает тремя свойствами, на которых держится выбор методов. Она разрежена: узел связан только с узлами общих элементов, в строке десятки ненулевых элементов, и доля ненулей падает с ростом модели. Она симметрична, потому что симметрична билинейная форма. Она неотрицательно определена, а после закрепления твёрдого тела положительно определена: \mathbf{v}^{\mathsf T}\mathbf{K}\mathbf{v} > 0 для всех \mathbf{v} \neq \mathbf{0} в допустимом подпространстве. Для объёмных тел число обусловленности растёт как O(h^{-2}) при измельчении сетки. У тонких оболочек и стержней оно растёт сильнее: примерно с квадратом отношения мембранной жёсткости к изгибной, то есть (L/t)^2.
Единый ассемблер собирает балки, оболочки и объёмные элементы в одну систему с шестью степенями свободы на узел (три перемещения, три поворота). Степени свободы без жёсткости, например повороты узлов, окружённых только объёмными элементами, исключаются автоматически.
Граничные условия и связи
Закрепления, линейные уравнения связи, жёсткие области (RBE2) и склеенные интерфейсы с точным исключением обрабатываются исключением зависимых степеней свободы, а не множителями Лагранжа:
Матрица \mathbf{T} связывает независимые степени свободы \mathbf{u}_r с полным вектором, \mathbf{u}_0 несёт неоднородные части связей. Редуцированная матрица \mathbf{K}_r = \mathbf{T}^{\mathsf T}\mathbf{K}\mathbf{T} остаётся симметричной и положительно определённой, если \mathbf{K} была такой на допустимом подпространстве. Седловой системы с блоком нулей не возникает. Поэтому для линейной статики хватает методов для симметричных положительно определённых матриц (Холецкий, сопряжённые градиенты), а индефинитные методы (MINRES, разложения с выбором ведущего элемента) не требуются. Контакт со штрафом добавляет жёсткость в \mathbf{K} и тоже сохраняет положительную определённость, но ухудшает обусловленность.
Масштабирование
Перед решением редуцированная система симметрично масштабируется по диагонали:
Это эквивалентное преобразование: ответ не меняется, зато исчезает разброс масштабов между перемещениями и поворотами и между строками закреплений и упругими строками. Строки с неположительной диагональю не масштабируются.
11.2Хранение матриц и переупорядочиваниестабильно
Матрицы хранятся в разреженном строчном формате CSR (массивы смещений строк, индексов столбцов и значений). Повторяющиеся вклады соседних элементов суммируются при сборке. Редуцированная матрица получается тройным произведением \mathbf{T}^{\mathsf T}\mathbf{K}\mathbf{T} в том же формате. Для прямых разложений матрица приводится к формату Eigen, при необходимости только нижний треугольник.
Локальные матрицы элементов считаются параллельно, но складываются в глобальную матрицу последовательно в порядке номеров элементов. Поэтому собранная матрица не зависит от числа потоков.
Число ненулей фактора \mathbf{L} зависит от порядка нумерации неизвестных. Для симметричных разложений применяется приближённый минимальный степенной порядок (AMD): Amestoy P., Davis T., Duff I., An approximate minimum degree ordering algorithm, SIAM J. Matrix Anal. Appl., 1996. Его выполняют и Apple Accelerate, и Eigen SimplicialLDLT. Для несимметричных и комплексных систем разреженное LU использует упорядочивание по столбцам COLAMD. Упорядочивание вложенными сечениями (METIS) и обратный Катхилл–Макки (RCM) в решателях не применяются.
Для трёхмерных сеток при хорошем упорядочении память фактора растёт примерно как O(n^{4/3}), число операций факторизации примерно как O(n^{2}) (George A., вложенные сечения). Измеренные показатели у Eigen SimplicialLDLT на объёмных моделях чуть выше, около n^{2.3}. Экран расчёта показывает прогноз памяти прямого решателя по эмпирической степенной зависимости от числа степеней свободы.
11.3Прямой разреженный решательстабильно
Для симметричной положительно определённой матрицы используется разложение Холецкого или \mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf T} с предварительной перестановкой \mathbf{P}:
На положительно определённой матрице это разложение устойчиво без выбора ведущего элемента (Golub G., Van Loan C., Matrix Computations). Поэтому перестановка выбирается только по заполнению, не по величине элементов. Метод точный с точностью до округления. Обусловленность влияет на точность ответа, но не на сам факт получения ответа, как это бывает у итераций. Отказ факторизации означает потерю положительной определённости или нехватку памяти.
На macOS факторизацию выполняет разреженный решатель Apple Accelerate (Холецкий или \mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf T}), многопоточный и векторизованный. На Windows, Linux и в браузере используется Eigen SimplicialLDLT. Он однопоточный и заметно медленнее. Прямой и итерационный пути на моделях продукта дают совпадающие перемещения: расхождение порядка 10^{-9} относительно (таблица ниже). Если факторизация не удалась, включаются запасные пути, и только когда все они исчерпаны, расчёт возвращает признак несходимости.
Факторизация делается один раз и переиспользуется для нескольких правых частей: в собственных задачах, при гармоническом анализе по частотной сетке, в неявных переходных расчётах с постоянным шагом.
Для матриц, которые могут быть знаконеопределёнными, например \mathbf{K} + \mathbf{K}_{\sigma} в модальном анализе с предварительным напряжением, разложение \mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf T} без перестановок по величине не гарантирует устойчивости и само не отличает положительную определённость от индефинитности. Поэтому после факторизации просматриваются знаки диагонали \mathbf{D}. Если матрица перестала быть положительно определённой (нагрузка выше критической), расчёт возвращает признак несходимости, а не правдоподобную частоту.
Для несимметричных систем (касательные матрицы некоторых нелинейных задач) и комплексных систем применяется разреженное LU с упорядочиванием COLAMD, см. гармонический анализ и нелинейные расчёты.
Измерения
Оболочка с заделкой и давлением, нативный путь, Apple M5, Apple Accelerate (замер 13.10.2026):
| Степеней свободы | Время, с | Память (RSS), ГБ |
|---|---|---|
| 13 824 | 0.07 | — |
| 144 150 | 0.8 | 0.9 |
| 584 064 | 6.0 | 3.2 |
| 1 000 000 | 7.4 | 4.3 |
| 2 100 000 | 12.8 | 8.2 |
Для объёмных тел прямой метод дороже из-за большего заполнения. На Hex20 с 89 тыс. активных степеней свободы Accelerate на эталонной платформе решает систему за 35 с, а однопоточный Eigen на стенде Linux x86-64 (третья платформа, не эталон, справочно) за 734 с. Поэтому на Windows и Linux для объёмных моделей выше умеренного размера продукт выбирает итерационный решатель, см. выбор решателя.
11.4Плотный решатель для малых системстабильно
Для малых каркасных и оболочечных моделей, а также для эталонных проверок используется плотное решение. Алгоритм таков: матрица проверяется на симметрию, затем раскладывается по Холецкому на месте. Для положительно определённой матрицы Холецкий устойчив без выбора ведущего элемента, поэтому масштабирование и перестановки не нужны. Если матрица несимметрична или не положительно определена (механизм, потеря устойчивости), разложение откатывается на LU с выбором главного элемента по столбцу. Симметрия проверяется явно, потому что Холецкий читает один треугольник и молча дал бы неверный ответ на несимметричной матрице. На вырожденной матрице результат нефинитный, и вызывающий код распознаёт механизм.
Плотное решение требует памяти O(n^2) и времени O(n^3), поэтому подходит только для малых моделей. На нативном пути оболочечные и каркасные модели выше небольшого размера автоматически переходят на разреженное разложение, в браузере действует потолок размера по памяти вкладки. Плотный и разреженный пути дают одинаковые перемещения: расхождение на оболочечной модели порядка 10^{-11} относительно.
11.5Итерационный решатель: CG с алгебраическим многосеточным предобуславливателембета
Метод сопряжённых градиентов с предобуславливателем \mathbf{M} решает \tilde{\mathbf{K}}\tilde{\mathbf{u}} = \tilde{\mathbf{f}} последовательностью шагов вдоль сопряжённых направлений. Метод корректен, если сама матрица и предобуславливатель симметричны и положительно определены. Скорость сходимости определяется числом обусловленности предобусловленной матрицы: для неё число итераций растёт как \sqrt{\kappa(\mathbf{M}^{-1}\tilde{\mathbf{K}})} (Saad Y., Iterative Methods for Sparse Linear Systems, 2003, гл. 6).
В десктопном приложении предобуславливатель — алгебраический многосеточный (AMG) на сглаженной агрегации из библиотеки AMGCL (Vaněk P., Mandel J., Brezina M., Computing 56, 1996; Demidov D., AMGCL, Lobachevskii J. Math., 2019). Группы связанных узлов объединяются в агрегаты, строятся грубые уровни, на каждом уровне выполняется сглаживание, на самом грубом — прямое решение. Один V-цикл служит предобуславливателем. Где система блочная, агрегация учитывает три степени свободы узла. Сглаживатель симметричен, поэтому V-цикл симметричен по построению, как требует метод сопряжённых градиентов. Свойство AMG — число итераций почти не растёт при измельчении сетки. На стенде Linux x86-64 (справочно) для Hex8 с 14, 105, 202 и 346 тыс. активных степеней свободы AMG-CG сходится за 32, 43, 48 и 52 итерации. Одиночные Якоби или Гаусс–Зейдель такого свойства не имеют.
Критерий остановки — относительная невязка. Для AMG-пути это евклидова норма невязки, отнесённая к норме правой части: \lVert \mathbf{r}_k \rVert_2 / \lVert \tilde{\mathbf{f}} \rVert_2 \le \varepsilon. Для остальных ступеней (метод сопряжённых градиентов MFEM) — норма предобусловленной невязки, отнесённая к начальной. Допуск \varepsilon и максимум итераций пользователь задаёт на шаге «Расчёт»; по умолчанию \varepsilon = 10^{-6} и 5000 итераций. Ход невязки отображается в окне расчёта, расчёт можно отменить.
Защиты от некорректной работы. Продукт проверяет предобуславливатель на каждой итерации: скалярное произведение (\mathbf{M}^{-1}\mathbf{r}, \mathbf{r}) должно оставаться положительным. Если нет, метод сопряжённых градиентов останавливается и называет причину, а не итерирует дальше по мусорным направлениям. Расходящаяся невязка тоже прерывает AMG-ступень. У невязки сопряжённых градиентов евклидова норма немонотонна и на объёмных телах может временно вырастать, прежде чем сойтись, поэтому обрыв срабатывает только на явном расхождении. При отказе ступени расчёт переходит на запасной путь. Если сходимости нет ни на одной ступени, результат помечается как несошедшийся.
Сравнение с прямым методом на эталонной платформе (Apple M5, 2 потока, замер 21.10.2026 на загруженной машине, время ориентировочное; одна и та же модель считалась обоими путями):
| Модель | Активных степеней свободы | AMG-CG: итераций, с | Прямой (Accelerate), с | Расхождение перемещений |
|---|---|---|---|---|
| Hex20 | 36 432 | 179, 13.3 | 6.2 | 10^{-9} |
| Hex20 | 89 280 | 218, 40.3 | 35.4 | 4 \cdot 10^{-10} |
| Tet10 | 45 000 | 78, 6.2 | 3.9 | 2 \cdot 10^{-9} |
| Tet10 | 104 544 | 100, 10.2 | 18.1 | 3 \cdot 10^{-9} |
| Hex8 | 147 852 | 46, 8.7 | 91.3 | 5 \cdot 10^{-10} |
Выигрыш итерационного пути по времени растёт с размером модели и становится решающим, когда прямому не хватает памяти.
В браузерной сборке AMGCL недоступна. Там итерационный путь использует метод сопряжённых градиентов с более простыми предобуславливателями (неполный Холецкий на небольших системах, Гаусс–Зейдель на больших). Они сходятся медленнее на мелких сетках, поэтому браузерные числа итераций нельзя переносить на десктоп.
11.6Контроль результата: невязка, признак сходимости, отказ вместо подменыбета
Любой расчёт возвращает признак сходимости. Он выставляется только тогда, когда достигнутая невязка не превосходит допуска, а результат конечен. При его отсутствии интерфейс показывает предупреждение «Не сошлось — значения ниже могут быть недостоверными», сценарий завершается ошибкой «solver did not converge». Результат не выдаётся за успешный.
Принципы, которых придерживается ядро:
- Отказ вместо молчаливой подмены. Если выбранный метод неприменим или не помещается в память, расчёт возвращает ошибку с причиной и числом степеней свободы, а не тихо считает другим способом с другой точностью. Недопустимые значения настроек решателя отвергаются при вводе. Для тонких оболочек потолок размера зависит от памяти машины (учитывается лимит из «Настройки → Вычисления»); выше него расчёт отказывает.
- Проверка на каждом шаге. Метод сопряжённых градиентов проверяет положительность предобуславливателя, AMG — рост невязки. Гармонический расчёт проверяет невязку на каждой частоте. Нелинейный решатель распознаёт сингулярную касательную и сообщает диагноз.
- Собственные задачи. Для каркасов и оболочек на нативном пути проверяется относительная невязка каждой запрошенной собственной пары. Для объёмных тел критерий остановки — стабилизация ритцевых значений, невязка собственных пар на этом пути в продукт не выводится.
- Проверка равновесия. Реакции опор и интегральные величины можно запросить командами постпроцессинга; для каркасных моделей доступна
frame probe equilibrium— относительная невязка \lVert \sum \mathbf{R} + \sum \mathbf{F} \rVert по силам и по моментам.
Точность и воспроизводимость. Арифметика двойная во всех путях ядра. Матрица жёсткости не зависит от числа потоков. Побитовая воспроизводимость не заявляется: многопоточные суммирования и библиотечные разложения могут давать различия на уровне округления. Между платформами побитового совпадения нет и не ожидается: используются разные библиотеки, разный порядок операций, на нативе возможны слитые операции умножения и сложения. Ранняя сверка браузерного и нативного решений на консольной балке дала расхождение порядка 10^{-9} относительно.
11.7Матрично-свободный (операторный) путьбета
В матрично-свободном подходе глобальная матрица не собирается: решатель знает только действие \mathbf{K}\mathbf{v} на вектор. Для простой линейной статики объёмных тел (поверхностные закрепления и нагрузки, без жёстких областей и связей) продукт использует операторную сборку MFEM (частичная сборка, partial assembly) с элементами первого и второго порядка и методом сопряжённых градиентов с диагональным (Якоби) предобуславливателем. Оператор физически тот же, что и у собранной матрицы: ранняя сверка частичной и полной сборки на консольной балке дала расхождение порядка 10^{-11}.
Геометрический многосеточный метод (h-мультигрид MFEM с чебышёвским сглаживанием) проверялся как исследовательский стенд: при росте размера задачи в 225 раз (189 до 42 483 степеней свободы) число итераций выросло только в 1.9 раза (28 до 52), то есть сходимость не зависит от сетки. В расчётный путь продукта этот метод не включён: он требует вложенной иерархии сеток, а продукт строит неструктурированные сетки.
11.8Собственные задачи: модальный анализ и устойчивостьстабильно
Модальный анализ решает обобщённую задачу
Потеря устойчивости: (\mathbf{K}_r + \lambda\,\mathbf{K}_{\sigma})\boldsymbol{\varphi} = \mathbf{0}, где \mathbf{K}_{\sigma} — геометрическая жёсткость от предварительного напряжённого состояния, а \lambda_{\text{cr}} — наименьшее положительное собственное число (множитель критической нагрузки). Постановки и допущения описаны в разделе Линейные виды анализа. Здесь описан способ решения.
Блочная обратная итерация (подпространство)
Для объёмных и смешанных моделей применяется итерация в подпространстве с процедурой Рэлея–Ритца (Bathe K.-J., Finite Element Procedures, 2014, гл. 11). Шаг итерации:
Блок содержит больше векторов, чем запрошено форм; малая плотная задача p \times p решается стандартным методом (Eigen). Итерации останавливаются, когда относительное изменение запрошенных ритцевых значений между шагами становится пренебрежимо малым. Матрица \mathbf{K}_r факторизуется один раз, дальше каждое \mathbf{K}_r^{-1}\mathbf{b} — это пара треугольных решений. На macOS для моделей умеренного размера применяется разложение Accelerate, на остальных платформах Eigen SimplicialLDLT. Для очень больших моделей \mathbf{K}_r^{-1} применяется приближённо через AMG-CG с внутренним допуском; приближённая обратная требует осторожности (см. ограничения). К матрице масс добавляется малая диагональная добавка («пол»), чтобы безмассовые степени свободы не нарушали разложение Холецкого малой матрицы \mathbf{M}_p; порождаемые ею ложные высокие моды отфильтровываются.
Задача устойчивости использует то же подпространство с другой формой. Матрица -\mathbf{K}_{\sigma} знакопеременна и низкого ранга, поэтому спектр сдвигается на константу c, а векторы ортонормируются в скалярном произведении \mathbf{K}_r. Обратные величины \theta = 1/\lambda пересчитываются из сдвинутых значений.
Каркасы и оболочки: LOBPCG
Для каркасов и оболочек на нативном пути используется блочный метод LOBPCG (Knyazev A., SIAM J. Sci. Comput., 2001) с точным предобуславливателем \mathbf{K}_r^{-1} из однократной факторизации Холецкого. По сути это блочный Ланцош с локально оптимальным направлением. Он работает с согласованной матрицей масс и не требует сдвига спектра для задачи устойчивости. Статика под опорной нагрузкой решается той же факторизацией, поэтому её погрешность в критический множитель не входит. Критерий остановки — относительная невязка каждой запрошенной пары. Сверка с плотным путём на тех же моделях даёт расхождение не больше 10^{-7}. На малых системах остаётся плотный путь: обобщённая задача сводится к стандартной через разложение Холецкого \mathbf{K}_r и решается методом Якоби. Он эталонный, но его время растёт как n^3.
Свободные тела и механизмы
У незакреплённой модели матрица \mathbf{K}_r вырождена (шесть жёстких мод). Тогда спектр сдвигается: решается (\mathbf{K}_r + \tau\,\mathbf{M}_r)\boldsymbol{\varphi} = (\lambda + \tau)\,\mathbf{M}_r\boldsymbol{\varphi} с малым \tau > 0, после чего сдвиг вычитается. Жёсткие моды остаются нулевыми частотами и отделяются от упругих. Для каркасов команда frame solve modal free=on явно отсекает шесть форм движения твёрдого тела. Если упругие формы потеряны за жёсткой модой (меньше форм, чем запрошено, и первая частота близка к нулю), продукт отклоняет результат и называет причину: модель недозакреплена.
solve modal nmodes=6
solve buckling nmodes=411.9Комплексные системы гармонического анализабета
Установившийся гармонический отклик \mathbf{u}(t) = \operatorname{Re}\left(\hat{\mathbf{u}}\,e^{i\omega t}\right) при демпфировании по Рэлею даёт на каждой частоте комплексную систему
Матрица комплексно-симметрична, но при демпфировании не эрмитова, поэтому метод Холецкого неприменим. Применяется разреженное комплексное LU (Eigen SparseLU, упорядочивание COLAMD). Символический анализ структуры выполняется один раз для всей частотной сетки, числовая факторизация — на каждой частоте. Ограничения и редукция те же, что в статике, система масштабируется по диагонали. После решения на каждой частоте считается относительная невязка; если она превышает допуск, расчёт останавливается с указанием частоты. Сингулярность (резонанс без демпфирования) тоже даёт ошибку с частотой, а не ложный ответ. В сценарии выбирается метод разложения по формам (modal) или прямой (direct).
solve harmonic fmin=20 fmax=400 npoints=60 method=direct rayleigh a=1.5 b=0.00000211.10Линейная алгебра в нелинейных расчётахстабильно
Нелинейные задачи (геометрическая и материальная нелинейность, контакт, метод длины дуги) решаются ньютоновскими итерациями. На каждой итерации решается линейная система с касательной матрицей \mathbf{K}_T(\mathbf{u})\,\Delta\mathbf{u} = -\mathbf{r}(\mathbf{u}). Касательную раскладывает разреженное прямое разложение. Символический анализ и упорядочивание переиспользуются между итерациями, пока структура разреженности не изменилась; изменение структуры (например, смена активного контакта) вызывает новый анализ. Ньютоновские критерии сходимости, шаги нагружения и метод длины дуги описаны в разделе Нелинейные расчёты и динамика.
11.11Параллельность и платформыбета
В десктопном приложении используется OpenMP: параллельная сборка матриц элементов и многопоточный AMG-предобуславливатель. Прямой решатель Apple Accelerate многопоточен сам по себе. Число потоков по умолчанию подобрано измерением, пользователь меняет его в «Настройки → Вычисления» («Ядра под солвер»). Масштабирование ограничено пропускной способностью памяти, а не числом ядер: на модели 215 тыс. степеней свободы (Apple M5) два ядра дали ускорение в 1.2–1.5 раза, шесть ядер — около 1.8, а десять уже не быстрее шести. Поле действует на пути, идущие через AMG; часть нативных расчётов однопоточна.
Браузерная сборка однопоточна, использует только память вкладки (32-разрядный модуль WebAssembly не выходит за 4 ГБ) и не содержит AMG. На больших моделях браузер упирается в память и время задолго до пределов нативного пути. Режим решателя и порог размера в браузере не настраиваются. Прямое разложение Eigen работает там до порога по памяти, выше идёт итерационный CG.
Эталонными числами верификации служат нативные. На одной геометрии платформы могут расходиться: например, мешер браузера и десктопа строят разные сетки. Сравнивая числа, смотрите на подпись платформы.
11.12Выбор решателя: автоматический и ручнойбета
Пользователь управляет выбором на двух экранах.
Шаг «Расчёт», панель решателя. Тип (прямой или итерационный), флажок «Приоритет прямого решателя», лимит памяти для прямого (МБ). Для итерационного режима доступны допуск и максимум итераций. Панель показывает прогноз памяти прямого метода и выбранный маршрут. Если прогноз не укладывается в лимит, решатель переключается на итерационный и показывает уведомление. При активном контакте тип фиксируется на итерационном CG.
«Настройки → Вычисления» (только десктоп): режим решателя «авто» / «прямой» / «итерационный», порог размера прямого метода в степенях свободы, число потоков, лимит памяти. Режим «авто» выбирает прямой метод в пределах порога и итерационный выше. Пустой порог означает автоматический выбор: для объёмных тел он считается из лимита памяти экрана расчёта. На Windows и Linux автоматический порог для объёмных моделей ниже, потому что прямой метод там медленнее (см. прямой решатель). Для оболочек и каркасов прямой метод поднимается автоматически на время вызова, потому что итерационные методы на них ненадёжны.
В сценариях отдельной команды выбора линейного решателя нет: solve использует настройки документа. Настройки доступны из программного интерфейса сценариев (cae.solver, cae.compute).
11.13Прототипы и нереализованное: GPU, облако, матрично-свободный P2эксперимент
Эти модули существуют в коде, но в расчёт продукта не подключены. Они перечислены, чтобы граница возможностей была ясной.
- Матрично-свободный PCG для Tet10 и Hex20 на WebGPU. Модуль элемент-за-элементом считает \mathbf{y}_e = \mathbf{K}_e\mathbf{u}_e с раскраской графа, предобуславливает диагональю и двухуровневой p-мультисеткой. Он покрыт тестами, но ни один расчёт его не вызывает. Флажок «Matrix-Free P2 GPU» на панели решателя сохраняется в проекте и ничего не меняет.
- WebGPU-решатель CG. Модуль решает разреженную систему в одинарной точности на GPU с запасным CPU-вариантом; тест разработки подтверждает, что расчёты его не вызывают. Продуктовое ядро считает в двойной точности.
- Гибридный облачный расчёт. Модуль маршрутизации и клиент передачи сетки решают, отдавать ли расчёт удалённому серверу (по размеру модели, типу анализа, настройке «Auto / Force Local / Force Cloud»). Серверная часть к расчёту не подключена, выбор режима расчёт не меняет. В текущей сборке расчёт всегда выполняется локально.
- LOBPCG с IC(0) для P2-тетраэдров. Исследовательский модуль разреженной модалки; в основной путь не включён.
- Геометрический многосеточный метод (GMG). Есть в тестовых стендах (см. выше), в расчёте не используется.
12Результаты, постпроцессинг и оценка прочности
↑ К оглавлениюПосле расчёта решатель отдаёт перемещения (и повороты у балок и оболочек). Всё остальное — напряжения, деформации, реакции, запасы прочности, оценки ошибки сетки — строится из них постпроцессором. Этот раздел описывает, что именно вычисляется, в каких осях и единицах, где постпроцессор делает упрощения и какие величины остаются оценками, а не результатом строгого расчёта.
Соглашения для всего раздела:
- тензоры записываются в порядке Фойгта [xx,\ yy,\ zz,\ xy,\ yz,\ zx]; растяжение положительно;
- для напряжений сдвиговые компоненты тензорные, для деформаций \gamma_{ij} = 2\,\varepsilon_{ij} (инженерный сдвиг);
- постпроцессор линейного упругого расчёта работает по перемещениям и материалу элемента: \boldsymbol{\varepsilon} = \mathbf{B}\,\mathbf{u}_e, \boldsymbol{\sigma} = \mathbf{C}\,\boldsymbol{\varepsilon}, где \mathbf{B} и \mathbf{C} — те же, что в матрице жёсткости элемента;
- в нелинейных расчётах поля (напряжение Коши, пластическая деформация, реакции) приходят от нелинейного ядра и линейной реконструкцией по перемещениям не пересчитываются.
12.1Поля результатов и единицыстабильно
Результат одного расчёта — набор узловых полей. Их можно раскрасить на модели, снять зондом, вывести в отчёт и в файл. Основные группы:
| Группа | Поля | Размерность |
|---|---|---|
| Перемещения | u_x, u_y, u_z, модуль \lvert\mathbf{u}\rvert | длина |
| Повороты (балки, оболочки) | \theta_x, \theta_y, \theta_z | рад |
| Напряжения | \sigma_{xx}, \sigma_{yy}, \sigma_{zz}, \sigma_{xy}, \sigma_{yz}, \sigma_{zx}, эквивалентное по Мизесу, \sigma_1, \sigma_3 | давление |
| Деформации | \varepsilon_{xx}, \varepsilon_{yy}, \varepsilon_{zz}, \gamma_{xy}, \gamma_{yz}, \gamma_{zx}, эквивалентная, пластическая | безразмерные |
| Запас прочности | коэффициент запаса или использование (по выбранному критерию) | безразмерные |
| Реакции | модуль реакции в узлах опоры | сила |
| Контакт | давление, статус, касательная сила | давление, код, сила |
Компоненты напряжений и деформаций можно показать не только в глобальных осях, но и в пользовательской системе координат (декартовой или цилиндрической): тензор пересчитывается в каждом узле по формуле T'_{ij} = \mathbf{v}_i^{\mathsf T}\,\mathbf{T}\,\mathbf{v}_j, где \mathbf{v}_i — орты системы в этой точке. Инварианты (Мизес, \sigma_1, \sigma_3) от выбора системы не зависят.
Единицы
На границе решателя действует СИ (м, Н, Па, кг), геометрия модели хранится в миллиметрах. Поля результата хранятся в тех единицах, в которых их естественно получает конвейер:
- напряжения — в паскалях;
- перемещения — в единицах модели (мм), чтобы деформированный вид складывался с исходной геометрией без пересчёта;
- реакции считаются по координатам модели, поэтому перед показом приводятся к ньютонам;
- деформации и коэффициенты запаса безразмерны.
Показ идёт в системе единиц, выбранной в строке состояния: СИ, «метрическая инженерная» (мм, Н, МПа) или английская (дюйм, фунт-сила, psi). Одна таблица переводит значения для легенды, зондов, фильтра по значению, ручного диапазона шкалы и отчёта, поэтому подпись на шкале и число всегда согласованы. В DSL величины возвращаются в СИ, если в описании величины не сказано иное. В файл VTK единица входит в имя поля (displacement_mm, vonMises_Pa, reactionMag_N) — ParaView единиц не знает.
12.2Восстановление напряжений в узлыстабильно
Конечный элемент даёт напряжение внутри элемента, а раскраска и зонды работают с узловыми значениями. Переход «элемент → узел» — отдельный шаг со своими погрешностями.
Что вычисляется
Для линейного упругого расчёта напряжение в точке элемента \boldsymbol{\sigma} = \mathbf{C}\,\mathbf{B}(\mathbf{x})\,\mathbf{u}_e, где для изотропного материала
Точка вычисления зависит от типа элемента:
- TET4 — деформации постоянны, напряжение одно на элемент;
- TET10 — внутри элемента с прямыми рёбрами напряжение меняется линейно; его вычисляют в десяти узлах элемента по градиентам функций формы самого элемента;
- HEX8, HEX20, HEX27, призма, пирамида — одно значение в центре (центроиде) элемента.
Узел получает среднее арифметическое по элементам, которые его содержат. Усредняются компоненты тензора, а не эквивалентные величины: Мизес, \sigma_1 и \sigma_3 считаются уже из усреднённого тензора, потому что главные напряжения нелинейно зависят от компонент. Веса — по числу элементов, не по объёму. В смешанной сетке TET4/TET10 (зона квадратичных элементов) каждый элемент считается в своём базисе, узел усредняется по своим соседям, поле остаётся однозначным в узле.
В нелинейных расчётах для твёрдых тел напряжение Коши берётся в точках Гаусса элемента, усредняется по объёму элемента в исходной конфигурации, затем узел усредняется по соседям с весом, равным этому объёму.
В режиме термоупругости из нормальных компонент вычитается тепловая часть \sigma^{\text{th}} = E\,\alpha\,\Delta T/(1-2\nu), поэтому показанные напряжения — механические.
В панели результатов можно переключиться между «узловым» (усреднённым) и «поэлементным» полем. Поэлементное поле ступенчатое, зато честно показывает скачки между элементами; разность двух режимов — грубая оценка того, насколько сетка разрешает градиент (точнее её оценивает индикатор ошибки).
Что важно знать
Граница материалов и тел. Узловое поле однозначно, поэтому на границе двух материалов (или двух соединённых тел) усреднение размазывает физический скачок напряжений между материалами с разными E. Узловое значение на самой границе — среднее двух разных величин, а не значение «слева» или «справа». Для мест, где скачок существенен, смотрите поэлементный режим или отдельные регионы. Из-за этого карта запаса прочности для моделей с несколькими материалами не строится: допускаемое напряжение в узле границы не привязывается ни к одному материалу. Индикатор ошибки, наоборот, восстанавливает поле раздельно по материалам.
Пики у границы. Значения в центре элемента занижают пик на грубой сетке: центроид стоит в глубине элемента, а не на волокне. При чистом изгибе консоли на сетке из TET10 (четыре слоя элементов по высоте) узловое вычисление дало на крайнем волокне ошибку 0,34 %, а центроидные значения того же расчёта — 14–18 % (замер при разработке).
Балки в узле не усредняются. В одном узле каркаса сходятся стержни с разными усилиями, и среднее было бы неверным по постановке.
12.3Эквивалентные напряжения и деформациистабильно
По тензору напряжений вычисляются скаляры, которые удобно сравнивать с пределами материала.
Эквивалентное напряжение по Мизесу (энергия формоизменения):
Главные напряжения \sigma_1 \ge \sigma_2 \ge \sigma_3 — собственные значения симметричной матрицы 3\times3. Они находятся в замкнутом виде тригонометрической формулой Смита: пусть q = \operatorname{tr}\boldsymbol{\sigma}/3, p = \sqrt{\lVert \boldsymbol{\sigma} - q\mathbf{I}\rVert_F^2/6}, \mathbf{B} = (\boldsymbol{\sigma} - q\mathbf{I})/p, \varphi = \tfrac13\arccos\!\left(\det\mathbf{B}/2\right), тогда
Для шарового тензора (p = 0) все три равны q. В виде полей на модели выводятся \sigma_1 (максимальное главное) и \sigma_3 (минимальное); \sigma_2 доступна в калькуляторе полей.
Интенсивность напряжений по Треска — разность крайних главных:
Она используется в картах прочности (критерий Треска) и в линеаризации напряжений по ASME.
Эквивалентная деформация. Для тензора деформаций \boldsymbol{\varepsilon} с девиатором \mathbf{e} = \boldsymbol{\varepsilon} - \tfrac13\operatorname{tr}\boldsymbol{\varepsilon}\,\mathbf{I} поле «эквивалентная деформация» равно норме девиатора:
где \varepsilon_{xy} = \gamma_{xy}/2 и так далее. Это не «пластическая» эквивалентная деформация, нормированная на несжимаемость (\sqrt{2/3}\,\lVert\mathbf{e}\rVert): при одноосном растяжении несжимаемого материала показанное значение в \sqrt{3/2}\approx 1.22 раза больше осевой деформации. Накопленная пластическая деформация \bar\varepsilon^{p} выводится отдельным полем из модели материала нелинейного расчёта.
12.4Критерии прочности и коэффициент запасабета
Карта прочности — постпроцесс над уже посчитанными узловыми напряжениями; смена критерия или предела не требует нового расчёта. Для каждого узла вычисляется «использование» D, коэффициент запаса n = 1/D. Если D = 0, запас ограничивается верхним потолком отображения.
| Критерий | Использование D | Нужные свойства материала |
|---|---|---|
| Мизес | \sigma_{\text{vm}}/\sigma_y | предел текучести \sigma_y |
| Треска | (\sigma_1-\sigma_3)/\sigma_y | \sigma_y |
| Ранкин | \max\!\left(\sigma_1/\sigma_t,\ -\sigma_3/\sigma_c\right) | пределы при растяжении \sigma_t и сжатии \sigma_c |
| Кулон–Мор | \sigma_1/\sigma_t - \sigma_3/\sigma_c (при \sigma_1\ge0\ge\sigma_3) | \sigma_t, \sigma_c |
| Сен-Венан | (\sigma_1 - \nu\,\sigma_3)/\sigma_y | \sigma_y (или \sigma_t), \nu |
| Друкер–Прагер | \left[\sigma_{\text{vm}} + \beta(\sigma_1+\sigma_3)\right]/\sigma_{\text{lim}} | \sigma_t, \sigma_c |
| Усталость: Гудман, Содерберг, Гербер | см. ниже | предел выносливости, \sigma_u или \sigma_y |
Для Друкера–Прагера \beta = (\sigma_c - \sigma_t)/(\sigma_c + \sigma_t) и \sigma_{\text{lim}} = 2\sigma_t\sigma_c/(\sigma_c + \sigma_t); константы подобраны так, чтобы критерий точно давал D=1 при одноосном растяжении и сжатии до пределов.
Три усталостных варианта карты — упрощённая оценка для пульсирующего цикла от нуля (амплитуда равна среднему \sigma_{\text{vm}}/2), при пределе выносливости \sigma_e:
Для произвольного цикла нагружения используйте расчёт усталости по кривым S-N.
Если для выбранного критерия не хватает свойства, панель называет недостающее свойство, а не строит карту по умолчанию.
Своё условие прочности можно задать в калькуляторе полей как поле «запас» K = [\sigma]/f(\sigma).
12.5Результаты оболочекстабильно
Для оболочек (четырёхугольник MITC4 с мембранной частью и треугольник CST+DKT) напряжения выводятся на волокнах по толщине. В центре элемента вычисляются мембранная часть и изгибная часть:
где \boldsymbol{\kappa} — кривизны, m_{\alpha\beta} — изгибные моменты на единицу длины, \sigma^m — мембранные напряжения плоского напряжённого состояния (\sigma_{zz} \approx 0). Знак «+» — верхнее волокно (по нормали элемента), «−» — нижнее. Эквивалентное напряжение на волокне — плоское:
В панели результатов выбирается волокно: верхнее, нижнее или большее по модулю. Компоненты считаются в локальной системе элемента. Перед узловым усреднением плоский тензор поворачивается в глобальные оси (\boldsymbol{\sigma}_{\text{glob}} = \mathbf{R}^{\mathsf T}\boldsymbol{\sigma}_{\text{loc}}\mathbf{R}), иначе усреднение на кривой оболочке смешало бы компоненты в разных базисах; верхнее и нижнее волокна усредняются раздельно.
Для слоистых оболочек напряжения восстанавливаются послойно: в трёх точках каждого слоя (низ, середина, верх) по обобщённым деформациям (\boldsymbol{\varepsilon}^0, \boldsymbol{\kappa}) и жёсткостям слоя; поперечные касательные \tau_{13}, \tau_{23} — отдельные поля. Обобщённые деформации переносятся в узлы подгонкой по патчу (SPR), без сглаживания через стык разных сечений или излом.
12.6Результаты балокбета
Для каждого балочного элемента постпроцессор восстанавливает внутренние усилия на концах из узловых перемещений: \mathbf{f} = \mathbf{k}_{\text{loc}}\,\mathbf{T}\,\mathbf{u}_e, где \mathbf{T} — поворот в локальные оси. Выводятся осевая сила N, поперечные Q_y, Q_z, крутящий момент T и изгибающие M_y, M_z. Знаки: N>0 — растяжение, T>0 — по правилу правой руки вдоль оси от первого узла ко второму. Если на элемент действует распределённая нагрузка, концевые усилия корректируются на вклад приведённых нагрузок (\mathbf{f}_{\text{int}} = \mathbf{f}_{\text{solver}} - \mathbf{F}).
Эпюры показывают значения на концах элементов, соединённые отрезками; в узле, где сходятся два элемента, берётся среднее двух концевых значений. Поэтому скачок поперечной силы под сосредоточенной нагрузкой на эпюре сглажен: в точках скачка смотрите значения по концам элементов.
Напряжения в сечении считаются двумя способами.
Оценка по библиотечным характеристикам (для сводки и поиска наихудшего сечения): \sigma = N/A \pm \lvert M_y\rvert/W_z \pm \lvert M_z\rvert/W_y — сумма модулей, то есть напряжение в угловой точке сечения. Для круглых и трубчатых сечений это консервативная оценка: точки наибольшего изгиба в двух плоскостях у них не совпадают.
Распределение по сечению (панель «Сечение») — в узлах сетки точек сечения:
где статический момент Q и ширина b отсечённой части вычисляются численно на сетке сечения (формула Журавского). Крутильные касательные: круг и труба — \tau = T r/J; прямоугольник — приближение функции напряжений Прандтля; замкнутая коробка — формула Бредта \tau = T/(2A_m t); тонкостенные открытые профили (двутавр, тавр, швеллер, уголок) — линейный закон по толщине пластины. Эквивалентное напряжение: \sigma_{\text{vm}} = \sqrt{\sigma_{xx}^2 + 3\tau^2} с \tau = \sqrt{\tau_{xy}^2 + \tau_{xz}^2}.
12.7Напряжения в локальных осях материалабета
Для ортотропных твёрдых тел (волокнистые композиты, дерево, прокат) закон Гука записывается в осях материала 1,2,3, а напряжения в тех же осях важнее глобальных: по ним проверяют прочность вдоль и поперёк волокон. Ориентация осей задаётся для тела по поверхности, по декартовой, цилиндрической или сферической системе координат, плюс угол поворота в плоскости.
Матрица жёсткости ортотропного материала (девять независимых констант E_i, \nu_{ij}, G_{ij}) переводится в глобальные оси преобразованием Бонда, деформации считаются через \mathbf{B}\mathbf{u} в глобальных осях, а напряжение переводится в оси материала: \boldsymbol{\sigma}_{\text{loc}} = \mathbf{T}_\sigma\,\boldsymbol{\sigma}_{\text{glob}}, где \mathbf{T}_\sigma — матрица Бонда для напряжений. Поля \sigma_{11}, \sigma_{22}, \sigma_{12} доступны для раскраски и зондов (stress_local11, stress_local22, stress_local12); значения в узле — среднее по соседним элементам.
12.8Реакции опор и баланс силстабильно
Реакция на закреплённые степени свободы — сила, с которой опора действует на тело. Для твёрдых тел она считается через невязку уравнения равновесия на связанных DOF:
где \mathbf{K}\mathbf{u} собирается поэлементно (\sum_e \int_{\Omega_e} \mathbf{B}^{\mathsf T}\boldsymbol{\sigma}\,d\Omega) для связанных узлов, а \mathbf{F} — правая часть, включающая поверхностные, сосредоточенные, объёмные и узловые нагрузки. Реакция относится как к закреплениям (нулевое перемещение), так и к заданным ненулевым перемещениям; в последнем случае она показывает силу, нужную для задания перемещения.
Выводятся: реакция по каждой записи граничных условий (компоненты и модуль), распределение по узлам опоры и суммарная реакция \sum R_x, \sum R_y, \sum R_z. Проверка баланса — сравнить суммарную реакцию с суммой приложенных нагрузок: для статики \sum \mathbf{R} + \sum \mathbf{F} = \mathbf{0}. Для каркасных моделей (балки, оболочки) реакции получаются из равновесия узла по концевым усилиям и узловым нагрузкам.
Реакция — разность двух больших чисел, поэтому любая нагрузка, пропущенная в \mathbf{F} на закреплённом узле, уходит в ответ целиком. Постпроцессор ведёт учёт полноты правой части: если какой-то вид нагрузки не удалось учесть (например, сила на вершину, не найденную в сетке), число реакции выводится с явным предупреждением, а не молча.
Пример
reactions
probe reaction_z12.9Линеаризация напряжений по ASME VIII-2 (SCL)бета
В сосудах и трубопроводах критерием прочности служит не пик, а интегральные составляющие напряжения по толщине стенки. Линия классификации напряжений (SCL) пересекает стенку от внутренней поверхности (x=0) до внешней (x=t); поля вдоль неё раскладываются на мембранную, изгибную и пиковую части (ASME BPVC Section VIII Division 2, Annex 5-A; EN 13445-3; ГОСТ 34233).
Линеаризуются компоненты тензора в локальной системе линии (ось x — вдоль SCL, остальные оси — меридиан и окружное направление), а эквивалентные величины считаются уже от линеаризованного тензора:
на внешней поверхности изгибная часть равна -\boldsymbol{\sigma}_b^{\text{in}}. Пиковая часть — остаток на поверхностях: \boldsymbol{\sigma}_F = \boldsymbol{\sigma}(x_s) - \boldsymbol{\sigma}_m - \boldsymbol{\sigma}_b(x_s). Интегралы берутся составным правилом Симпсона по равноотстоящим точкам вдоль линии. Для каждой из составляющих (P_m, P_b, P_m + P_b на каждой поверхности, F) выдаются эквивалентные напряжения по Мизесу и по Треска (интенсивность \sigma_1 - \sigma_3).
Допускаемые напряжения (если заданы свойства материала):
Запас — отношение допускаемого к фактическому. Допускаемое S_m можно задать и напрямую.
Линия задаётся двумя точками (внутри, снаружи) и третьей точкой для ориентации меридиана либо осью сосуда; число точек вдоль линии по умолчанию 47.
scl — позже.Где в интерфейсе, DSL
Панель результатов «Линеаризация»: три клика по модели (точки внутри, снаружи, на меридиане), график эпюры по толщине и таблица составляющих.
scl p1=(50,0,0) p2=(62,0,0) samples=47 criterion=tresca
probe scl_pm
probe scl_pm_pb12.10Очаги концентрации и индикатор ошибки Зенкевича–Жубета
Максимум напряжения не отвечает на вопрос, физическая это концентрация (отверстие, галтель) или артефакт грубой сетки (угол закрепления). На него отвечает оценка ошибки конечно-элементного поля напряжений.
Метод
Индикатор Zienkiewicz–Zhu (1987) для сеток из тетраэдров (TET4, TET10 и смешанных).
- Конечно-элементное поле \boldsymbol{\sigma}_h разрывно между элементами. Оно берётся в четырёх точках Гаусса элемента (точки суперсходимости напряжений).
- Восстанавливается непрерывное поле \boldsymbol{\sigma}^*: по патчу элементов вокруг узла подгоняется полином (SPR — суперсходящееся восстановление по патчу, Zienkiewicz–Zhu 1992); в узле берётся значение этого полинома. Восстановление идёт раздельно по материалам, так что скачок на границе материалов не размазывается.
- Ошибка элемента — энергетическая норма разности:
Глобальная относительная ошибка \eta = \lVert e\rVert / \sqrt{\lVert\boldsymbol{\sigma}^*\rVert^2 + \lVert e\rVert^2}. Для TET10 разность \boldsymbol{\sigma}^* - \boldsymbol{\sigma}_h на элементе — полином второй степени, и интеграл берётся точно (аналитическая матрица масс), без квадратурной погрешности. Рядом с абсолютным \eta_e выводится плотность ошибки \eta_e/\sqrt{V_e} — она не зависит от размера элемента.
От ошибки к очагам
- Маркировка Дёрфлера (Dörfler 1996): минимальное множество элементов, несущее долю \theta суммарной квадратичной ошибки, \sum_{e\in M}\eta_e^2 \ge \theta \sum_e \eta_e^2; классический выбор \theta = 0.5. Критерий задаётся через ошибку, а не через число элементов, поэтому не зависит от размера сетки.
- Склейка помеченных элементов в связные группы (по общей грани).
- Отсев шума: одиночные элементы и очень малые группы чаще связаны с вырожденным элементом, чем с физикой; они не пропадают молча, а показываются в отчёте как отброшенные. Если ошибка по модели мала и равномерна, очагов нет, и панель так и пишет.
- Ранжирование по плотности ошибки \sqrt{\sum\eta_e^2/\sum V_e}, а не по сумме: сумма ставит первой самую крупноячеистую область.
Для каждого очага выдаётся центр, радиус описанной сферы, объём, доля общей ошибки и текущий размер элемента. Из очага строится зона сгущения (сфера) с размером h_{\text{new}} = h_{\text{old}}/k (по умолчанию вдвое) и запасом на переходную полосу сетки; её можно создать одной кнопкой или во всех очагах сразу.
Где в интерфейсе и DSL
Панель результатов «Очаги»: список, кнопки «Сфера здесь» и «Сферы во все очаги». В DSL — hotspots и автоматический цикл refine adaptive, у которого пользователь задаёт целевые погрешности: gci (порог сеточной сходимости, %) и tol (порог ошибки ZZ, %).
hotspots refine=2 minsize=0.5
probe hotspot_count
refine adaptive passes=3 gci=5 tol=212.11Сеточная сходимость: экстраполяция Ричардсона и GCIбета
Сходимость решателя (падение невязки внутри одного расчёта) — одно; сходимость по сетке (к чему стремится пик напряжения при измельчении) — другое. Модуль отвечает на второй вопрос серией независимых расчётов на всё более мелкой сетке.
Метрика — максимум поля внутри сферы очага, зафиксированной с предыдущей итерации (глобальный максимум на разных сетках может стоять в разных местах и сравнивать его нельзя). Характерный размер элемента h берётся из самой сетки в этой сфере как h = (\overline{\Delta V_e})^{1/3} (Celik et al., ASME J. Fluids Eng., 2008), а не из заказанного размера: мешер выдаёт не то, что просили, а метод работает с отношениями h.
По трём последним сеткам (h_1 > h_2 > h_3, значения пика f_1, f_2, f_3) вычисляется:
Порядок p считается знаковым, без модуля из записи Celik: отрицательный p — это диагноз расходимости, а не шум. Вердикт один из:
- «сошлось»: предел f_{\text{ext}} \pm \text{GCI}\cdot\lvert f_3\rvert, GCI не выше цели (по умолчанию 5 %);
- «сходится, но полоса ещё широкая» — измельчать дальше;
- «не сходится — вероятно сингулярность» (p \le 0): добавьте скругление, дальнейшее измельчение ответа не даст;
- «недостаточно истории» (меньше трёх итераций) или «вход непригоден».
Если знак приращений сменился (ряд качается вокруг предела), вердикт — «измельчать дальше»: экстраполяция в таком ряду недостоверна.
12.12Усталость по кривым S-Nбета
Оценка долговечности в области многоцикловой усталости по напряжениям: статический линейный расчёт даёт распределение напряжения, оно масштабируется историей нагружения, а долговечность считается по кривой Велера в каждом узле.
Кривая S-N — одна из трёх:
- Баскин: \sigma_a = \sigma'_f\,(2N_f)^b, откуда N_f = \tfrac12(\sigma_a/\sigma'_f)^{1/b}; необязательный предел выносливости \sigma_e: ниже него N_f = \infty.
- Двухнаклонная с изломом на базе N_e: N_f = N_e(\sigma_a/\sigma_e)^{1/b_1} при \sigma_a \ge \sigma_e и N_f = N_e(\sigma_a/\sigma_e)^{1/b_2} ниже предела (при b_2 = 0 — бесконечная жизнь).
- Табличная: кусочная интерполяция в осях \log\sigma–\log N.
Поправка на среднее напряжение \sigma_m переводит цикл (\sigma_a, \sigma_m) в эквивалентную симметричную амплитуду \sigma_{a,\text{eq}}:
| Метод | \sigma_{a,\text{eq}} | Нужно |
|---|---|---|
| Гудман | \sigma_a/(1-\sigma_m/\sigma_u) | \sigma_u |
| Гербер | \sigma_a/(1-(\sigma_m/\sigma_u)^2) | \sigma_u |
| Морроу | \sigma_a/(1-\sigma_m/\sigma'_f) | \sigma'_f |
| Содерберг | \sigma_a/(1-\sigma_m/\sigma_y) | \sigma_y |
При \sigma_m \ge предела знаменателя поправка даёт бесконечность (статическое разрушение). По умолчанию при сжимающем среднем \sigma_m \le 0 поправка не применяется (консервативно, \sigma_{a,\text{eq}} = \sigma_a); учёт благоприятного влияния сжатия включается явно.
Нагружение задаётся одним из способов: коэффициент асимметрии R = \sigma_{\min}/\sigma_{\max} (по умолчанию R=-1); диапазон масштабов; история масштабных множителей статического решения; последовательность результатов нескольких шагов (непропорциональное нагружение). История разбирается методом «дождя» (rainflow, ASTM E1049-85, §5.4.4) на замкнутые циклы и полуциклы \{\Delta\sigma,\ \sigma_m,\ w\} (вес 1 или 0,5), остаточные полуциклы входят с весом 0,5. Повреждения суммируются по правилу Пальмгрена–Майнера:
Здесь N_{\text{blocks}} — долговечность в повторениях заданного блока нагружения.
Скалярное напряжение, по которому считаются циклы, — Мизес, Мизес со знаком (знак по наибольшему по модулю главному) или \sigma_1. Результат — поля повреждения D, \log_{10}N_f, эквивалентной амплитуды и коэффициента усталостного запаса n = \sigma_a^{\text{allow}}(N_{\text{target}})/\sigma_{a,\text{eq}} — отношения допускаемой амплитуды при целевой долговечности к эквивалентной (ограничен сверху), а также наиболее опасный узел.
fatigue sigma_f=900e6 b=-0.09 sigma_e=200e6 sigma_u=600e6 correction=goodman r_ratio=0
probe fatigue_min_log_life12.13Механика разрушения: оценка KI, J и рост трещины по Пэрисуэксперимент
Модуль даёт инженерные оценки по замкнутым формулам линейной механики разрушения и по напряжению в месте предполагаемой трещины. Это не расчёт J-интеграла по контуру или области вокруг вершины трещины и не расчёт на сетке с трещиной.
Формулы.
- K_I = Y\,\sigma\sqrt{\pi a}; для центральной трещины 2a в бесконечной пластине Y=1 и K_I = \sigma\sqrt{\pi a}.
- Скорость высвобождения энергии (Гриффитс–Ирвин): G = K_I^2/E', где E' = E (плоское напряжение) или E/(1-\nu^2) (плоская деформация).
- Рост усталостной трещины по Пэрису: da/dN = C\,(\Delta K)^m, \Delta K = Y\,\Delta\sigma\sqrt{\pi a}. При постоянном Y интеграл берётся аналитически: N = \dfrac{a_f^{\,1-m/2} - a_0^{\,1-m/2}}{(1-m/2)\,C\,(Y\Delta\sigma\sqrt\pi)^m} (при m=2 — N = \ln(a_f/a_0)/[C(Y\Delta\sigma\sqrt\pi)^2]).
- Критерий страгивания: трещина нестабильна при K_I \ge K_{Ic}; критическая длина a_c = \dfrac1\pi\left(\dfrac{K_{Ic}}{Y\sigma}\right)^2, запас n = K_{Ic}/K_I.
- Для образцов DCB (мода I) и ENF (мода II) в модуле есть балочные формулы податливости, G и критической нагрузки; они используются в кейсах верификации когезионных зон.
Оценка по ребру (fracture edge number N): пользователь указывает ребро (место предполагаемой трещины), начальную и конечную длины a_0 и a_f, параметры Пэриса C, m, вязкость K_{Ic} и фактор формы Y. В узлах ребра берётся раскрывающее напряжение \sigma_{\text{open}} — наибольшее главное напряжение из расчёта модели без трещины. Далее K_I = Y\,\sigma_{\text{open}}\sqrt{\pi a_0}, J = K_I^2/E', а число циклов получается интегрированием закона Пэриса с \Delta\sigma = \sigma_{\text{open}} (цикл «от нуля до максимума»). Единицы: K_{Ic} в МПа·√м, C — для \Delta K в МПа·√м и длины трещины в метрах; в панели результатов a_0 и a_f вводятся в миллиметрах, в DSL — в метрах.
fracture edge number 7 a0=0.002 af=0.008 c=1e-11 m=3 ki_c=50
probe sif_k1
probe paris_cycles12.14Калькулятор полей: пользовательские выражениястабильно
Инженер задаёт собственное поле — выражение над узловыми полями результата, — и оно красится на модели, как встроенное: с легендой, зондом, фильтром по значению.
Выражение строится из переменных: компонент напряжений sxx … szx, vm, s1 s2 s3, компонент деформации exx … gxz, eeq, epeq, перемещений ux uy uz umag, а также чисел, констант и функций (abs sqrt cbrt sign exp log log10 sin cos tan atan atan2 min max hypot clamp pow, арифметика и степень). Разбор безопасный (без выполнения произвольного кода).
Размерности проверяются на этапе разбора. Внутри выражения всё в СИ (Па, м). Единицы — именованные величины: допускаемое пишется 250*MPa, а не 250e6. Выражение 250e6/vm отклоняется (размерность 1/Па), как и vm + 5 (нельзя складывать давление с числом). Размерность результата выводится из выражения: Па → «давление» (показ в МПа, psi или Па по системе единиц), метр → «длина», 1 → безразмерное; прочие степени показать нечем, и выражение отклоняется с названием размерности. Необязательный unit= — утверждение о размерности: не совпало — отказ.
Запас прочности по своему критерию (отдельный тип поля): K = [\sigma]/f(\boldsymbol\sigma), где f — критерий в единицах давления (например vm или max(s1, -s3*ft/fc)), [\sigma] — константное допускаемое. При f=0 запас ограничивается потолком, при f<0 или нечисловом значении узел не определён.
Узел, где значение не определено, получает «не число» и считается: их число и первая причина отдаются в отчёте; молчаливый ноль не подставляется.
epeq в линейном расчёте), отклоняются с названием. Для огибающих спектрального анализа главные напряжения и инварианты не определены (амплитуды компонент не образуют знакового тензора), и такие переменные отказываются.field define name=sigma_ratio expr="vm / (250*MPa)" unit=none
field safety name=n_shell criterion="vm" allowable="250*MPa"
probe n_shell12.15Зонды, фильтры и замерыстабильно
В интерфейсе зонд ставится кликом по модели; панель показывает значение поля в узле. Автозонды отмечают минимум и максимум выбранного поля на модели. Фильтр по значению оставляет на модели только узлы вне или внутри заданного диапазона. Диапазон цветовой шкалы можно закрепить вручную (в единицах показа выбранной системы).
В DSL:
probe displacement_magnitude at=0,0,100
minmax vonMises
legend range min=0 max=250
result field vonMisesprobe <quantity> at=… усредняет поле по узлам, попавшим в окно допуска tol= вокруг заданных координат (без интерполяции; если координата одна, получается среднее по срезу); если в окне нет узлов, команда отказывает и просит расширить допуск. minmax возвращает минимум и максимум по всему узловому массиву (значением выражения служит максимум). Доступны величины: перемещения, vonMises, principalMax, principalMin, компоненты тензора, локальные напряжения материала, реакции (reaction_x, reaction_y, reaction_z, reaction_magnitude), результаты линеаризации, усталости, механики разрушения, оптимизации, а также динамические и частотные величины. Полный перечень — на странице /docs/dsl.
tol= явно.minmax используются как средство измерения во всех кейсах верификации; их собственное поведение (единицы, агрегаты, отказы на неверные аргументы) проверено скриптовыми тестами.12.16Параметрический DOE и суррогатная оптимизацияэксперимент
Раздел «Параметрический DOE и оптимизация» собран из трёх узлов; ни один из них пока не связан с расчётом конечно-элементной модели.
- Планирование эксперимента. Латинский гиперкуб (LHS) с выбором из нескольких кандидатов по максимальному минимальному расстоянию между точками (maximin); детерминированный генератор с фиксируемым зерном. Режим, названный «Соболь», реализован как последовательность Хэлтона (радикальная инверсия по простым основаниям) — малодисперсная, но не Соболя.
- Суррогатная модель. Обычный кригинг (гауссовский процесс с постоянным трендом): корреляция гауссова или экспоненциальная, холецкий корреляционной матрицы, прогноз среднего и дисперсии, ожидаемое улучшение (Expected Improvement) для байесовской оптимизации. Длины корреляции подбираются эвристикой по средним расстояниям между точками, а не максимизацией правдоподобия.
- Оптимизатор с ограничениями. Начальный набор точек DOE, затем локальный поиск по образцу (покоординатный, с уменьшением шага вдвое при отсутствии улучшения) по штрафной функции f(\mathbf p) + c\,v(\mathbf p)^2, где v — наибольшее нарушение ограничения. Выдаются оптимум, фронт Парето по допустимым точкам, историю и конечно-разностные чувствительности \partial f/\partial p_k в оптимуме. Это не метод SQP: градиентов и квадратичных подзадач в нём нет.
Ограничения задаются на напряжение, частоту, коэффициент потери устойчивости и перемещение; цели и адреса сущностей подчиняются тем же правилам нумерации, что и остальной продукт (нумерация документа, без bbox-адресов).
doe run вычисляют цель и ограничения по встроенным модельным функциям (масса — как произведение размеров бруса, напряжение и частота — упрощённые зависимости от высоты и длины), а не по расчёту вашей модели; параметры по умолчанию — длина, ширина, высота. Суррогатная модель и ожидаемое улучшение реализованы и проверены в тестах, но в сквозном сценарии продукта не вызываются. Результат поэтому показывает работу алгоритмов, а не оптимальную конструкцию вашей детали. Использовать результат doe_best_mass как инженерный вывод нельзя.doe param name=thickness min=1 max=10
doe run method=lhs samples=20 objective=mass
probe doe_feasible_count12.17Экспорт результатовстабильно
- VTK (legacy ASCII,
UNSTRUCTURED_GRID) для ParaView: узлы недеформированной сетки, ячейки всех поддерживаемых типов (TET4, квадратичный TET10, HEX8, призмы, пирамиды), перемещения как векторное полеVECTORS(для Warp By Vector), узловые скаляры (модуль перемещения, Мизес, \sigma_1, \sigma_3, запас прочности, деформации, контакт, реакции в Н) и температура. Единицы указаны в именах полей. В интерфейсе — меню проекта, в DSL —export vtk path=...(запись в файл по пути работает в десктопной и скриптовой среде). - Сетка в формате расчётных пакетов:
export mesh file="model.inp", при необходимости с деформированной геометрией и масштабом перемещений. - HTML-отчёт: параметры расчёта, пробы и снимок вьюпорта; числа выводятся в выбранной системе единиц.
FIELD), а не как знаковый вектор: применять к ним Warp By Vector нельзя. Файл ASCII, для больших моделей он тяжёл.12.18Легенда и деформированный видстабильно
Цветовая шкала на модели берёт диапазон из поля (минимум и максимум по узлам), подпись — из таблицы единиц выбранной системы; диапазон можно закрепить вручную (двойной клик по краям шкалы или legend range min= max=). Для контакта шкала категориальная (статус), для запаса прочности значения выше потолка подписываются как «бесконечность». Деформированный вид рисует \mathbf{x} + s\,\mathbf{u} с масштабом s, который выбирает пользователь; при s = 1 показана истинная деформация, при большем s — условная, поэтому числа берите из зондов и легенды, а не из картинки.
13Проекты, сценарии и автоматизация
↑ К оглавлениюОдин и тот же расчёт в WebCAE можно провести тремя способами: мышью в интерфейсе, сценарием на встроенном языке DSL или поручить внешнему ИИ-ассистенту через MCP. Все три способа работают с одной моделью и одними и теми же командами, поэтому результат не зависит от того, чем он получен. Раздел описывает рабочий процесс, файл проекта, язык сценариев, подключение ассистентов, готовые примеры, обмен данными и локализацию.
Зачем это инженеру. Сценарий превращает расчёт в воспроизводимый документ: его можно положить рядом с отчётом, перезапустить на новой версии и сравнить числа. Файл проекта хранит модель вместе с результатами, а не только исходные данные. Подробный справочник команд DSL ведётся отдельно: Язык сценариев DSL.
13.1Рабочий процесс: шесть шаговстабильно
Интерфейс устроен как цепочка из шести шагов. Каждому шагу соответствует вкладка верхней панели и своя панель параметров.
| Шаг | Что делает инженер | Что получается |
|---|---|---|
| 1. Геометрия | Строит примитивы и эскизы, импортирует STEP и IGES, режет, склеивает, лечит геометрию (см. Геометрия и CAD) | Тела, листы и линии с нумерацией граней, рёбер и вершин |
| 2. Модель | Задаёт материалы и назначает их телам, сечения балок, толщины оболочек, группы | Расчётная модель без нагрузок |
| 3. Нагрузки и ГУ | Ставит закрепления, силы, давления, температуры, контакты и связи | Записи граничных условий, привязанные к номерам сущностей |
| 4. Сетка | Выбирает тип сетки, размер элемента, порядок элементов, зоны сгущения | Сетка тетраэдров, гексаэдров, оболочек или балок |
| 5. Расчёт | Выбирает вид анализа и параметры решателя, запускает расчёт | Поля перемещений, напряжений, температур, частоты, формы, коэффициенты устойчивости |
| 6. Результаты | Смотрит поля, зонды, реакции, сечения, экспортирует | Таблицы, картинки, файлы |
Вид анализа на шаге 5 выбирается из групп: структурный (статика, модальный анализ, устойчивость, гармонический отклик, переходная динамика), тепловой, explicit-динамика и CFD. Модели из балок и оболочек, заданные командами frame, проходят те же шаги, но на шагах 3 и 4 вместо обычных панелей показывают панель каркаса.
Шаги не образуют жёсткого конвейера. К любому доступному шагу можно вернуться. Шаги «Геометрия», «Модель» и «Нагрузки и ГУ» открыты всегда; «Сетка» и «Расчёт» ждут геометрию или сетку, «Результаты» открываются, когда есть результат расчёта. Изменения модели можно отменить и вернуть (Undo и Redo).
Автосохранение пишет снимок модели (без результатов) в локальное хранилище браузера или приложения, чтобы пережить перезагрузку вкладки или сбой. Это страховка, а не замена сохранению проекта в файл.
13.2Файл проекта .wceстабильно
Проект сохраняется одним файлом с расширением .wce. Прежнее расширение .caeweb продолжает открываться; при следующем сохранении предлагается .wce. Расширение ничего не говорит о содержимом: читатель определяет формат по сигнатуре и сжатию, поэтому переименованный файл открывается так же.
Внутри лежит полная модель, а не только исходные данные.
- Геометрия: байты исходного STEP, проверенное B-Rep каждого тела, созданные и импортированные тела, моментальный снимок топологии с устойчивыми идентификаторами, журнал нумерации сущностей.
- Модель: материалы и их назначение, сечения, группы, граничные условия, нагрузки, контакты и связи, настройки сетки и расчёта.
- Сетка: тетраэдры, гексаэдры, гибридные элементы и поверхностные сетки с качеством элементов.
- Результаты: статика, тепловое поле, explicit, гармонический отклик, результаты каркаса (статика, формы, устойчивость, динамика), история шагов нагружения, архив адаптивных перестроений.
Массивы чисел (узлы, элементы, поля) лежат в бинарном блоке без перекодирования в текст, а контейнер целиком сжимается gzip. Файл записывает версию схемы данных. Старые файлы открываются новой версией приложения: недостающие поля берутся по умолчанию, устаревшие адреса сущностей переводятся в нумерацию при чтении. Файл более новой схемы старая сборка открывать отказывается, а не читает с потерей данных.
Не сохраняются временное состояние интерфейса (текущая вкладка, статусы, выделение), частичный ряд оборванного расчёта, скрипты и журнал терминала. Проект открывается из меню «Проект», перетаскиванием файла в окно, двойным щелчком в десктопе (приложение регистрируется для .wce) и командой cae_open_project для ассистентов. Меню «Проект» также сохраняет результаты отдельно от модели и читает их обратно.
13.3Единый командный слой и журнал действийбета
Любая функция продукта заводится как команда единого командного слоя. Кнопка ленты, пункт контекстного меню, строка DSL и вызов ассистента обращаются к одной функции. Форма в интерфейсе и скрипт не дублируют логику, поэтому одна и та же операция даёт одинаковый результат на любом пути. Это правило разработки: новая возможность считается законченной, когда достижима и из интерфейса, и из сценария.
Доступны три поверхности. Первая — интерфейс. Вторая — язык DSL, строка за строкой. Третья — программный интерфейс cae.* на JavaScript, через который работают терминал и MCP-мост. В терминале внизу окна строка, начинающаяся с cae., выполняется как JavaScript; остальные строки сначала пробуются как JavaScript, затем как DSL. Несколько строк можно вставить сразу.
Журнал действий строится автоматически. Терминал показывает два канала: команды расчётного ядра (геометрия, сетка, материалы, ГУ, запуск расчёта; показываются всегда) и события интерфейса (смена вкладки, выбор, видимость, камера; включаются флажком «UI-события»). Команды записываются в форме вызовов cae.*, например cae.fix(...) или cae.setMeshOrder(...). Такую строку можно скопировать и выполнить повторно, то есть собрать из журнала макрос.
cae.*, а не строки DSL, и не сохраняется в проекте. Не у каждой операции есть воспроизводимая строка: часть событий записывается как читаемый комментарий. Выбор мышью в 3D-виде и настройки отображения существуют только в интерфейсе. Покрытие DSL неполное, а ряд режимов в скрипте отказывает с пояснением вместо тихой подмены; список ограничений ведётся на странице DSL. Некоторые команды работают только внутри приложения, например автоматический поиск контактных пар contact pairs. Поэтому статус бета: принцип выдержан для основной цепочки, но не гарантирован для каждой операции.13.4Воспроизводимость результатовбета
Чтобы расчёт можно было повторить, нужны сценарий, версия программы и платформа. На одной платформе повторный запуск того же сценария даёт ту же сетку и те же числа: мешер детерминирован. Между десктопом и браузером сетки на одной геометрии могут отличаться, поэтому числа разных платформ сравнивают с подписью платформы (см. расхождения платформ).
Результат несёт метку «эпохи решателя». Когда в решателе исправляют ошибку, из-за которой числа сохранённого результата могли выйти за допуск 5 %, номер эпохи растёт. Открыв проект, сохранённый до такой правки, программа показывает стойкое уведомление «результаты могли устареть». Сам результат не удаляется: его можно сравнить с пересчётом. Тот же вердикт отдают отчёт, DSL (поле staleResults в ответе интерпретатора) и MCP.
Версия продукта видна в панелях, в окне «О программе» и в «Настройки → Обновления», в ответе cae_get_state и в свойстве cae.version. Клик по номеру версии открывает историю изменений.
13.5Язык сценариев DSLстабильно
DSL — текстовый язык команд. Скрипт — обычный UTF-8 файл, одна команда на строку; комментарии начинаются с # или //, блоки и циклы заключаются в { }. Каждая команда — слово, затем позиционные и именованные аргументы вида key=value. Векторы пишутся числами через запятую: origin=0,0,10. Числа допускают экспоненту: E=200e9.
Язык содержит переменные (let), условия (if/else), циклы (for x in [0..3], while), функции (func/return) и встроенные функции (abs, sqrt, min, max, floor, ceil, round, len, str, num, basename). Вывод — print, запись значений в структурированный ответ — record. Для защиты от зацикливания число шагов исполнения ограничено миллионом, а глубина рекурсии — 64.
Команды охватывают всю цепочку: геометрия (primitive, boolean, sketch, extrude, import), материал и сечения (material, section, assign), сетка (mesh, refine), граничные условия (fix, load, contact, remote), расчёт (solve static|modal|buckling|thermal|nonlinear|...), результаты (probe, minmax, reactions, hotspots) и вывод (export vtk). Единица длины скрипта задаётся командой units; нагрузки и константы материала задаются в СИ.
Адресация сущностей
Грани, рёбра и вершины адресуются только номерами из дерева модели: surface number N, edge number N, vertex number N. Слово вида обязательно. Направления по габаритам (face z-) и голые индексы отвергаются синтаксической ошибкой. Номера узнают командой list faces of body1 или list edges of body1. В скрипте результат list можно сохранить в переменную: у каждой грани есть .n (номер), .area, .centroid, .normal. Это позволяет выбирать грани по критерию и подставлять номер в команду: fix surface number faces[0].n. Подробнее — в подразделе Нумерация топологии.
Пример сценария от геометрии до результата
Консольный брус сечением 20×20 мм и длиной 100 мм: заделка на одном торце, растяжение силой 5000 Н на другом. Тетраэдры второго порядка, линейная статика, затем проверка по формуле \delta = FL/(EA).
# Консольный брус 20x20x100 мм, растяжение 5 кН вдоль оси z
units mm
material E=200e9 nu=0.3 density=7850
primitive box dx=20 dy=20 dz=100
mesh tet size=8 order=2
fix surface number 5
load surface number 6 force=5000 component=z
solve static
reactions
minmax vonMises
minmax displacement_magnitudeВ этом примере грань 5 — торец при z=0, грань 6 — торец при z=100 мм. У параллелепипеда грани нумеруются в порядке x-, x+, y-, y+, z-, z+; у других тел номера смотрите командой list faces of body1 до постановки ГУ. Ожидаемый результат: суммарная реакция равна приложенной силе по модулю (5000 Н), а наибольшее перемещение торца близко к аналитическому \delta = FL/(EA) = 5000\cdot 0.1/(2\cdot 10^{11}\cdot 4\cdot 10^{-4}) \approx 6.25\cdot 10^{-6} м. Заделка полностью запрещает перемещения на торце, поэтому вблизи неё возникает локальный концентратор, и наибольшее напряжение по Мизесу превысит однородное F/A = 12.5 МПа. Для сравнения с аналитикой берите значения вдали от заделки.
Скрипт запускается в терминале приложения или из MCP командой cae_run_script; вывод print и записанные значения record возвращаются вместе со статусом выполнения.
В скрипте результат list можно сохранить и обойти циклом, например, чтобы вывести номера, площади и нормали граней.
let faces = list faces of body1
for f in faces {
print f.n f.area f.normal
}units считается метровым, поэтому mesh tet size=6 в нём — шесть метров: начинайте скрипт с units mm. Часть команд работает только внутри приложения, с открытой моделью, а не в безголовом прогоне. Режимы, которые в скрипте недоступны или отказывают с пояснением, перечислены на странице DSL в разделе известных ограничений; язык не гарантирует, что любая операция интерфейса имеет команду.13.6MCP-сервер для ИИ-ассистентовбета
MCP (Model Context Protocol) — открытый протокол, по которому ассистент (Claude Desktop, Claude Code, Cursor и подобные) вызывает инструменты. WebCAE поставляет локальный мост, соединяющий ассистента с открытым окном приложения. Ассистент работает с настоящей моделью: открывает проект, осматривает грани и рёбра, назначает материал, ставит граничные условия, строит сетку, запускает расчёт, получает числа и снимок экрана.
Инструменты типизированы и делятся на группы: осмотр (cae_inspect_surfaces, cae_inspect_edges, cae_get_state, cae_get_model_context), построение (cad_create_from_template, cad_create_from_script, cae_import_step_artifact, cae_open_project), задание модели (cae_set_material, cae_add_boundary_condition), расчёт и просмотр (cae_solve, cae_screenshot) и универсальный cae_run_script, который принимает сценарий DSL строкой и возвращает вывод print, записанные значения record и статусы. Цели граничных условий адресуются теми же номерами surface number N; осевые псевдоимена («верхняя грань») мост отвергает. Список инструментов и параметры: MCP-сервер.
Мост слушает только локальный адрес. В релизной десктопной сборке он по умолчанию выключен: на соединении нет авторизации, и постоянно открытый порт отдал бы модель любому процессу машины. Включение — кнопкой «MCP» в верхней панели или при запуске приложения. Активное окно приложения одно: если подключены несколько клиентов, команды идут в одно окно, остальные ждут.
13.7Библиотека примеровбета
В приложении есть готовые проекты с посчитанными результатами: около девяноста в выпуске 0.2.1 и больше ста в рабочей ветке. Они открываются из меню «Примеры» верхней панели, из «Настройки → Открыть пример» и по ссылке вида ?example=<id>. Проект открывается сразу с полями результатов, легендой и зондами, расчёт повторять не нужно. Примеры сгруппированы по отраслям (автомобилестроение, машиностроение, железнодорожный транспорт, горное дело, нефть и газ, энергетика, авиация и космос, строительство, судостроение) и по видам анализа: статика, модальный анализ, устойчивость, большие прогибы, контакт, связи RBE2, CFD (RANS), каркасные и оболочечные конструкции. Витрина на сайте показывает те же модели.
Отдельный набор — нелинейные и многофизические кейсы: торможение колодки с трением, сейсмика башни со связями RBE2, динамическое прощёлкивание арки, джоулев нагрев шины с термоупругим ударом, а в рабочей ветке ещё гиперупругий сайлентблок, сектор турбинного диска с ползучестью и усталостью, расслоение двухслойной балки DCB, акустическая полость глушителя. Для каждого хранятся скрипт построения и численный паспорт. Кейсы, добавленные после выпуска 0.2.1, в нём отсутствуют.
13.8Обмен данными: проекты, результаты, геометриябета
Меню «Проект» собирает операции обмена.
- Геометрия: импорт STEP и IGES (см. Импорт STEP и Импорт IGES и STL), экспорт в STEP и IGES при наличии геометрии.
- Проект: «Новый проект», «Сохранить проект…», «Открыть проект…» (формат
.wce, см. выше). - Результаты: «Экспорт результатов…» и «Импорт результатов…» работают с файлами
.wceи.caeweb, а импорт принимает и.vtk. Это позволяет передать коллеге поля результатов, не передавая весь проект. - VTK: экспорт сетки с полями в формат
.vtk, который читает ParaView. Для explicit- и CFD-расчётов используется VTK, сформированный расчётным модулем. - DSL:
export vtk [path=...].
В десктопе файловые диалоги системные. В браузерах с File System Access API (Chrome, Edge) проект сохраняется прямо в выбранный файл, в остальных (Safari, Firefox) скачивается как обычный файл.
13.9Обмен сетками и экспорт деформированной формыэксперимент
В рабочем дереве, но не в выпущенной версии 0.2.1, добавлены обмен конечно-элементными сетками и экспорт результатов в CAD-подобные форматы. Импорт и экспорт сетки Abaqus (.inp), Gmsh (.msh) и Nastran (.bdf), экспорт деформированной формы и изоповерхности напряжений в STL и STEP открываются пунктами меню «Проект» при наличии сетки или поля перемещений. Подробнее об импорте сетки и его ограничениях — в подразделе Импорт и экспорт сеток.
13.10Локализация и системы единицбета
Интерфейс переведён на четыре языка: английский, русский, испанский и китайский. Язык определяется по адресу страницы, параметру lng, сохранённой настройке и языку браузера; переключается в настройках. Английский — язык-источник: если перевода нет, показывается английский текст, а не служебный ключ.
Полнота перевода неодинакова. Испанская и китайская локали покрывают почти все строки английской (около 98 %). Русская локаль на конец октября 2026 переведена примерно на три четверти: непереведёнными остаются несколько панелей, в том числе часть общих подписей, редакторы материалов и сечений, плоскости и системы координат, контекстное меню дерева. Эти места показываются по-английски.
Единицы выбираются независимо от языка. Доступны три системы ввода: СИ (м, Н, Па, кг), метрическая инженерная (мм, Н, МПа, °C) и имперская (дюйм, фунт-сила, psi, °F). Подписи единиц берутся из справочника: в русской локали кириллические обозначения по ГОСТ 8.417, в остальных — международные. На границе солвера всегда СИ: пересчёт делает единственный модуль преобразования, а геометрия хранится в миллиметрах.
units.14Платформы, производительность и контроль качества
↑ К оглавлениюРаздел отвечает на три практических вопроса. Где запускать расчёт: в десктопном приложении или в браузере, и чем отличаются результаты. Какого размера задачи программа считает и за какое время. Почему числам можно доверять и что именно проверяется. Числа здесь снимались на конкретных машинах, и у каждой стоит подпись платформы. Сравнивать числа разных платформ без подписи нельзя.
Принцип один: эталон — нативный путь десктопа. Верификация, замеры производительности и разбор расхождений снимаются на нём. Браузерная версия считает тем же ядром, собранным в WebAssembly, и служит для знакомства и небольших моделей. Если на одной модели результаты платформ различаются, верным считается нативный результат, а расхождение описывается явно.
14.1Десктоп и браузер: что где считаетсястабильно
Десктопное приложение выпускается для Windows (64-разрядная, установщик NSIS, установка для текущего пользователя) и для macOS на процессорах Apple (образ DMG; образа для процессоров Intel нет). Сборки для Linux нет. Браузерная версия работает в современных браузерах с поддержкой WebAssembly; проект сохраняется напрямую в выбранный файл в Chrome и Edge и скачивается обычным файлом в Safari и Firefox.
| Параметр | Десктоп | Браузер |
|---|---|---|
| Расчётное ядро | нативное, на C++ | то же ядро, собранное в WebAssembly |
| Решатель | прямой разреженный и итерационный CG с AMG-предобуславливателем, многопоточная сборка матриц | прямой Холецкий до порога по памяти, выше итерационный CG без AMG, один поток |
| Память | ограничена оперативной памятью машины; прогноз памяти показан до запуска | до 4 ГБ линейной памяти на модуль (32-разрядная адресация) и память вкладки |
| Мешер | Netgen, несколько тел строятся параллельно, отмена доступна в любой момент | Netgen в WebAssembly, несколько тел параллельно в пуле рабочих потоков |
| Геометрия | OpenCASCADE, нативный импорт STEP | OpenCASCADE в WebAssembly |
| CFD | есть на macOS (SU2); в сборке для Windows нет | нет |
| Настройки вычислений | «Настройки → Вычисления»: режим решателя, число потоков, лимит памяти | не настраиваются |
| Обновление | установка нового выпуска | страница обновляется при загрузке; приложение предлагает перезагрузку при новой версии |
Для инженера отсюда следует практическое правило. Браузер подходит, чтобы посмотреть готовый пример, собрать и проверить небольшую модель, проверить сценарий. Рабочие модели, сборки из десятков тел, миллионы степеней свободы, CFD и всё, что нужно воспроизводимо повторять, считайте на десктопе.
Основные расчёты на десктопе идут нативным путём по умолчанию. Если нативный путь отказал (нет бинаря, неверный ответ, превышен размер), программа сообщает причину и не подменяет его браузерным: молчаливая смена платформы дала бы другие числа без предупреждения.
14.2Характерные размеры задач и временабета
Ниже собраны замеры нативного пути. Каждая таблица подписана машиной. Это порядки величин для планирования, а не гарантии: время зависит от процессора, загрузки машины, типа задачи и качества сетки. Замеры сняты в разное время на разных машинах и в одну таблицу не сводятся.
Линейная статика объёмных тел, нативный солвер, 8 потоков, 28 ГБ ОЗУ, замер 02.09.2026. Тетраэдры 2-го порядка, CG с алгебраическим многосеточным предобуславливателем (AMGCL, сглаживатель Гаусса–Зейделя, базис жёстких движений тела в агрегации). Время — полное: построение предобуславливателя и решение.
| Степеней свободы | Время, с | Итераций CG | Память, ГБ |
|---|---|---|---|
| 175 тыс. | 2.4 | 20 | 1.1 |
| 408 тыс. | 5.6 | 19 | 2.4 |
| 788 тыс. | 11.0 | 21 | 4.6 |
| 1.35 млн | 20.3 | 25 | 8.1 |
| 2.13 млн | 31.4 | 21 | 12.7 |
Число итераций почти не растёт с размером: многосеточный предобуславливатель делает сходимость практически независимой от шага сетки. На реальной CAD-модели антенны (741 тыс. степеней свободы, Tet10) тот же метод на 8 потоках считает за 10.7 с, на одном потоке за 19.8 с; прямой разреженный Холецкий (Eigen) на одном потоке тратит 843 с и 6.7 ГБ; на macOS прямой решатель Apple Accelerate заметно быстрее. На малых моделях (десятки тысяч степеней свободы) прямой метод быстрее и надёжнее итерационного, поэтому автоматический выбор оставляет его, пока модель умещается в лимит памяти.
Статика оболочек MITC4, нативный солвер, Apple M5, 24 ГБ, замер 13.10.2026. Квадратная пластина 1000×1000×10 мм, заделка по кромке, равномерное давление; время от нажатия «Решить» до результата, включая подготовку модели и передачу данных.
| Степеней свободы | Время, с | Пик памяти нативного солвера, ГБ | Прогиб против эталона |
|---|---|---|---|
| 1.0 млн | 7.2 | 5.9 | +0.008 % |
| 2.0 млн | 16.8 | 6.4 | +0.008 % |
Солвер один занимает 6–7 ГБ на 2 млн степеней свободы, но приложение целиком вместе с интерфейсом на том же размере занимает около 15.7 ГБ (при 1 млн около 9.6 ГБ), и на машине с 24 ГБ при 2 млн начинается своп. Поэтому потолок размера статики оболочек зависит от физической памяти: сейчас порядка 1.8 млн степеней свободы на 24 ГБ и порядка 1 млн на 16 ГБ. Выше потолка расчёт отказывает до запуска с названием причины и не переходит на браузерный путь.
Построение сетки, нативный мешер Netgen, Apple M5 (4 производительных и 6 энергоэффективных ядер), 24 ГБ, замеры августа и октября 2026 на загруженной машине.
| Задача (дата замера) | Результат |
|---|---|
| Сборка из 15 тел, 634 поверхности, 120 тыс. тетраэдров (10.08) | 13.8 с последовательно; около 4.3 с при четырёх одновременно строящихся телах (ускорение 3.2×) |
| Тот же файл, тонкая сетка (13.10) | 5.25 млн тетраэдров за 435 с, пик памяти около 3.2 ГБ |
| Сборка из 271 тела, 2.09 млн тетраэдров (11.08) | 352–433 с нативно (270 тел из 271), для сравнения 621 с в браузере |
Ускорение мешера дают одновременно строящиеся тела (по числу производительных ядер), а не потоки внутри одного тела: десять потоков на одно тело дали только 1.2×.
Что известно о браузере. Размер задачи ограничен 4 ГБ линейной памяти каждого модуля и одним потоком решателя. По замерам июля 2026 практический потолок для статики 2-го порядка — порядка миллиона тетраэдров, для связанных контактов 2-го порядка — порядка сотен тысяч. Точная граница зависит от типа задачи, браузера и свободной памяти вкладки. Сопоставимых таблиц времени для браузера в справочнике нет: эталоном служит нативный путь.
14.3Расхождения платформбета
Десктоп и браузер собраны из одного исходного кода, но не побитово совпадают: нативная сборка использует инструкции процессора с совмещённым умножением-сложением и системную математическую библиотеку, браузерная — нет. Различия в последних битах чисел с плавающей точкой иногда приводят к заметным последствиям, особенно в мешере.
- Сетки могут отличаться. На сборке из 271 тела из 269 тел, которые строят обе платформы, 115 (43 %) получили одинаковые сетки, у остальных число тетраэдров различается, в худшем теле на 11.9 %. Суммарно число тетраэдров совпало до 0.01 %, потому что отличия в разные стороны компенсируют друг друга. Каждая платформа по отдельности детерминирована: повторный запуск даёт ту же сетку.
- Отказы бывают разные. Есть тела, которые сетку в браузере не строят, а на десктопе строят (одно из тел той же сборки, 20 599 тетраэдров на десктопе), и наоборот (другое тело той же сборки). Причина — расходимость сеточного алгоритма на сплайновых поверхностях при чуть разной арифметике, а не порча памяти. Вывод для практики: отказ мешера на одной платформе не доказывает дефекта геометрии, попробуйте другую или измените размер элемента.
- Качество сетки нативной платформы не всегда выше. На тестовом кубе 10 мм с размером элемента 4 мм минимальное SICN (знаковая обратная обусловленность элемента, см. Метрики качества сетки) составило 0.146 на десктопе и 0.182 в браузере. Эталоном нативный путь остаётся по решению, а не потому, что он везде лучше: он совпадает с тем, что получает пользователь десктопа.
- На числа влияет сетка, а не решатель. Набор DSL-кейсов с числовой приёмкой на нативном мешере проходит целиком. При смене платформы мешера 111 из 115 числовых замеров набора совпали побитово; остальные четыре разошлись на величину от 10^{-13} до 5\cdot 10^{-2} процента, то есть не менее чем в сто раз меньше допуска.
- Функции. CFD есть только на десктопе (и не в сборке Windows). Карточки верификации, снятые в браузере, помечены «WASM».
14.4Программа верификациистабильно
Публичная программа верификации — страница Верификация. В каталоге 213 кейсов; у 211 есть выполненный прогон, и все они прошли. Два кейса MacNeal–Harder (прямая и закрученная консольные балки) опубликованы как «В разработке»: постановка есть, прогона нет. Для каждого выполненного кейса на странице показаны постановка, эталон, полученное значение, отклонение, сетка и версия решателя. У 207 кейсов из 213 опубликован скрипт на DSL: его можно вставить в терминал приложения и повторить расчёт.
| Категория | Кейсов | Что проверяется |
|---|---|---|
| Нелинейные и контакт | 112 | контакт и трение, гиперупругость, пластичность и ползучесть, повреждаемость и разрушение, геометрическая нелинейность и устойчивость, стадийное строительство, динамика и explicit |
| Аналитика | 50 | замкнутые решения: балки и пластины, толстостенные цилиндры, потеря устойчивости, динамика и гармонический отклик, спектры, случайные вибрации, теплопроводность, термоупругость, гибридные сетки |
| NAFEMS | 22 | линейная статика (серия LE), собственные частоты (FV), теплопередача (T) |
| CFD | 14 | течения в трубах и каналах, обтекание, перепады давления, силы на теле (расчёт SU2) |
| Балки и оболочки | 10 | подкреплённые панели, фюзеляж, корпус судна, эксцентричные рёбра |
| MacNeal–Harder | 5 | три выполнены: Изогнутая консольная балка, Прямоугольная пластина, Патч-тест; два в разработке |
Примеры: NAFEMS LE1, эллиптическая мембрана, контакт Герца: шар, толстостенный цилиндр в жёсткой обойме (задача Ламе), потеря устойчивости квадратной пластины, рама Ли с предельной точкой, цилиндр в потоке при Re = 40.
Эталоны трёх типов. Аналитические решения: формулы теории упругости и динамики, для которых результат известен в замкнутом виде. Опубликованные бенчмарки: наборы NAFEMS и MacNeal–Harder. Инварианты и балансы: энергия, равновесие сил, симметрия, независимость от поворота тела или шага нагружения, где численный эталон дать нельзя.
14.5Политика допуска ≤5 %стабильно
Допуск сверки с эталоном единый: отклонение не более 5 %. Отклонение считается относительно эталонного значения:
где v_{\text{calc}} — результат WebCAE, v_{\text{ref}} — эталон. У кейсов с несколькими величинами в карточке приведены отклонения по каждой, а в таблице стоит одно число на кейс.
Правило жёсткое: допуск не ослабляют ради прохождения кейса. Отклонение выше 5 % считается дефектом и устраняется в расчёте, а не в критерии. Если кейс не удаётся довести, его не закрывают широким допуском, а публикуют как «В разработке» или откладывают с причиной.
Распределение отклонений по 211 выполненным кейсам:
| Показатель | Значение |
|---|---|
| Отклонение не выше 1 % | 165 кейсов (78 %) |
| Отклонение не выше 2 % | 190 кейсов (90 %) |
| Отклонение не выше 5 % | 211 кейсов (100 %) |
| Среднее отклонение | 0.59 % |
| Медиана | 0.05 % |
| Наибольшее | 4.88 % (NAFEMS LE11) |
Отклонения в сотые доли процента, как правило, у патч-тестов, балансов, инвариантов и задач с точными аналитическими решениями. На задачах с концентрацией напряжений, оболочках на грубой сетке и тонких телах отклонение ближе к границе: допуск 5 % отражает реальную точность метода на выбранной сетке, а не запас с избытком. Поэтому читайте допуск как верхнюю границу для кейса, а не как точность любой вашей модели.
14.6Автоматические регрессионные проверкибета
Качество держится слоями проверок, которые запускаются при разработке. Порядки величин на конец октября 2026:
- модульные тесты — порядка пяти тысяч проверок в сотнях файлов: формулы, сборка матриц, разбор файлов, команды, интерфейс;
- типовая проверка в двух проходах, отдельно для продукта и для тестов: ловит ошибки, которые тестовый прогон пропускает, потому что среда исполнения тестов не проверяет типы;
- сквозные скриптовые наборы — около восьмидесяти файлов, которые прогоняют цепочку от геометрии до результата;
- корпус сеток — 17 задач из реальных STEP-файлов, мешер нативный; проверяется результат, качество сетки и связность;
- набор DSL-кейсов — 74 случая, 115 числовых проверок с допусками, нативный мешер;
- тесты нативной части приложения — порядка двухсот пятидесяти;
- нативные проверки физики ядра — около девяноста: комплексные частотные отклики, предписанные нелинейные траектории, восстановление напряжений в оболочках;
- кейсы верификации — те самые 213, с исполняемыми скриптами.
Новый тест принимается только после того, как доказана его способность краснеть: в продуктовый код возвращают регрессию, тест обязан упасть, потом правку откатывают. Это защита от «зелёных пустышек» — тестов, которые ничего не проверяют. Отдельное правило касается числа тестов: молчание гейта без числа исполненных тестов не считается результатом, потому что набор мог перестать собираться.
14.7GPU и облачные режимыэксперимент
Расчёт всегда идёт на процессоре, локально. Видеокарта и удалённый сервер в расчёте не участвуют.
В коде есть прототипы: решатель CG на WebGPU, матрично-свободный вариант для Tet10 и Hex20 и маршрутизатор расчёта между браузером, локальным модулем и удалённым сервером. Они покрыты собственными тестами, но расчёт продукта их не вызывает, серверной части в продукте нет. В панели расчёта и в «Настройки → Вычисления» есть соответствующие переключатели («WebGPU-ускорение», «Matrix-Free P2 GPU», «Hybrid Cloud RPC»): сейчас они сохраняются в проекте и расчёт не меняют. Подробнее: Прототипы и нереализованное.
14.8Версии и паспорт результатастабильно
Нумерация единая для приложения, установщиков, сайта и карточек верификации: Semantic Versioning MAJOR.MINOR.PATCH, тег выпуска vX.Y.Z. Текущая версия — 0.2.1. Правка исправления увеличивает последнюю цифру; новая возможность или новая физика — среднюю; пока старшая цифра равна нулю, несовместимые изменения тоже уходят в среднюю. Плановые версии на странице документации помечены «план» и без дат.
Где посмотреть версию:
- в программе: значок версии в верхней и нижней панелях, окно «О программе», «Настройки → Обновления»; клик по номеру открывает историю изменений, сгруппированную по выпускам;
- из сценариев: свойство
cae.versionи ответcae_get_stateв MCP возвращают строку видаWebCAE 0.2.1; - в карточках верификации: поле «Версия решателя».
Паспорт прогона в карточке записывается как WebCAE <version> · <short commit>. Метка +dirty после коммита означает, что в отслеживаемых файлах на момент прогона были незафиксированные правки: такое число воспроизводится точно только вместе с этими правками. Карточки, записанные до введения единой нумерации, не переписываются, потому что их числа получены другими сборками. Они показывают «до введения нумерации (до 0.1.1)» либо «версия не записана». Из 211 выполненных кейсов паспорт с номером версии сейчас у 14, «до введения нумерации» у 28, «версия не записана» у 169. Пересъёмка старых карточек с записью версии не завершена.
Совместимость файлов. Проект, сохранённый старой версией, открывается новой. Проект более новой схемы старая версия открывать отказывается, а не читает с потерей данных. Если после обновления числа сохранённого результата могли измениться, программа выдаёт предупреждение «результаты могли устареть» (см. Воспроизводимость результатов).
15Глоссарий и литература
↑ К оглавлению15.1Глоссарий
| Термин | Значение |
|---|---|
| Степень свободы (DOF) | Неизвестная дискретной задачи: перемещение или поворот узла, температура узла. Размер задачи обычно указывается числом степеней свободы. |
| Матрица жёсткости \mathbf{K} | Связывает узловые перемещения и узловые силы в линейной задаче: \mathbf{K}\mathbf{u}=\mathbf{f}. Симметрична; после закрепления — положительно определена. См. Решатели. |
| Касательная матрица \mathbf{K}_T | Производная невязки по перемещениям в нелинейной задаче; сумма материальной и геометрической частей. См. Нелинейные расчёты. |
| Геометрическая жёсткость \mathbf{K}_G (\mathbf{K}_\sigma) | Вклад начальных напряжений в жёсткость; основа расчёта устойчивости и модального анализа с преднапряжением. См. Линейные виды анализа. |
| Невязка | Разность внешних и внутренних сил \mathbf{r}=\mathbf{f}_{ext}-\mathbf{f}_{int}; её норма — основной критерий сходимости. |
| Точки Гаусса | Точки численного интегрирования по элементу; в них вычисляются деформации и напряжения. См. Библиотека элементов. |
| Запирание (locking) | Искусственное завышение жёсткости элемента: сдвиговое у тонких оболочек и балок, объёмное у почти несжимаемых материалов. |
| MITC | Смешанная интерполяция тензорных компонент — способ устранить сдвиговое запирание оболочек (Дворкин–Бате). |
| P1 / P2 | Линейные и квадратичные функции формы; Tet4 и Tet10 соответственно. |
| RBE2 | Жёсткая связь: ведомые узлы движутся вместе с ведущим как одно тело. См. Граничные условия. |
| MPC / уравнение связи | Линейное соотношение между степенями свободы, исключаемое из системы точно. |
| Штраф | Приближённое наложение ограничения через пружину большой жёсткости; точность зависит от её величины. |
| Длина дуги | Метод продолжения по параметру, позволяющий пройти предельные точки кривой «нагрузка — перемещение». См. Метод длины дуги. |
| Радиальный возврат | Алгоритм интегрирования упругопластического состояния в точке: упругий пробный шаг и проекция на поверхность текучести. См. Модели материалов. |
| SICN | Мера качества тетраэдра через нормированный якобиан; значение \le 0 означает вывернутый элемент. Определение, используемое в продукте, и пороги — в разделе Сетки. |
| ZZ / SPR | Оценка ошибки дискретизации Зенкевича–Чжу по восстановленному полю напряжений. |
| Экстраполяция Ричардсона | Оценка предела величины при измельчении сетки по результатам на трёх сетках. |
| Мизес, Треска | Эквивалентные напряжения для критериев текучести; формулы — в Постпроцессинге. |
| SCL | Линия классификации напряжений по ASME VIII-2: мембранная, изгибная и пиковая составляющие. |
| HHT-α, Ньюмарк | Неявные схемы интегрирования уравнений движения по времени. См. Неявная динамика. |
| Центральные разности | Явная схема интегрирования; устойчива при шаге меньше критического. См. Явная динамика. |
| AMG | Алгебраический многосеточный предобуславливатель для итерационного решения больших систем. См. Итерационный решатель. |
| WebAssembly (WASM) | Формат исполняемого кода для браузера; в нём работает браузерная версия расчётного ядра. |
15.2Литература
Учебники и монографии, на которые опираются постановки справочника:
- Bathe K.-J. Finite Element Procedures. 2nd ed. Watertown: K.-J. Bathe, 2014.
- Zienkiewicz O.C., Taylor R.L., Zhu J.Z. The Finite Element Method: Its Basis and Fundamentals. 7th ed. Butterworth-Heinemann, 2013.
- Hughes T.J.R. The Finite Element Method: Linear Static and Dynamic Finite Element Analysis. Dover, 2000.
- Belytschko T., Liu W.K., Moran B., Elkhodary K. Nonlinear Finite Elements for Continua and Structures. 2nd ed. Wiley, 2014.
- Simo J.C., Hughes T.J.R. Computational Inelasticity. Springer, 1998.
- Wriggers P. Computational Contact Mechanics. 2nd ed. Springer, 2006.
- Crisfield M.A. Non-linear Finite Element Analysis of Solids and Structures. Vol. 1–2. Wiley, 1991, 1997.
- Reddy J.N. Mechanics of Laminated Composite Plates and Shells. 2nd ed. CRC Press, 2004.
- Clough R.W., Penzien J. Dynamics of Structures. 3rd ed. Computers & Structures, 2003.
- Saad Y. Iterative Methods for Sparse Linear Systems. 2nd ed. SIAM, 2003.
- Davis T.A. Direct Methods for Sparse Linear Systems. SIAM, 2006.
- Тимошенко С.П., Гудьер Дж. Теория упругости. М.: Наука, 1979.
- Лехницкий С.Г. Теория упругости анизотропного тела. М.: Наука, 1977.
Статьи по отдельным методам:
- Dvorkin E.N., Bathe K.-J. A continuum mechanics based four-node shell element for general nonlinear analysis. Engineering Computations, 1984, 1(1).
- Batoz J.-L., Bathe K.-J., Ho L.-W. A study of three-node triangular plate bending elements. Int. J. Numer. Meth. Eng., 1980, 15.
- Hughes T.J.R., Brezzi F. On drilling degrees of freedom. Comput. Methods Appl. Mech. Eng., 1989, 72.
- Battini J.-M., Pacoste C. Co-rotational beam elements with warping effects in instability problems. Comput. Methods Appl. Mech. Eng., 2002, 191.
- Felippa C.A., Haugen B. A unified formulation of small-strain corotational finite elements. Comput. Methods Appl. Mech. Eng., 2005, 194.
- Zienkiewicz O.C., Zhu J.Z. The superconvergent patch recovery and a posteriori error estimates. Int. J. Numer. Meth. Eng., 1992, 33.
- Dörfler W. A convergent adaptive algorithm for Poisson's equation. SIAM J. Numer. Anal., 1996, 33.
- Celik I.B. et al. Procedure for estimation and reporting of uncertainty due to discretization in CFD applications. J. Fluids Eng., 2008, 130.
- Popp A., Gee M.W., Wall W.A. A finite deformation mortar contact formulation using a primal–dual active set strategy. Int. J. Numer. Meth. Eng., 2009, 79.
- Wriggers P., Zavarise G. On contact between three-dimensional beams undergoing large deflections. Commun. Numer. Meth. Eng., 1997, 13.
- Camanho P.P., Dávila C.G. Mixed-mode decohesion finite elements for the simulation of delamination in composite materials. NASA/TM-2002-211737, 2002.
- Benzeggagh M.L., Kenane M. Measurement of mixed-mode delamination fracture toughness. Compos. Sci. Technol., 1996, 56.
- Cooper M.G., Mikic B.B., Yovanovich M.M. Thermal contact conductance. Int. J. Heat Mass Transfer, 1969, 12.
- Craig R.R., Bampton M.C.C. Coupling of substructures for dynamic analyses. AIAA J., 1968, 6(7).
- Der Kiureghian A. A response spectrum method for random vibration analysis of MDF systems. Earthquake Eng. Struct. Dyn., 1981, 9.
- Miles J.W. On structural fatigue under random loading. J. Aeronaut. Sci., 1954, 21.
- Hinton E., Rock T., Zienkiewicz O.C. A note on mass lumping and related processes in the finite element method. Earthquake Eng. Struct. Dyn., 1976, 4.
- Knyazev A.V. Toward the optimal preconditioned eigensolver: LOBPCG. SIAM J. Sci. Comput., 2001, 23.
- Vaněk P., Mandel J., Brezina M. Algebraic multigrid by smoothed aggregation for second and fourth order elliptic problems. Computing, 1996, 56.
- Johnen A., Remacle J.-F., Geuzaine C. Geometrical validity of curvilinear finite elements. J. Comput. Phys., 2013, 233.
- Economon T.D. et al. SU2: An open-source suite for multiphysics simulation and design. AIAA J., 2016, 54(3).
Стандарты и наборы эталонных задач:
- NAFEMS. The Standard NAFEMS Benchmarks. Rev. 3, 1990; Selected Benchmarks for Natural Frequency Analysis, 1987.
- MacNeal R.H., Harder R.L. A proposed standard set of problems to test finite element accuracy. Finite Elements in Analysis and Design, 1985, 1.
- ASME Boiler and Pressure Vessel Code, Section VIII, Division 2, Part 5.
- ASTM E1049-85. Standard Practices for Cycle Counting in Fatigue Analysis.
- VDI 2230 Blatt 1. Systematische Berechnung hochbeanspruchter Schraubenverbindungen.
15.3Открытые компоненты
Расчётное ядро и подготовка модели используют открытые библиотеки:
| Компонент | Назначение |
|---|---|
| MFEM | Конечно-элементная инфраструктура: пространства, сборка, часть решателей |
| Eigen | Плотная и разреженная линейная алгебра, прямые разложения |
| AMGCL | Алгебраический многосеточный предобуславливатель (десктоп) |
| Apple Accelerate | Разреженные прямые разложения (десктоп, macOS) |
| Netgen | Построение тетраэдральных сеток |
| Open CASCADE Technology | Геометрическое ядро: импорт, булевы операции, топология |
| SU2 | Расчёт течений методом конечных объёмов |
Лицензии компонентов перечислены на странице Open source.