Оглавление 3 Примеры использования вычислительных средств Openfoam 1 1 Обтекание цилиндра 2
![]()
|
3.4 Декомпрессия резервуара с водой под избыточным внутренним давлениемВ этом примере мы рассмотрим задачу быстрого открытия вентиля на трубке резервуара, наполненного жидкостью под избыточным внутренним давлением. Отличительным свойством решения в подобных случаях является распространение волн давления, которые поэтому нужно моделировать в условиях для сжимаемой жидкости. Этот учебный материал вводит следующие новые возможности OpenFOAM: • Улучшение сетки • Волны давления в жидкостях 3.4.1 Постановка задачиОбласть решения Область имеет 2 измерения и состоит из бака с небольшой трубкой для вытекания, как показано на Рис. 3.9. Главныеуравнения Для этой задачи требуется модель сжимаемости ψ жидкости для возможности решения распространения волн с конечной скоростью. Для того, чтобы связать плотность ρ, давление p и ψ, используется баротропное соотношение. •Уравнение неразрывности ![]() ![]() Размеры в мм Примечание: изображение повернуто на -90◦ от вертикали Рисунок 3.9: Геометрия резервуара с выходной трубкой • Баротропное соотношение ![]() где K – модуль объемной упругости • Уравнение 3.15 линеаризовано следующим образом ![]() где ρ0 и p0 – эталонные данные для плотности и давления соответственно ρ(p0) = ρ0. •Уравнение количества движения для Ньютоновской жидкости ![]() Граничныеусловия При помощи FoamX можно установить следующие физические граничные условияt: • условия для стенки обозначены как outerWall; • оси обозначены как symmetryPlane; • сопло обозначено как pressureOutlet, где p = 0 bar; • передние и задние границы обозначены как пустые. Начальные условияU = 0 м/с, p = 100 bar. Свойства переноса • Динамическая вязкость воды μ = 1.0 мПa с Термодинамические свойства • Плотность воды ρ = 1000 кг/м3 • Опорное давление p0 = 1 bar • Сжимаемость воды ψ = 4.54 × 10−7 с2/м2 Название солвера sonicLiquidFoam: код для расчета звукового ламинарного течения сжимаемой жидкости. Название примера пример decompressionTank (декомпрессионный резервуар) находится в директории $FOAM TUTORIALS/sonicLiquidFoam. 3.4.2 Генерация сеткиВ этом примере моделируется полная геометрия; набор вершин и блоков дан ниже в файле описания сетки: ![]() 9 { 10 version 2.0; 11 format ascii; 12 class dictionary; 13 object blockMeshDict; 14 } 15 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 16 17 convertToMeters 0.1; 18 19 vertices 20 ( 21 (0 0 -0.1) 22 (1 0 -0.1) 23 (0 0.5 -0.1) 24 (1 0.5 -0.1) 25 (1.5 0.5 -0.1) 26 (0 0.6 -0.1) 27 (1 0.6 -0.1) 28 (1.5 0.6 -0.1) 29 (0 3 -0.1) 30 (1 3 -0.1) 31 (0 0 0.1) 32 (1 0 0.1) 33 (0 0.5 0.1) 34 (1 0.5 0.1) 35 (1.5 0.5 0.1) 36 (0 0.6 0.1) 37 (1 0.6 0.1) 38 (1.5 0.6 0.1) 39 (0 3 0.1) 40 (1 3 0.1) 41 ); 42 43 blocks 44 ( 45 hex (0 1 3 2 10 11 13 12) (30 20 1) simpleGrading (1 1 1) 46 hex (2 3 6 5 12 13 16 15) (30 5 1) simpleGrading (1 1 1) 47 hex (3 4 7 6 13 14 17 16) (25 5 1) simpleGrading (1 1 1) 48 hex (5 6 9 8 15 16 19 18) (30 95 1) simpleGrading (1 1 1) 49 ); 50 51 edges 52 ( 53 ); 54 55 patches 56 ( 57 wall outerWall 58 ( 59 (0 1 11 10) 60 (1 3 13 11) 61 (3 4 14 13) 62 (7 6 16 17) 63 (6 9 19 16) 64 (9 8 18 19) 65 ) 66 symmetryPlane axis 67 ( 68 (0 10 12 2) 69 (2 12 15 5) 70 (5 15 18 8) 71 ) 72 patch nozzle 73 ( 74 (4 7 17 14) 75 ) 76 empty back 77 ( 78 (0 2 3 1) 79 (2 5 6 3) 80 (3 6 7 4) 81 (5 8 9 6) 82 ) 83 empty front 84 ( 85 (10 11 13 12) 86 (12 13 16 15) 87 (13 14 17 16) 88 (15 16 19 18) 89 ) 90 ); 91 92 mergePatchPairs 93 ( 94 ); 95 96 // ************************************************************************* // Для улучшения численной точности мы используем опорное значение в 1 бар для поля давления. Заметим, что как величина внутреннего поля , так и граничные условия являются суперпозицией решения и опорного уровня. 3.4.3 Подготовка к выполнению решенияПеред началом задания условий решения нам нужно рассмотреть характеристическую скорость явления, которое мы хотим уловить. В этом случае рассматриваемая скорость жидкости очень мала, но волна давления распространяется со скоростью звука в воде. Скорость звука вычисляется как: ![]() Для описанной выше сетки характеристический размер приблизительно равен 2 мм (заметим, что масштабирующий коэффициент 0.1 в файле blockMeshDict). С помощью ![]() Разумный временной шаг составит около ![]() ![]() 8 FoamFile 9 { 10 version 2.0; 11 format ascii; 12 class dictionary; 13 object controlDict; 14 } 15 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 16 17 application sonicLiquidFoam; 18 19 startFrom startTime; 20 21 startTime 0; 22 23 stopAt endTime; 24 25 endTime 0.0001; 26 27 deltaT 5e-07; 28 29 writeControl timeStep; 30 31 writeInterval 20; 32 33 purgeWrite 0; 34 35 writeFormat ascii; 36 37 writePrecision 6; 38 39 writeCompression compressed; 40 41 timeFormat general; 42 43 timePrecision 6; 44 45 runTimeModifiable yes; 46 47 // ************************************************************************* // 3.4.4 Выполнение примера![]() (a) При t = 50 μс (b) При t = 100 μс (c) При t = 150 μс Давление, p(bar) Рисунок 3.10: Распространение волн давления Пользователь может выполнить пример и просмотреть результаты в dxFoam. Жидкость вытекает через сопло, вызывая волны, движущиеся вдоль сопла. Как только они достигают входа в резервуар, некоторые из них проходят в резервуар, а другие отражаются. В то время как одни волны отражаются вверх и вниз во входной трубке, волны, проходящие в резервуар, расширяются и распространяются через резервуар. На Рис. 3.10 значения давления показаны в виде контуров так, что фронты волн видны более отчетливо, чем если бы они были изображены в виде обычного графика изолиний. Если моделирование выполняется достаточно долго и отраженная волна возвращается в трубку, мы видим, что обнаруживается отрицательное абсолютное давление. Моделирование это позволяет, имея некоторые физические предпосылки, т.к. жидкости могут поддерживать напряженные состояния, т.e. могут иметься отрицательныe статические давления. Однако, в действительности загрязнения или растворенные в жидкости газы могут быть местом образования кавитации или испарения/кипения жидкости, вызываемые низким давлением. Поэтому на практике мы обычно не наблюдаем падение давления ниже давления парообразования в жидкости; по крайней мере, до появления кавитации. 3.4.5 Улучшение решения с усовершенствованием сетки![]() Рисунок 3.11: Распространение волн давления с улучшенной сеткой Посмотрим на изменение во времени поля давления, полученного в результате решения. Отчетливо видно распространение волны давления в резервуаре и многочисленные отражения от внутренних стенок. Также очевидно, что волна давления размывается по ряду ячеек. Сейчас мы можем улучшить сетку и уменьшить временной шаг, чтобы получить более резкое разрешение для фронта. Просто редактируем blockMeshDict и увеличиваем число ячеек на 4 по осям x и y, т.e. блок 0 становится (120 80 1) от (30 20 1) и так далее. Выполняем blockMesh в этом файле. Кроме того, для поддержания значения числа Куранта ниже 1, временной шаг должен быть соответственно уменьшен до ![]() |