Файл: Численные методы и математическое моделирование.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.01.2024

Просмотров: 332

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
2.2. Решение задачи
Для решения задачи откроим сеточный файл beam3d.grd, кото- рый находится в каталоге \Elmer6.2\samples\ElmerGUI\grd\ коман- дой: File  Open.
Так как файл по своей структуре уже является сеточным фай- лом, то никаких процедур создания сеток не выполняется и в ос- новном окне программы появляется следующее изображение (ри- сунок 2.1) (в начальный момент открытия файла был виден только торец балки и потом она была повернута для наглядности).
Рисунок 1.17. Совмещенный вид

151
Рисунок 2.1. Балка для расчета.
Вы можете посмотреть параметры сетки, убедитесь, что она со- стоит из 6073 узлов и 1200 квадратичных шестигранных элемен- тов. Второй порядка даёт повышенную точность по сравнению с первым порядком и исключает зацикливания в расчетах.
После того как мы получили сетку, проходим по всем коман- дам меню Model сверху до низа. В Setup мы настраиваем пара- метры, относящиеся ко всему моделирования, такие как имена файлов, время степпинг, констант и т.д. Моделирование осу- ществляется в стационарной 3-мерной декартовой системе коор- динат. Как и в предыдущей задаче проверяем два основных пара- метра. Командой Model  Setup открываем окно Setup и прове- ряем значения следующих параметров:
Simulation Type = Steady state
Steady state max. iter = 1
В разделе Equation выбираем нужное уравнение, в данном слу- чае включает это линейное уравнение эластичность, которое ре- шает задачи по линейной теории упругости. Мы также хотим, чтобы вычислялись напряжения для последующей визуализации процесса. Так как уравнение линейное, то для его решения изме- няем настройки по умолчанию для получения лучшей сходимо- сти в данном случае и полностью исключаем итерации для реше- ния нелинейных уравнений. Порядок этих настроек показан ниже:
- По команде Model  Equation  Add создаем уравнение.
- Присваиваем ему имя Name = Elasticity
- Привязываем к телу Apply to Bodies = Body 1
- Переходим на закладку Linear elasticity и ставим галочки Ac- tive = on и Calculate Stresses = on.
- Кнопкой Edit Solver Setting переходим в редактирование

152 настроек.
- На закладке Linear System определяем следующие параметры
- Method = Iterative = GCR
- Preconditioning = ILU1
- На закладке Nonlinear system устанавливаем Max. iterations =
1
- Завершаем редактирование настроек Solver кнопкой Apply
- Добавляем уравнение в задачу кнопкой Add
- Закрываем окно Equation кнопкой Ok.
- В разделе Material задаем необходимые параметры в ручную, так как нужного материала нет в библиотеке системы:
- По команде Model  Material  Add создаем новый материал в задаче;
- Присваиваем ему имя Name = Pine (Сосна)
- Переходим на закладку General и вносим значение плотности
(Density) = 550;
- Переходим на закладку Linear Elasticity и устанавливаем сле- дующие параметры:
- Youngs Modulus = 10.0e9;
- Poisson ratio = 0.37;
- Привязываем материал к телу Apply to Bodies = Body 1;
- Добавляем материал в задачу кнопкой Add;
- Закрываем окно Material кнопкой OK.
В разделе BodyForce настраиваем действующие на тело силы, в этом случае это сила гравитации, которая действует в отрица- тельном направлении оси Н. Данная настройка выполняемся так.
- По команде Model  BodyForce  Add создаем силу в задаче;
- Присваиваем ей имя Name = Gravity
- На закладке Linear Elasticity вводим в поле Force 2 = $ -9.81 *
550. В данном случае мы используем MATC выражение для вектора силы, который действует вдоль оси Y, хотя это выра- жение постоянное, но оно будет вычисляется каждый раз при интерпретации командного файлаво время работы Solver;
- Привязываем силу к телу Apply to Bodies = Body 1


