Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Ламинарное обтекание квадратного цилиндра потоком несжимаемой жидкости





В качестве примера, иллюстрирующего возможности OpenFOAM, рассмотрим задачу обтекания квадратного цилиндра потоком несжимаемой жидкости с Re=5000. Расчетная область представлена на рис.4.4 Сторона цилиндра D=0.04 м. Все остальные размеры приведены в таблице 4.2 и отнесены к D.

Таблица 4.2. Геометрические размеры расчетной области

Размер Величина
L1 – расстояние от входа в расчетную область до центра цилиндра  
L2 – расстояние от центра цилиндра до выхода из расчетной области  
L3=L4 – расстояние от центра цилиндра до верхней и нижней границы  
L5 – ширина рабочей области  

 

Рис.4.4. Расчетная область

Перед началом решения задачи, создадим папку с рабочим названием flowSquare, в которой будут храниться все данные о рассматриваемом проекте. Для этого в терминале Linux набираем команду

mkdir -p flowSquare

Выполняя аналогичную команду, создаем еще 4 папки, чтобы структура проекта имела следующий вид:

Рис.4.5. Структура проекта на начальном этапе

Для построения сеточной модели необходимо создать два файла: blockMeshDict и controlDict в папках polyMesh и system соответственно. Содержание этих файлов представлено в приложениях 1,2. После этого в корневом разделе проекта следует выполнить команду

blockMesh

В результате будет сгенерирована расчетная сетка, а в папке polyMesh появятся новые файлы содержащие информацию о расположении граничных условий(boundary), граней ячеек(faces) и т.д.

Рис.4.6. Содержимое папки polyMesh после генерации сетки

Для определения начальных и граничных условий в папке 0 необходимо создать 2 файла: p и U отвечающие за задание давления и скорости соответственно. Содержимое этих файлов представлено в приложениях 3 и 4. Отметим, что число файлов, содержащих информацию о граничных условиях, зависит от типа решаемой задачи. Например, в случае турбулентного течения кроме скорости и давления необходимо также задавать граничные условия для параметров k и epsilon.

Описание физических свойств рабочей среды осуществляется в файле transportProperties, который необходимо создать в каталоге constant (приложение 5).

Задание различных разностных схем и методов решения систем уравнений осуществляется в файлах fvSchemes и fvSolution (каталог system), содержимое которых представлено в приложениях 6 и 7. Таким образом, полностью сформированная структура проекта имеет следующий вид:

Рис.4.7. Окончательная структура проекта

 

Для запуска задачи на расчет необходимо в терминале Linux в корневом каталоге проекта выполнить команду

icoFoam

Отметим, что данной командой мы запускаем солверicoFoam на одном ядре. Для расчета в параллельном режиме необходимо создать в папке system дополнительный файл decomposeParDict содержащий информации в частности о числе подобластей, на которые будет разбита расчетная область (numberOfSubdomains). Содержание файла decomposeParDict представлено в приложении 8. После формирования файла необходимо в корневой директории проекта запустить команду

decomposePar

после чего будет создано n-папок c названием processor(число n-равняется числу подобластей, в нашем случае n=4) (рис.4.8).

Рис. 4.8. Содержимое корневой директории проекта после команда decomposePar

Для запуска задачи в параллельном режиме необходимо запустить команду

mpirun -np 4 icoFoam -parallel > log &

здесь –np указывает число ядер, на которых будет произведен расчет, icoFoam – солвер соответствующий решаемой задачи, >log& создает файл log, в который записываются данные о решении задачи. Командой top можно получить сведения о загрузке процессора задачей:

Рис.4.9. вывод команды top Отметим, что в данном случае распараллеливание происходит на одном узле. Чтобы запустить расчет на нескольких узлах необходимо в корневой директории создать файл machines с перечислением имен узлов участвующих в расчете. После этого нужно выполнить команду:   mpirun --hostfile machines -np 4 icoFoam -parallel > log &

 

Когда расчет будет окончен, полученное решение можно визуализировать с помощью пакета Paraview. Для этого в терминале нужно ввести команду

paraFoam

после чего появится главное окно пакета визуализации Paraview

Рис.4.10. Главное окно Paraview

Чтобы просмотреть расчетную область необходимо нажать кнопу Apply в меню управления объектом (рис.4.11)

Рис.4.11. Меню управления объектами

Визуализация расчетной сетки осуществляется выбором параметра surfacewithedges на приборной панели. Построенная сеточная модель представлена на рис.4.13,4.14

Рис.4.12. Фрагмент приборной панели

 

Рис.4.13. Расчетная сетка. Общий вид

 

Рис.4.14 Расчетная сетка у поверхности цилиндра

Для визуализации полей давлений и скоростей первым делом необходимо создать плоскость, на которой эти поля будут построены. Для этого на приборной панели нужно нажать иконку плоскости (рис.4.15) после чего в меню управления объектами выставить параметры, указанные на рис.4.16 и нажать кнопку Apply.

