diff options
| -rw-r--r-- | src/report/images/control-volume-u.png | bin | 0 -> 12169 bytes | |||
| -rw-r--r-- | src/report/images/zigzag-pressure-field-2d.png | bin | 0 -> 19043 bytes | |||
| -rw-r--r-- | src/report/images/zigzag-pressure-field.png | bin | 0 -> 3062 bytes | |||
| -rw-r--r-- | src/report/presentation.tex | 34 | ||||
| -rw-r--r-- | src/report/report.tex | 96 | 
5 files changed, 98 insertions, 32 deletions
| diff --git a/src/report/images/control-volume-u.png b/src/report/images/control-volume-u.pngBinary files differ new file mode 100644 index 0000000..ab30377 --- /dev/null +++ b/src/report/images/control-volume-u.png diff --git a/src/report/images/zigzag-pressure-field-2d.png b/src/report/images/zigzag-pressure-field-2d.pngBinary files differ new file mode 100644 index 0000000..e5d6f8e --- /dev/null +++ b/src/report/images/zigzag-pressure-field-2d.png diff --git a/src/report/images/zigzag-pressure-field.png b/src/report/images/zigzag-pressure-field.pngBinary files differ new file mode 100644 index 0000000..512ae80 --- /dev/null +++ b/src/report/images/zigzag-pressure-field.png diff --git a/src/report/presentation.tex b/src/report/presentation.tex new file mode 100644 index 0000000..c5bb39d --- /dev/null +++ b/src/report/presentation.tex @@ -0,0 +1,34 @@ +\documentclass{beamer} + +\usepackage[english,russian]{babel} +\usepackage[utf8x]{inputenc} +\graphicspath{ {./src/report/images/} } + +\title{Численное моделирование течения в плоском канале} +\author{Соколов Евгений} + +\begin{document} + +\maketitle + +\begin{frame}{Постановка задачи} +Рассматривается движение несжимаемой вязкой жидкости с постоянными характеристиками, такими как плотность $\rho$ и динамический коэффициент вязкости $\mu$. Считается, что поток двумерный и стационарный. +\begin{figure}[h] +    \centering +    \includegraphics[width=0.8\textwidth]{flow-scheme} +    \caption{Схема течения} +\end{figure} +\end{frame} + +\begin{frame}{Метод решения} +	Для реализации алгоритма используется шахматная сетка. Её особенностью является то, что она не обязательно рассчитывает все переменные в одних и тех же узловых точках (при желании можно использовать для каждой зависимой переменной свою сетку). +\begin{figure}[h] +    \centering +    \includegraphics[width=0.5\textwidth]{staggered-grid} +    \caption{Шахматная сетка} +\end{figure} +\end{frame} + + +\end{document} + diff --git a/src/report/report.tex b/src/report/report.tex index 8febe23..a2625be 100644 --- a/src/report/report.tex +++ b/src/report/report.tex @@ -1,7 +1,7 @@  \documentclass[a4paper,14pt]{extreport}  \usepackage{./include/bsumain} -\usepackage{./include/bsupracticetitle} +\usepackage{./include/bsudiplomatitle14}  \usepackage[utf8x]{inputenc}  \usepackage[hidelinks]{hyperref}  \usepackage{listings} @@ -9,8 +9,8 @@  \graphicspath{ {./src/report/images/} }  \author{Соколов Евгений Викторович} -\title{Отчет по преддипломной практике \\  Численное моделирование течения в плоском канале} -\supervisor{Репников Василий Иванович} +\title{Численное моделирование течения в плоском канале с обратным уступом} +% \supervisor{Репников Василий Иванович}  \mentor{Тетерев Александр Владимирович}  \subfaculty{Кафедра вычислительной математики} @@ -77,43 +77,76 @@  Здесь необходимо иметь в виду, что в силу отсутствия точной информации о поведении решения на открытой границе В6 условие \ref{eq:boundary_condition} следует рассматривать как приближенное. Это означает, что в процессе итерационного построения решения задачи, исходя из требования баланса массы во всей расчетной области, значения компонент u и v на каждой итерации подвергаются малой корректировке.  \chapter{Метод решения} -\section{Шахматная сетка} -	Для реализации алгоритма используется шахматная сетка. Её особенностью является то, что она не обязательно рассчитывает все переменные в одних и тех же узловых точках (при желании можно использовать для каждой зависимой переменной свою сетку). -	При расположении в шахматном порядке сетке составляющие скорости рассчитываются для точек, лежащих на гранях контрольных объемов. Таким образом, составляющая скорости $u$ вдоль оси $x$ рассчитывается на гранях, перпендикулярных направлению оси $x$. +\section{Основная сложность} +Основной сложностью вычисления поля скорости является тот факт, что поле давления неизвестно. Уравнение движения будет содержать разницу между двумя \textbf{чередующимися} узлами сетки, а не \textbf{соседними}. Следствием этого является то что давление берётся на сетке, отличающейся от применённой, из-за чего точность решения может снижаться. + +Но есть более серьезная проблема - рассмотрим распределение давления на рисунке. Такое поле давления сложно назвать реалистичным, однако в любой точке $P$ соответствующая разница $P_W - P_E$ обращается в нуль. Сокрушительным последствием этого будет то, что такое поле давления будет \textbf{казаться} однородным, хотя таковым и не является.  \begin{figure}[h]      \centering -    \includegraphics[width=0.8\textwidth]{staggered-grid} -    \caption{Шахматная сетка} +    \includegraphics[width=0.8\textwidth]{zigzag-pressure-field} +    \caption{Зигзагообразное поле давления}  \end{figure} -Следует отмеитть, что по отношению к узловым точкам основной сетки точки, в которых определяются $u$, смещены только в направлении оси $x$. -	Легко выбрать способ размещения узловых точек для составляющих $v$ и $w$. Ниже показана двумерная сетка, где узловые точки для $u$ и $v$ помещены на соответствующих гранях контрольных объёмов. +Разница ещё более заметна в двумерном случае. Например, абсолютно случайно выбранное поле давления, распределенное определенным образом, не будет применять давление ни в направлении $x$, ни $y$ оси. И только вдруг такое поле появится в течение итерационного процесса, ничего это уже не остановит вплоть до того, как процесс сойдётся. + +Если взять гладкое поле давления, являющееся решением, то можно построить любое количество таких же "зигзагообразных" полей, также являющихся решениями, т.к уравнения движения в этом случае не будут затронуты. Численный метод, допускающий такие абсурдные решения нам не подходит, поэтому нужно искать что-то другое. + +\begin{figure}[h] +    \centering +    \includegraphics[width=0.8\textwidth]{zigzag-pressure-field-2d} +    \caption{Двумерное зигзагообразное поле давления} +\end{figure} + +\clearpage + +\section{Смещённая шахматная сетка} +  Описанные выше трудности могут быть разрешены, если учесть тот факт, что нам не нужно вычислять все переменные в одних и тех же узлах сетки. Если понадобится, можно использовать отдельную сетку хоть на каждую независимую переменную. Это особенно удобно в случае скорости - распределяя её на сетке, отличной от давления, мы избавляемся от проблемы. + +	Для реализации алгоритма будет используется смещённая шахматная сетка. Её особенностью является то, что она не обязательно рассчитывает все переменные в одних и тех же узловых точках. При расположении в шахматном порядке сетке составляющие скорости рассчитываются для точек, лежащих на гранях контрольных объемов. Таким образом, составляющая скорости $u$ вдоль оси $x$ рассчитывается на гранях, перпендикулярных направлению оси $x$.  \begin{figure}[h]      \centering      \includegraphics[width=0.8\textwidth]{staggered-grid-2} -    \caption{Сетка и узловые точки} +    \caption{Смещённая шахматная сетка}  \end{figure} -Прямым следствием введения шахматной сетки является то, что массовый расход через грани контрольного объема можно теперь определять без интреполяции соответствующей состовляющей скорости. Также имеются два важных преимущества: при использовании шахматной сетки только физические поля скорости могут удовлетворять уравнению неразрывности. Другое важное преимущество шахматной сетки заключается в том, что разность давлений между двумя соседними узловыми точками определяет составляющую скорости в точке, расположенной между этими узловыми точками. +Следует отмеитть, что по отношению к узловым точкам основной сетки точки, в которых определяются $u$, смещены только в направлении оси $x$. +	Легко выбрать способ размещения узловых точек для составляющих $v$ и $w$. Ниже показана двумерная сетка, где узловые точки для $u$ и $v$ помещены на соответствующих гранях контрольных объёмов. + +Прямым следствием введения шахматной сетки является то, что массовый расход через грани контрольного объема можно теперь определять без интреполяции соответствующей состовляющей скорости. Также имеются два важных преимущества: при использовании шахматной сетки только физические поля скорости могут удовлетворять уравнению неразрывности. Другое важное преимущество такой сетки заключается в том, что разность давлений между двумя соседними узловыми точками определяет составляющую скорости в точке, расположенной между этими узловыми точками.  \section{Уравнения количества движения} -Для расчёта коэффицента диффузии и массого расхода на гранях контрольного объема используется дискеретная формула: +На рисунке \ref{fig:cvu} представлен контрольный объём для горизонтальной компоненты скорости $u$. Если не брать в расчёт наличие других переменных, он не представляет собой ничего необычного. Однако этот контрольный объём на самом деле \textbf{смещён} относительно контрольного объёма для узла основной сетки $P$. Смещение происходит только в направлении $x$, так что грани, перпендикулярные движению проходят через точки $P$ и $E$. Такое расположение реализует главное преимущество смещённой шахматной сетки - разница $P_P - P_E$ может использоваться для вычисления силы давления, действующей на контрольный объём для $u$. + +\begin{figure}[h] +    \centering +    \includegraphics[width=0.8\textwidth]{control-volume-u} +    \caption{Контрольный объём для $u$} +    \label{fig:cvu} +\end{figure} + +Для расчёта коэффициента диффузии и массового расхода на гранях контрольного объема используется дискеретная формула, для $u_e$ она выглядит как:  \begin{equation} \label{eq:momentum1} -  a_e u_e = \sum a_nb u_nb + b + (p_p - p_E)A_{e^*}. +  a_e u_e = \sum a_{nb} u_{nb} + b + (p_p - p_E)A_{e^*}.  \end{equation} -Уравнения количества движения можно решить только в том случае, если поле давления задано или каким-то образом найдено. Если при решении использовать неверное поле давления, найденное поле скорости не будет удовлетворять уравнению неразрывности. Выразим такое поле скорости, полученное с использованием приближенного поля давления $p^*$, через $u^*$, $v^*$. +Здесь и в дальнейшем индексы $n, e, s, w$ (\emph{North, East, South, West}) обозначают элементы, смещённые в северном, восточном, южном и западном направлении соответственно. Индекс $nb$ (\emph{neighbour}) обозначает каждый из таких соседних элементов. + +В уравнении \ref{eq:momentum1} коэффициенты $a_{nb}$ учитывают влияние конвекции и диффузии на гранях контрольного объёма. Слагаемое $b$ представляет собой массовый расход в контрольном объёме. Градиент давления порождает последнее слагаемое - это сила давления действующая на контрольный объём, где $A_e$ - площадь на которую действует это самое давление. В двумерном случае $A_e$ это просто $\Delta y \times 1$. + +Здесь и в дальнейшем индексы $n, e, s, w$ (\emph{North, East, South, West}) обозначают элементы, смещённые в северном, восточном, южном и западном направлении соответственно. Индекс $nb$ (\emph{neighbour}) обозначает каждый из таких соседних элементов. + +Уравнения количества движения можно решить только в том случае, если поле давления задано или каким-то образом найдено. Если при решении использовать неверное поле давления, найденное поле скорости не будет удовлетворять уравнению неразрывности. Такое поле скорости, рассчитанное с помощью угаданного $p^*$, обозначим как $u^*$ и $v^*$.  Это поле скорости находится в результате решения следующих уравнений:  \begin{equation} \label{eq:momentum2} -  a_e u_e^* = \sum a_nb u_nb^* + b + (p_p^* - p_E^*)A_{e^*}; +  a_e u_e^* = \sum a_{nb} u_{nb}^* + b + (p_p^* - p_E^*)A_{e^*};  \end{equation}  \begin{equation} -  a_n u_n^* = \sum a_nb u_nb^* + b + (p_p^* - p_N^*)A_{n^*}; +  a_n u_n^* = \sum a_{nb} u_{nb}^* + b + (p_p^* - p_N^*)A_{n^*};  \end{equation}  \section{Поправки скорости и давления} @@ -152,13 +185,13 @@    u_e = u_e^* + d_e(p_P' - p_E')  \end{equation}  \begin{equation} -  v_n = v_n^* + d_n(p_P' - y_N') +  v_n = v_n^* + d_n(p_P' - p_N')  \end{equation}  \section{Уравнение для поправки давления}  Преобразуем уравнение неразрывности в уравнение для поправки давления. Препдположим, что плотность непосредственно зависит от давления. Уравнение неразрывности имеет вид: -\begin{equation} +\begin{equation} \label{eq:pcorrect}    \frac{\partial p}{\partial t} + \frac{\partial (pu)}{\partial x} + \frac{\partial (pv)}{\partial y} + \frac{\partial (pw)}{\partial z} = 0.  \end{equation} @@ -169,21 +202,20 @@      \caption{Контрольный объем}  \end{figure} -Предположим, что значение плотности во всем контрольном объеме равно $p_P$. Также будем считать, что значение массовой скорости на всей грани контрольного объема определяется значение составляющей скорости $u_e$ в точке $e$. +Предположим, что значение плотности во всем контрольном объеме равно $p_P$. Также будем считать, что значение массовой скорости на всей грани контрольного объема определяется значение составляющей скорости $u_e$ в точке $e$. Тогда проинтегрированная форма уравнения неразрывности \ref{eq:pcorrect} становится:  \begin{equation}  \begin{split} -  \frac{(p_P -p_P^0)\Delta x \Delta y \Delta z}{\Delta t} + -  [(pu)_e - (pu)_w]\Delta y \Delta z + -  [(pv)_n - (pv)_s]\Delta z \Delta x + \\ -  [(pw)_t - (pw)_b]\Delta x \Delta y = 0 +  \frac{(p_P -p_P^0)\Delta x \Delta y}{\Delta t} + +  [(pu)_e - (pu)_w]\Delta y + +  [(pv)_n - (pv)_s]\Delta x  \end{split}  \end{equation}  Если теперь вместо всех составляющих скорости подставить выражения из поправочных формул для скорости, то после группировки соответствующих членов получим следующее уравнение для сеточных значений $p’$:  \begin{equation} -  a_P p_P' = a_E p_E ' + a_W p_W ' + a_N p_N' + a_S p_S ' + a_T p_T ' + a_B p_B ' + b, +  a_P p_P' = a_E p_E ' + a_W p_W ' + a_N p_N' + a_S p_S ' + b,  \end{equation}  где @@ -191,19 +223,19 @@  \[  \begin{split}    \begin{cases} -  a_E = p_e d_e \Delta y \Delta z; a_W = p_w d_w \Delta y \Delta z; a_N = p_N d_n \Delta z \Delta x; \\ -  a_S = p_s d_s \Delta z \Delta x; a_T = p_t d_t \Delta x \Delta y; a_B = p_b d_b \Delta x \Delta y; \\ -  a_P = a_E + a_W + a_N + a_S + a_T + a_B; \\ +  a_E = p_e d_e \Delta y; \\ +  a_W = p_w d_w \Delta y; \\ +  a_N = p_n d_n \Delta x; \\ +  a_S = p_s d_s \Delta x; \\ +  a_P = a_E + a_W + a_N + a_S; \\    \end{cases}  \end{split}  \]  \[  \begin{split} -  b = \frac{(p_P -p_P^0)\Delta x \Delta y \Delta z}{\Delta t} + -  [(pu^*)_e - (pu^*)_w]\Delta y \Delta z + \\ -  + [(pv^*)_n - (pv^*)_s]\Delta z \Delta x + -  [(pw^*)_t - (pw^*)_b]\Delta x \Delta y. +  b = \frac{(p_P -p_P^0)\Delta x \Delta y}{\Delta t} + +  [(pu^*)_e - (pu^*)_w]\Delta y + [(pv^*)_n - (pv^*)_s]\Delta x  \end{split}  \] | 
