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

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

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

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

Добавлен: 12.01.2024

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

138 основных шагах решения данной задачи в ElmerGUI.
Геометрия нашего тела задана в файле pump_carter_sup.stp в каталоге D:\Elmer6.2\samples\ElmerGUI\step. Этот файл любезно предоставлен AIM@SHAPE Shape Repository by INRIA.
Тепловое уравнение идеально подходит для его решения мето- дом конечных элементов. Решение может быть найдено на раз- личных сетках. Поэтому вы можете поэкспериментировать, ре- шая эту задачу с различными способами построения сеток. Вы можете решить подобную задачу, например, с GRD файлами: angle3d.grd, angles3d.grd, bench.grd или cooler.grd.
Размеры КЭ определяются шагом. Файл преобразуется на лету с помощью библиотеки OpenCascade в STL файл, для которого со- здаётся nglib тетраэдрических дискретизации объёме. Также мо- жете использовать tetlib библиотеки (tetgen), если установить его в качестве плагина.
Загрузите исходный файл. Сразу же открыва- ется окно
ElmerGUI geometry viewer, где пока- зан вид тела, загружен- ного из файла (рис. 02).
В заголовке окна име- ются два раздела меню:
File и Model. В первом
(
File) можно перезагрузить объект (Reload geometry Ctrl+R) и выйти (Quit Ctrl+Q) из про- граммы. Во втором (Model) настроить свойства модели
(
Preferences … Ctrl+P), которые определяют построение сетки.
Окно свойств показано на рис. 03. Рассмотрим основные настройки для сетки:
- Построение 2-D сетки (
Surface triangulation (units relative to model size)):
-
Отклонение (Deflection) – задаёт наибольшее отклонение
Рис. 00. Крышка насоса

139 от реальной поверхности при построении узлов;
-
Угол построение сетки (Feature angle) – определяет самый малый угол, который определяет края на по- верхности тела;
-
Разрешить слияние то- чек
(Merge vertex points) – при получении нескольких совпадаю- щих вершин (точек) их можно сливать.
- Построение 3-D объёма
(
Volume tetrahedralization
(units relative to model size)):
-
Максимальная высота
(
Max.h) – определяется максимальная высота тетраэдра;
-
Минимальная высота (Min.h) – определяется минимальная высота тетраэдра;
-
Ограничить размер ячейки на поверхности по плотности
STL (
Restrict mesh size on surfaces by STL density) – разре- шить ограничение размера ячеек;
Можно попробовать за- давать различные значения и понаблюдать за результа- тами построения сеток, но это будет хорошо заметно на сложных поверхностях.
В основном окне про- граммы строится аналог тела из ячеек сетки (Рис.
Рис. 04. Тело, построенное из ячеек.
Рис. 03. Свойства объекта.


140 04). Построение сетки может занять несколько минут.
Вы должны визуально оценить полученную сетку и просмот- реть её числовые параметры по команде Model  Summary …. В netgen - системе по умолчанию создаёт 8371 узлов и 36820 тетра- эдрических элементов. Визуальный осмотр показывает, что сетка не вполне удовлетворительна с геометрической точности. Изме- ним настройки:
- Вызываем снова просмотрщик модели:
View  Cad model...
- Открываем свойства модели:
Model  Preferences...
- В свойствах ставим галочку в разделе построения 3-D ячеек
(см. выше): Restrict mesh size on surfaces by
STL density = on
- Применяем настройку кнопкой: Apply
- Перестраиваем сетку:
Mesh  Remesh
Построение сетки зай- мёт большее время, но мы получим результат суще- ственно лучше (рис. 05).
Количество ячеек и слоёв увеличилось, визуально объект стал ближе к реальному образцу. Командой Model  Summary… можно увидеть сводную информацию по сетке, где приводятся данные по количеству ячеек, как в объёме, так и на поверхности и все данные по каждой ячейке (рис. 06). Данный файл может быть скопирован с использованием контекстного меню (щелчок на тексте правой кнопкой мышки (ПКМ) с выбором соответству- ющих команд) для дальнейшего его сохранения и анализа.
Рис. 05. Сетка, построенная после настройки.

141
Рисунок 1.6. Сводные данные по сеточной модели.
Теперь мы готовы формировать условия для расчёта. Сначала создадим поверхность (boundaries), которая представляет собой совокупность нескольких отдельных поверхностей. Для этого двойным щелчком левой кнопки мышки (ЛКМ) выделим первый объект (он будет закрашен в красный цвет), остальные объекты будем добавлять так же двойными щелчками ЛКМ, удерживая клавишу Ctrl.
Когда все шесть объектов
(по два в каждом из трёх отверстий) будут выде- лены, объединим их коман- дой Mesh  Unify Surface или с помощью кнопки на панели инструментов
(рис. 07).
Остаётся пройти по всем
Рис. 07. Тело с объединёнными поверхностями.

