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

Виртуальная работа внешних сил и сборка глобальных уравнений

В разделе Дискретизация виртуальной работы внутренних сил левая часть слабой формы была сведена к вектору внутренних сил элемента \(\boldsymbol{q}^e\) (метод UL) или \(\boldsymbol{Q}^e\) (метод TL). В этой главе из виртуальной работы внешних сил вводится вектор внешних узловых сил элемента \(\boldsymbol{F}^e\), после чего посредством операции сборки, при которой физические величины в узлах элемента переупорядочиваются по глобальным номерам узлов и суммируются, получается система нелинейных уравнений относительно узловых перемещений, решаемая при нелинейном структурном анализе в FrontISTR.

Разложение виртуальной работы внешних сил по элементам

Правая часть принципа виртуальных работ может быть разложена по элементам как виртуальная работа внешних сил, состоящая из объемной силы (массовой силы) и заданной поверхностной силы на механической границе. Чтобы записать интерполяцию перемещений, введенную в разделе Функции формы и конечно-элементная аппроксимация, в матричной форме, используется блок \(\boldsymbol{N}_\alpha\) размера \(d \times d\), на диагонали которого расположена функция формы \(N_\alpha^e\) узла \(\alpha\), а также матрица \(\boldsymbol{N} = [\boldsymbol{N}_1, \ldots, \boldsymbol{N}_{n_e}]\), составленная из этих блоков по горизонтали; тогда \(\delta\boldsymbol{u} = \boldsymbol{N}\, \delta\boldsymbol{u}^e\). Подстановка этого выражения в виртуальную работу внешних сил, записанную в исходной конфигурации, дает

\[ \delta W^{\mathrm{ext}} = \sum_e \delta\boldsymbol{u}^{eT} \boldsymbol{F}^e, \qquad \boldsymbol{F}^e_\alpha = \int_{\Omega^e_0} \boldsymbol{N}_\alpha^T \rho_0 \boldsymbol{g}\, dV + \int_{\Gamma^e_{0t}} \boldsymbol{N}_\alpha^T \bar{\boldsymbol{t}}_0\, d\Gamma_0 \]

где вектор внешних узловых сил элемента записан как \(\boldsymbol{F}^e = (\boldsymbol{F}^{eT}_1, \ldots, \boldsymbol{F}^{eT}_{n_e})^T\). Тем самым виртуальная работа внешних сил приводится к той же форме «узловой вектор элемента × тестовая функция», что и для внутренних сил (при записи в текущей конфигурации получается та же форма с заменами \(dV \to dv\), \(\rho_0 \to \rho\), \(\bar{\boldsymbol{t}}_0 \to \bar{\boldsymbol{t}}\)).

Сборка физических величин в узлах элементов

Полученные для каждого элемента узловые физические величины \(\boldsymbol{Q}^e_\alpha, \boldsymbol{F}^e_\alpha\) суммируются в глобальные векторы, упорядоченные по глобальным номерам узлов. Если глобальный номер узла, соответствующий локальному номеру узла \(\alpha\) элемента \(\Omega^e\), обозначить как

\[ \mathrm{gdx}(e, \alpha) = i_g \]

то физическая величина в узле элемента совпадает с соответствующей компонентой глобальной узловой величины (например, \(\boldsymbol{u}^e_\alpha = \boldsymbol{u}_{i_g}\)). Поскольку в общем случае узел \(i_g\) принадлежит нескольким элементам, введем множество пар \((e, \alpha)\), для которых глобальный номер узла равен \(i_g\):

\[ \mathcal{E}(i_g) = \{ (e, \alpha) \mid \mathrm{gdx}(e, \alpha) = i_g \} \]

Используя это множество и переписывая суммирование как \(\sum_e \sum_\alpha = \sum_{i_g} \sum_{(e,\alpha) \in \mathcal{E}(i_g)}\), получаем узловую внутреннюю силу и глобальный вектор внутренних сил для всех \(n_g\) узлов:

\[ \boldsymbol{Q}_{i_g} = \sum_{(e,\alpha) \in \mathcal{E}(i_g)} \boldsymbol{Q}^e_\alpha, \qquad \boldsymbol{Q} = (\boldsymbol{Q}^T_1, \ldots, \boldsymbol{Q}^T_{n_g})^T \]

Величина \(\boldsymbol{Q}_{i_g}\) соответствует результирующей внутренних узловых сил элементов, действующих в узле \(i_g\), и равна \(\boldsymbol{0}\), если внешние силы отсутствуют и выполнено равновесие. Для метода UL той же процедурой получаются \(\boldsymbol{q}_{i_g}, \boldsymbol{q}\); поскольку по значениям \(\boldsymbol{q} = \boldsymbol{Q}\), далее, за исключением мест, где требуется различать эти величины, используется обозначение \(\boldsymbol{Q}\). Глобальный вектор внешних сил \(\boldsymbol{F}\) получается таким же суммированием.

В реализации множество \(\mathcal{E}(i_g)\) явно не создается; вместо этого соответствующие компоненты накапливаются внутри цикла по элементам.

Инициализировать глобальный вектор внутренних сил Q нулями: Q_{i_g} = 0  (i_g = 1, ..., n_g)
for e = 1 to (число элементов)
    for α = 1 to n_e
        i_g = gdx(e, α)
        Q_{i_g} += Q^e_α
    end for
end for

Глобальный вектор внешних сил \(\boldsymbol{F}\) строится по той же процедуре. Операция, при которой физические величины в узлах элементов добавляются и сохраняются в векторах и матрицах, пронумерованных по глобальным номерам узлов, называется сборкой (assemble). Для тензоров второго порядка, связанных с двумя номерами узлов (например, матриц жесткости), аналогичная операция сборки определяется с помощью множества \(\mathcal{E}^2(i_g, i_h) = \{ (e, \alpha, \beta) \mid \mathrm{gdx}(e, \alpha) = i_g\ \mathrm{and}\ \mathrm{gdx}(e, \beta) = i_h \}\) (конкретное построение см. в разделе Матрица касательной жесткости).

Нелинейное уравнение, подлежащее решению

Подставляя результаты сборки внутренних и внешних сил в принцип виртуальных работ и учитывая, что выражение должно выполняться для произвольной тестовой функции \(\delta\boldsymbol{u}^n\), удовлетворяющей геометрическим граничным условиям, получаем

\[ \boldsymbol{Q}(\boldsymbol{u}^n) - \boldsymbol{F}(\boldsymbol{u}^n) = \boldsymbol{0} \]

В контексте инкрементального анализа (Схема инкрементального анализа) восстановим индекс времени \(_{n+1}\) и опустим верхний индекс \(^n\), обозначающий глобальный узловой вектор. Тогда уравнение, подлежащее решению, имеет вид

\[ \boldsymbol{Q}(\boldsymbol{u}_{n+1}) - \boldsymbol{F}(\boldsymbol{u}_{n+1}) = \boldsymbol{0} \]

Таким образом, дискретизированная краевая задача определения узловых перемещений \(\boldsymbol{u}_{n+1}\) в момент времени \(t_{n+1}\) сводится к решению этого нелинейного уравнения относительно перемещений совместно с геометрическими граничными условиями. Линеаризация уравнения и построение матрицы касательной жесткости приведены в разделе Матрица касательной жесткости, а итерационный метод решения — в разделе Метод Newton-Raphson.

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