Численное исследование распространения нелинейных волн на поверхности вязкой жидкости

Численное исследование распространения нелинейных волн на поверхности вязкой жидкости

Э.Н. Егерева, А.В. Лопатко ФБГОУВО «НИУМосковский государственный строительный университет»

Аннотация: Рассматривается нелинейная краевая задача о распространении поверхностных волн в слое вязкой несжимаемой жидкости бесконечной глубины. Записаны уравнения движения и граничные условия. Решение задачи находится методом малого параметра. Получено выражение для декремента затухания колебаний волны. Разработан код программы на языке С++ для численного исследования распространения нелинейных волн на поверхности вязкой жидкости.

Ключевые слова: вязкая жидкость, слабовязкая жидкость, нелинейные поверхностные волны, декремент затухания колебаний волны, фазовая скорость, частота колебаний волны

Введение

Исследование влияния вязкости на распространение поверхностных волн несет в себе практическую и теоретическую значимость. Для решения нелинейной краевой задачи на свободной поверхности идеальной жидкости Стоксом был разработан метод последовательных приближений [1], который получил развитие во многих научных проектах [2]. В работе [3] приведен разбор нелинейной задачи о волнах на поверхности слоя идеальной жидкости. Математическая модель распространения волн по свободной поверхности слоя дисперсной смеси показана в работе [4], где представлен вывод линейной краевой задачи, а так же выражена фазовая скорость и декремент затухания волны, найдено решение нелинейной задачи с точностью до второго приближения по малому параметру. В работе [5] приведено асимптотическое решение задачи с точностью третьего приближения по волновому параметру. В статье [6] решена задача о распространении нелинейных поверхностных волн в намагничивающейся жидкости бесконечной глубины, приведены графики зависимости частоты колебания волны от величины напряженности магнитного поля. В работе [7] рассматривается численное решение задачи о распространении

поверхностных волн в слое жидкости на пористом основании. Представлены выражения для декремента затухания и частоты колебаний волны. Записано дисперсионное уравнение для бесконечной толщины слоя пористой среды. Статья [8] посвящена разработке алгоритма и осуществляющего его программного приложения для математической модели воздействия стационарного потока жидкости на тело, покрытое вязкой пленой. С помощью данного алгоритма можно рассчитать воздействие набегающего потока на частицу сферической формы. Результаты исследования нелинейных эффектов могут применяться при решении экологических проблем [9].

Постановка задачи

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

Выбираем декартовую систему координат следующим образом: плоскость Ол'*у* совпадает с невозмутимой поверхностью, а ось агУ

направлена вертикально вверх. Жидкость движется в плоскости со

скоростью й* = Звездочкой обозначены физические размерные

величины.

Рассматриваются волны, когда Я « , где Я - длина волны (А = —,

гС

- волновое число).

Уравнение движения жидкости, уравнение неразрывности, а так же граничные условия в безразмерных переменных имеют вид:

J

^ 0,(* ч —со). Рассматривается задача, соответствующая г = 0, i? = ifа 4- Й., где tle потенциальная составляющая скорости, ^ - вихревая.

Решение линейной задачи найдено в виде: щ = sinjf, г£№ = АеР'а д = jt — t + rf,

-а

= (ircos^ -Ь sin^f); f = A ^ + fism^);

tt, =

i1' ([(да —bs ) cos az + (ab — as )sin ая] cos^ 4-

