МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Казанский (Приволжский) федеральный университет» ИНСТИТУТ МАТЕМАТИКИ И МЕХАНИКИ ИМ.Н.И. ЛОБАЧЕВСКОГО КАФЕДРА АЭРОГИДРОМЕХАНИКА Направление: 010901.65 – механика Специализация: механика жидкости, газа и плазмы ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА (дипломная работа) ДВУХФАЗНОЕ ТЕЧЕНИЕ В УЗКОМ КАНАЛЕ С ИСТОЧНИКАМИ НА ГРАНИЦЕ Работа завершена: Студент 05-001 группы «____»___________2015 г. (Р.Р.Салахов) Работа допущена к защите: Научный руководитель Кандидат физико-математических наук, доцент "___"_________ 2015 г. ________________ (Е.И.Филатов) Заведующий кафедрой доктор физико-математических наук, профессор "___"_________ 2015 г. _________________ Казань- 2015 (А.Г. Егоров) ОГЛАВЛЕНИЕ ВВЕДЕНИЕ………………………………………………………………………………3 СПЕЦИФИКА МЕТОДА ЭХО….………………………….……………...…………...4 ГЛАВА 1 Математическая постановка задачи………………………………..…………..13 Метод решения…………………………………………….………………….…19 ГЛАВА 2 Тестовая задача…………………………………………………..………………21 Применение схемы Мак – Кормака……………………………………...……..24 Искусственная вязкость…………………………………………………………38 Двумерная задача……………………………………………………………...…43 ГЛАВА 3 Реализация решения……………………………………………………………..50 ВЫВОД………………………………………………………………………………….51 СПИСОК ЛИТЕРАТУРЫ……………………………………………...………………52 ПРИЛОЖЕНИЕ 1………………………………………………………………..….….53 ПРИЛОЖЕНИЕ 2…………………………………………………………………...….59 ПРИЛОЖЕНИЕ 3…………………………………………………………………...….70 2 ВВЕДЕНИЕ Технология ЭХО продукт второй половины 20-го века получил большое развитие последнее время в виду его многочисленных достоинств, таких как высокая применения ручного точность труда, обработки, отсутствия отсутствие остаточных необходимости напряжений в обрабатываемой детали и т.д. В основе этого процесса лежит процесс анодного растворения металлов в проточном электролите. Применение ЭХО по сравнению с механообработкой снижает трудоемкость выполнения операций в 2-10 раз, сокращает, а во многих случаях исключает полностью ручной труд, так же обеспечивает более высокое качество обработки. Электрохимическим способом снимают заусенцы и скругляют острые кромки у различных деталей, прошиваются отверстия, выполняются калибровочные и многие другие операции. Однако для получения высокой точности формообразования детали необходимо уметь рассчитывать гидродинамические характеристики течения, так как они существенно влияют на процесс съема металла с поверхности изготавливаемой детали. Это порождает необходимость разрабатывать эффективные методы математического моделирования течения электролита, который представляет из себя многофазную, электропроводную среду с достаточно сложными свойствами. В данной работе рассматривается применение уравнений Навье – Стокса для описания течений такой среды в межэлектронном зазоре при ЭХО. 3 СПЕЦИФИКА МЕТОДА ЭХО Электрохимическая обработка является сложным процессом, который описывается законами электрохимии, гидродинамики, электромагнитного поля и тепломассообменна. В основе электрохимической обработки металлов и сплавов лежит принцип анодного растворения обрабатываемой заготовки в растворе электролита, прокачиваемого через межэлектродный зазор (МЭЗ) с большой скоростью. То есть, ЭХО основана на способности металлов растворяться, в результате оксидных реакций, происходящих в среде электропроводного раствора – электролита, под действием на него постоянного электрического тока. Такой химический процесс растворения металлов называют электролизом. Электролиз протекает при наличии источника питания электрическим током, электролита и двух металлических проводников, называемых электродами. При наложении напряжения на электроды электрическое поле в электролите заставляет ионы двигаться; анионы (отрицательно заряженные ионы) движутся по направлению к аноду, а катионы (положительно заряженные ионы) – по направлению к катоду. Протекание тока через ячейку от анода к катоду обеспечивается движением, как анионов, так и катионов.[2,9] При осуществлении процесса имеются два электрода, из которых один - заготовка (анод), другой - инструмент (катод), электролит между ними, а также источник питания. Совокупность двух электродов (анода, катода) и электролита между ними называется электролитической ячейкой. Заготовка и инструмент не касаются друг друга и отделены межэлектродным зазором, заполненным соответственно подобранной рабочей средой. Сущность электролиза состоит в осуществлении за счет электрической энергии химических реакций – восстановление частиц на катоде и окисление на аноде. Протекание тока в электролитической ячейке осуществляется посредством движения ионов под действием приложенного внешнего 4 электрического поля. Жидкие растворы, проводящие электрический ток за счет ионной проводимости, называются электролитами. Применяют так называемые сильные электролиты, в которых все молекулы растворенного вещества диссоциируют на анионы и катионы. Например, водный раствор поваренной соли NaCl диссоциирует на Na (катион) и Cl (анион). Кроме этого сама вода содержит ион водорода H и гидроксила OH . При отсутствии внешнего электрического поля (если электроды разомкнуты) ионы движутся в электролите хаотически и электрического тока в нем не наблюдается. При этом на границе раздела твердой и жидкой фазы (металлического электрода и электролита) образуются два электрически заряженных слоя: поверхностный слой металла, заряженный положительно или отрицательно, и слой ионов, имеющий противоположный заряд. Между этими слоями устанавливается определенный потенциал, который называется равновесным. Этот потенциал измеряется относительно стандартного водородного электрода, потенциал которого при всех условиях принимается равным нулю. Подключение электродов ячейки к источнику напряжения сдвигает их потенциалы от равновесных и вызывает протекание электродных процессов. Среди электролитов водный раствор хлористого натрия получил широкое применение из-за его малой стоимости и длительной работоспособности, что обеспечивается непрерывным восстановлением хлористого натрия в растворе. Этот электролит рекомендуется для обработки материалов типа стали, никелевых жаропрочных сталей, а с добавками едкого натрия и для обработки твердых сплавов. Это один из немногих видов энергетического воздействия на материал заготовки, когда электрическая энергия работает напрямую без образования в другие виды энергии. В зависимости от химической природы электролита и электродов, а также значения напряжения, на металлическом катоде обычно выделяется 5 водород или осаждается металл, на аноде происходит растворение металла, которое часто сопровождается выделением кислорода. Это явление получило название электролиза. Основные его законы сформулировал в 1834 г. великий английский физик М. Фарадей. По закону М. Фарадея: количество вещества, осажденного или растворенного при электролизе, пропорционально количеству пропущенного электричества: m Q Где m - масса материала, растворенного с анода, г , - коэффициент пропорциональности (электрохимический эквивалент), Q - количество электричества, пропущенное через электролит, Кл А с . Масса металла, растворимого с анода получается меньше, чем по формуле закона Фарадея, так как количество электричества тратится на: побочные реакции на электродах, образование газов, вторичные реакции. Эти потери учитываются коэффициентом - выходом по току. Он зависит от плотности тока, материала заготовки, скорости прокачки, температуры и степени защелоченности электролита. Коэффициентом выхода металла по току оценивают эффективность процессов ЭХО. Он представляет собой отношение фактического объема растворенного металла при пропускании определенного количества электричества к расчетному объему металла, который должен раствориться при пропускании того же количества электричества. Значение коэффициента выхода по току отражает характер анодного растворения: активное или пассивное. При активном растворении коэффициент выхода металла по току составляет обычно 0.5 - 1.0, при пассивном растворении меньше 0.5. Для нормального протекания электрохимических реакций необходимо обеспечить интенсивный вынос продуктов обработки из межэлектродного промежутка, поэтому электролит должен иметь определенную скорость. При 6 прокачке электролита также необходимо обеспечить равномерный поток, с целью предотвращения перегрева и кипения в результате теплоты фазового превращения, а также появления на детали размывов, обусловленных застойными зонами. Электролит может иметь ламинарный или турбулентный характер течения. Вынос продуктов при турбулентном течении - быстрее. Однако расчет ламинарного потока значительно проще, поэтому в технологических расчетах принимают течение ламинарным. Если электролит протекает со скоростью ниже некоторого критического значения (менее 1-2 м/с), то он не успевает вынести из зазора все продукты обработки, и скорость анодного растворения через некоторое время после начала процесса снижается. Средняя скорость электролита может изменяться в широких пределах (V=5-40 м/c). При таких скоростях число Рейнольдса Re может быть больше критического значения турбулентным, и Re 2300 . рассчитанные Тогда скорости поток жидкости течения будут будет несколько завышенными. Ещё одним из важнейших условий правильного ведения процесса является поддержание заданной плотности тока. Скорость растворения находится в прямой зависимости от плотности тока. Большинство материалов хорошо обрабатываются на установках, питаемых постоянным током. При ЭХО и прохождении рабочего тока через деталь и катод инструмент в межэлектродном промежутке возникает магнитное поле (МП). Взаимодействие МП с током приводит к появлению электромагнитных сил, действующих на поток электролита, обрабатываемую деталь и оснастку. Движение электропроводящей жидкости в магнитном поле индуцирует ЭДС, приводящую к неравномерности распределения электролите и ряду других эффектов. 7 плотности тока в С увеличением плотности тока потенциал анода возрастает таким образом, что становится возможным выделение кислорода. Часть тока, протекающего через ячейку, расходуется на выделение кислорода на аноде, и выход по току для реакции растворения металла не составит 100%. Фактически перенапряжение выделения кислорода с ростом плотности тока увеличивается так быстро, что достигается потенциал разряда хлорид - ионов с образованием хлора. Таким образом, скорость съёма металла увеличивается с возрастанием плотности тока так. Очевидно, что во время электрохимической обработки неизбежен нагрев электролита. Хотя необходимо охлаждение электролита, существуют, тем не менее, преимущества использования электролита с повышенной температурой. С повышением температуры возрастает не только удельная электропроводность электролита, но ускоряются электродные реакции, и снижается перенапряжение, напряжение и, следовательно, энергия, необходимые для поддержания данной плотности тока, уменьшаются с повышением температуры. С повышением температуры увеличивается растворимость продуктов реакции, а давление, нужное для прокачки электролита через зазор с желаемой скоростью, уменьшается. Последнее является следствием понижения вязкости электролита с повышением температуры и также объясняет повышенную электропроводность. С повышением температуры электролита проводимость будет возрастать при повышении температуры на каждый градус Цельсия. Однако эффективная проводимость электролита будет уменьшаться вследствие выделения на катоде пузырьков водорода. На величину и распределение пузырьков влияют условия протекания электролита, а также давление и температура в зазоре. Увеличение давления электролита сверх атмосферного повышает 8 температуру кипения электролита, уменьшает перенапряжение водорода на катоде и, сжимая выделяющийся водород, уменьшает его объем. При повышенных давлениях пузырьки водорода, следовательно, занимают меньший объем в зазоре и вытесняют меньше электролита, следовательно, могут поддерживаться большие плотности тока. Другие факторы, например образование осадков, обычно меньше влияют на проводимость электролита. Все это приводит к тому, что зазор будет конусным, становясь шире или уже в зависимости от того, что преобладает влияние - температуры или пузырьков. Прокачивание электролита препятствует увеличению концентрации ионов у анода и дает возможность достичь больших плотностей тока. Существует и другой фактор, который следует учитывать. Когда ток проходит через металлический или электролитический проводник, последний нагревается. Нагрев может привести к закипанию электролита, что вызовет неравномерное распределение тока и, следовательно, неравномерный съём металла. Поэтому скорость потока электролита должна быть достаточной для предотвращения повышения температуры электролита в зазоре до точки кипения. Вся теплота при анодном растворении заготовки переходит в раствор, а нагрев за счет гидравлических потерь пренебрежимо мал. Таким образом, физические и химические свойства электролитов, важнейшими среди которых являются электропроводность и вязкость, оказывают влияние на характер протекания и результаты процесса. От состава электролита зависят его электропроводность и скорость растворения металла. Для получения высоких технологических показателей процесса необходимо, чтобы: 9 а) в электролите не протекали вовсе или протекали в минимальном количестве побочные реакции, снижающие выход по току; б) растворение заготовки происходило только в зоне обработки; в) на всех участках обрабатываемой поверхности протекал расчетный ток. Таких универсальных электролитов не существует, поэтому при подборе состава электролита приходится в первую очередь учитывать те требования, которые являются определяющими для выполнения операции. При обработке состав электролита меняется. Потеря водорода может привести к понижению электропроводности электролита. Уменьшение количества воды, как в результате испарения, так и с выделяющимся водородом вызывает повышение концентрации раствора и влияет на его электропроводность и вязкость. Образование осадка может увеличить эффективную вязкость электролита и снизить скорость анодного растворения. Поглощение соли осадком снижает концентрацию раствора и может повлиять на его электропроводность. Ионы металла с анода переходят в раствор и могут осаждаться на катоде. Эти изменения означают, что электролит имеет определенный срок службы, который может быть ограничен вследствие необходимости: 1) поддерживать постоянную электропроводность для ускорения процесса и обеспечения точности обработки; 2) предотвращать осаждение на инструменте для обеспечения точности обработки; 3) избегать чрезмерных осадков. 10 Нейтральные растворы, свободные от добавления примесей, меньше подвергаются загрязнению тяжелыми металлами, чем кислотные или электролиты нейтрального типа, состоящие из нескольких компонентов. Очистка электролитов необходима для удаления частиц, попавших в них случайно или образовавшихся в процессе обработки. К таким частицам относятся интерметаллические соединения, находящиеся в металле анода и переходящие в электролит при его растворении, а также гидроокиси металла. Эти частицы могут задерживаться в зазоре и даже перекрывать его. Если частицы электропроводные, то возможны замыкания между анодом и катодом, следовательно, необходимо защитить зазор от попадания в него твердых частиц. На форму детали влияет величина этого зазора. Величина зазора между инструментом и деталью зависит от скоростей движения инструмента и растворения материала детали, т. е. от величины тока. Поэтому способ контроля рабочего зазора является одной из важных особенностей электрохимического используемого процесса. Форма катода-инструмента и детали определяется относительными формой движениями инструмента и детали во время обработки, когда ток пропускают через электролитическую ячейку между фасонным катодом и плоской деталью, распределение плотности тока на поверхности детали определяется формой катода. Плотность тока будет самой большой там, где будет наименьшее расстояние между инструментом и деталью, так, что и скорость съёма металла с детали в этом месте будет максимальной. Если в процессе обработки катод подается по направлению к детали, плотность тока по всей поверхности детали выравнивается и ее поверхность формируется по форме катода. Таким образом, под действием электрического тока происходит растворение материала электрода-заготовки, который в итоге приобретает 11 форму, соответствующую профилю ЭИ (электрода-инструмента). В результате реакции, на обрабатываемой поверхности заготовки образуются продукты обработки, в том числе нерастворимые гидроксилы. Их концентрация в районе протекания анодного растворения в начальный момент превышает концентрацию в электролите. Количество продуктов будет зависеть от скорости анодного растворения. Образовавшиеся продукты анодного растворения уносятся потоком электролита. 12 ГЛАВА 1 1.1 МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ В процессе ЭХО типичное значение ширины МЭП порядка а=0.1 мм, тогда как радиус кривизны поверхности типичных деталей, например, пера лопатки турбины или компрессора, обычно превышает R=100 мм. Таким образом, типичные значения отношения a/R менее 0.01. Поэтому с достаточной степенью точности можно считать обрабатываемую поверхность плоской. Рассмотрим сечение рабочей зоны плоскостью xoy, ось xнаправим по поверхности детали в направлении течения электролита. Пусть h=h(x) – ширина рабочего промежутка, то есть расстояние от поверхности катода до поверхности анода в направлении, нормальному к поверхности анода. Будем считать, что поверхность детали меняется со временем только за счет съема металла, тогда как поверхность катода может меняться по заданному закону. Съем металла за малый промежуток времени t : h a ja t , met (1.1) где a - выход по току анодной реакции(заданная функция локальной плотности тока j), a - электрохимический эквивалент обрабатываемого металла, - плотность обрабатываемого металла. Плотность тока на границе jопределяется выражением: j h где x1 0 dy x uc h j x , (1.2) - электропроводность рабочего промежутка, uc - разность потенциалов на электродах, 1 u c u a , uc и ua - потери напряжения uc ua 13 на катоде и аноде, заданные функции от j. Электропроводность электролита определяется выражением [1]: 0 1 1 T T0 , 1.5 (1.3) где 0 - электропроводность электролита при температуре T0 , газосодержание электролита, - температурный коэффициент. Так как электропроводность зависит от гидродинамических параметров электролита, то для расчета съема металла необходимо рассматривать течение электролита в рабочем зазоре. Электролит будем считать двухфазной смесью несжимаемой жидкости (водный раствор соли) и газа (водород, выделяющийся в процессе реакции). Будем считать, что часть объема 1 занята жидкостью, а часть - газом. Используем односкоростную модель течения смеси, то есть будем пренебрегать разностью скоростью фаз. Это достаточно хорошее предположение, так как пузырьки при очень малой массе обладают достаточно большим сопротивлением. Тогда уравнение сохранения массы для каждой фазы можно записать в виде [1]: f f vx f v y 0 t x y h h vx h v y 0 t x y (1.4) (1.5) где f 1 0f , h h0 , 0f и h0 - истинные плотности жидкости и газа, vx и v y - компоненты скорости. Следуя модели Х.А.Рахматуллина, будем считать, что давление газа и жидкости равны: p f ph p . Запишем уравнение Навье – Стокса в общем виде: 14 p vx vx2 vxvy xx xy t x y x x y (1.6) p vy vx v y v y2 xy yy t x y y x y (1.7) vx vy 2 vx v y 2 v y vx , xy . , xx 2 3 x y 3 y x y x где xx 2 В приближении узкого канала мы можем пренебречь p в уравнении y (1.7),из соображения малости изменения давления по оси y. Далее в выражениях для xx , xy , yy мы пренебрегаем производными по оси x в силу малости изменения компонент скорости vx и v y вдоль канала. Таким образом, сделав данные упрощения и подставив xx , xy , yy в уравнения (1.6) (1.7) получаем систему уравнений Навье – Стокса для каждой фазы: v f vx 1 p f vx2 1 vx vy 0f f x 0 t x y y (1.8) 4 v f vy f vx vy f vy2 1 f y 0 t x y 3 y (1.9) v hvx p hvx2 vxvy h0 h x 0 t x y y (1.10) 4 v h v y h vx v y h v y2 h x 0 t x y 3 y (1.11) Запишем уравнение энергии в полной форме: T Tvx pvx qx Tvy pvy qy vx xx vy xy t x y x vx yx v y yy Q y 15 (1.12) где T - температура, Q j 2 - джоулев нагрев, qx и q y - проекции притока тепла за счет теплопроводности по закону Фурье. В правой части уравнения (1.12) оставляем только джоулев нагрев, остальными пренебрегаем в силу малости работы внутренних сил на нагрев. В левой части так же в силу малости пренебрегаем членами qx и q y . В силу этих упрощений мы получаем следующее уравнение энергии: f T f f T f vx pvx f T f vy pv y Q t x y (1.13) Для газовой фазы принимаем Th T f T . Уравнение состояния водорода: p R0 h0T g (1.14) где g - молекулярная масса водорода. Уравнение состояния жидкой фазы: 0f const Складывая уравнение (1.8) с (1.10) и (1.9) с (1.11) и пренебрегая отношением h f по сравнению с единицей, получаем динамические уравнения для смеси в целом: u u p u 2 uv 0 t x y y (1.15) 4 v v uv v 2 0 t x y 3 y (1.16) где f , u vx , v v y , 1 f h . 16 Мы получили систему из двух уравнений неразрывности (1.4) и (1.5), уравнения энергии (1,13) и двух динамических уравнений для смеси в целом (1.15) и(1.16). Удобно записать всю систему уравнений в векторном виде: A B C Q t x y Здесь векторы A , B , С и D характеризуются следующими матрицами компонентов: 1 0f A1 0 h A2 A 1 0f u A3 ; A4 0 1 f v 1 0 T A5 f 1 0f u B1 0 h u B 2 B p 1 0f u 2 B3 ; B 4 0 1 f uv 1 0 Tu B5 f 1 0v f C1 0 v h C2 u 0 С 1 f uv C 3 ; y C 4 4 v 0 2 1 f v C 5 3 y 1 0 Tv f 0 Q1 j Q 2 Q 0 Q3 ; 0 Q 4 Q Q5 (1.17) Данная система уравнений решается при следующих граничных условиях: На входе в канал при x=0 заданы входное давление pi , температура Ti , газосодержание i , а также v 0 . На выходе давление равно давлению окружающей среды pout , остальные параметры свободны. На аноде при y=0: u v 0 , остальные параметры свободны. На катоде при y=h(x): u 0 , газонаполнение равно некоторому постоянному значению c const , зависящему от размеров первичных пузырьков, поперечная скорость 17 электролита определяется расходом q x j 1 c 0f c 0f v v , то есть свободны. 18 газа v с q x поверхности катода , остальные параметры 1.2 МЕТОД РЕШЕНИЯ Для решения системы уравнений (1.17) использовался двухшаговый метод Мак-Кормака. [6,7] Данный метод один из наиболее используемых при решении задач газовой динамики. Данный метод обладает тем неоспоримым преимуществом, что не требует использования полуузлов. Рассмотрим данную схему на простом примере одномерного линейного уравнения переноса (2.17). u u c 0 t x с 0 ; (2.17) Первый шаг данной схемы – предиктор (2.18)(шаблон на рис.1): uin 1 uin c t n ui 1 uin ; x (2.18) Второй шаг данной схемы – корректор (2.19)(шаблон на рис.2): uin 1 1 n t ui uin 1 c uin 1 uin11 ; 2 x Рис.1(шаблон шага предиктор) (2.19) Рис.2(шаблон шага корректор) Можно делать наоборот: в предикторе использовать разности назад, а в корректоре – разности вперед. Можно при расчете чередовать эти варианты. Схема Мак – Кормака обладает вторым порядком точности с погрешностью аппроксимации O t 2 , x 2 . Условием устойчивости является условие КФЛ: c t 1. x Применим схему Мак – Кормака для системы уравнений (1.17). Первый шаг (предиктор) будет выглядеть следующим образом: A1in,j1 A1in, j t t B1in1, j B1in, j (C1in, j 1 C1in, j ) tQ1i , j ; x y 19 A2in,j1 A2in, j t t B 2in1, j B 2in, j (C 2in, j 1 C 2in, j ) tQ2i , j ; x y A3in,j1 A3in, j t t B3in1, j B3in, j (C3in, j 1 C3in, j ) tQ3i , j ; x y A4in,j1 A4in, j t t B 4in1, j B 4in, j (C 4in, j 1 C 4in, j ) tQ4i , j ; x y A5in,j1 A5in, j t t B5in1, j B5in, j (C5in, j 1 C5in, j ) tQ5i , j ; x y Второй шаг (корректор): 1 t t A1in,j1 A1in, j A1in,j1 B1in,j1 B1in1,1 j C1in,j1 C1in,j11 tQ1i , j ; 2 x y 1 t t A2in,j1 A2in, j A2in,j1 B 2in,j1 B 2in1,1 j C 2in,j1 C 2in,j11 tQ2i , j ; 2 x y 1 t t A3in,j1 A3in, j A3in,j1 B3in,j1 B3in1,1 j C 3in,j1 C 3in,j11 tQ3i , j ; 2 x y 1 t t A4in,j1 A4in, j A4in,j1 B 4in,j1 B 4in1,1 j C 4in,j1 C 4in,j11 tQ4i , j ; 2 x y 1 t t A5in,j1 A5in, j A5in,j1 B5in,j1 B5in1,1 j C 5in,j1 C 5in,j11 tQ5i , j ; 2 x y где B1in,j1 1 i , j 0f ui , j ; B2in,j1 i, j h0i , j ui , j ; B 4in,j1 1 i , j 0f ui , j vi , j ; C 2in,j1 i , j h0vi , j ; A1in,j1 0f ; B3in,j1 pi , j 1 i , j 0f ui2, j ; B5in,j1 1 i , j 0f Ti , j ui , j ; C1in,j1 1 i , j 0f vi , j ; C 3in,j1 1 i , j 0f ui , j vi , j ui , j 1 ui , j ; 4 C 3in,j1 1 i , j 0f vi2, j vi , j 1 vi , j ; 3 i , j 1 h0i ,i A2in,j1 A1in,j1 ; ui , j 20 C 3in,j1 1 i , j 0f Ti , j vi , j ; A3in,j1 ; A1in,j1 vi , j A4in,j1 A1in,j1 ; Ti , j A5in,j1 A1in,j1 ; ГЛАВА 2 2.1 ТЕСТОВАЯ ЗАДАЧА Поскольку сформулированная задача является весьма сложной и малоисследованной, возможность применения численного метода Мак Кормака не является тривиальным, поэтому сначала исследуем свойства метода на простой тестовой задаче о движении волны в ударной трубе.[7] Ударная труба – это экспериментальная установка, представляющая собой длинную трубу с закрытыми торцами, разделенную диафрагмой на две камеры: короткую – высокого давления и длинную – низкого давления. Когда диафрагма разрывается, на границе прежде разделенных газов образуется разрыв параметров – давления, плотности и т.д., который через короткое время образует ударную волну, движущуюся в направлении низкого давления со сверхзвуковой скоростью. За ударной волной формируется область повышенного давления, вслед за которой движется волна разрежения. Ударная волна отражается от стенки в торце трубы и движется в обратном направлении, еще раз повышая давление в торцевой части трубы. С хорошей точности можно считать этот процесс одномерным (т.е. параметры газа постоянны в любом сечении, перпендикулярном оси трубы), а газ – идеальным. Для простоты не будем рассматривать процесс формирования ударной волны и ограничимся рассмотрением той части газа высокого давления, куда не дошли волны разрежения. Будем считать течение адиабатическим (но не изоэнтропическим). Уравнения нестационарного одномерного движения невязкого газа получим из (2.1)-(2.5). u v w 0; t x y z (2.1) u u 2 p xx uv xy uw xz 0; t x y z (2.2) 21 Так v uv yx v 2 p yy vw yz 0; t x y z (2.3) w uw zx vw zy w2 p zz 0; t x y z (2.4) E Q Eu pu u xx v xy w xz qx t t x Ev pv u yx v yy w yz q y y Ew pw u zx v zy w zz qz 0; z (2.5) как параметры газа постоянны в любом сечении, перпендикулярном оси трубы производные по y и z тождественно равны нулю. Также нулю равны компоненты скорости v и w . Так как газ считается идеальным то все компоненты ij так же равны нулю. Приняв во внимание данные упрощения мы можем записать уравнения нестационарного одномерного движения невязкого газа (2.6)-(2.11). Данные уравнения получаются из предыдущих, если мы берем только газовую фазу и одномерное приближение: u 0; t x (2.6) u u 2 p 0; t x (2.7) E E p u 0; t x (2.8) E e u2 ; 2 (2.9) p R T ; (2.10) p ; (2.11) a2 Начальные условия следующие: ударная волна находится в положении x x0 при t 0 перед ударной волной (справа) находится невозмущенный газ с параметрами p0 , 0 , e0 , T0 , u0 0 ; слева параметры газа p1 , 1 , e1 , T1 , u1 определятся 22 скоростью движения ударной волны D и могут быть вычислены по обычным формулам, следующим из условий Гюгонио: p1' p1 2 1 M 2 ; p0 1 1 (2.12) 1 ' 1 1 2 1 ; 0 1 1 M 2 (2.13) u1 2 1 M ; a0 1 M (2.14) u1' Здесь M D ; a0 Граничные условия следующие. Считаем что область с постоянными значениями параметров газа p1 , 1 , e1 , u1 простирается достаточно далеко влево от сечения x 0 ; справа при x L - твердая стенка, на которой u 0 . Безразмерные переменные введем следующим образом: ta0 ; L x' x ; L t' T' RT ; a02 R0 R . u' u ; a0 ' ; 0 p' p ; p0 e' e ; a02 В новых переменных уравнения (2.6)-(2.11) сохраняют свой вид неизменным, за исключением уравнения Клайперона, которое перепишется в виде: p' 'T ' . Термодинамическое и калорическое уравнения состояния будут выглядеть следующим образом: u '2 p ' ' 1 E ' ; 2 e' 1 p' ; 1 ' (2.15) (2.16) 23 ПРИМЕНЕНИЕ СХЕМЫ МАК - КОРМАКА 2.2 Применим схему Мак – Кормака для системы уравнений (2.6)-(2.11). Перед этим будет удобнее представить систему уравнений в следующем виде: A B 0; t x A1 где A u A2 ; E A3 (2.20) u B1 2 B u p B 2 ; E p u B3 Первый шаг (предиктор) будет выглядеть следующим образом: A1in 1 A1in t B1in1 B1in ; x A2in 1 A2in t B2in1 B2in ; x A3in 1 A3in t B3in1 B3in ; x Второй шаг (корректор): 1 t A1in 1 A1in A1in 1 B1in 1 B1in11 ; 2 x 1 t A2in 1 A2in A2in 1 B 2in 1 B 2in11 ; 2 x 1 t A3in 1 A3in A3in 1 B3in 1 B3in11 ; 2 x где B1in 1 i ui ; i A1in1; ui B 2in 1 i ui2 pi ; A2in 1 ; A1in 1 Ei B3in 1 i Ei pi ui ; A3in 1 ; A1in 1 u2 pi i 1 Ei i ; 2 Для данной задачи была написана программа (приложение 1). Расчеты производились при разных числах Маха М 1.1, М 2, М 5 , Шаг по времени( t 0.004, t 0.0004 ), шаг по пространству ( x x 1 ). 100 24 1 , 30 В поставленной задачи условие устойчивости КФЛ выглядит следующим образом: u ' a' xt 1; Следовательно, устойчивость зависит не только от отношения шага по времени к шагу по пространству, но и от числа Маха. u ' a' xt u ' a' xt u ' a' xt M 1.1 M 2 M 5 t 0.004 x 1 30 0,142 0,305 0,768 t 0.004 x 1 100 0,476 1,019 2,563 t 0.0004 x 1 30 0,014 0,03 0,076 t 0.0004 x 1 100 0,048 0,101 0,256 Таблица 1: Устойчивость решения Как видно из Таблицы 1 при t 0.004 и x 1 условие устойчивости 100 не выполняется при числах Маха M 2 и M 5 . Расчет был проведен и при данных значениях решение “разваливалось”. Результаты остальных расчетов приведены на рисунках 2-38. На каждом графике представлены три кривые которые соответствуют начальному распределению, распределению после отскока от стенки и промежуточному значению. 25 Рис.3:Распределение давления при числе Маха = 1.1, t 0.004, x 1 ; 30 Рис.4:Распределение давления при числе Маха = 2, t 0.004, x 1 ; 30 Рис.5:Распределение давления при числе Маха = 5, t 0.004, x 1 ; 30 26 Рис.6:Распределение плотности при числе Маха = 1.1, t 0.004, x 1 ; 30 Рис.7:Распределение плотности при числе Маха = 2, t 0.004, x 1 ; 30 Рис.8:Распределение плотности при числе Маха = 5, t 0.004, x 1 ; 30 27 Рис.9:Распределение скорости при числе Маха = 1.1, t 0.004, x 1 ; 30 Рис.10:Распределение скорости при числе Маха = 2, t 0.004, x 1 ; 30 Рис.11:Распределение скорости при числе Маха = 5, t 0.004, x 1 ; 30 28 Рис.12:Распределение энергии при числе Маха = 1.1, t 0.004, x 1 ; 30 Рис.13:Распределение энергии при числе Маха = 2, t 0.004, x 1 ; 30 Рис.14:Распределение энергии при числе Маха = 5, t 0.004, x 1 ; 30 29 Рис.15:Распределение давления при числе Маха = 1.1, t 0.0004, x 1 ; 30 Рис.16:Распределение давления при числе Маха = 2, t 0.0004, x 1 ; 30 Рис.17:Распределение давления при числе Маха = 5, t 0.0004, x 1 ; 30 30 Рис.18:Распределение плотности при числе Маха = 1.1, t 0.0004, x 1 ; 30 Рис.19:Распределение плотности при числе Маха = 2, t 0.0004, x 1 ; 30 Рис.20:Распределение плотности при числе Маха = 5, t 0.0004, x 1 ; 30 31 Рис.21:Распределение скорости при числе Маха = 1.1, t 0.0004, x 1 ; 30 Рис.22:Распределение скорости при числе Маха = 2, t 0.0004, x 1 ; 30 Рис.23:Распределение скорости при числе Маха = 5, t 0.0004, x 1 ; 30 32 Рис.24:Распределение энергии при числе Маха = 1.1, t 0.0004, x 1 ; 30 Рис.25:Распределение энергии при числе Маха = 2, t 0.0004, x 1 ; 30 Рис.26:Распределение энергии при числе Маха = 5, t 0.0004, x 1 ; 30 33 Рис.27:Распределение давления при числе Маха = 1.1, t 0.0004, x 1 ; 100 Рис.28:Распределение давления при числе Маха = 2, t 0.0004, x 1 ; 100 Рис.29:Распределение давления при числе Маха = 5, t 0.0004, x 1 ; 100 34 Рис.30:Распределение плотности при числе Маха = 1.1, t 0.0004, x 1 ; 100 Рис.31:Распределение плотности при числе Маха = 2, t 0.0004, x 1 ; 100 Рис.32:Распределение плотности при числе Маха = 5, t 0.0004, x 1 ; 100 35 Рис.33:Распределение скорости при числе Маха = 1.1, t 0.0004, x 1 ; 100 Рис.34:Распределение скорости при числе Маха = 2, t 0.0004, x 1 ; 100 Рис.35:Распределение скорости при числе Маха = 5, t 0.0004, x 1 ; 100 36 Рис.36:Распределение энергии при числе Маха = 1.1, t 0.0004, x 1 ; 100 Рис.37:Распределение энергии при числе Маха = 2, t 0.0004, x 1 ; 100 Рис.38:Распределение энергии при числе Маха = 5, t 0.0004, x 1 ; 100 37 ИСКУССТВЕННАЯ ВЯЗКОСТЬ 2.3 Метод Мак - Кормака не обладает схемной вязкостью, что приводит к значительным осцилляциям получаемого решения. Существуют различные способы искусственного введения схемной вязкости. Дополнительно вводимый член выбирают так, чтобы они были существенны только в областях с большими градиентами. Они должны подавлять коротковолновые возмущения и не трогать длинноволновые. В этом случае РС удовлетворяет условию роста энтропии при переходе через скачок. Рассмотрим закон Стокса: p ij эi э j - тензор напряжений; p p x i , t - гидростатическое давление; T ij эi э j - вязкий тензор; Линейный закон Стокса связывает тензор напряжений с гидростатическим давлением и вязким тензором. p G T ; (2.21) T 1divv G 2 E ; (2.22) Здесь G - метрический тензор, 1 - второй коэффициент вязкости, коэффициент динамической вязкости, E eij эi э j - тензор скоростей деформации. Подставляя (3.2) в (3.1) получаем следующее выражение: pij p divv gij 2eij. (2.23) Здесь - обычный коэффициент динамической вязкости, а где 2 , 3 в данном случае второй объемный коэффициент вязкости. В стандартной модели вязкой жидкости (газа) полагают 0 . Если же, наоборот, предположить, что 0 , а 0 , то и вместо уравнений (2,6)- 38 (2,8) для полностью невязкого газа мы получим следующий их аналог для “объемно вязкого” газа: где ' u 0; t x (2.24) u 1 ' u u 2 p ; t x Re x x (2.25) E 1 ' u E p u u ; t x Re x x (2.26) uL , Re 0 0 , параметры с индексом (0) – характерные 0 0 масштабы, остальные величины - безразмерные. Введем в рассмотрении коэффициент диффузии , построенный на объемной вязкости в виде: ' Re 0u0 L 1 ; Re Тогда система (2.24)-(2.26) запишется в виде, аналогичном (2.20): A B 0; t x A1 где A u A2 ; E A3 (2.27) u B1 u 2 B u p B 2 ; x B3 u E p u u x По сравнению с (2.20) здесь добавилось только по одному слагаемому к компонентам B 2 и B3 матрицы B , и следовательно, вся схема расчета разностным методом может быть сохранена прежней. Фон Нейман и Рихтмайер предлагают для выражение: b x 2 u ; x (2.28) где b - произвольный коэффициент, подбираемый из условия наилучшего сглаживания решения, величина порядка единицы. 39 Влияние данного коэффициента можно видеть на рисунках 39-42при M 5, t 0, 0004, x 1 : 30 Рис.39:Распределение давления с разными коэффициентами b. Рис.40:Распределение плотности с разными коэффициентами b. 40 Рис.41:Распределение скорости с разными коэффициентами b. Рис.42:Распределение энергии с разными коэффициентами b. Из графиков видно, что осцилляции уменьшаются с ростом коэффициента b. Для сравнения решений полученных для невязкого газа с решениями полученными для газа с введенной искусственной вязкостью был выбран коэффициент b=0,7. На рисунках 43-46 приведены полученные результаты при M 5, t 0, 0004, x 1 : 30 Рис.43:Сравнение распределения давления вязкого и невязкого газа 41 Рис.44:Сравнение распределения плотности вязкого и невязкого газа Рис.45:Сравнение распределения плотности вязкого и невязкого газа Рис.46:Сравнение распределения энергии вязкого и невязкого газа 42 Из данных графиков видно, что введение искусственной вязкости уменьшило осцилляции, особенно её эффект проявляется при отражении. 2.4 ДВУМЕРНАЯ ЗАДАЧА Двумерную задачe так же как и одномерную будем получать из системы уравнений (2.1)-(2.5). Принимая во внимания все те же упрощения кроме равенства нулю производной по y . Поэтому система уравнений для двумерной задачи о движении ударной волны будет выглядеть следующим образом: u v 0; t x y (2.28) u u u 2 p uv 0; t x y y (2.29) v 4 v uv v 2 p 0; t x y 3 y (2.30) E E p u E p v 0; t x y (2.31) E e u2 ; 2 (2.32) p R T ; (2.33) p ; (2.34) a2 Метод Мак – Кормака для уравнений (2.28)-(2.34) будет так же как для одномерной задачи с добавкой производной по y . A B C 0; t x y 43 (2.35) A1 u A2 где A ; v A3 E A4 v С1 u B1 u uv 2 y С 2 u p B 2 B ; ; С v 2 p 4 v С 3 uv B3 E p u B 4 3 y С 4 E p v Первый шаг (предиктор): A1in 1 A1in t t B1in1 B1in (C1in1 C1in ); x y A2in 1 A2in t t B 2in1 B 2in (C 2in1 C 2in ); x y A3in 1 A3in t t B3in1 B3in (C3in1 C3in ); x y A4in 1 A4in t t B 4in1 B 4in (C 4in1 C 4in ); x y Второй шаг (корректор): 1 t t A1in 1 A1in A1in 1 B1in 1 B1in11 C1in 1 C1in11 2 x y ; 1 t t A2in 1 A2in A2in 1 B 2in 1 B 2in11 C 2in 1 C 2in11 2 x y ; 1 t t A3in 1 A3in A3in 1 B3in 1 B3in11 C 3in 1 C 3in11 ; 2 x y 1 t t A4in 1 A4in A4in 1 B 4in 1 B 4in11 C 4in 1 C 4in11 2 x y где B1in 1 i ui ; B3in 1 i ui vi ; С 4in 1 i Ei pi vi ; 44 ; B 4in 1 i Ei pi ui ; 4 С 2in1 i ui vi ui 1 ui ; С 3in 1 i vi2 pi vi 1 vi ; 3 C1in1 i vi ; B 2in 1 i ui2 pi ; i A1in1; ui A2in 1 ; A1in 1 vi A3in 1 ; A1in 1 Ei A4in 1 ; A1in 1 u2 pi i 1 Ei i ; 2 Для данной задачи была написана программа (приложение 2). Расчеты производились при числе Маха M 2 , разбиение сетки n 11; m 11 . Характерная длина трубы равна 1м , а ширина 0.01м , шаг по времени равен 0.0004. Были получены следующие результаты, которые представлены на рисунках 47-60: Y(M) 0 X(M) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.3 1.25 1.2 1.15 1.1 1.05 1 0.95 0.9 0.85 0.8 0.75 0.7 0.65 0.6 0.55 0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 -0.05 Рис.47:Начальное распределение скорости Y(M) 0 X(M) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Рис.48:Начальное распределение давления 45 4.6 4.4 4.2 4 3.8 3.6 3.4 3.2 3 2.8 2.6 2.4 2.2 2 1.8 1.6 1.4 1.2 1 0.8 Y(M) 0 X(M) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2 1.9 1.8 1.7 1.6 1.5 1.4 1.3 Рис.49:Начальное распределение плотности Y(M) 0 X(M) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 3.05 3 2.95 2.9 2.85 2.8 2.75 2.7 2.65 2.6 2.55 2.5 2.45 2.4 2.35 2.3 2.25 2.2 2.15 2.1 2.05 2 1.95 1.9 1.85 1.8 1.75 Рис.50:Начальное распределение энергии 1.45 1.35 1.25 1.15 1.05 0.95 0.85 0.75 0.65 0.55 0.45 0.35 0.25 0.15 0.05 -0.05 Рис.51:Распределение скорости(u) до отражения 46 0.0065 0.006 0.0055 0.005 0.0045 0.004 0.0035 0.003 0.0025 0.002 0.0015 0.001 0.0005 -8.67361737988 -0.0005 -0.001 -0.0015 -0.002 -0.0025 -0.003 -0.0035 -0.004 -0.0045 -0.005 -0.0055 -0.006 -0.0065 -0.007 Рис.52:Распределение скорости(v) до отражения 4.2 4 3.8 3.6 3.4 3.2 3 2.8 2.6 2.4 2.2 2 1.8 1.6 1.4 Рис.53:Распределение плотности до отражения 5.2 5 4.8 4.6 4.4 4.2 4 3.8 3.6 3.4 3.2 3 2.8 2.6 2.4 2.2 2 1.8 1.6 1.4 1.2 1 Рис.54:Распределение давления до отражения 47 3.5 3.4 3.3 3.2 3.1 3 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2 1.9 1.8 1.7 Рис.55:Распределение энергии до отражения 0.24 0.2 0.16 0.12 0.08 0.04 -5.5511151231 -0.04 -0.08 -0.12 -0.16 -0.2 -0.24 -0.28 -0.32 -0.36 Рис.56:Распределение скорости (u) после отражения 0.002 0.0018 0.0016 0.0014 0.0012 0.001 0.0008 0.0006 0.0004 0.0002 0 -0.0002 -0.0004 -0.0006 -0.0008 -0.001 -0.0012 -0.0014 -0.0016 -0.0018 -0.002 -0.0022 Рис.57:Распределение скорости (u) после отражения 48 4.3 4.2 4.1 4 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2 1.9 1.8 1.7 Рис.58:Распределение плотности после отражения 5.6 5.4 5.2 5 4.8 4.6 4.4 4.2 4 3.8 3.6 3.4 3.2 3 2.8 2.6 2.4 2.2 2 1.8 Рис.59:Распределение давления после отражения 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2 1.9 1.8 Рис.60:Распределение энергии после отражения 49 ГЛАВА 3 3.1 РЕАЛИЗАЦИЯ РЕШЕНИЯ Для решения задачи о течении электролита в МЭЗ поставленной в 1 главе была написана программа (приложение 3), которая состоит из нескольких блоков, а именно предиктора и корректора по методу Мак – Кормака, определения примитивных переменных ( u, v, p, ,T ), вычисления невязки получаемых решений. Расчет данной задачи не дал внятных результатов. Полученные результаты были физически неправильными и невозможными. Были попытки изменения граничных условий на входе и выходе, которые не привели к улучшению получаемых решений. Так же была попытка упрощения данной задачи путем задания постоянной температуры во всей области, которое приводит к прямой зависимости давления от плотности p x, y x, y, , но данное упрощение не помогло получить результат. Не удалось смоделировать течение электролита в МЭЗ, следовательно, не получилось приступить к главной задаче о съеме метала. 50 ВЫВОД Явная схема Мак – Кормака справилась с задачей о распространении ударной волны, но оказалась непригодной для решения задачи о течении электролита, возможно при подборе более подходящих граничных условий данный метод сработает, но спектр таких граничных условий очень узок, поэтому их очень сложно подобрать. Для решения данной задачи нужно использовать неявные схемы, которые являются наиболее устойчивыми, и дадут более обширный спектр подбора граничных условий к данной задаче. 51 СПИСОК ЛИТЕРАТУРЫ [1] Филатов Е.И. Моделирование течения электролита при ЭХО на базе уравнений Навье-Стокса. - Набережные Челны: Камская государственная инженерно-экономическая академия, 2010. – 158-160с. [2] Каримов А.Х., Клоков В.В., Филатов Е.И. Методы расчета электрохимического формообразования. – Казань: изд. Казанского университета, 1990. – 385 с. [3] Андерсон Д., Таннехилл Дж., Плетчер Р. Вычислительная гидромеханика и теплообмен.- Москва: Мир, 1990. Т. 2-728 с. [4] Сборник научных трудов: Электродные процессы и технология электрохимического формообразования.-Кишинев: Штиинца, 1987.-203 с. [5] Нигматулин Р.И. Механика сплошной среды.- ГЕОТАР – Медиа, 2014.- 640 с. [6] Филатов Е.И. Численные методы газовой динамики.-2-е изд., испр и доп. – Казань: Казанский университет, 2011. – 84 с. [7] Флетчер.К. Вычислительные методы в динамике жидкостей: в 2-х томах: Т. 1:Пер. с англ. - М: Мир, 1991. – 504 с. [8] Флетчер.К. Вычислительные методы в динамике жидкостей: в 2-х томах: Т. 2:Пер. с англ. - М: Мир, 1991. – 552 с. [9] http://www.indec-ecm.com/ (ООО «ECM»), 2015. 52 ПРИЛОЖЕНИЕ 1 Программа расчета газодинамических характеристик при движении ударной волны в ударной трубе. // udarvolna.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "iostream" #include "fstream" #include "vector" using namespace std; int i, j; const int n=31,m=15; const double lx=1.0; double dx=lx/n, dt=0.0005, tx=dt/dx, t, k=1.4, Max=2.0; double eps1, eps2, eps3, eps4, eps5, eps6; double e[n],u[n],r[n],p[n],ee[n],uu[n],rr[n],pp[n]; double a1[n],a2[n],a3[n],aa1[n],aa2[n],aa3[n]; double b1[n],b2[n],b3[n],bb1[n],bb2[n],bb3[n]; void vivod () { ofstream f("u.txt"); for(int i=0;i<n;i++) { f<<i<<" "<<u[i]<<endl; } f.close(); ofstream l("e.txt"); for(int i=0;i<n;i++) 53 { l<<i<<" "<<e[i]<<endl; } l.close(); ofstream q("p.txt"); for(int i=0;i<n;i++) { q<<i<<" "<<p[i]<<endl; } q.close(); ofstream y("r.txt"); for(int i=0;i<n;i++) { y<<i<<" "<<r[i]<<endl; } y.close(); } void pred () { for(i=1; i<n-1; i++) { aa1[i]=a1[i]+tx*(b1[i]-b1[i+1]); aa2[i]=a2[i]+tx*(b2[i]-b2[i+1]); aa3[i]=a3[i]+tx*(b3[i]-b3[i+1]); rr[i]=aa1[i]; uu[i]=aa2[i]/aa1[i]; ee[i]=aa3[i]/aa1[i]; pp[i]=(k-1)*aa1[i]*ee[i]; 54 rr[0]=rr[1]; uu[0]=uu[1]; ee[0]=ee[1]; pp[0]=pp[1]; rr[n-1]=rr[n-2]; uu[n-1]=-uu[n-2]; ee[n-1]=ee[n-2]; pp[n-1]=pp[n-2]; } } void bbcom () { for(i=0; i<n; i++) { bb1[i]=rr[i]*uu[i]; bb2[i]=rr[i]*uu[i]*uu[i]+pp[i]; bb3[i]=uu[i]*(rr[i]*ee[i]+pp[i]); } } void correc () { for(i=1; i<n-1; i++) { a1[i]=(a1[i]+aa1[i]+tx*(bb1[i-1]-bb1[i]))/2; a2[i]=(a2[i]+aa2[i]+tx*(bb2[i-1]-bb2[i]))/2; a3[i]=(a3[i]+aa3[i]+tx*(bb3[i-1]-bb3[i]))/2; r[i]=a1[i]; u[i]=a2[i]/a1[i]; 55 e[i]=a3[i]/a1[i]; p[i]=(k-1)*a1[i]*e[i]; r[0]=r[1]; u[0]=u[1]; e[0]=e[1]; p[0]=p[1]; r[n-1]=r[n-2]; u[n-1]=-u[n-2]; e[n-1]=e[n-2]; p[n-1]=p[n-2]; } } void bcom () { for(i=0; i<n; i++) { b1[i]=r[i]*u[i]; b2[i]=r[i]*u[i]*u[i]+p[i]; b3[i]=u[i]*(r[i]*e[i]+p[i]); } } int _tmain(int argc, _TCHAR* argv[]) { for(i=0; i<m; i++) { r[i]=k/((k-1)/(k+1)+2/(k+1)/Max/Max); p[i]=2*k/(k+1)*Max*Max-(k-1)/(k+1); u[i]=(2*Max-2/Max)/(k+1);//((Max-1/Max)*2)/(k+1); 56 e[i]=p[i]/(k-1)/r[i]; } for(i=m; i<n; i++) { r[i]=1.4; u[i]=0.0; e[i]=1.7857; p[i]=1.0; } for(i=0; i<n; i++) { a1[i]=r[i]; a2[i]=r[i]*u[i]; a3[i]=r[i]*e[i]; b1[i]=r[i]*u[i]; b2[i]=r[i]*u[i]*u[i]+p[i]; b3[i]=u[i]*(r[i]*e[i]+p[i]); } t=0; do { pred(); bbcom(); correc(); bcom(); t=t+dt; }while(t<20*dt); vivod (); 57 system ("pause"); return 0; } 58 ПРИЛОЖЕНИЕ 2 Программа расчета газодинамических характеристик при движении ударной волны в ударной трубе (двумерный случай). // prosto.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "iostream" #include "fstream" #include "vector" using namespace std; int i, j; const int n=11, m=11, l=5; const double lx=1.0, ly=0.01, Mu=0.0001; double dx=lx/(m-1), dy=ly/(n-1), dt=0.0004, tx=dt/dx, ty=dt/dy, t, k=1.4, Max=2.0; double eps1, eps2, eps3, eps4, eps5, eps6; double e[n][m],u[n][m],v[n][m],r[n][m],p[n][m],ee[n][m],uu[n][m],vv[n][m],rr[n][m],pp[n ][m]; double a1[n][m],a2[n][m],a3[n][m],a4[n][m],aa1[n][m],aa2[n][m],aa3[n][m],aa4[n][m]; double b1[n][m],b2[n][m],b3[n][m],b4[n][m],bb1[n][m],bb2[n][m],bb3[n][m],bb4[n][m]; double c1[n][m],c2[n][m],c3[n][m],c4[n][m],cc1[n][m],cc2[n][m],cc3[n][m],cc4[n][m]; void vivod () { ofstream z("y.txt"); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) 59 { z<<" "<<i*dy<<endl; } } z.close(); ofstream o("x.txt"); for(int i=0;i<n ;i++) { for(int j=0;j<m;j++) { o<<" "<<i*dy<<" "<<j*dx<<endl; } } o.close(); ofstream f("u.txt"); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { f<<j*dx<<" "<<i*dy<<" "<<u[i][j]<<endl; } } f.close(); ofstream l("e.txt"); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { 60 l<<j*dx<<" "<<i*dy<<" "<<e[i][j]<<endl; } } l.close(); ofstream q("p.txt"); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { q<<j*dx<<" "<<i*dy<<" "<<p[i][j]<<endl; } } q.close(); ofstream y("r.txt"); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { y<<j*dx<<" "<<i*dy<<" "<<r[i][j]<<endl; } } y.close(); ofstream s("v.txt"); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { s<<j*dx<<" "<<i*dy<<" "<<v[i][j]<<endl; 61 } } s.close(); } void pred () { for(i=1; i<n-1; i++) { for(j=1; j<m-1; j++) { aa1[i][j]=a1[i][j]+tx*(b1[i][j]-b1[i][j+1])+ty*(c1[i][j]-c1[i+1][j]); aa2[i][j]=a2[i][j]+tx*(b2[i][j]-b2[i][j+1])+ty*(c2[i][j]-c2[i+1][j]); aa3[i][j]=a3[i][j]+tx*(b3[i][j]-b3[i][j+1])+ty*(c3[i][j]-c3[i+1][j]); aa4[i][j]=a4[i][j]+tx*(b4[i][j]-b4[i][j+1])+ty*(c4[i][j]-c4[i+1][j]); rr[i][j]=aa1[i][j]; uu[i][j]=aa2[i][j]/aa1[i][j]; vv[i][j]=aa3[i][j]/aa1[i][j]; ee[i][j]=aa4[i][j]/aa1[i][j]; pp[i][j]=(k-1)*aa1[i][j]*ee[i][j]; } } for(i=1; i<n-1; i++) { rr[i][0]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);//*/rr[i][1]; uu[i][0]=(2*Max-2/Max)/(k+1);//*/uu[i][1]; vv[i][0]=vv[i][1]; pp[i][0]=2*k/(k+1)*Max*Max-(k-1)/(k+1);//*/pp[i][1]; ee[i][0]=p[i][0]/(k-1)/r[i][0];//*/ee[i][1]; 62 rr[i][n-1]=rr[i][n-2]; uu[i][n-1]=-uu[i][n-2]; vv[i][n-1]=vv[i][n-2]; ee[i][n-1]=ee[i][n-2]; pp[i][n-1]=pp[i][n-2]; } for(j=0; j<m; j++) { rr[0][j]=rr[1][j]; uu[0][j]=0.0; vv[0][j]=0.0; ee[0][j]=ee[1][j]; pp[0][j]=pp[1][j]; rr[n-1][j]=rr[n-2][j]; uu[n-1][j]=0.0; vv[n-1][j]=0.0; ee[n-1][j]=ee[n-2][j]; pp[n-1][j]=pp[n-2][j]; } } void bbcom () { for(i=0; i<n-1; i++) { for(j=0; j<m; j++) { bb1[i][j]=rr[i][j]*uu[i][j]; bb2[i][j]=rr[i][j]*uu[i][j]*uu[i][j]+pp[i][j]; 63 bb3[i][j]=rr[i][j]*uu[i][j]*vv[i][j]; bb4[i][j]=uu[i][j]*(rr[i][j]*ee[i][j]+pp[i][j]); cc1[i][j]=rr[i][j]*vv[i][j]; cc2[i][j]=rr[i][j]*uu[i][j]*vv[i][j]-Mu*(uu[i+1][j]-uu[i][j])/dy; cc3[i][j]=rr[i][j]*vv[i][j]*vv[i][j]+pp[i][j]-1.33*Mu*(vv[i+1][j]-vv[i][j])/dy; cc4[i][j]=vv[i][j]*(rr[i][j]*ee[i][j]+pp[i][j]); } } } void correc () { for(i=1; i<n-1; i++) { for(j=1; j<m-1; j++) { a1[i][j]=(a1[i][j]+aa1[i][j]+tx*(bb1[i][j-1]-bb1[i][j])+ty*(cc1[i-1][j]-cc1[i][j]))/2; a2[i][j]=(a2[i][j]+aa2[i][j]+tx*(bb2[i][j-1]-bb2[i][j])+ty*(cc2[i-1][j]-cc2[i][j]))/2; a3[i][j]=(a3[i][j]+aa3[i][j]+tx*(bb3[i][j-1]-bb3[i][j])+ty*(cc3[i-1][j]-cc3[i][j]))/2; a4[i][j]=(a4[i][j]+aa4[i][j]+tx*(bb4[i][j-1]-bb4[i][j])+ty*(cc4[i-1][j]-cc4[i][j]))/2; r[i][j]=a1[i][j]; u[i][j]=a2[i][j]/a1[i][j]; v[i][j]=a3[i][j]/a1[i][j]; e[i][j]=a4[i][j]/a1[i][j]; p[i][j]=(k-1)*a1[i][j]*e[i][j]; } } for(i=1; i<n-1; i++) { 64 r[i][0]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);//*/r[i][1]; u[i][0]=(2*Max-2/Max)/(k+1);//*/u[i][1]; v[i][0]=v[i][1]; p[i][0]=2*k/(k+1)*Max*Max-(k-1)/(k+1);//*/p[i][1]; e[i][0]=p[i][0]/(k-1)/r[i][0];//*/e[i][1]; r[i][n-1]=r[i][n-2]; u[i][n-1]=-u[i][n-2]; v[i][n-1]=v[i][n-2]; e[i][n-1]=e[i][n-2]; p[i][n-1]=p[i][n-2]; } for(j=0; j<m; j++) { r[0][j]=r[1][j]; u[0][j]=0.0; v[0][j]=0.0; e[0][j]=e[1][j]; p[0][j]=p[1][j]; r[n-1][j]=r[n-2][j]; u[n-1][j]=0.0; v[n-1][j]=0.0; e[n-1][j]=e[n-2][j]; p[n-1][j]=p[n-2][j]; } } void bcom () { for(i=1; i<n; i++) 65 { for(j=0; j<m; j++) { b1[i][j]=r[i][j]*u[i][j]; b2[i][j]=r[i][j]*u[i][j]*u[i][j]+p[i][j]; b3[i][j]=r[i][j]*u[i][j]*v[i][j]; b4[i][j]=u[i][j]*(r[i][j]*e[i][j]+p[i][j]); c1[i][j]=r[i][j]*v[i][j]; c2[i][j]=r[i][j]*u[i][j]*v[i][j]-Mu*(u[i][j]-u[i-1][j])/dy; c3[i][j]=r[i][j]*v[i][j]*v[i][j]+p[i][j]-1.33*Mu*(v[i][j]-v[i-1][j])/dy; c4[i][j]=v[i][j]*(r[i][j]*e[i][j]+p[i][j]); } } } int _tmain(int argc, _TCHAR* argv[]) { for(i=1; i<n-1; i++) { for(j=0; j<l; j++) { r[i][j]=k/((k-1)/(k+1)+2/(k+1)/Max/Max); p[i][j]=2*k/(k+1)*Max*Max-(k-1)/(k+1); u[i][j]=(2*Max-2/Max)/(k+1); v[i][j]=0.0; e[i][j]=p[i][j]/(k-1)/r[i][j]; } } for(i=1; i<n-1; i++) 66 { for(j=l; j<m; j++) { r[i][j]=1.4; u[i][j]=0.0; v[i][j]=0.0; e[i][j]=1.7857; p[i][j]=1.0; } } for(i=1; i<n-1; i++) { r[i][0]=k/((k-1)/(k+1)+2/(k+1)/Max/Max);//*/r[i][1]; u[i][0]=(2*Max-2/Max)/(k+1);//*/u[i][1]; v[i][0]=v[i][1]; p[i][0]=2*k/(k+1)*Max*Max-(k-1)/(k+1);//*/p[i][1]; e[i][0]=p[i][0]/(k-1)/r[i][0];//*/e[i][1]; r[i][n-1]=r[i][n-2]; u[i][n-1]=-u[i][n-2]; v[i][n-1]=v[i][n-2]; e[i][n-1]=e[i][n-2]; p[i][n-1]=p[i][n-2]; } for(j=0; j<m; j++) { r[0][j]=r[1][j]; u[0][j]=0.0; v[0][j]=0.0; 67 e[0][j]=e[1][j]; p[0][j]=p[1][j]; r[n-1][j]=r[n-2][j]; u[n-1][j]=0.0; v[n-1][j]=0.0; e[n-1][j]=e[n-2][j]; p[n-1][j]=p[n-2][j]; } for(i=1; i<n; i++) { for(j=0; j<m; j++) { a1[i][j]=r[i][j]; a2[i][j]=r[i][j]*u[i][j]; a3[i][j]=r[i][j]*v[i][j]; a4[i][j]=r[i][j]*e[i][j]; b1[i][j]=r[i][j]*u[i][j]; b2[i][j]=r[i][j]*u[i][j]*u[i][j]+p[i][j]; b3[i][j]=r[i][j]*u[i][j]*v[i][j]; b4[i][j]=u[i][j]*(r[i][j]*e[i][j]+p[i][j]); c1[i][j]=r[i][j]*v[i][j]; c2[i][j]=r[i][j]*u[i][j]*v[i][j]-Mu*(u[i][j]-u[i-1][j])/dy; c3[i][j]=r[i][j]*v[i][j]*v[i][j]+p[i][j]-1.33*Mu*(v[i][j]-v[i-1][j])/dy; c4[i][j]=v[i][j]*(r[i][j]*e[i][j]+p[i][j]); } } t=0; do 68 { pred(); bbcom(); correc(); bcom(); t=t+dt; }while(t<1600*dt); vivod (); system ("pause"); return 0; } 69 ПРИЛОЖЕНИЕ 3 Программа для расчета характеристик течения электролита в МЭЗ. // ruslan1504.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "iostream" #include "fstream" #include "vector" using namespace std; int i, j, schet; const int n=7, m=7; const double lx=0.1, ly=0.001, R=4.124, Mu=0.000018, Mu1=0.001,roh0=0.09; double ean=0.00000029, cp=3760, t0=293, roan=7600, mu0=0.001, egas=0.0000000104, rgas4150, h=0.3, xi=0.025, ka0=11, uc=7, alf=1; const int ro0=1000,u0=2,tma=300, tmk=300, tm0=300, tmv=300; double dx=lx/(m-1), dy=ly/(n-1), dt=0.000000005, tx=dt/dx, ty=dt/dy; double eps1, eps2, eps3, eps4, eps5, eps6; double q,w,e,r,t,y,q1,w1,e1,r1,t1,yy1; double temptemp[n][m],uu[n][m],vv[n][m],rohroh[n][m],pp[n][m],fifi[n][m],temp[n][m],u [n][m],v[n][m],roh[n][m],p[n][m],fi[n][m]; double ka[n][m],kax[m],iot[n][m],Q[n][m],Z[n][m]; double a1[n][m],a2[n][m],a3[n][m],a4[n][m],a5[n][m],aa1[n][m],aa2[n][m],aa3[n][m],aa4 [n][m],aa5[n][m]; double b1[n][m],b2[n][m],b3[n][m],b4[n][m],b5[n][m],bb1[n][m],bb2[n][m],bb3[n][m],bb 4[n][m],bb5[n][m]; double c1[n][m],c2[n][m],c3[n][m],c4[n][m],c5[n][m],cc1[n][m],cc2[n][m],cc3[n][m],cc4 [n][m],cc5[n][m]; 70 void vivod () { cout<<"roh"<<endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) { cout<<roh[i][j]<<" "; } cout<<endl; } сout<<endl; cout<<endl; cout<<endl; cout<<"fi"<<endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) { cout<<fi[i][j]<<" "; } cout<<endl; } cout<<endl; cout<<endl; cout<<endl; cout<<"temp"<<endl; for(i=0; i<n; i++) 71 { for(j=0; j<m; j++) { cout<<temp[i][j]<<" "; } cout<<endl; } cout<<endl; cout<<endl; cout<<endl; cout<<"u"<<endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) { cout<<u[i][j]<<" "; } cout<<endl; } cout<<endl; cout<<endl; cout<<endl; cout<<"v"<<endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) { cout<<v[i][j]<<" "; 72 } cout<<endl; } cout<<endl; cout<<endl; cout<<endl; cout<<"p"<<endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) { cout<<p[i][j]<<" "; } cout<<endl; } } void pred () { for(i=1; i<n-1; i++) { for(j=1; j<m-1; j++) { aa1[i][j]=a1[i][j]-tx*(b1[i][j+1]-b1[i][j])-ty*(c1[i+1][j]-c1[i][j]); aa2[i][j]=a2[i][j]-tx*(b2[i][j+1]-b2[i][j])-ty*(c2[i+1][j]-c2[i][j]);//-Z[i][j]*dt; aa3[i][j]=a3[i][j]-tx*(b3[i][j+1]-b3[i][j])-ty*(c3[i+1][j]-c3[i][j]); aa4[i][j]=a4[i][j]-tx*(b4[i][j+1]-b4[i][j])-ty*(c4[i+1][j]-c4[i][j]); aa5[i][j]=a5[i][j]-tx*(b5[i][j+1]-b5[i][j])-ty*(c5[i+1][j]-c5[i][j]);//-Q[i][j]*dt; uu[i][j]=aa3[i][j]/aa1[i][j]; 73 vv[i][j]=aa4[i][j]/aa1[i][j]; temptemp[i][j]=aa5[i][j]/aa1[i][j]; fifi[i][j]=1-aa1[i][j]/ro0; rohroh[i][j]=aa2[i][j]/fifi[i][j]; pp[i][j]=rohroh[i][j]*temptemp[i][j]*R/2; } } //условия на аноде/ for(j=0; j<m; j++) { fifi[0][j]=fifi[1][j];//2*fifi[1][j]-fifi[2][j]; rohroh[0][j]=rohroh[1][j];//2*rohroh[1][j]-rohroh[2][j]; uu[0][j]=0.0; vv[0][j]=0.0; temptemp[0][j]=tma; pp[0][j]=rohroh[0][j]*temptemp[0][j]*R/2; } //условия на катоде/ for(j=0; j<m; j++) { fifi[n-1][j]=fifi[n-2][j];//2*fifi[n-2][j]-fifi[n-3][j]; rohroh[n-1][j]=rohroh[n-2][j];//2*rohroh[n-2][j]-rohroh[n-3][j]; uu[n-1][j]=0.0; vv[n-1][j]=0.0; temptemp[n-1][j]=tmk; pp[n-1][j]=rohroh[n-1][j]*temptemp[n-1][j]*R/2; } //условия на входе/ 74 for(i=1; i<n-1; i++) { fifi[i][0]=0.2; uu[i][0]=u0; vv[i][0]=0.0; temptemp[i][0]=tm0; rohroh[i][0]=roh0; pp[i][0]=rohroh[i][0]*temptemp[i][0]*R/2; } //условия на выходе/ for(i=1; i<n-1; i++) { vv[i][m-1]=vv[i][m-2];//2*vv[i][m-2]-vv[i][m-3]; uu[i][m-1]=uu[i][m-2];//2*uu[i][m-2]-uu[i][m-3]; rohroh[i][m-1]=rohroh[i][m-2];//2*rohroh[i][m-2]-rohroh[i][m-3]; temptemp[i][m-1]=tmv;//2*temptemp[i][m-2]-temptemp[i][m-3]; fifi[i][m-1]=fifi[i][m-2];//2*fifi[i][m-2]-fifi[i][m-3]; pp[i][m-1]=rohroh[i][m-1]*temptemp[i][m-1]*R/2; } } void bbcc () { for(i=0; i<n-1; i++) { for(j=0; j<m; j++) { double Mu2=(1-fifi[i][j])*Mu1+fifi[i][j]*Mu; bb1[i][j]=(1-fifi[i][j])*ro0*uu[i][j]; 75 bb2[i][j]=rohroh[i][j]*fifi[i][j]*uu[i][j]; bb3[i][j]=(1-fifi[i][j])*ro0*uu[i][j]*uu[i][j]+pp[i][j]; bb4[i][j]=(1-fifi[i][j])*ro0*uu[i][j]*vv[i][j]; bb5[i][j]=(1-fifi[i][j])*ro0*uu[i][j]*temptemp[i][j]; cc1[i][j]=(1-fifi[i][j])*ro0*vv[i][j]; cc2[i][j]=fifi[i][j]*rohroh[i][j]*vv[i][j]; cc3[i][j]=(1-fifi[i][j])*ro0*uu[i][j]*vv[i][j]-Mu2*uu[i+1][j]/dy+Mu2*uu[i][j]/dy; cc4[i][j]=(1-fifi[i][j])*ro0*vv[i][j]*vv[i][j]4*Mu2*vv[i+1][j]/3/dy+4*Mu2*vv[i][j]/3/dy; cc5[i][j]=(1-fifi[i][j])*ro0*temptemp[i][j]*vv[i][j]; } } } void correc () { for(i=1; i<n-1; i++) { for(j=1; j<m-1; j++) { a1[i][j]=((aa1[i][j]+a1[i][j])-tx*(bb1[i][j]-bb1[i][j-1])-ty*(cc1[i][j]-cc1[i1][j]))*0.5; a2[i][j]=((aa2[i][j]+a2[i][j])-tx*(bb2[i][j]-bb2[i][j-1])-ty*(cc2[i][j]-cc2[i1][j]))*0.5;//-Z[i][j]*dt*0.5; a3[i][j]=((aa3[i][j]+a3[i][j])-tx*(bb3[i][j]-bb3[i][j-1])-ty*(cc3[i][j]-cc3[i1][j]))*0.5; a4[i][j]=((aa4[i][j]+a4[i][j])-tx*(bb4[i][j]-bb4[i][j-1])-ty*(cc4[i][j]-cc4[i1][j]))*0.5; a5[i][j]=((aa5[i][j]+a5[i][j])-tx*(bb5[i][j]-bb5[i][j-1])-ty*(cc5[i][j]-cc5[i1][j]))*0.5;//-Q[i][j]*dt*0.5; u[i][j]=a3[i][j]/a1[i][j]; 76 v[i][j]=a4[i][j]/a1[i][j]; temp[i][j]=a5[i][j]/a1[i][j]; fi[i][j]=1-a1[i][j]/ro0; roh[i][j]=a2[i][j]/fi[i][j]; p[i][j]=roh[i][j]*temp[i][j]*R/2; } } //условия на аноде/ for(j=0; j<m; j++) { fi[0][j]=fi[1][j];//fi[1][j];2*fi[1][j]-fi[2][j]; roh[0][j]=roh[1][j];//2*roh[1][j]-roh[2][j]; u[0][j]=0.0; v[0][j]=0.0; temp[0][j]=tma; p[0][j]=roh[0][j]*temp[0][j]*R/2; } //условия на катоде/ for(j=0; j<m; j++) { fi[n-1][j]=fi[n-2][j];//2*fi[n-2][j]-fi[n-3][j]; roh[n-1][j]=roh[n-2][j];//2*roh[n-2][j]-roh[n-3][j]; u[n-1][j]=0.0; v[n-1][j]=0.0; temp[n-1][j]=tmk; p[n-1][j]=roh[n-1][j]*temp[n-1][j]*R/2; } //условия на входе/ 77 for(i=1; i<n-1; i++) { fi[i][0]=0.2; u[i][0]=u0; v[i][0]=0.0; temp[i][0]=tm0; roh[i][0]=roh0; p[i][0]=roh[i][0]*temp[i][0]*R/2; } //условия на выходе/ for(i=1; i<n-1; i++) { v[i][m-1]=v[i][m-2];//2*v[i][m-2]-v[i][m-3]; u[i][m-1]=u[i][m-2];//2*u[i][m-2]-u[i][m-3]; temp[i][m-1]=tmv;//2*temp[i][m-2]-temp[i][m-3]; fi[i][m-1]=fi[i][m-2];//2*fi[i][m-2]-fi[i][m-3]; roh[i][m-1]=roh0*fi[i][m-1];//2*roh[i][m-2]-roh[i][m-3]; p[i][m-1]=roh[i][m-1]*temp[i][m-1]*R/2; } } void bc () { for(i=1; i<n; i++) { for(j=0; j<m; j++) { double Mu2=(1-fi[i][j])*Mu1+fi[i][j]*Mu; b1[i][j]=(1-fi[i][j])*ro0*u[i][j]; 78 b2[i][j]=roh[i][j]*fi[i][j]*u[i][j]; b3[i][j]=(1-fi[i][j])*ro0*u[i][j]*u[i][j]+p[i][j]; b4[i][j]=(1-fi[i][j])*ro0*u[i][j]*v[i][j]; b5[i][j]=(1-fi[i][j])*ro0*u[i][j]*temp[i][j]; c1[i][j]=(1-fi[i][j])*ro0*v[i][j]; c2[i][j]=fi[i][j]*roh[i][j]*v[i][j]; c3[i][j]=(1-fi[i][j])*ro0*u[i][j]*v[i][j]-Mu2*u[i][j]/dy+Mu2*u[i-1][j]/dy; c4[i][j]=(1-fi[i][j])*ro0*v[i][j]*v[i][j]-4*Mu2*v[i][j]/3/dy+4*Mu2*v[i-1][j]/3/dy; c5[i][j]=(1-fi[i][j])*ro0*temp[i][j]*v[i][j]; } } } void nevyaz () { q=0; w=0; e=0; r=0; t=0; y=0; for(i=0; i<n; i++) { for(j=0; j<m; j++) { q=q+abs(u[i][j]); w=w+abs(v[i][j]); e=e+abs(fi[i][j]); r=r+abs(roh[i][j]); 79 t=t+abs(temp[i][j]); y=y+abs(p[i][j]); } } eps1=abs(q-q1); eps2=abs(w-w1); eps3=abs(e-e1); eps4=abs(r-r1); eps5=abs(t-t1); eps6=abs(y-yy1); cout<<eps1<<" "<<eps2<<" "<<eps3<<" "<<eps4<<" "<<eps5<<" "<<eps6<<endl; q1=q; w1=w; e1=e; r1=r; t1=t; yy1=y; } void tok () { for(i=2; i<n-2; i++) { for(j=2; j<m-2; j++) { ka[i][j]=ka0*(1-fi[i][j])*sqrt(1-fi[i][j])*(1-xi*(temp[i][j]-t0)); } } 80 for(j=2; j<m-2; j++) { kax[j]=0; for(i=2; i<n-2; i++) { kax[j]=kax[j]+ka[i][j]; } kax[j]=kax[j]*dy; } for(i=2; i<n-2; i++) { for(j=2; j<m-2; j++) { iot[i][j]=kax[j]*uc*alf/ly; } } for(i=2; i<n-2; i++) { for(j=2; j<m-2; j++) { Q[i][j]=iot[i][j]*uc/cp; Z[i][j]=egas*iot[i][j]; } } } int _tmain(int argc, _TCHAR* argv[]) { for(i=0; i<n; i++) 81 { for(j=0; j<m; j++) { fi[i][j]=0.5; roh[i][j]=roh0; temp[i][j]=300.0; u[i][j]=0.0; v[i][j]=0.0; p[i][j]=roh[i][j]*temp[i][j]*R/2; } } //условия на аноде/ for(j=0; j<m; j++) { fi[0][j]=fi[1][j];///*fi[1][j];*/2*fi[1][j]-fi[2][j]; roh[0][j]=roh[1][j];//2*roh[1][j]-roh[2][j]; u[0][j]=0.0; v[0][j]=0.0; temp[0][j]=tma; p[0][j]=roh[0][j]*temp[0][j]*R/2; } //условия на катоде/ for(j=0; j<m; j++) { fi[n-1][j]=fi[n-2][j];//2*fi[n-2][j]-fi[n-3][j]; roh[n-1][j]=roh[n-2][j];//2*roh[n-2][j]-roh[n-3][j]; u[n-1][j]=0.0; v[n-1][j]=0.0; 82 temp[n-1][j]=tmk; p[n-1][j]=roh[n-1][j]*temp[n-1][j]*R/2; } //условия на входе/ for(i=1; i<n-1; i++) { fi[i][0]=0.2; u[i][0]=u0; v[i][0]=0.0; temp[i][0]=tm0; roh[i][0]=roh0; p[i][0]=roh[i][0]*temp[i][0]*R/2; } //условия на выходе/ for(i=1; i<n-1; i++) { v[i][m-1]=v[i][m-2];//2*v[i][m-2]-v[i][m-3]; u[i][m-1]=u[i][m-2];//2*u[i][m-2]-u[i][m-3]; roh[i][m-1]=roh[i][m-2];//2*roh[i][m-2]-roh[i][m-3]; temp[i][m-1]=tmv;//2*temp[i][m-2]-temp[i][m-3]; fi[i][m-1]=fi[i][m-2];//2*fi[i][m-2]-fi[i][m-3]; p[i][m-1]=roh[i][m-1]*temp[i][m-1]*R/2; } for(i=1; i<n; i++) { for(j=0; j<m; j++) { double Mu2=(1-fi[i][j])*Mu1+fi[i][j]*Mu; 83 a1[i][j]=(1-fi[i][j])*ro0; a2[i][j]=roh[i][j]*fi[i][j]; a3[i][j]=(1-fi[i][j])*ro0*u[i][j]; a4[i][j]=(1-fi[i][j])*ro0*v[i][j]; a5[i][j]=(1-fi[i][j])*ro0*temp[i][j]; b1[i][j]=(1-fi[i][j])*ro0*u[i][j]; b2[i][j]=roh[i][j]*fi[i][j]*u[i][j]; b3[i][j]=(1-fi[i][j])*ro0*u[i][j]*u[i][j]+p[i][j]; b4[i][j]=(1-fi[i][j])*ro0*u[i][j]*v[i][j]; b5[i][j]=(1-fi[i][j])*ro0*u[i][j]*temp[i][j]; c1[i][j]=(1-fi[i][j])*ro0*v[i][j]; c2[i][j]=fi[i][j]*roh[i][j]*v[i][j]; c3[i][j]=(1-fi[i][j])*ro0*u[i][j]*v[i][j]-Mu2*u[i][j]/dy+Mu2*u[i-1][j]/dy; c4[i][j]=(1-fi[i][j])*ro0*v[i][j]*v[i][j]-4*Mu2*v[i][j]/3/dy+4*Mu2*v[i-1][j]/3/dy; c5[i][j]=(1-fi[i][j])*ro0*temp[i][j]*v[i][j]; } } schet=0; do { pred (); bbcc(); correc(); bc(); nevyaz(); schet=schet+1; }while(schet<1000000); vivod (); 84 system ("pause"); return 0; } 85