153
- Добавляем силу в задачу кнопкой Add;
- Закрываем окно BodyForce кнопкой OK.
В расчете мы должны прийти к равенству всех сил, следова- тельно, их погрешности будут стремиться к нулю. Отсюда выте- кает что нам нет необходимости задавать начальные условия, по- этому раздел Initial condition мы пропускаем.
Первое граничное условие жестко фиксирует балку на стене.
Второе граничное условие распределяет нагрузку в 2000 н равно- мерно по площади сечения балки равной 5.0E-3 м
2
. Данные опе- рации выполняются так:
- По команде Model  Boundary Condition Add создаем пер- вое граничное условие в задаче;
- Присваиваем ему имя Name = Wall (Стена)
- На закладке Linear elasticity определяем смещения по трем ко- ординатам соответственно
-
Displacement 1 = 0.0 для X;
-
Displacement 2 = 0.0 для Y;
-
Displacement 3 = 0.0 для Z;
- Добавляем условие в задачу кнопкой Add
- Создаем новое условие New
- Присваиваем имя Name = Mass (Масса)
- На закладке Linear elasticity определяем силу которая направ- лена по координате Y
- Force 2 = -4.0e5
- Добавляем следующее условие в задачу кнопкой Add
- Закрываем окно BodyForce кнопкой OK.
Все данные для расчета готовы, выполняем команду Sif  Gen- erate. Потом сохраняем проект, как было описано в предыдущей задаче и переходим в просмотр результатов. Для данной задачи лучше использовать стандартный пострпроцессор ElmerPost, ко- торый запускается кнопкой с панели инструментов или коман- дой Run  Start postprocessor. По умолчанию мы видим первона- чальный вид тела с окраской его поверхности по параметру Dis- placement_abs (Смещение).

154
Пользуясь кнопками управления положением тела, поворачиваем его так, что бы хорошо видеть его боковую поверхность, например на рисунке 2.1.
Чтобы увидеть смещение тела надо вычислить новые узлы с учетом найденных смещений (Displacement). Эту операцию вы- полняем с помощью математических операций пакете, вводя ма- тематические выражения с поле Elmer-Post в нижней части окна: math n0=nodes math nodes=n0+Displacement
В первой строке мы сохраняем значения узлов (nodes) в новой переменной n0 и во второй строке находим новые значения узлов прибавляя к каждому из них смещение.
Открываем с помощью кнопки Color Mesh меню вы- бора параметров (рисунок
2.2) и изменяем поле Color
Variable (Переменная цвета) на Vonmises (Напряжения) и завершаем настройку кноп- кой Apply. В графическом окне получаем следующее изображение (рисунок 2.3).
Задний фон окна можно из- менить командой Edit 
Background с выбором нуж- ного цвета либо с помощью задания значений составляющих цвета (красного – зеленого – синего) или через выбор заготовок, которые показаны ниже.
Рисунок 2.2. Меню настройки па- раметров Color Mesh


155
Рисунок 2.3. Балка с изгибом.
Можно построить эту задачу в новой постановке, когда все силы идут вдоль оси Х, т.е. мы нагружаем балку не с широкой сторону, а с узкой. Для этого надо нагрузки в теле и на границе приравнивать Force 1. Постройте эту задачу самостоятельно и сравните результаты.

156
3. Smitc решатель – модель упругой плита (Smitc solver –
Eigenmodes of an elastic plate)
3.1. Описание задачи
Для тонких упругих конструкций часто бывает целесооб- разно использовать более простые модели с меньшим числом из- мерений, т.е. исследовать простые пластины или оболочки.
В этом уроке мы вычислим несколько низких мод упругих пластин. Используем простой пятиугольник, который (по сравне- нию с квадратом) устраняет некоторые тривиальные симметрии.
Он жестко закреплен на всех границах.
Более подробную информацию о решении можно полу- чить, обратившись к документации метода Smitc.
3.2. Решение задачи
Запускаем программу Elmer, как было описано выше. Прежде чем переходить к решению задачи убедимся, что меню для метода
Smitc запушено. Оно должно присутствовать в закладках панелей меню Model с именем Elastic Plate. Если его нет, то оно может быть найдено в файле:
$ELMERHOME/bin/edf-extra/elasticplate.hml – в нашем случае
$ELMERHOME = D:/Elmer6.2 и загружено командой:
File  Definitions – в открывшемся окно с помощью кнопки
Append можно загрузить нужный файла (рисунок 3.1),. Здесь так же можно увидеть все загруженные модули (рисунок 3.2) и, вос- пользовавшись кнопкой Preview, можно просмотреть панели всех команд меню Model (рисунок 3.2). По завершению операций за- крыть окно кнопкой Close.
Чтобы посмотреть, какие ещё структуры меню вы можете ис- пользовать, то можете поиграться с кнопками, добавляя и удаляя различные разделы. Лучше это делать в режиме всех свернутых разделов (кнопка Collapse All).
Обратите внимание, что если вы хотите загружать нежные вам