[

Здесь й — начальная фаза волны, — безразмерный декремент затухания

волны, £ = 2Vq — Р, я = Щ-, Ъ = —.

-ivt

Для относительной частоты и безразмерного декремента затухания найдены следующие выражения:

а2 = 1+S2_ 21*

1

= 2va - cos у-Дй^о £ 0,66 i

г2 = У12тгэ + 1; е =

1+ 13^-54^

Данные выражения при переходе 0 дают известные решения для идеальной жидкости [10].

Рис. 1. - График зависимости декремента затухания в от относительной

вязкости

Рис. 2. - График зависимости параметра а от относительной вязкости у0

ь {voY

54.54 3 . 532 . 52

1.51

0.5 —

О O.I 0.2 О.З O.^l О.5 0.6 0.7 0.8 0.9 1 1.1 1.2 Vq

Рис. 3. - График зависимости параметра b от относительной вязкости v0

Из графиков видно, что при увеличении относительной вязкости декремент затухания увеличивается.

Отметим, что капиллярно-гравитационная волна движется быстрее гравитационной, но при этом амплитуды их убывают.

Код программы на языке C++ для построения графиков при исследовании распространения волн по поверхности вязкой жидкости

//C++ & gnuplot

//#define _CRT_SECURE_NO_WARNINGS

#define _USE_MATH_DEFINES

#include<cmath>

#include<iostream>

#include<fstream>

#include<iomanip>

#include<vector>

#include<algorithm>

#include<string>

using namespace std;

void plot2D(string fig, vector<double> x, vector<double> y, string title, double

xtics, double ytics, string xlabel, string ylabel, string color, double linewidth) {

string image_file_format = "pngcairo"; string file_extension = "jpg"; string dir = "c:/gnuplotFigures/"; string fn = dir + "gnup.gnu"; string fndata = dir + "datap.txt";

string fss = "\"c:/Program Files/gnuplot/bin/gnuplot.exe\" "; string fss_fn = fss + fn; ofstream fp(fn.c_str(), ios_base::out); ofstream fpdata(fndata.c_str(), ios_base::out); system(("mkdir + dir + "\"").c_str()); fpdata.setf(ios::fixed); fpdata.precision(10); //fpdata.setf(ios::fixed); fpdata.precision(15);

for (int i = 0; i < y.size(); i++) fpdata << x[i] << " " << y[i] << " " << endl; fp << string("set encoding utf8;") + "unset border;" + "set zeroaxis lt - 1;"

+ "set xtics axis nomirror; set ytics axis nomirror;" + "set border 3; "

+ "do for[k = 1:2] {set label k font \", 15\"} ;"

//+ "set label 1 font \", 15\" ; set label 2 font \", 15\" ;"

+ "set label 3 font \", 13\" ;"

+ "set xtics font \"Times, 11\" ; set ytics font \"Times, 11\" ;" + "set xtics " + to_string(xtics) + ";" + "set ytics " + to_string(ytics) + ";" + "set xtics add(\"\"" + to_string(0) + ");" + "set ytics add(\"\"" + to_string(0) + ") ;"

+ "set xtics add(\"\"" + to_string(round(*max_element(begin(x), end(x)) / xtics) * xtics) + ");"

+ "set ytics add(\"\"" + to_string(ceil(*max_element(begin(y), end(y)) / ytics) * ytics) + ");"

+ "set grid;" + "set tmargin 3;" + "set rmargin 7;" + "set lmargin 10;"

+ "set label 1 '" + xlabel + "' offset graph 0.98,-0.05;" //+ "set label 2 '" + ylabel + "' offset graph -0.05,1.00;" + "set label 2 '" + ylabel + "' offset graph -0.12,1.00;" + "set label 3 '0' offset graph -0.05,-0.05;"

+ "plot '" + fndata + "' using 1:2 title '" /*+ title +*/ "' with lines linetype rgb " + "\"" + color + "\"" + " linewidth " + to_string(linewidth) + ";" + "pause mouse keypress;"

+ "set terminal " + image_file_format + "; set output '" + dir + fig + "." + file_extension + "';"

+ "plot '" + fndata + "' using 1:2 title '" + /*title*/ +"' with lines linetype rgb " + "\"" + color + "\"" + " linewidth " + to_string(linewidth) + ";"

fp.close(); fpdata.close(); system(fss_fn.c_str()); }

int main() {

vector<double> x, f1, f2, f3;

double h = 0.01, r2, tetta, v0, alpha = 1;

string fig1 = "figure1"; string fig2 = "figure2"; string fig3 = "figure3"; for (v0 = 0; v0 <= 1.31; v0 += h) { r2 = sqrt(12 * pow(v0, 2) + 1);

tetta = atan((6 * sqrt(3 * pow(v0, 3)*(1 + pow(v0, 2)*(1 + 18 * pow(v0, 2) - 11 *

pow(v0, 4))))) / (1 + 18 * pow(v0, 4) - 54 * pow(v0, 6)));

x.push_back(v0);

if (v0<0.66) f1.push_back(sqrt((2 * r2*cos((tetta - M_PI) / 3) - 1) / 3));

else f1.push_back(sqrt((2 * r2*cos((tetta) / 3) - 1) / 3)); }

for (int i = 1; i < x.size(); ++i) f2.push_back(alpha*f1[i] / (2 * pow(x[i], 2))); for (int i = 1; i < x.size(); ++i) f3.push_back((1 + pow(f1[i], 2) - pow(alpha, 2)) / (4 * pow(x[i], 2)));

//plot2D(fig1, x, f1, "y= {/Symbol b}(v0)M, 0.1, 0.2, "{/Times-Italic v_0}", "{/Symbol-Italic b}", "#0000FF", 2);

//plot2D(fig2, vector<double>(x.begin() + 1, x.end()), f2, "y=a(v0)", 0.1, 20, "{/Times-Italic v_0}", "{/Consolas-Italic a}", "#0000FF", 2); //plot2D(fig3, vector<double>(x.begin() + 1, x.end()), f3, "y=b(v0)", 0.1, 0.5, "{/Times-Italic v_0}", "{/Times-Italic b}", "#0000FF", 2);

plot2D(fig1, x, f1, "y= {/Symbol b}(v0)", 0.1, 0.2, "{/Times-Italic v_0}", "{/Symbol-Italic b}({/Times-Italic v_0})", "#0000FF", 2);

plot2D(fig2, vector<double>(x.begin() + 1, x.end()), f2, "y=a(v0)", 0.1, 20, "{/Times-Italic v_0}", "{/Consolas-Italic a}({/Times-Italic v_0})", "#0000FF", 2); plot2D(fig3, vector<double>(x.begin() + 1, x.end()), f3, "y=b(v0)", 0.1, 0.5, "{/Times-Italic v_0}", "{/Times-Italic b}({/Times-Italic v_0})", "#0000FF", 2); //cout << fixed << right << setprecision(6);

//for (int i = 0; i < x.size(); i++) cout << setw(10) << x[i] << setw(12) << f1[i] << endl; cout << endl;

//for (int i = 1; i < x.size(); i++) cout << setw(10) << x[i] << setw(12) << f2[i-1] << endl; cout << endl;

//for (int i = 1; i < x.size(); i++) cout << setw(10) << x[i] << setw(12) << f3[i-1] << endl; cout << endl;

return 0; }

Литература

1. Stokes G. G. On the theory of oscillatory waves // Math. and Physic. Papers. 1880. Vol. 1. pp. 197-229.

2. Алешков Ю.З. Теория волн на поверхности тяжелой жидкости. Л.: Изд-во Ленинградского университета, 1981. 196 с.

3. Сретенский Л.Н., Теория волновых движений жидкости. М.: Наука, 1977. 816 с.

4. Басинский К.Ю., Баринов В.А. Нелинейное моделирование волн на поверхности двухфазной смеси // Вестник Тюменского государственного университета. Физико-математическое моделирование. Нефть, газ, энергетика. 2013. №7. С. 154-166.

5. Баринов В. А., Басинский К.Ю. Нелинейные волны Стокса на поверхности слабовязкой жидкости // Вестник Удмуртского университета. Математика. Механика. Компьютерные науки. 2011. №2. С. 112-122.

6. Егерева Э.Н., Зотова Ю.С., Пьянзина А.Е. Исследование нелинейных волн на поверхности намагничивающейся жидкости бесконечной глубины // Инженерный вестник Дона, 2018, №2. URL: ivdon.ru/ru/magazine/archive/N2y2018/4873.

7. Егерева Э.Н., Идиятов Р.А. Исследование частоты волны в слое жидкости на пористом основании // Инженерный вестник Дона, 2018, №2. URL: ivdon.ru/ru/magazine/archive/n2y2018/4871.

8. Карсян А.Ж., Цуриков А.Н. Разработка алгоритма и программного приложения для реализации математической модели воздействия потока жидкости на тело // Инженерный вестник Дона, 2017, №1. URL: ivdon.ru/ru/magazine/archive/n1y2017/3986.

9. Tsurikov A.N. Application of artificial neural network for identification of stability of bottom layer of atmosphere // Applied and Fundamental Studies: Proceedings of the 2nd International Academic Conference. Publishing House

«Science and Innovation Center» and the International Journal of Advanced Studies. 2013. pp. 226-231.

10. Ландау Л.Д., Лифшиц Е.М. Гидродинамика. М.: Физматлит, 2001. 736

с.

References

1. Stokes G. G. On the theory of oscillatory waves. Math. and Physic. Papers. 1880. Vol. 1. pp. 197-229.

2. Aleshkov Yu.Z. Teoriya voln na poverhnosti tyazholoy zhidkosti [Theory of waves on the surface of a heavy liquid]. L.: Izdatel'stvo Leningradskogo universiteta, 1981. 196 p.

3. Sretenskiy L.N. Teoriya volnovyh dvizheniy zhidkosty [Theory of wave motion of liquid]. M.: Nauka, 1977. 816 p.

4. Barinov V.A., Basinsky K.Yu. Tyumen State University Herald. 2013. № 7. pp. 138-148.

5. Barinov V.A., Basinsky K.Yu. Vestnik Udmurtskogo universiteta. Matematika. Mehanika. Komp'yuternye nauki. 2011. №2. pp. 112-122.

6. Egereva E.N., Zotova Yu.S., P'yanzina A.E. Inzenernyj vestnik Dona (Rus), 2018, №2. URL: ivdon.ru/ru/magazine/archive/N2y2018/4873.

7. Egereva E.N., Idiyatov R.A. Inzenernyj vestnik Dona (Rus), 2018, №2. URL: ivdon.ru/ru/magazine/archive/n2y2018/4871.

8. Karsyan A.Z., Tsurikov A.N. Inzenernyj vestnik Dona (Rus), 2017, №1. URL: ivdon.ru/ru/magazine/archive/n1y2017/3986.

9. Tsurikov A.N. Application of artificial neural network for identification of stability of bottom layer of atmosphere. Applied and Fundamental Studies: Proceedings of the 2nd International Academic Conference. Publishing House «Science and Innovation Center» and the International Journal of Advanced Studies. 2013. pp. 226-231.

10. Ьапёаи Ь.Б., ыгби^ Е.М. 01ёгоёташ1ка [НуёгоёупашкБ]. М.: Р12шаШ1;, 2001. 736 р.