Вычислительный эксперимент
Страница 3
В течении 15 лет, в 70-80-е гг., в Вычислительном центре АН СССР под руководством академика Н.Н. Моисеева проводились работы по моделированию климата. Была создана климатическая модель, которая включала в себя гидродинамическую модель общей циркуляции атмосферы и термодинамическую модель верхнего слоя океана. Учёные ввели уравнения, описывающие процессы переноса солнечной энергии и твёрдых частиц. С помощью этой модели были проведены вычислительные эксперименты по изучению последствий ядерной войны. Вот их результаты. После ядерных бомбардировок возникнут массовые пожары, которые будут сопровождаться выбросом в атмосферу продуктов сгорания - сажи и пепла, а также пыли. Количество выбросов загрязнений будет зависеть от силы ядерных взрывов. Облака, состоящие из твёрдых частиц, поглотят и рассеют солнечный свет, что приведёт к затемнению поверхности Земли и нарушению её радиационного баланса. Температура Земли за короткий срок понизится на 15-25°С. Наступит так называемая ядерная зима. Максимальное снижение температуры приповерхностного слоя атмосферы наблюдается на Северном полушарии, однако, несмотря на локальное незначительное повышение температуры в отдельных районах южного полушария, похолодание распространяется и на эту часть планеты. При этом предполагается следующий сценарий конфликта. Атмосфера севернее 12° северной широты в июле внезапно загрязнилась сажей. Рассматривают, что выброс загрязнений соответствовал конфликту с использованием 50% ядерного боезапаса, накопленного на планете к 90-м годам 20-го века. Расчёты, проведённые для более мягких сценариев с использованием меньшего количества ядерного потенциала, показали, что температура понизится не так значительно, но эффекты качественно останутся теми же.
Очень важным фактором, влияющим на климат, оказалось изменение циркуляции атмосферы. Полушария Земли будут нагреваться неравномерно, и это приведёт к тому, что в течении примерно месяца холодные потоки воздуха вместе с остатками сажи устремятся из северного полушария в южное. Сначала появляются шлейфы дыма и пыли; в первую и вторую недели средние широты Северного полушария покрываются сплошной пеленой; через две-три недели струи дыма переходят экватор; через месяц вся Земля оказывается окутанной облаком дыма, то есть наступает “ядерная ночь”. На температуру атмосферы окажет влияние и изменение температуры океана. В силу колоссальных его объёмов он будет охлаждаться медленнее, чем поверхность суши. Температура воды понизится в среднем на 1°, воздуха над океаном - всего на несколько градусов. Однако из-за перепадов температур над сушей и океаном вдоль побережий возникнут жестокие ураганы, которые вызовут дополнительные жертвы и разрушения.
Похолодание на планете приведёт к гибели многих видов животных и растений. У человечества будет ну много шансов приспособиться к новой экологической обстановке. Подчеркнём ещё раз, что такая модель была построена для сценариев ограниченной, “контролируемой” ядерной войны. Аналогичные результаты были получены позже учёными США и Великобритании. Они использовали другие математические модели и более мощные вычислительные средства.
6. Пакеты прикладных программ.
Остановимся несколько подробнее на этом[3] важном направлении современного программирования. Чтобы лучше ощутить существующие здесь проблемы и понять пути их решения, обратимся к истории вопроса, благо история эта ещё весьма коротка.
Первые программисты писали “вручную”, в командах. Однако уже тогда, зарождавшийся вычислительный эксперимент характеризовался многомодельностью. Это означало, что в процессе расчётов математическая модель, или вычислительный алгоритм, постоянно модифицировалась, видоизменялась. Всё это в первую очередь сказывалось на программе, в которую необходимо было вносить соответствующие изменения. Программист - автор программы, конечно же, не переписывал её каждый раз заново, просто в соответствующее место делалась нужная вставка, в программе появлялась очередная “заплата”. Помимо основного задания на программирование, заводилась специальная “тетрадь изменений”, куда, чтобы не запутаться, заносились все исправления и переделки.
Если математическая модель претерпевала заметные изменения ( например, в уравнениях магнитной гидродинамики требовалось учесть не одну, а две компоненты вектора напряжённости магнитного поля или дополнительно учесть излучение ), то также естественно было не создавать новую программу, а “надстраивать” старую, уже хорошо зарекомендовавшую себя в расчётах.
Программа разрасталась, разветвлялась, её возможности повышались. С помощью такого комбайна можно было решать и прежние простые задачи. Чем сложнее становился программный комбайн, чем большими возможностями он обладал, тем обширнее становилась таблица ключевых параметров.
Постепенно программа превращалась в эдакого монстра, нашпигованного ключевыми параметрами. Новые “заплаты” ставились на старые, и в этих дебрях начинал путаться сам автор программы. В конце концов принималось решение переписать программу заново, а это означало, что придётся повторно тратить немалое время и силы на большую трудоёмкую работу.
Одним из средств борьбы с такими непроизводительными потерями являются пакеты прикладных программ.
Пакет прикладных программ ( ППП ) состоит из функционального наполнения и системной части. Функциональное наполнение представляет собой, грубо говоря, набор отдельных программ, решающих конкретные задачи. Эти задачи объединены одной направленностью, или, как говорят, предметной областью. Дело в том, что ППП не является универсальным, он проблемно-ориентирован, т.е. предназначен для решения определённого класса задач.
Если это задачи механики сплошной среды, то в функциональное наполнение могут входить, например, программы для расчёта уравнений газовой динамики, уравнения теплопроводности, уравнений для электромагнитного поля, уравнений для излучения, фазовых переходов и т.д.
Содержание каждой такой индивидуальной программы, или “модуля”, специфично, однако требования к оформлению входной и выходной информации унифицированы. Эти модули представляют собой своеобразные “чёрные ящики”, которые можно соединять в цепочки, ветви, так, чтобы в конце концов получить заданную программу.
Системная часть выполняет функции сервисного характера. Основные задачи здесь состоят в следующем. Прежде всего необходимо организовать хранение функционального наполнения. Но хранить в данном случае не значит ограничиться записью информации на каких-либо носителях. В этом архиве должен быть порядок: по первому требованию указанный модуль должен быть направлен “в работу”.
Главное назначение системной части ППП - обеспечивать возможность сборки из отдельных модулей полной программы, способной решать заданную задачу. Для этого вычислитель, создающий программу, должен общаться с пакетом - давать приказы, воспринимать ответную информацию.
Конечно же это очень упрощённая схема работы с пакетом, но она отражает характерные этапы такой деятельности.
Кроме того, для того чтобы пользоваться пакетом и, значит, грамотно вести расчёты, совсем не обязательно самому обладать высокой квалификацией программиста или математика-вычислителя ( ведь именно они должны создавать эти пакеты ). Поэтому пакеты программ должны быть такими, чтобы к их помощи могли прибегнуть не только математики, но и специалисты других сфер научной деятельности, прошедшие сравнительно небольшой курс математического обучения.
ППП - это активное концентрированное выражение опыта, приобретённого в вычислительном эксперименте.
7. Заключение.
Вычислительный эксперимент начинается тогда, когда в результате натурного эксперимента получено достаточно данных для построения математической модели исследуемого объекта. Обычно построенная математическая модель оказывается настолько сложной, что требуется создавать не только уникальное программное обеспечение для воспроизведения ее на вычислительной машине, но и новые численные методы, чтобы найти решение в приемлемые сроки и с необходимой точностью. Сложность первоначальных моделей обусловлена прежде всего тем, что на ранних этапах исследования нет данных, позволяющих провести ее упрощение. На практике всегда исследуется иерархия моделей различной сложности, определяются границы их применимости и допустимость тех или иных упрощений. Построенная программная реализация математической модели используется для изучения законов поведения объектов, испытаний различных режимов работы, построения управляющих воздействий, поиска оптимальных характеристик. На основании изучения поведения модели либо делается вывод о возможности ее применения для практических нужд, либо принимается решение о проведении дополнительной серии натурных экспериментов и корректировки модели, и тогда весь цикл исследований приходится повторять с начала.