157
XML-определения автоматически, то они должны быть перене- сены в каталог – $ELMERHOME/bin/edf.
Рисунок 3.1. Окно выбора файла.

158
Рисунок 3.1. Окно со списком загруженных описаний задач.
Рисунок 3.3. Окно с выведенными панелями Elastic Plates
Теперь все готово к решению задачи. Открываем файл –

159 pentagon.in2d, который находится в каталоге

…\samples\ElmerGUI\in2d\.
Вы получите пятиугольник, состоящий из 5 треугольников.
Чтобы увеличить число расчетных элементов измените пара- метры построение сетки для nglib, для это выполните команду:
Mesh  Configure и для раздела nglib поставьте значение Max H:
0.05. Выполните повторное постро- ение сетки с помощью кнопки и вы получите следующую сетку (ри- сунок 3.4).
Выполняем постановку задачи, заполняя все необходимые данные в команды меню Model:
По команде Model  Setup прове- ряем следующие параметры:
- Simulation Type = Steady state
- Steady state max. iter = 1
Завершаем работу в этом окне кнопкой Apply.
Для настройки решателя мы должны активизировать собствен- ные вычисления режимы. Используем метод решения линейных разряженных уравнений umfpack, который дает хорошие резуль- таты.
Командой Model  Equation  Add добавляем решение в за- дачу
- Задаем имя Name = Plate Equation
- Привязываем к телу Apply to bodies = Body 1
- Переходим на закладку Elastic Plates и устанавливаем галочку
Active = on
- Заходим в настройку вычислителя Edit Solver Settings
- На закладке Solver Specific Options устанавливаем параметры:
-
Eigen Analysis = on разрешаем использовать этот метод;
-
Eigen System Values = 10 задаем число переменных;
- На закладке Linear System устанавливаем
Рисунок 3.4. Сетка на пятиугольнике.


160
-
Direct = on и выбираем метод Umfpack
- Кнопкой Apply завершаем настройку вычислителя;
- Кнопкой Add добавляем решение в задачу
- Кнопкой OK закрываем окно
Заполняем свойства нашего материала, их можно взять их встроенной библиотеки или ввести самостоятельно. Воспользу- емся вторым способом для произвольного идеального материала.
Командой Model  Material  Add добавляем в решение за- дачи материал, присваиваем ему имя Name = Ideal и привязываем его к телу Apply to bodies = Body 1.
- Переходим на закладку General и задаем следующие пара- метры:
-
Density = 1000.0 плотность материала;
- На закладке Elastic Plates устанавливаем значения
- Youngs Modulus = 1e9 модуль Юнга;
-
Poisson ratio = 0.3 коэффициент Пуассона;
-
Thickness = 0.001 толщина пластины;
-
Tension = 0.0 напряжение;
Раздел Body Force представляет собой правую сторону из ре- шаемого уравнения, т.е. наличие внешних сил. В нашей задаче – анализе собственных мод тела их нет. Так же здесь не требуются начальные условия. Переходим к граничным условиям.
В нашем случае все границы жестко закреплены, устанавли- ваем все компоненты раствора поля равные нулю. Первое смеще- ние определяется в нормальном направлении, а второе и третье – его производные в направлениях осей X и Y.
Командой Model  BoundaryCondition  Add добавляем гра- ничное условие, присваиваем ему имя Name = Fixed и привязы- ваем его ко всем границам Apply to boundaries: Boundary 1 = on,
Boundary 2 = on, Boundary 3 = on, Boundary 4 = on, Boundary 5= on,
- На закладке Elastic Plates
- Deflection 1 = 0.0
- Deflection 2 = 0.0