142 разделам меню Model (рис.08) и настроить параметры для расчёта задачи:
-
В разделе Setup (Уста- новка) проверяем следующие параметры: Simulation Type =
Steady state; (Тип моделирова- ния = Стационарный процесс)
Steady state max. iter = 1 (Мак- симальное число итераций в стационарном слое – 1);
-
В разделе
Equation
(
Уравнение) мы выбираем со- ответствующие уравнения и параметры, связанные с их ре- шением. В нашей задаче мы имеем одно уравнение теплопроводности. Поэтому мы задаём следующие параметры:
-
Выбираем команду Добавить (Add) уравнение и в открыв- шемся окне заполняем поля;
-
Вводим имя уравнения (Name) в нижней части окна для комментирования поставленных задач = Heat Equation;
-
Применить к телу (Apply to bodies), в нашем случае име- ется только одно тело, для которого мы ставим галочку =
Body 1
-
Выбираем закладку типа уравнения Heat Equation, если она не является активной в данный момент;
-
На ней ставим галочку, что уравнение активно (Active) для расчёта = on
-
Нажимаем кнопку Add (Добавить), здесь при необходимо- сти можно выбрать несколько моделей с использованием кнопки New (Новый);
-
Завершаем работу с этим окном, нажатием кнопки Ok.
Рис. 08. Команды меню Model.


143
- В разделе
Material (Материал) задаются все параметры мате- риала тела (если тел несколько и материалов тоже будет не- сколько). Они делятся на общие (закладка General) параметры, которые могут использоваться в любых моделях, такие как плотность, теплоёмкость, критические температура и давле- ние и др. Часть свойств привязаны к физическим законам и заполняются на соответствующих закладках окна. Можно за- полнить все эти свойства вручную или выбрать материал из имеющейся библиотеки, которая автоматически внесёт для необходимых свойств материала:
-
Выполняем команду Add (Добавить);
-
Нажимаем кнопку Material library (Библиотека материа- лов);
-
В открывшемся списке материалов выбираем Aluminium
(generic);
-
Определяем, какому телу принадлежит материал Apply to bodies = Body 1;
-
Добавляем материал кнопкой Add;
-
Закрываем окно кнопкой Ok.
- В разделе
Body Force (источники в теле) определяются правые части уравнения, которые в нашем случае представляют собой источники тепла.
-
Как и ранее выполняем команду Add;
-
Задаём Name (Имя) = Heating;
-
Вводим мощность Heat Source (источника тепла) = 0.01;
-
Определяем тело Apply to bodies = Body 1;
-
Добавляем материал кнопкой Add;
-
Закрываем окно кнопкой Ok.
- Раздел
Initial Condition (Начальные условия) пропускаем, так как в стационарных режимах их обычно не бывает.
- В разделе
Boundary Condition (Граничные условия) задаются, как видно из его названия граничные условия для решения за-

144 дачи. В нашем случае имеется только одна граница, на кото- рой задаётся комнатная температура:
-
Создаём границу командой Add;
-
Переходим на закладку нашего уравнения Heat Equation;
-
Задаём температуру Temperature = 293.0;
-
Вводим имя условия Name = RoomTemp;
-
Здесь мы не определяем, каким границам надо привязать данное условия, так как это достаточно сложно при таком большом количестве границ. Эту процедуру мы выполним позже;
-
Добавляем материал кнопкой Add;
-
Закрываем окно кнопкой Ok.
- В разделе
Set boundary properties (Устанавливаем свойства границ) ставим галочку, щёлкнув мышкой на этом разделе меню. Повторный щелчок эту галочку снимает.
Теперь мы можем привязать наше граничное условие к вы- бранной границе тела. Для этого двойным щелчком ЛКМ выде- ляем внутренние поверх- ности отверстий, которые ранее мы объединили. В открывшемся окне (рис.
09) выбираем из выпада- ющего списка нужное нам граничное условие
(
RoomTemp) и завершаем работу кнопкой Update (Обновить).
Все готово для выполнения расчётов, но так как все программ- ные блоки (подготовка данных, расчёт, визуальное представление результатов) выполняются самостоятельно, то для передачи вве- дённых данных должны быть сформированы два служебных файла – файл с параметрами сетки и командный файл для запуска программы расчёта. Это выполняется командой Sif  Generate.
Чтобы увидеть результат работы выполните команду Sif  Edit и
Рис. 09. Задание граничных условий.


145 будет открыт файл (рис. 010) для его просмотра. Здесь присут- ствуют все средства для редактирования содержимого файла и его сохранения.
Рис. 010. Просмотр входного файла для Solver
Перед началом расчёта надо сохранить проект командой File 
Save Project или кнопкой на па- нели инструмен- тов. Вам будет предложено вы- брать каталог, куда будут сохранены все файлы проекта.
Теперь можно начать сам расчёт поставленной за- дачи командой Run
Рис. 011.Сходимость расчета.

