240 likes | 753 Views
Возможности OpenFOAM для построения расчетных сеток. Сергей Стрижак 21.11.2013-22.11.2013. Основные этапы решения задач МСС. Различные конечно-объемные элементы в OpenFOAM. Метод конечных объемов , I. Метод конечных объемов (FVM) используется для аппроксимации законов сохранения
E N D
Возможности OpenFOAMдля построения расчетных сеток Сергей Стрижак 21.11.2013-22.11.2013
Различные конечно-объемные элементыв OpenFOAM
Метод конечных объемов, I • Метод конечных объемов (FVM) используется для аппроксимации законов сохранения • Вычислительная область разбивается на конечное число непересекающихся контрольных объемов произвольной многогранной формы • Структура данных: • Вершины • Ребра (соединяют вершины) • Грани (замкнутый многоугольник из ребер) • Ячейки (объемы ограниченные гранями)
Метод конечных объемов, II • В методе конечных объемов используется три уровня аппроксимации: • Аппроксимация интегралов по поверхности, объему и времени • Интерполяция в точках, отличных от расчетных (центры ячеек) • Численное дифференцирование (аппроксимация градиентов) • Простейшие аппроксимации второго порядка точности (применимые для контрольного объема произвольной формы): • Метод средней точки для интегралов (Midpoint rule), • Линейная интерполяция, • Центральные разности (линейные функции формы).
Простые аппроксимации, I • Примеры простых аппроксимаций второго порядка точности, применимых для произвольных многогранных контрольных объемов:
Простые аппроксимации, II • Для аппроксимации диффузионного потока необходимо знать производную в направлении перпендикулярном грани ячейки в центре грани... • Некоторые простые апроксимации второго порядка точности, применимые для произвольных многогранных ячеек:
Основные утилитыв OpenFOAMдля работы с сетками,I • blockMesh– блочный генератор сетки • checkMesh-allTopology -allGeometry – проверка качества сетки • extrude2DMesh–создание 3D сетки конечной толщины на базе 2D сетки • extrudeMesh–выдавливание сеткииз существующего патча • refineMesh -утилитадля измельченияячеекв несколькихнаправлений • snappyHexMesh – утилита для построения адаптированной сетки с использованием фоновой сетки на базе STL геометрии • polyDualMesh– утилита для построения многогранных (polyhedral) сеток
Основные утилитыв OpenFOAMдля работы с сетками, II • mergeMeshes -объединение двухсеток • mirrorMesh – построение зеркальной сеткиотносительно выбранной плоскости • moveDynamicMesh –движение сеткиитопологическое изменение сетки • moveMesh -решательдляподвижныхсеток • moveEngineMesh – решатель для подвижных сеток в камере ДВС • rotateMesh -вращениесеткииполейотнаправления n1 к направлению n2 • splitMeshRegions - расщеплениесеткина несколькообластей
Основные утилиты в OpenFOAMдля работы с сетками,III • attachMesh -подсоединениетопологическиотсоединеннойсетки, используюзаранее заданные сеточныенастройки • autoPatch -разбиениевнешнихгранейнапатчиоснованныена заданном углепользователем • createPatch –утилита длясозданияпатчейвневыбранныхграничныхграней. Faces come either from existing patches or from a faceSet • setSet - манипуляция a cell/face/point/ set или зоной интерактивно • transformPoints –трансформация узловсеткивpolyMeshдиректориюсогласно translate, rotate and scale опциям • zipUpMesh - Reads in a mesh with hanging vertices and zips up the cells to guarantee that all polyhedral cells of valid shape are closed
Сетки из тетраэдров • Легко создаются автоматически, но не являются оптимальными: • Только 4 соседа (слишком мало для точной аппроксимации градиентов); • Расположение соседей может быть неблагоприятным... • Для решателя необходимы особые критерии, чтобы достичь приемлемой точности на искаженных сетках (distorted meshes)... • Неблагоприятное соотношение между числом ячеек и качеством решения... Милован Перич CD-adapco, 2007
Сетки с усеченными ячейками (Trimmed Grids) • Эти сетки преимущественно гексагональные (обычно Декартовы), с некоторым количеством многогранных ячеек в области обрезки... • Эти сетки обычно имеют оптимальные параметры (основную сетку можно растянуть...)
Сетки из многогранных ячеек • Сетки из многогранных ячеек можно создавать автоматически также просто, как и сетки из тетраэдров – однако эти сетки имеют ряд преимуществ: • Всегда достаточно соседей для вычисления градиентов (обычно 10 – 12) • Пространственное расположение соседей более благоприятно...
Почему многогранные ячейки? • Расширение возможностей метода дискретизации и решения уравнений для работы с произвольными многогранными ячейками преследует несколько целей: • Устранение ограничений по форме ячеек (делая любую форму ячейки приемлемой); • Унификация работы программы в некоторых особых случаях; • Упрощение кода и структуры данных, увеличение модульности программы; • Увеличение надежности программы; • Упрощение поддержки и расширения программного продукта...
Модель аппарата-зонда ‘Сканлайнер’ Геометрия передана в пакет ICEM CFD Модель построена в пакете Solidworks • Порядок работы: • Создаем геометрию в SolidWorks • Сохраняем файл в формате .stl • Загружаем файл .stlв ICEM CFD 11.0 • Выбираем расчетную область • Выбираем типы контрольных объемов • Строим сетку, проводим контроль • Сохраняем сетку в формате Fluentv6 • Передаем файл в OpenFoam c помощью • утилиты “fluent3DMeshToFoam scan.msh” Сетка построена в ICEM CFD. Tetra/prisms
Данные для расчета Расчетная область (-2.0 -0.68 -0.68) - (2.0 0.68 0.68) Расчетная сетка построена на базе тетраэдров Размеры тетраэдров: 1) 100 (inlet) 100 (outlet) 3 (SOL) 2) 80 (inlet) 80 (outlet) 4 (SOL) Общее количество ячеек – 330502 и 451700 Модель URANS с k-w SST моделью турбулентности Tu=1 % , U = 25 м/c (25 0 0 ).Изменение угла атаки (0 4 8 10 градусов) Kin= 0.0937 OMEGAin= 8.22 EPSILONin=0.0693 Dt=0.00025 сек. Time = 0.2 сек. Решатель в OpenFOAM– pisoFoam
Утилита checkMesh Createtime CreatepolyMeshfortime = 0 Time = 0 Meshstats points: 62054 faces: 672802 internalfaces: 649206 cells: 330502 boundarypatches: 3 pointzones: 0 facezones: 1 cellzones: 1 Overallnumberofcellsofeachtype: hexahedra: 0 prisms: 0 wedges: 0 pyramids: 0 tetwedges: 0 tetrahedra: 330502 polyhedra: 0 Checkingtopology... Boundarydefinition OK. Pointusage OK. Uppertriangularordering OK. Facevertices OK. Numberofregions: 1 (OK).
Утилита checkMesh Checkingpatchtopologyformultiplyconnectedsurfaces ... PatchFacesPointsSurfacetopology inlet 412 232 ok (non-closedsinglyconnected) outlet 5736 2894 ok (non-closedsinglyconnected) SOL 17448 8726 ok (closedsinglyconnected) Checkinggeometry... Overalldomainboundingbox (-2 -0.679981 -0.679997) (2 0.68 0.68) Mesh (non-empty, non-wedge) directions (1 1 1) Mesh (non-empty) directions (1 1 1) Boundaryopenness (-2.18538e-19 4.49199e-19 -2.47128e-19) OK. Maxcellopenness = 1.65939e-16 OK. Maxaspectratio = 11.0456 OK. Minumumfacearea = 1.26182e-07. Maximumfacearea = 0.00694694. Faceareamagnitudes OK. Minvolume = 5.42529e-11. Maxvolume = 0.000201659. Totalvolume = 5.79848. Cellvolumes OK. Meshnon-orthogonalityMax: 61.0149 average: 13.3286 Non-orthogonalitycheck OK. Facepyramids OK. Maxskewness = 0.913121 OK. Mesh OK. End
Пример ‘scanliner’. Многогранные ячейки $ polyDualMesh<angle> <angle> – угол в градусах между гранями ячеек Уголв 40-80 градусов Расчет объема ячейки ? Алгоритм построения ? OpenFOAM-2.2.x / src / conversion / polyDualMesh / polyDualMesh.C
Usage: polyDualMesh [OPTIONS] <featureAngle [0-180]> options: -case <dir> specify alternate case directory, default is the cwd -concaveMultiCells split cells on concave boundary edges into multiple cells -constant include the 'constant/' dir in the times list -doNotPreserveFaceZones disable the default behaviour of preserving faceZones by having multiple faces in between cells -latestTime select the latest time -noFunctionObjects do not execute functionObjects -noZero exclude the '0/' dir from the times list, has precedence over the -zeroTime option -overwrite overwrite existing mesh/results files -splitAllFaces have multiple faces inbetween cells -time <ranges> comma-separated time ranges - eg, ':10,20,40-70,1000:' -srcDoc display source code in browser -doc display application documentation in browser -help print the usage Using: OpenFOAM-2.1.0 (see www.OpenFOAM.org) Build: 2.1.0-bd7367f93311
Применение многогранных ячеек в ядерной энергетике • Моделирование нестационарного растворения бора в корпусе ядерного реактора... • Модель 4-х контурного реактора PWR с перфорированным баком... Automatically generated mesh, resolving geometrical details with STAR-CCM
Литература • Jasak H. Error analysis and estimation in the Finite Volume method with application to fluid flows: PhD thesis. Imperial College of Science, Technology and Medicine. L., 1996. 394 p. • SamirMuzaferija, David Gosman. Finite-Volume CFD Procedure and Adaptive Error Control Strategy for Grids of Arbitrary Topology. JOURNAL OF COMPUTATIONAL PHYSICS 138, 766–787 (1997) • Ferziger J.H., Peric M., Computational Methods for Fluid Dynamics. Springer-Verlag, Berlin et al.: Springer, 2002. – 423p. • Peric M. Flow simulation using control volumes of arbitrarypolyhedral shape, ERCOFTAC Bulletin, No. 62, September 2004. • Волков К.Н., Емельянов В.Н. Моделирование крупных вихрей в расчетах турбулентных течений. М.: Физматлит, 2008. 368 с.