161
- Deflection 3 = 0.0
- Кнопкой Add добавляем решение в задачу
- Кнопкой OK закрываем окно
Все готово для выполнения расчета, остается создать сеточный и командный файлы для ElmerSolver. Делаем это командой Sif 
Generate. Как было описано ранее, готовый файл можно просмот- реть в режиме Edit. Сохраняем проект File  Save Project, задав для него новую папку, и запускаем решатель (Solver)
Так как мы считаем стационарные моды пластины, погрешно- сти здесь отсутствуют и график сходимости расчета (см. рисунок
1.11) остается пустым. Более интересным является отчет по ре- зультатам расчета, который показывается параллельно с графи- ком. Здесь мы получаем те результаты, которые хотели сосчитать
– это собственные значения, которые показаны на рисунке 3.5.
Следует обратить внимание, что некоторые мод вырождаются, что связано с не идеально симметричной конечно-элементной сеткой и приводит к незначительным отличиям в собственных значений. (2–3, 4–5, 7–8 и 9–10).
Теперь можем переходить в просмотр результатов. Запускаем постпроцессор (можно воспользоваться любым из двух имею- щихся), например, используем стандартный постпроцессор. Ко- мандой Run  Start Postprocessor запускаем его и настраиваем просмотр. В настройке цветовой сетки (Color Mesh) в качестве пе- ременной цвета задаем отклонение узлов сетка вдоль оси Х
(Deflection 1) и принимаем это изменение с помощью кнопки Ap- ply.


162
Рисунок 3.5. Текст отчета по результатам расчетов.

163
По умолчанию обычно выводится первый вариант расчета, а в нашем случае их десять, чтобы увидеть все надо их загрузить. С помощью первой кнопки в окне постпроцессора
(Read mode file) открываем соответствующее окно
(рисунок 3.6) и нажимаем кнопку All (Все). Потом повторно загружаем файл по кнопке Read file (Про- читать файл) и закрываем окно кнопкой Ok.
Теперь можно про- смотреть ре- зультаты рас- четов поша- гово. Чтобы это сделать вызываем окно
Time
Step Control
(Контроль временных шагов), пока- занное на ри- сунке 3.7, ко- мандой Edit
 Timestep Control ….
Остановимся более подробно на его элементах управле- ния:
Рисунок 3.6. Загрузка всех временных слоев.
Рис. 3.7. Настройка просмотра шагов по времени.

164
- Большой кнопкой Loop (Цикл) мы запускаем просмотр всех, указанных в списке шагов.
- В полях Min и Max можно задать начальный и конечный но- мера шагов, чтобы их видеть последовательно;
Если последовательно задавить значения шагов 1 и 1, по- том 2 и 2 и т.д. то мы можем просмотреть весь ряд и получить следующий набор изображений (рис. 3.8).
Чтобы задний фон был белым мы его изменили командой
Edit Background ….
1 2
4 6
7 9
Рисунок 3.8. Виды мод нашего тела.

165
4. Уравнение Навье-Стокса – Ламинарный несжимаемой по-
тока, проходящего через ступенчатое сечение (Navier-Stokes
equation – Laminar incompressible flow passing a step)
4.1. Описание задачи
В этой задаче рассматривается ламинарный поток вязкой жид- кости, протекающей по сечению (рисунок 4.1) со ступенькой, В задаче используем следующие параметры: плотность жидкости
1кг/м
3
, вязкость 0,01кг /мс. Профиль скорости на входе описыва- ется параболой со средней скорость V
0X
= 1,5 м/с, скорость по оси
Y равна V
0y
= 0,0м/с. На выходе определена только вертикальная составляющая V
ky
= 0,0 м/с. На стенках течение идёт без про- скальзывания, что описывается граничным условием, V
ст
= 0.
Число Рейнольдса составляет около 100.
Рисунок 4.1. Схема задачи.
Математически задача решается по следующим зависимостям:
 
















in
u
in
p
u
u
0 0
2






с граничными условиями где:
k
z
j
y
i
x













оператор набла, Ω – тело, Г
inlet
, Г
outlet
,
Г
no-slip
, – границы входная, выходная и стенки соответственно,










slip
no
outlet
inlet
y
slip
no
x
inlet
x
Г
Г
Г
on
u
Г
on
u
Г
on
u


0 0
1