146
 Start solver или кнопкой на панели инструментов. Весь про- цесс расчёта документируется: сходимость результатов представ- ляется графически (рис. 011), расчет завершается, когда достига- ется заданная точность, обычно это 1E-6 или меньше.
В данном случае расчет завершился с точностью выше 1E-11.
Порядок операций и их результаты записываются в файл, кото- рый выводится в окно (рис. 012). Данный файл может быть со-
хранен или распечатан для дальнейшего анализа данных.
Рис. 012. Документирование процедуры расчёта.
После завершения расчётов можно их просмотреть в програм- мах постпроцессора, которые позволяют визуализировать эти данные. В этом пакете существуют два варианта этой программы.
Одна стандартная ElmerPost, которая может быть запущена само- стоятельно или командой Run  Start Postprocessor либо кнопкой на панели инструментов, а вторая, встроенная в пакет
VTK

147 widget, который запускается командой Run  Postprocessor (VTK)
. Основные приёмы работы в них и их сравнение рассмотрены в отдельном пособии [].
1.1. Визуализация результатов расчета
Воспользуемся второй программой. Выполним команду Run 
Postprocessor (VTK) и по умолчанию полу- чаем изображение
(рис. 013), которое яв- ляется полем
(Surfaces) заданного параметра по поверх- ности исследуемого тела, в нашем случае это температурное поле. Чтобы выпол- нить какие-либо настройки данного изображения надо от- крыть окно кнопкой
Surfaces, расположенной на панели инструментов (рис.
014). Разберём его основные поля:
- В рамке
Настройка
(Control) имеются че- тыре поля:
-
Выпадающий список имеющихся поверх- ностей (Surface) для которых можно стро- ить визуальные пред- ставления;
Рис. 013. Температурное поле по поверхности тела.
Рис. 014. Настройка параметров по- верхности.

148
-
Минимальное и максимальное значения выбранного пара- метра, которые определяются автоматически при условии, что галочка Keep снята;
-
Закрепить пределы (Keep limits) закрепляет минимальное и максимальное значения параметра, не обновляя их зна- чения при смене поверхности.
- В рамке Внешний вид (Appearance) так же имеются четыре поля:
-
Галочка Вычисление нормалей (Compute normals);
-
Галочка Функция угла (Feature angle);
-
Выбор числа Показать половину плана (Use dip plane);
-
Выбор числа Непрозрачность поверхности (Opacity), этой настройкой можно сделать поверхность прозрачной на за- данное число процентов, что позволит увидеть несколько визуальных видов одно- временно.
Второй интерес- ный вид можно полу- чить, построив изопо- тенциальные плоско- сти вдоль осей тела на которых построены температурные поля
(рис. 015). Для по- строения отжимаем кнопку Surfaces, по- казанное выше изоб- ражение исчезает и остается только контур тела. Нажимаем кнопку Isosurfaces (Изоповерхности) и в открывшемся окне (рис.
016) выполняем необходимые настройки:
- В рамке Настройка контура (Contour control) определяем па- раметры изоповерхности:
-
Выпадающий список имеющихся поверхностей (Variable)
Рис. 015 Изоповерхности по оси Y с темпе- ратурными полями на них.


149 для которых можно строить визуальные представления;
-
Как и в предыдущем меню определяются пределы по пара- метру;
-
Выбором числа
Количество по- верхностей
(Contour) задаем их число;
-
В поле Список
(List) можно пере- числить необходи- мые координаты этих поверхно- стей, если поле останется неза- полненным, то ко- отдинаты будут определены авто- матически;
- В рамке Настройка цвета (Color control) в выпадающем списке задается параметр, поле которого будет рисоваться на поверхностях;
Рис. 016. Построение изоповерхностей.

150
Установим, пока- занные здесь пара- метры и получим пока- занный выше рисунок.
Варьируя непрозрач- ностью для этих двух изображений можно получить совместный их вид (рисунок 1.17)
2. Уравнение упруго-
сти (линейное) –
загрузка упругой балки (Linear elasticity equation – Loaded
elastic beam)
2.1. Описание задачи
Предположим, что однородная упругая балка жёстко закреп- лена на одном конце. На другой её конце давит груз весом 2000 н.
Размеры балки: длина – 1 м, толщиной – 0,05 м, ширина – 0,1 м. материал балки – сухая сосна: коэффициент Пуассона 0,37, мо- дуль Юнга 10·109 н/м
2
и плотностью 550 кг/м
3
. Задача состоит в том, чтобы найти смещение балки и поле напряжения в ней. Ис- пользуем StressSolve процедуру для решения данной задачи, ко- торая строится на основе линейной теории упругости материала.
1   2   3   4   5   6   7   8   9   10   11