Экспорт материалов в Abaqus
OpenCS подготавливает описание материала для Abaqus по тем же характеристикам, которые используются в расчётах сечений: бетон — в модели Concrete Damaged Plasticity (CDP), конструкционная сталь и арматура — в виде упругопластического материала *Elastic + *Plastic. Результат копируется в буфер обмена двумя способами: готовым блоком ключевых слов для входного файла .inp и таблицами TSV для ручного переноса в Abaqus/CAE.
Экспорт не создаёт файлов, не формирует Python-скриптов и не запускает Abaqus. Геометрия сечения, сетка, армирование (*Embedded Element), контакты и нагрузки не передаются — только материал.
Как вызвать
- На вкладке Проект раскройте Материалы и нужную группу: Бетон, Арматура или Конструкционная сталь.
- Щёлкните правой кнопкой по строке материала и выберите Экспортировать материал в Abaqus.
-
Окно откроется в режиме, соответствующем типу материала:
Тип материала Режим окна Что экспортируется Concrete«Бетонный CDP для Abaqus» *Elastic,*Concrete Damaged Plasticityи четыре таблицы CDPSteel,ReSteelF,ReSteelU«Сталь для Abaqus (Elastic + Plastic)» *Elasticи*PlasticДля материалов других типов команда сообщает, что экспорт доступен только для бетона, стали и арматуры.
-
Выберите Вид расчёта (
C,CL,N,NL), Профиль единиц Abaqus и при необходимости измените параметры. - Проверьте результат на вкладках Abaqus keyword и TSV-таблицы и нажмите Копировать keyword или Копировать TSV.
Результат пересчитывается сразу при изменении любого поля. Если параметр недопустим (например, коэффициент Пуассона вне диапазона (0; 0,5)), обе вкладки очищаются, кнопки копирования становятся недоступны и под ними выводится «Проверьте параметры экспорта.» — частичный результат в буфер не попадает.
Вид расчёта
Характеристики берутся из набора выбранного CalcType материала (см. материалы и диаграммы):
| Вид расчёта | Характеристики | Типичное применение в Abaqus |
|---|---|---|
C — 1-я группа, кратковременное |
расчётные | проверочный расчёт несущей способности |
CL — 1-я группа, длительное |
расчётные длительные | то же с учётом длительного действия |
N — 2-я группа, кратковременное |
нормативные | моделирование фактической работы, сопоставление с испытаниями |
NL — 2-я группа, длительное |
нормативные длительные | деформации при длительной нагрузке |
Если у материала нет характеристик выбранного вида расчёта, экспорт не выполняется.
Системы единиц
Abaqus не имеет встроенной системы единиц: все величины материала должны быть заданы в одной согласованной системе, выбранной для всей модели. В OpenCS напряжения хранятся в кПа и пересчитываются в выбранную единицу множителем; деформации, повреждения и безразмерные параметры CDP не масштабируются.
| Профиль | Напряжение | Длина | Сила | Множитель от кПа | G_f по умолчанию |
L_e по умолчанию |
|---|---|---|---|---|---|---|
| MPa – mm – N | МПа | мм | Н | 0,001 | 0,0726 Н/мм | 10 мм |
| kPa – m – kN | кПа | м | кН | 1 | 0,0726 кН/м | 0,01 м |
| Pa – m – N | Па | м | Н | 1000 | 72,6 Н/м | 0,01 м |
| Пользовательский | задаётся | задаётся | задаётся | задаётся | в единицах «сила/длина» | в единицах длины |
При переключении между предустановленными профилями энергия разрушения G_f и размер элемента L_e пересчитываются в новые единицы, физическое значение сохраняется. В пользовательском профиле указываются масштаб напряжения относительно кПа OpenCS и подписи единиц; G_f и L_e вводятся прямо в выбранных единицах, и согласованность этих значений с масштабом напряжений остаётся за пользователем.
Единицы должны совпадать со всей моделью Abaqus
Материал в МПа нельзя вставлять в модель, где геометрия задана в метрах, а нагрузки — в килоньютонах. Выбирайте профиль по системе единиц модели, а не по привычке.
Бетон: Concrete Damaged Plasticity
Исходная кривая и начальный модуль
Кривая сжатия строится по нелинейной диаграмме бетона ЕКБ OpenCS (тип EKB, EN 1992-1-1 / MC90). Она берётся независимо от диаграммы, назначенной материальным областям сечения: в OpenCS тип диаграммы принадлежит материальной области, а не материалу. Кривая растяжения строится по отдельной формуле смягчения, адаптированной из программы StructureHelper (см. источник).
Начальный наклон диаграммы ЕКБ равен \(1{,}05\,E_b\), поэтому в *Elastic записывается
и тот же \(E_0\) используется во всех пересчётах деформаций. Например, для \(E_b = 30\,000\) МПа в *Elastic получается 31 500 МПа. Значение \(E_0\) показано в окне в поле Начальный модуль E₀ (только для чтения). Коэффициент Пуассона по умолчанию — 0,2.
Знаки OpenCS (сжатие отрицательно) в таблицах CDP заменяются положительными величинами, как принято в Abaqus.
Ветвь сжатия
Таблица *Concrete Compression Hardening начинается не с нуля, а с уровня \(\sigma_0 = \alpha_0 f_c\), где \(\alpha_0\) — Начальный уровень сжатия (по умолчанию 0,4), \(f_c = |R_b|\) выбранного вида расчёта. До этого уровня бетон в Abaqus работает упруго. Для каждой точки ЕКБ-диаграммы с полной деформацией \(\varepsilon\) и напряжением \(\sigma\):
Первая строка — \((\sigma_0,\ 0)\): её полная деформация принимается равной \(\sigma_0/E_0\), так что неупругая деформация равна нулю. Далее идут точки восходящей ветви до вершины и нисходящей ветви до уровня Минимальный уровень сжатия ηmin (по умолчанию 0,05). Таблица заканчивается остаточным напряжением \(\eta_{min} f_c\); при дальнейшем росте деформации оно остаётся постоянным.
Повреждение \(d_c\) равно нулю до вершины диаграммы и растёт только на нисходящей ветви. Таблица *Concrete Compression Damage использует те же абсциссы, что и таблица упрочнения. Пластическая деформация \(\tilde\varepsilon^{pl}\) в .inp не записывается и в окне не показывается: Abaqus вычисляет её сам по тем же формулам. При проверке таблицы вручную (например, по TSV в электронной таблице) она должна быть неотрицательной и не убывать.
Ветвь растяжения
Растяжение описывается раскрытием трещины \(w\) с нелинейным законом смягчения. Предельное раскрытие
где \(G_f\) — Энергия разрушения Gf, \(f_t = R_{bt}\) выбранного вида расчёта. Отрезок \([0;\ w_u]\) делится на 40 равных интервалов, так что таблица содержит 41 строку. Для каждого \(w\) с \(r = w/w_u\):
Таблицы записываются с type=STRAIN, и во второй колонке стоит трещинная деформация \(\tilde\varepsilon^{ck}\) в смысле Abaqus (полная минус упругая), а не только \(w/L_e\). Первая строка — \((f_t,\ 0)\) с \(d_t = 0\). В последней точке \(\sigma_t/f_t \approx 0{,}0275\) — ненулевой хвост формулы сохранён: за последней точкой Abaqus держит это малое остаточное напряжение постоянным.
Размер элемента Le переводит раскрытие трещины в деформацию, поэтому задавайте его равным характерному размеру конечного элемента в зоне трещинообразования (для оболочек и твёрдотельных элементов — порядка стороны элемента). При другом размере сетки таблицу растяжения нужно экспортировать заново: иначе рассеянная при растрескивании энергия будет зависеть от сетки.
Кривые построены по фактическому результату экспорта бетона B25 при параметрах по умолчанию. Синяя кривая — то, что попадает в *Concrete Compression Hardening; серая — исходная ЕКБ-диаграмма по полной деформации (разница между ними — упругая часть \(\sigma/E_0\)). Штриховые — повреждение по правой оси.
Параметры пластичности CDP
Строка под *Concrete Damaged Plasticity содержит пять чисел в порядке Abaqus. Значения по умолчанию — типичные для обычного бетона.
| Поле окна | Параметр Abaqus | По умолчанию | Допустимо в OpenCS | Смысл |
|---|---|---|---|---|
| Угол дилатации, град. | \(\psi\) | 35 | \((0;\ 90)\) | Объёмное расширение при пластическом течении. |
| Эксцентриситет | \(\epsilon\) | 0,1 | \((0;\ 1)\) | Скорость приближения потенциала течения к асимптоте. |
| Отношение fb₀/fc₀ | \(\sigma_{b0}/\sigma_{c0}\) | 1,16 | \(\ge 1\) | Отношение прочности при двухосном и одноосном сжатии. |
| Параметр Kc | \(K_c\) | 0,667 | \((0{,}5;\ 1]\) | Форма поверхности текучести в девиаторной плоскости. |
| Вязкость | \(\mu\) | 0,0001 | \(\ge 0\) | Вязкостная регуляризация для сходимости Abaqus/Standard. |
Вязкость — чисто численный параметр Abaqus. Она не связана с какой-либо физической вязкостью бетона в OpenCS. Слишком большое значение искусственно завышает несущую способность; после расчёта сравните энергию вязкой диссипации (ALLCD) с полной энергией деформации.
Пример: B25, вид расчёта C
Исходные данные: \(R_b = 14{,}5\) МПа, \(R_{bt} = 1{,}05\) МПа, \(E_b = 30\,000\) МПа, профиль MPa – mm – N, остальные параметры по умолчанию. Начало блока, скопированного кнопкой Копировать keyword (таблицы сокращены):
*Material, name=B25
*Elastic
31500, 0.20000000000000001
*Concrete Damaged Plasticity
35, 0.10000000000000001, 1.1599999999999999, 0.66700000000000004, 0.0001
*Concrete Compression Hardening
5.8000000000000007, 0
6.7593448369781139, 8.602607104990525E-05
7.6541573165334302, 0.00011774101503259435
...
*Concrete Compression Damage
0, 0
...
*Concrete Tension Stiffening, type=STRAIN
1.05, 0
...
*Concrete Tension Damage, type=STRAIN
0, 0
...
Числа записываются с полной точностью двойного числа (17 значащих цифр), с десятичной точкой независимо от региональных настроек Windows; поэтому 0.2 выглядит как 0.20000000000000001 — Abaqus читает это значение как 0,2.
Контрольные величины этого примера:
| Величина | Формула | Ручной счёт | OpenCS |
|---|---|---|---|
| \(E_0\), МПа | \(1{,}05 E_b\) | 31 500 | 31 500 |
| Первая строка сжатия, МПа | \(0{,}4 R_b\) | 5,80 | 5,80 |
| Число строк сжатия | — | — | 158 |
| \(w_u\), мм | \(5{,}14 G_f / R_{bt}\) | 0,3554 | 0,3554 |
| Число строк растяжения | \(40 + 1\) | 41 | 41 |
| \(\sigma_t\) в последней строке, МПа | \(1{,}05 \cdot 28 \cdot e^{-6{,}93}\) | 0,0288 | 0,0288 |
| \(\tilde\varepsilon^{ck}\) в последней строке | \(\dfrac{f_t}{E_0} + \dfrac{w_u}{L_e} - \dfrac{\sigma_t}{E_0}\) | 0,03557 | 0,03557 |
Сталь и арматура: *Elastic + *Plastic
Исходная диаграмма
Таблица *Plastic строится из ветви растяжения той же диаграммы, которую OpenCS использует для материала:
| Тип материала | Диаграмма | Точки ветви растяжения |
|---|---|---|
Steel — конструкционная сталь |
СП 16.13330, прил. В, табл. В.9 (SP16) |
предел пропорциональности \((0{,}8\ldots0{,}9)R_y\) → \(R_y\) → конец площадки → \(\sigma_u\) → нисходящая ветвь |
ReSteelF — арматура с физическим пределом текучести |
двухлинейная (L2) |
\(R_s\) → \((\varepsilon_{s2};\ R_s)\) |
ReSteelU — арматура с условным пределом текучести |
трёхлинейная (L3) |
\(0{,}9R_s\) → \(1{,}1R_s\) → \((\varepsilon_{s2};\ 1{,}1R_s)\) |
Для конструкционной стали флажок Площадка текучести (СП 16, прил. В) включает или исключает горизонтальный участок диаграммы; для арматуры он не показывается. Коэффициент Пуассона по умолчанию — 0,3. В *Elastic записывается модуль \(E\) из характеристик без каких-либо коэффициентов.
Преобразование в истинные величины
Abaqus требует в *Plastic истинное напряжение и логарифмическую пластическую деформацию. Для каждой точки номинальной диаграммы \((\varepsilon, \sigma)\) после конца упругого участка:
Истинные величины используются всегда: они корректны как при геометрически нелинейном расчёте (NLGEOM), так и без него.
Правила построения таблицы:
- Начало текучести — первый излом диаграммы, то есть предел пропорциональности. Первая строка — \((\sigma_{true,пц},\ 0)\); все исходные диаграммы начинаются прямой с наклоном \(E\), поэтому дальнейшая кусочно-линейная диаграмма воспроизводится в Abaqus точно.
- Нисходящая ветвь СП 16 (образование шейки, от \(\sigma_u\) до \(\sigma_t\)) не экспортируется: таблица заканчивается точкой \(\sigma_u\). В окне выводится предупреждение: за последней точкой Abaqus продолжает идеально пластически, без разупрочнения.
- Монотонность. Пластическая деформация должна строго возрастать; если это не так, экспорт отклоняется, а не исправляется молча.
- Симметрия.
*Plasticописывает изотропное упрочнение с критерием Мизеса, одинаковое при растяжении и сжатии, и строится по ветви растяжения. Если прочности при сжатии и растяжении различаются (например, у арматуры, для которой \(R_{sc} \ne R_s\)), в окне выводится предупреждение. Решите, какая ветвь важнее для вашей задачи, и при необходимости выберите другой вид расчёта или материал. - Разрушение (
*Damage Initiation, criterion=DUCTILE) не экспортируется: нормы не задают предельную пластическую деформацию в зависимости от вида напряжённого состояния.
Предупреждения показываются только в окне и в скопированный текст не попадают.
Серая линия — номинальная диаграмма СП 16 для С245 (группа 1 табл. В.9), синяя штриховая — истинное напряжение по номинальной деформации, красная — строки *Plastic (истинное напряжение по пластической деформации) и идеально пластическое продолжение за последней точкой.
Пример: арматура A400, вид расчёта C
Исходные данные: \(R_s = R_{sc} = 348\) МПа, \(E = 200\,000\) МПа, \(\varepsilon_{s2} = 0{,}025\), профиль MPa – mm – N.
*Material, name=A400
*Elastic
200000, 0.29999999999999999
*Plastic
348.60552000000001, 0
356.69999999999999, 0.022909112590371414
| Строка | Номинальные \((\varepsilon;\ \sigma)\) | Ручной счёт \(\sigma_{true}\), МПа / \(\varepsilon^{pl}\) | OpenCS |
|---|---|---|---|
| 1 | \((0{,}00174;\ 348)\) | \(348 \cdot 1{,}00174 = 348{,}606\) / 0 | 348,606 / 0 |
| 2 | \((0{,}025;\ 348)\) | \(348 \cdot 1{,}025 = 356{,}700\) / \(\ln 1{,}025 - 356{,}7/200\,000 = 0{,}022909\) | 356,700 / 0,022909 |
Пример: сталь С245, вид расчёта C
\(R_y = 240\) МПа, \(E = 206\,000\) МПа, \(\varepsilon_y = R_y/E = 0{,}001165\), группа 1 табл. В.9 СП 16, площадка текучести включена:
| Точка диаграммы | Номинальные \((\varepsilon;\ \sigma)\), МПа | \(\sigma_{true}\), МПа | \(\varepsilon^{pl}\) |
|---|---|---|---|
| предел пропорциональности \(0{,}8\varepsilon_y;\ 0{,}8R_y\) | \((0{,}000932;\ 192{,}0)\) | 192,18 | 0 |
| начало площадки \(1{,}7\varepsilon_y;\ R_y\) | \((0{,}001981;\ 240{,}0)\) | 240,48 | 0,000811 |
| конец площадки \(14\varepsilon_y;\ R_y\) | \((0{,}016311;\ 240{,}0)\) | 243,91 | 0,014995 |
| временное сопротивление \(141{,}6\varepsilon_y;\ 1{,}653R_y\) | \((0{,}164971;\ 396{,}72)\) | 462,17 | 0,150453 |
| нисходящая ветвь \(251\varepsilon_y;\ 1{,}35R_y\) | \((0{,}292;\ 324{,}0)\) | не экспортируется | — |
Без площадки текучести строка «конец площадки» отсутствует, остальные совпадают.
Формат TSV
Кнопка Копировать TSV копирует те же числа в виде секций с заголовками: одна табуляция между колонками, строки разделены CRLF. Это не входной файл Abaqus — секции удобно вставлять в таблицы диалогов Abaqus/CAE или в электронную таблицу для проверки.
| Режим | Секции и заголовки колонок |
|---|---|
| Бетон | [Elastic] Modulus, PoissonRatio; [Concrete Damaged Plasticity] DilationAngleDegrees, Eccentricity, Fb0Fc0, Kc, Viscosity; [Compression Hardening] Stress, InelasticStrain; [Compression Damage] Damage, InelasticStrain; [Tension Stiffening] Stress, CrackingStrain; [Tension Damage] Damage, CrackingStrain |
| Сталь | [Elastic] Modulus, PoissonRatio; [Plastic] TrueStress, PlasticStrain |
В Abaqus/CAE таблицы вставляются в редактор материала: Mechanical → Elasticity → Elastic, Mechanical → Plasticity → Concrete Damaged Plasticity (вкладки Plasticity, Compressive Behavior, Tensile Behavior с подвкладками Compression Damage / Tension Damage; для растяжения выберите Type: Strain) или Mechanical → Plasticity → Plastic. Строку заголовка не копируйте.
Имя материала
Поле Материал в окне заполняется тегом материала OpenCS. Перед записью в *Material, name= имя приводится к безопасному ASCII-виду: допустимы латинские буквы, цифры, _, - и .; остальные символы, включая кириллицу, пробелы, запятые и =, заменяются одним _. Если после очистки имя пустое, используется Concrete-CDP для бетона или Steel-Plastic для стали. Поскольку теги отечественных классов обычно пишутся кириллицей («В25», «А400»), задайте имя латиницей явно — иначе оно получится малоинформативным.
Проверки перед копированием
Экспорт отклоняется, если:
- материал не относится к бетону, стали или арматуре, либо у него нет характеристик выбранного вида расчёта;
- модуль упругости, прочность при сжатии или растяжении нулевые, отрицательные или не являются конечными числами;
- параметр CDP вне допустимого диапазона (см. таблицу параметров), коэффициент Пуассона вне \((0;\ 0{,}5)\), начальный уровень сжатия или ηmin вне \((0;\ 1)\), \(G_f \le 0\) или \(L_e \le 0\);
- масштаб единиц не положителен, а в пользовательском профиле не заданы подписи единиц;
- абсцисса таблицы (неупругая, трещинная или пластическая деформация) не возрастает строго, напряжение в таблице неположительно или повреждение выходит за \([0;\ 1)\).
Если системный буфер обмена занят другой программой, выводится «Не удалось записать текст в буфер обмена.»; сформированный результат при этом сохраняется, копирование можно повторить.
Рекомендации по применению в Abaqus
- Сверка по одному элементу. Перед расчётом конструкции проверьте материал на одном элементе при одноосном сжатии и растяжении: кривая «напряжение — деформация» должна повторять экспортированную диаграмму.
- Размер элемента и растяжение. Согласуйте \(L_e\) с сеткой (см. ветвь растяжения); при измельчении сетки экспортируйте материал заново.
- Расчётные или нормативные характеристики. Для оценки фактической работы и сопоставления с экспериментом используйте
N; расчётныеCдают заниженные прочности и предназначены для проверок по предельным состояниям. - Арматура. Экспорт стали даёт только материал; стержни моделируются в Abaqus отдельно (например, элементами
trussили*Rebarс*Embedded Element). Сжатая арматура с \(R_{sc} \ne R_s\) описывается симметричной моделью — учитывайте предупреждение об асимметрии. - Большие пластические деформации стали. За последней точкой
*Plasticнапряжение не растёт и не падает. Если в задаче существенно образование шейки или разрушение, эти эффекты нужно задавать в Abaqus отдельно.
Автоматические тесты
Экспорт покрыт модульными тестами проекта CScore.Tests:
| Класс тестов | Что проверяется |
|---|---|
AbaqusCdpExportTests |
параметры по умолчанию; пересчёт единиц для трёх профилей и пользовательского; \(E_0 = 1{,}05E\); первая строка сжатия и растяжения; монотонность абсцисс; нулевое повреждение до вершины и неубывание после; \(w_u = 5{,}14\,G_f/f_t\); трещинная деформация \(\varepsilon - \sigma/E_0\); 41 строка и хвост \(\sigma/f_t \approx 0{,}0275\); формула пластической деформации; отказ на недопустимых параметрах |
AbaqusCdpSerializationTests |
порядок блоков keyword, отсутствие текстовых заголовков среди числовых строк; секции, заголовки, табуляция и CRLF в TSV; очистка имени материала |
AbaqusSteelExportTests |
точки табл. В.9 СП 16 для С245 (группа 1) и обрыв на \(\sigma_u\); вариант без площадки текучести; A400 (две строки) и A600 (начало на \(0{,}9R_s\)); пересчёт единиц; нормативный вид расчёта; предупреждение об асимметрии; блоки keyword и секции TSV; отказ для бетона |
Запуск: dotnet test CScore.Tests --filter "FullyQualifiedName~Abaqus".
Реализация
| Слой | Классы |
|---|---|
| Бетон | CScore/Abaqus/AbaqusCdpCurveGenerator, AbaqusCdpCompressionBuilder, AbaqusCdpTensionBuilder, AbaqusCdpValidator, AbaqusCdpKeywordSerializer, AbaqusCdpOptions |
| Сталь | CScore/Abaqus/AbaqusSteelCurveGenerator, AbaqusSteelKeywordSerializer, AbaqusSteelOptions, AbaqusSteelMaterialData |
| Единицы | AbaqusCdpUnitSystem (общий для обоих режимов) |
| Интерфейс | OpenCS/Views/AbaqusCdpExportWindow, OpenCS/ViewModels/AbaqusCdpExportVM; команда контекстного меню материала в MainWindow.xaml |
Доменные классы не зависят от WPF; копирование в буфер выполняется только в слое интерфейса.
Источник формул
Формулы кривой растяжения и порядок преобразования кривой сжатия в таблицы CDP адаптированы из программы StructureHelper (Е. Редикульцев, лицензия MIT; файлы ConcreteToCDPCompressionConvertStrategy.cs, ConcreteToCDPTensionConvertStrategy.cs). Уведомление об авторских правах сохранено в CScore/Abaqus/THIRD_PARTY_NOTICES.md. В OpenCS добавлены согласование с *Elastic через \(E_0\), запись трещинной деформации в смысле Abaqus для type=STRAIN, начало таблицы сжатия с уровня \(\alpha_0 f_c\) и правила сериализации.
Связанные разделы
- Материалы и диаграммы по СП 63 — характеристики
C,CL,N,NLи типы диаграмм. - Оси, знаки и единицы — единицы хранения OpenCS.
- Стальные сечения (СП 16) — расчёты с той же сталью.
- Интерфейс и команды — дерево материалов и контекстные меню.