Рис.4.15. Фрагмент приборной панели. Иллюстрация иконки плоскости

 

Рис.4.16 Параметры построения плоскости

Для визуализации поля интересующей нас величины необходимо выбрать ее на соответствующей вкладке приборной панели рис.4.17 и выставить время, для которого выводится решение (рис.4.18)

Рис.4.17. Выбор поля для визуализации

 

Рис.4.18. Выбор момента времени

Таким образом, были построены скалярные поля модуля скорости и давления для срединного сечения расчетной области, соответствующие моменту времени t=0.32 с.

Рис.4.19. Поле модуля скорости

 

Рис.4.20 Поле давлений

 

ЗАКЛЮЧЕНИЕ

Книга «Прикладные программные комплексы для анализа инженерных задач» вводит читателя в увлекательный мир возможностей численного моделирования сложных и разнообразных процессов, протекающих в жидких и газообразных средах. Изучив это пособие и выполнив простые, но важные для изучения основ компьютерного моделирования задачи, читатель получит первоначальные представления о вычислительной гидродинамике, основах и особенностях моделирования гидрогазодинамических процессов в ведущих программных комплексах. В совокупности со знаниями, полученными в рамках курса «Пакеты прикладных программ», это позволяет читателю осваивать современные программные продукты, реализующие компьютерные технологии инженерного анализа.

Выполняя дипломные, а также выпускные квалификационные работы и магистерские диссертации с использованием таких программных средств, обучающийся приобретает необходимый опыт и навыки работы с современными средствами исследователя и инженера.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Лойцянский Л.Г. Механика жидкости и газа: Учеб. для вузов. – 7-е изд., испр. – М.: Дрофа, 2003. – 840 с.

2. Управление обтеканием тел с вихревыми ячейками в приложении к летательным аппаратам интегральной компоновки (численное и физическое моделирование) / Под ред. А.В. Ермишина и С.А. Исаева. – М.: Изд-во Моск. Ун.-та.,2003. – 360 с.

3. Роуч П. Вычислительная гидромеханика. М.: Мир, 1980. – 616 с.

4. Open FOAM: The Open Source CFD Toolbox. User Guide. 2012. -211p.

5. Ansys CFX-solver Theory Guide. Release 14.0 – 2012, Ansys Inc.

6. STAR-CCM+ methodology. Version 6.06. – London, 2011. - 1204 p.

7. Белоцерковский О. М., Давыдов Ю. М., Метод крупных частиц в газовой динамике, М., 1982

ПРИЛОЖЕНИЯ

Приложение 1

Содержимое файла blockMeshDict

FoamFile

{

version 2.0;

format ascii;

class dictionary;

object blockMeshDict;

}

convertToMeters 1.0;

vertices

(

(-0.4 0.28 0)

(-0.02 0.28 0)

(0.02 0.28 0)

(0.96 0.28 0)

(-0.4 0.02 0)

(-0.02 0.02 0)

(0.02 0.02 0)

(0.96 0.02 0)

(-0.4 -0.02 0)

(-0.02 -0.02 0)

(0.02 -0.02 0)

(0.96 -0.02 0)

(-0.4 -0.28 0)

(-0.02 -0.28 0)

(0.02 -0.28 0)

(0.96 -0.28 0)

(-0.4 0.28 0.392)

(-0.02 0.28 0.392)

(0.02 0.28 0.392)

(0.96 0.28 0.392)

(-0.4 0.02 0.392)

(-0.02 0.02 0.392)

(0.02 0.02 0.392)

(0.96 0.02 0.392)

(-0.4 -0.02 0.392)

(-0.02 -0.02 0.392)

(0.02 -0.02 0.392)

(0.96 -0.02 0.392)

(-0.4 -0.28 0.392)

(-0.02 -0.28 0.392)

(0.02 -0.28 0.392)

(0.96 -0.28 0.392)

);

blocks

(

hex (4 5 1 0 20 21 17 16) (29 19 59) simpleGrading (0.05 20 1)

hex (5 6 2 1 21 22 18 17) (21 19 59) simpleGrading (1 20 1)

hex (6 7 3 2 22 23 19 18) (73 19 59) simpleGrading (20 20 1)

hex (8 9 5 4 24 25 21 20) (29 21 59) simpleGrading (0.05 1 1)

hex (10 11 7 6 26 27 23 22) (73 21 59) simpleGrading (20 1 1)

hex (12 13 9 8 28 29 25 24) (29 19 59) simpleGrading (0.05 0.05 1)

hex (13 14 10 9 29 30 26 25) (21 19 59) simpleGrading (1 0.05 1)

hex (14 15 11 10 30 31 27 26) (73 19 59) simpleGrading (20 0.05 1)

);

edges

