Перейти к содержанию

Экспорт материалов в Abaqus

OpenCS подготавливает описание материала для Abaqus по тем же характеристикам, которые используются в расчётах сечений: бетон — в модели Concrete Damaged Plasticity (CDP), конструкционная сталь и арматура — в виде упругопластического материала *Elastic + *Plastic. Результат копируется в буфер обмена двумя способами: готовым блоком ключевых слов для входного файла .inp и таблицами TSV для ручного переноса в Abaqus/CAE.

Экспорт не создаёт файлов, не формирует Python-скриптов и не запускает Abaqus. Геометрия сечения, сетка, армирование (*Embedded Element), контакты и нагрузки не передаются — только материал.

Как вызвать

  1. На вкладке Проект раскройте Материалы и нужную группу: Бетон, Арматура или Конструкционная сталь.
  2. Щёлкните правой кнопкой по строке материала и выберите Экспортировать материал в Abaqus.
  3. Окно откроется в режиме, соответствующем типу материала:

    Тип материала Режим окна Что экспортируется
    Concrete «Бетонный CDP для Abaqus» *Elastic, *Concrete Damaged Plasticity и четыре таблицы CDP
    Steel, ReSteelF, ReSteelU «Сталь для Abaqus (Elastic + Plastic)» *Elastic и *Plastic

    Для материалов других типов команда сообщает, что экспорт доступен только для бетона, стали и арматуры.

  4. Выберите Вид расчёта (C, CL, N, NL), Профиль единиц Abaqus и при необходимости измените параметры.

  5. Проверьте результат на вкладках 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 = 1{,}05\,E_b , \]

и тот же \(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\):

\[ \varepsilon^{el} = \frac{\sigma}{E_0}, \qquad \tilde\varepsilon^{in} = \varepsilon - \varepsilon^{el}, \]
\[ d_c = \begin{cases} 0, & \varepsilon \le \varepsilon_{peak},\\[2pt] \min\!\left(1 - \dfrac{\sigma}{f_c},\; 0{,}999\right), & \varepsilon > \varepsilon_{peak}, \end{cases} \qquad \tilde\varepsilon^{pl} = \tilde\varepsilon^{in} - \frac{d_c}{1 - d_c}\,\frac{\sigma}{E_0}. \]

Первая строка — \((\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\) с нелинейным законом смягчения. Предельное раскрытие

\[ w_u = 5{,}14\,\frac{G_f}{f_t}, \]

где \(G_f\) — Энергия разрушения Gf, \(f_t = R_{bt}\) выбранного вида расчёта. Отрезок \([0;\ w_u]\) делится на 40 равных интервалов, так что таблица содержит 41 строку. Для каждого \(w\) с \(r = w/w_u\):

\[ \sigma_t = f_t\,\bigl(1 + (3r)^3\bigr)\,e^{-6{,}93\,r}, \]
\[ \varepsilon = \frac{f_t}{E_0} + \frac{w}{L_e}, \qquad \tilde\varepsilon^{ck} = \varepsilon - \frac{\sigma_t}{E_0}, \qquad d_t = \min\!\left(1 - \frac{\sigma_t}{f_t},\; 0{,}999\right). \]

Таблицы записываются с type=STRAIN, и во второй колонке стоит трещинная деформация \(\tilde\varepsilon^{ck}\) в смысле Abaqus (полная минус упругая), а не только \(w/L_e\). Первая строка — \((f_t,\ 0)\) с \(d_t = 0\). В последней точке \(\sigma_t/f_t \approx 0{,}0275\) — ненулевой хвост формулы сохранён: за последней точкой Abaqus держит это малое остаточное напряжение постоянным.

Размер элемента Le переводит раскрытие трещины в деформацию, поэтому задавайте его равным характерному размеру конечного элемента в зоне трещинообразования (для оболочек и твёрдотельных элементов — порядка стороны элемента). При другом размере сетки таблицу растяжения нужно экспортировать заново: иначе рассеянная при растрескивании энергия будет зависеть от сетки.

CDP-таблицы бетона B25 для Abaqus

Кривые построены по фактическому результату экспорта бетона 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)\) после конца упругого участка:

\[ \sigma_{true} = \sigma\,(1 + \varepsilon), \qquad \varepsilon^{pl} = \ln(1 + \varepsilon) - \frac{\sigma_{true}}{E}. \]

Истинные величины используются всегда: они корректны как при геометрически нелинейном расчёте (NLGEOM), так и без него.

Правила построения таблицы:

  1. Начало текучести — первый излом диаграммы, то есть предел пропорциональности. Первая строка — \((\sigma_{true,пц},\ 0)\); все исходные диаграммы начинаются прямой с наклоном \(E\), поэтому дальнейшая кусочно-линейная диаграмма воспроизводится в Abaqus точно.
  2. Нисходящая ветвь СП 16 (образование шейки, от \(\sigma_u\) до \(\sigma_t\)) не экспортируется: таблица заканчивается точкой \(\sigma_u\). В окне выводится предупреждение: за последней точкой Abaqus продолжает идеально пластически, без разупрочнения.
  3. Монотонность. Пластическая деформация должна строго возрастать; если это не так, экспорт отклоняется, а не исправляется молча.
  4. Симметрия. *Plastic описывает изотропное упрочнение с критерием Мизеса, одинаковое при растяжении и сжатии, и строится по ветви растяжения. Если прочности при сжатии и растяжении различаются (например, у арматуры, для которой \(R_{sc} \ne R_s\)), в окне выводится предупреждение. Решите, какая ветвь важнее для вашей задачи, и при необходимости выберите другой вид расчёта или материал.
  5. Разрушение (*Damage Initiation, criterion=DUCTILE) не экспортируется: нормы не задают предельную пластическую деформацию в зависимости от вида напряжённого состояния.

Предупреждения показываются только в окне и в скопированный текст не попадают.

Таблица *Plastic для стали С245

Серая линия — номинальная диаграмма СП 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\) и правила сериализации.

Связанные разделы