Роуч П. Вычислительная гидродинамика (1185913), страница 106
Текст из файла (страница 106)
В будущем мы ожидаем появления более исчерпывающих исследований конкретных гидродинамнческих задач, включающих не только численное моделпро. ванне, но и аналитическое изучение, и физические эксперименты. Имеется несколько работ подобного типа: Бургграф [1966), Техейра [1966), Лил [1969), Мюллер и О'Лири [1970], Бург- граф и Стюартсон [1971], Феннинг и Мюллер [1970]. Ожидается продолжение интенсивного развития «вычислительных теорий» турбулентности и проверки основных уравнений для турбулентности, динамики грунтов и плазмы.
Ожидается, что возрастет количество и качество работ по моделированию гидродиналгической устойчивости; этому вопросу посвятнлн свои исследования Десанта и Келлер [1961), Фромм и Харлоу [1963), Диксон и Хеллумс [1967], Нагель [1967], Пиачек [1968, 1970], Веронис [1968], У. П. Кроули [1968б], Бслломо [1969], Дональдсон [1969], Лоэр [1969], Дп Прима и Роджерс [1969], Краудер н Дальтон [197!а]. Морс и Нилсон [1971) изучали магнитогидродинамическую неустойчивость.
Новые задачи перед вычислительной гидродинамикой ставит рассмотрение специальных уравнений течения, например уравнения ди/д! + д'и/дх' = О, возникающего при изучении океанских течений вблизи экватора (Киппнг [1968]); уравнений релятивистской гидродинамикн, играющих важную роль в астрофизических задачах (Шварц [1967)); гндродинамических эф. б.б.
направлении будущих иееледаваииб фектов при сварке взрывоч (! одунов с соавторами [1970[). Станет более распространенным объединение решения гидродинамических задач с исследованием других физически важных явлений. Первыми образцами подобных исследований являются объединение гидродннамнки с рассмотрением трехмерной абляции, изменения формы тела и внутренней теплопроводности (Поппер с соавторами [1970[) и с продольными колебательными движениями тела (Томпсон [1968[, Трулио и Уолитт [1969]), причем последняя задача осложняется неприменимостью преобразования, связанного с обращением потока (см. Лайтхилл [1954[).
Отметим, наконец, что обрпботка информации и ее использование, кратко обсуждаемые в следующей главе, сами по себе являются важной областью исследований. Глава 7 РЕКОМЕНДАЦИИ ПО ПРОГРАММИРОВАНИЮ, КОНТРОЛЮ И ОБРАБОТКЕ ИНФОРМАЦИИ В настоящей главе мы дадим некоторые рекомендации по составлению н отладке программ, по контролю вычислительных схем и по обработке полученной информации. Конечно, на практике эти операции четко не разделяются, и необходимо учитывать обратные связи. Многие пз приведенных ниже рекомендаций, зачастую не связанных одна с другой, отражают персональную точку зрения автора, однако наши научные контакты с коллегами в этой области показывают, что мы не одиноки в своем мнении.
Некоторые могут огвергнуть эти вопросы как праздные и тривиальные, однако мы считаем, что знакомство с ними может сыграть существенную роль в успешной организации исследований. 7,1. Составление программы для ЭВМ Необходимо различать рекомендации, относящиеся к опытной программе н к рабочей программе. Для проведения многих исследований требуется только опытная программа. Можно сказать, что исследование численного метода самого по себе заканчивается тогда, когда уже можно составить рабочую программу, которая в свою очередь может служить для гидродинамических исследований и разработок, Здесь имеет место прямая аналогия с проектированием, разработкой, проверкой и калибровкой аэродинамической трубы перед проведением на ней серии экспериментов.
1. Опытную программу составляйте сами. Из всех приведенных здесь рекомендаций эта, возможно, вызовет наибольшее неудовольствие, но мы настаиваем на ней. Процитируем книгу Хемминга [19621 «Глава й+ 1, Искусство вычислений для исследователей и инженеров»: «Целью вычислений является проникновение в суть явлений, а не получение чисел» н далее: «Маловероятно, чтобы большие физические идеи зародились в мозгу профессионального программиста, который лишь тем и занимается, что программирует задачи». Опыт работы автора над многомерными задачами гидродннамики показывает, что наиболее тонкие аспекты задачи, в частности вопросы, связапныс с постановкой граничных и начальных 47! 77В Составление програмлгьг д.тя ЭВМ условий в многошаговых схемах, возникают как раз на стадии программирования, По нашему мнению, в действительности трудно разделить работу по развитию численного метода и программирование само по себе, которое часто перепоручают программисту ').
Однако профессиональный программист 1если вы можете воспользоваться его услугами) в состоянии оказать существенную помощь в вопросах ввода-вьгвода информации, работы с мапштнымн лентами, функционирования вычислительной системы, работы со стандарт~ымя подпрограммами типа обращения матрицы тлетодом ! аусса, алгоритма прогонки и т.д. Деятельность такого рода иногда называют кодированием, противопоставляя ее более творческой работе программирования задачи. 2. Составление рабочей программы поручайте профессионально>!у программисту, если имеется такая возможность.
3. При составлении опытной программы используйте модульное программирование, Модульное программирование обладает тем преимуществом, что каждая подпрограмлга (например, ВБВКО1)Т1)ч)Е или Е1))ч)СТ1ОХ в Фортране) люжет отлажнваться отдельно и лаже может быть составлена разными людьми. 4, При госгашгении рабочей программы избегайте модульного программирования.
Для вызова подпрограммы необходимо время. Например,вызов подпрограммы с одним параметром на СРС 6600 занимает от 7 до 8 мкс, что можно сравнить с одной микросекундой для выполнения операции умножения и с 0.4 мкс для выполнения операции сложения. Если число параметров подпрограммы больше одного, то вызов занимает еше больше времени. Однако это потеря времени пе столь существенна, если программа вызывается не для каждого узла расчетной сетки. Поэтому оформление в виде подпрограммы задания начальных условий будет эффективнылт, а оформление в виде подпрограммы расчета максимально допустимого значения Л! с просмотром всех узлов расчетной сетки, требующего в спою очередь вызова подпрограммы расчета скорости звука, будет неоправданной тратой машинного времени, если такая подпрограмлга будет вызываться ' ') Вааимоотиошепия между исследователем в области вычислительиой гпдродниамикгг и программистом иапомииагот втаимоотиошеиия между авиаконструктором п «рте.кивком, шмористи«шгп описанные К.
Л. Вудом в его кингс, посвяшепиой авва«повии-косми «скпв проектам 7.Л Составлеягте арограллм для ЭВт!4 472 на каждом шаге по времени (см., однако, ниже рекоменда. цию 13), В этой связи необходимо отметить преимущество функпийоператоров в Фортране.
Опп прттменятотся редко, по-вндимому, потому, что их преимуп!ества недостаточно широко известны. Функция-оператор отличается от ВОВКО!)Т!!чЕ и Е!!ХСТ!О!) тем, что не требует времени на вызов. Операционная система просто подставляет этот арифметтический оператор в обращение к функции. Например, рассмотрим вычисление числа Маха М в узловой точке (1,3), причем полную величину скорости ватой точке обозначим через ЗАМАЙ, а температуру — через Т (1, Л). Функцию-оператор для вы исленпя скорости згука обозначим ЧВ(К, Ь) = .... Тогда ЧЯ (К, 1.) = С!'Я()КТ(Т(К, Ь)) КЕА1.
М С1= М =УМАСт(Ъ'Я (1, )) Это «обращенне» (ие выполняемое) к функции-оператору 1тб(КЬ) реализуется транслятором по типу следующсй программы: КЕА1. М С1= М = — Ъ"МАОДС1*ЯЯКТ (Т (1, Л)! 71 Соетаалеапе программы дяя ЭВМ Данная программа носи~ модульный характер в том смысле,что вычисление скорости звука локализовано в одном месте программы и легко может быть изменено; это безусловно удобно. В более сложных случаях функции-операторы могут вызывать другие функции-операторы, и соответствующие перфокарты можно извлечь из колоды и отладить отдельно. Этим можно достигнуть зпа штельпой экономии усилий на программирование, псрфорацшо и отладку ').
5. Оа ранних стадиях составляйте самую частную программу. Допустим, вы намерены экспериментировать с различными условиями па выходной границе. Составляйте первый вариант программы только с простейпшм условием на выходной границе. Когда основная программа будет отлажена, добавьте переключатель для различных вариантов граничных условий. Эта рекомендация особенно важна при наличии большого числа взаимосвязанных вариантов. Часто случается, что некоторые из вариантов не реализуются. 6. На ранних стадиях составляйте самую простую программу, Не будет лишним даже начать разработку программы сдругой, более простой численной схемой, нежели та, которая будет применена окончательно; при этом будет легче отладить другие части программы.
Сложная схема расчета во внутренних узлах сетки сильно усложняет отладку программы. (Например, по опыту автора при расчете течений сжимаемой жидкости по двух- шаговой схеме грубая ошибка в вычислении плотности на первом шаге обнаруживается лишь при больших ~ по расходимости решения для температуры.) Составление программы расчета течения сжимаемой жидкости рекомендуется начинать со случая постоянных р и я; программы расчета задачи радиационной газодинамики — с программирования и отладки только ее газодинамической части; пока не отлажен расчет во внутренних точках, рекомендуется избегать усложненизй, связанных с рассмотрением свободной поверхности, и т, д.