(

/*

arc 5 6 (0 0.02 0)

arc 6 10 (0.02 0 0)

arc 9 10 (0 -0.02 0)

arc 9 5 (-0.02 0 0)

arc 21 22 (0 0.02 0.392)

arc 26 22 (0.02 0 0.392)

arc 25 26 (0 -0.02 0.392)

arc 25 21 (-0.02 0 0.392)

*/

);

patches

(

wall walls

(

(5 21 22 6)

(6 22 26 10)

(10 26 25 9)

(9 25 21 5)

)

patch inlet

(

(4 20 16 0)

(8 24 20 4)

(12 28 24 8)

)

patch outlet

(

(3 19 23 7)

(7 23 27 11)

(11 27 31 15)

)

wall sides

(

(16 17 1 0)

(17 18 2 1)

(18 19 3 2)

(12 13 29 28)

(13 14 30 29)

(14 15 31 30)

)

walllowerUpper

(

(0 1 5 4)

(1 2 6 5)

(2 3 7 6)

(4 5 9 8)

(6 7 11 10)

(8 9 13 12)

(9 10 14 13)

(10 11 15 14)

(20 21 17 16)

(21 22 18 17)

(22 23 19 18)

(24 25 21 20)

(26 27 23 22)

(28 29 25 24)

(29 30 26 25)

(30 31 27 26)

)

);

mergPatchPairs

(

);

 

Приложение 2

Содержимое файла controlDict

 

FoamFile

{

version 2.0;

formatascii;

class dictionary;

location "system";

objectcontrolDict;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

applicationicoFoam;

startFromstartTime;

startTime 0;

stopAtendTime;

endTime 0.32;

deltaT 0.00032;

writeControltimeStep;

writeInterval 20;

purgeWrite 0;

writeFormatascii;

writePrecision 6;

writeCompression off;

timeFormat general;

timePrecision 6;

runTimeModifiable true;

 

Приложение 3.

Содержимое файла “p”

 

FoamFile

{

version 2.0;

formatascii;

classvolScalarField;

object p;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

 

dimensions [0 2 -2 0 0 0 0];

internalField uniform 0;

boundaryField

{

walls

{

typezeroGradient;

}

inlet

{

typezeroGradient;

}

outlet

{

typefixedValue;

value uniform 0;

}

sides

{

type zeroGradient;

}

lowerUpper

{

type zeroGradient;

}

}

 

 

Приложение 4

Содержимое файла «U»

 

FoamFile

{

version 2.0;

formatascii;

classvolVectorField;

object U;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 -1 0 0 0 0];

internalField uniform (0 0 0);

boundaryField

{

walls

{

typefixedValue;

value uniform (0 0 0);

}

inlet

{

typefixedValue;

value uniform (1.25 0 0);

}

outlet

{

typezeroGradient;

}

 

sides

{

type fixedValue;

value uniform (0 0 0);

}

lowerUpper

{

type fixedValue;

value uniform (0 0 0);

}

}

 

 

Приложение 5

Содержимое файла transportProperties

 

FoamFile

{

version 2.0;

formatascii;

class dictionary;

location "constant";

objecttransportProperties;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

nunu [ 0 2 -1 0 0 0 0 ] 0.00001;

 

// *************************************************************************

 

 

Приложение 6

Содержимое файла fvSchemes

 

FoamFile

{

version 2.0;

formatascii;

class dictionary;

location "system";

objectfvSchemes;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes

{

default Euler;

}

gradSchemes

{

default Gauss linear;

grad(p) Gauss linear;

}

divSchemes

{

default none;

div(phi,U) Gauss linear;

}

laplacianSchemes

{

default none;

laplacian(nu,U) Gauss linear corrected;

laplacian((1|A(U)),p) Gauss linear corrected;

}

interpolationSchemes

{

default linear;

interpolate(HbyA) linear;

}

snGradSchemes

{

default corrected;

}

fluxRequired

{

default no;

p;

}

// ****************//

 

 

Приложение 7

Содержимое файла fvSolution

 

FoamFile

{

version 2.0;

formatascii;

class dictionary;

location "system";

objectfvSolution;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers

{

p

{

solver PCG;

preconditioner DIC;

tolerance 1e-06;

relTol 0;

}

U

{

solverPBiCG;

preconditioner DILU;

tolerance 1e-05;

relTol 0;

}

}

 

PISO

{

nCorrectors 2;

nNonOrthogonalCorrectors 0;

pRefCell 0;

pRefValue 0;

}

// *******//

 

Приложение 8

Содержимое файла decomposeParDict

 

FoamFile

{

version 2.0;

formatascii;

class dictionary;

location "system";

objectdecomposeParDict;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

 

numberOfSubdomains 4;

method simple;

simpleCoeffs

{

n (2 2 1);

delta 0.001;

}

hierarchicalCoeffs

{

n (1 2 2);

delta 0.001;

order xyz;

}

manualCoeffs

{

dataFile "cellDecomposition";

}

 

scotchCoeffs

{

}

// ************************************************************************* //

 







Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.