Preview

Труды Института системного программирования РАН

Расширенный поиск
Том 29, № 1 (2017)
Скачать выпуск PDF
7-20 22
Аннотация
Представлены результаты численного моделирования течений устойчиво стратифицированной жидкости на примере задачи обтекания клина в двумерной нестационарной постановке в широком диапазоне скоростей. Стратифицированные течения характеризуются широким диапазоном значений внутренних масштабов, отсутствующих в однородной жидкости. Все элементы течений (вихри, волны, тонкоструктурные прослойки) существуют одновременно и активно взаимодействуют между собой. Предложена система балансных уравнений, которая дает возможность одновременного изучения всех элементов течений в рамках единого описания в естественных физических переменных без привлечения дополнительных констант и связей. Поставленная задача решалась методом конечных объемов в открытом пакете OpenFOAM. Особое внимание уделялось созданию качественной высокоразрешающей расчетной сетки, которая учитывает многомасштабность поставленной задачи. Тестовые расчеты подтвердили необходимость разрешения минимальных диффузионных микромасштабов. Обсуждаются вопросы использования стандартных и расширенных утилит пакета OpenFOAM с целью реализации сложных граничных условий и разработки собственных решателей. В качестве начальных условий задачи обтекания клина внешним потоком стратифицированной среды использовались ранее рассчитанные поля течений, индуцированных прерыванием диффузионного переноса неподвижным клином, которые качественно согласуются с данными лабораторных опытов. Расчеты проводились в параллельном режиме с использованием сервисов платформы UniHUB. Единая система уравнений и общий алгоритм были использованы во всем диапазоне параметров задачи. Результаты расчетов показали сложную нестационарную структуру стратифицированных течений около клина. Определены механизмы формирования вихрей в областях больших градиентов возмущения солености в окрестности кромок препятствия. Во всех режимах течение характеризуется сложной внутренней структурой, в которой вначале выражены диссипативно-гравитационные волны, затем группа присоединенных волн, которые образуются в противофазе у кромок клина. Далее основным компонентом течения становятся вихри, которые начинают формироваться около передней кромки и становятся выраженными в следе. С увеличением скорости вся картина течения становится более нестационарной, подвижные вихри заполняют все поле вблизи тела и в следе за ним.
21-38 14
Аннотация
В статье описан разработанный решатель pisoCentralDyMFoam с открытым исходным кодом и исследуется применение метода главных компонент в промышленных задачах моделирования турбокомпрессоров. Метод главных компонент реализован в Apache Spark, что позволяет использование распределенных вычислений. Разработанный решатель основан на гибридной схеме Курганова-Тадмора/PISO. Исследования проводились для геометрии компрессора, приближенной к реальному прототипу с известными резонансными частотами. Предварительно решатель был валидирован на примере центробежного компрессора ERCOFTAC. Коэффициенты матриц собственного ортогонального разложения получены из набора временных срезов, рассчитанных с помощью модели Навье-Стокса. Для вычисления мод собственного ортогонального разложения использовалось несколько сотен последовательных временных срезов полей скорости и давления, взятых на поверхности крыльчатки. Собственные значения, рассчитанные методом собственного ортогонального разложения, соответствуют кинетической энергии, содержащейся в каждой характеристической моде. Коэффициенты, не зависящие от времени, определяют вклад каждого элементарного объема и позволяют определить области, влияющие на среднее течение на определенной частоте после применения быстрого преобразования Фурье к временным коэффициентам ортогонального разложения. В результате применения метода, характеристические моды отсортированы в соответствии с их кинетической энергией. Нулевая мода соответствует наибольшей энергии, описывает среднее течение и имеет относительно малые амплитуды. Описанный подход был проверен на вычислительно простой двумерной задаче и затем применен к высокоскоростному компрессору. Было показано, что третья характеристическая мода течения имеет пик на частоте 12970 Гц, около двух резонансных частот 12000 Гц и 13700 Гц. Третья и четвертая характеристические моды представляют собой флуктуации давления в спутном следе позади лопаток. Описанный подход позволит анализировать динамику течения более эффективно, в сравнении с быстрым преобразованием Фурье. Кроме того, метод может быть использован для сжатия данных и разработки моделей пониженной размерности.
39-52 31
Аннотация
Проводится тестирование возможностей открытого программно-математического обеспечения BEM++ по решению задач акустики в области средних и высоких частот. Пакет BEM++, аналогично пакету OpenFOAM, является универсальным инструментом, который позволяет строить дискретные модели для граничных интегральных операторов (потенциальные операторы простого и двойного слоев, сингулярные операторы, сопряженные операторы двойного слоя и др.), и программировать с использованием библиотек языка Python решение различных МГЭ-задач для уравнений Лапласа, Гельмгольца и Максвелла. Сравнение с известными аналитическими решениями тестовых задач рассеяния акустической волны на сфере методом граничных элементов показывает, что открытый пакет BEM++ можно использовать «как есть» в качестве альтернативы известным коммерческим пакетам для получения результатов с точностью порядка 5%, достаточной в инженерных приложениях. Пакет позволяет эффективно проводить расчеты в диапазоне частот от 5 Гц до 5 кГц, важном с точки зрения разработки аэрокосмических систем, что дает возможность перехода к более сложным прикладным задачам. Главным ограничением при решении задач в настоящее время служит распараллеливание расчетов, которое ограничивается только системами с общей памятью. Однако, открытая архитектура BEM++ позволит при дальнейшей работе устранить данный недостаток. Возможности BEM++ позволяют работать с сетками большой размерности, описывающими сложные геометрические объекты, построенными на базе конструкторских электронных геометрических моделей. Следует, однако, отметить, что для внедрения в инженерную практику желательна разработка интерфейса с существующими интерактивными системами препостпроцессинга, например, SALOME.
53-70 40
Аннотация
Представлены результаты методического исследования, направленного на тестирование возможностей свободно распространяемого пакета OpenFOAM по построению расчетной схемы для моделирования динамики гидравлических агрегатов с помощью метода контрольного объема и подвижных сеток. Рассмотрены выбор наиболее подходящих технологий динамических скользящих сеток; построение расчетной схемы для сопряженной задачи FSI о взаимодействии подвижного регулирующего элемента (золотника) с течением рабочей жидкости; расчет переходного режима движения золотника для прототипа стабилизатора расхода новой конструкции; анализ нестационарных течений во внутренней полости агрегата; анализ устойчивости и производительности счета. На примере упрощенной осесимметричной модели стабилизатора расхода несжимаемой среды описаны основные этапы подготовки расчетной схемы для моделирования задачи об установлении золотника в положение равновесия под действием гидродинамической силы и силы реакции пружины. Приведены результаты предварительного стационарного расчета при фиксированном золотнике, которые использовались в качестве начального условия. Подробно описаны методы реализации движения сетки, отслеживающей движение золотника и технология скользящих сеток GGI, которая использовалась для моделирования перекрытия отверстия. Приведены результаты расчета переходного режима: поля скоростей и давления, графики обобщенных сил, действующих на золотник, график перемещений золотника от времени. Расчеты показали механизм возникновения нестационарных струйных и вихревых течений в проточной части стабилизатора. Проведенное методическое исследование позволяет сделать вывод о том, что пакет с открытым исходным кодом OpenFOAM в версии extend может быть успешно использован в качестве альтернативы коммерческим пакетам программ вычислительной гидродинамики (CFD), поскольку в нем имеются все необходимые средства для построения расчетных схем с деформируемыми сетками и расчета переходных режимов в агрегатах гидравлической автоматики, имеющих в конструкции подвижные элементы.
71-84 9
Аннотация
Представлена авторская модификация метода погруженных границ LS-STAG для моделирования течений вязкоупругих жидкостей, описываемых линейными и квазилинейными моделями скоростного типа (моделями Максвелла, Джеффри, Джонсона - Сигельмана, Максвелла-А, Олдройда-Б, Олдройда-А, верхней конвективной моделью Максвелла). Построены дискретные аналоги различных конвективных производных (Олдройда, Коттера - Ривлина, Яумана - Зарембы - Нолла). К трем разнесенным сеткам базового метода LS-STAG добавлена четвертая сетка, ячейки которой являются контрольными объемами для дискретизации уравнения для расчета касательных неньютоновских вязкоупругих напряжений. Нормальные неньютоновские напряжения вычисляются в центрах ячеек основной сетки, а касательные - в углах ячеек данной сетки. Интегрирование по времени получающейся после LS-STAG-дискретизации по пространству дифференциально-алгебраической системы производится при помощи метода, основанного на схеме предиктор-корректор первого порядка. Этот метод состоит из двух шагов. Шаг предиктора приводит к решению разностного аналога уравнения Гельмгольца для прогноза скорости, а шаг корректора - к решению разностного аналога уравнения Пуассона для поправки давления. После этого решаются уравнения для упругой составляющей тензора неньютоновских напряжений. Для верификации метода использовались различные модельные задачи, в частности, моделирование течения Пуазейля. Полученная модификация метода LS-STAG реализована в разрабатываемом автором программном комплексе, позволяющем проводить моделирование течений вязкой несжимаемой среды. Комплекс позволяет моделировать обтекание движущихся профилей произвольной формы и систем из любого числа профилей, имеющих одну или две степени свободы, в т.ч. турблулентным потоком.[A1] При решении тестовых задач метод обеспечивает второй порядок точности.
85-100 25
Аннотация
В работе создана модель схода лавинного потока в пакете OpenFOAM, где лавина смоделирована как двухфазный турбулентный поток (снег - воздух). За основу был взят численный метод для решения задач движения двухфазных сред с поверхностью раздела - метод переноса объёмной доли (VOF). Данный алгоритм реализован в решателе InterFoam, который и был использован в работе. Использовалась K - ε модель турбулентности. В модели снег был представлен как нелинейно вязкая жидкость, описываемая реологическими соотношениями Хершеля-Балкли. Воздух представляет собой вязкую ньютоновскую среду. Для описания модели используются осреднённые по Рейнольдсу уравнения Навье-Стокса, реологические соотношения, а также уравнения для турбулентной кинетической энергии и диссипации. Построена расчётная область лавинного очага номер 22 горы Юкспор Хибинских гор на основе цифровой модели рельефа формата ASCII GRID. Взяты карты зоны зарождения и зоны отложений 129-ой лавины, глубина снежного покрова в зоне зарождения составила 1,5 метра, рассчитан поток, возникающий в зоне зарождения, и сравнивается модельная зона отложения с натурными данными. Также смоделировано движение снего-пылевого облака. Получены распределения скоростей, давления и объёмной доли снега во все моменты времени, форма лавинных отложений. Средняя скорость потока составила 44,8 м/с, что близко к действительным скоростям движения лавин в данном очаге. Максимальная скорость лавинного потока (включая снего-пылевое облако) составила 78 м/с. Данные результаты позволяют оптимально проектировать противолавинные сооружения и определять лавиноопасные территории.
101-118 8
Аннотация
Работа посвящена исследованию движения двухмассовой вибрационной системы в вязкой жидкости. Система состоит из замкнутого клиновидного корпуса и подвижной внутренней массы, совершающей колебания вдоль продольной оси корпуса. Описанная механическая система имитирует виброробот. Рассматривается комплексная модель взаимодействия робота со средой, в рамках которой движение жидкости описывается полной нестационарной системой уравнений Навье-Стокса. Исследуются вопросы повышения эффективности движения виброробота за счет выбора специального закона перемещения внутренней массы. Для этого проводится сравнительный анализ характеристик движения (средней скорости и показателя эффективности) и режимов обтекания при простом гармоническом законе колебания внутренней массы и специальном двухфазном, характеризующимся чередованием медленной продолжительной и быстрой короткой фаз движения, во время которых внутренняя масса перемещается с постоянной скоростью. Решение задачи выполняется численно на базе пакта с отрытым исходным кодом OpenFOAM. Численная схема реализуется в рамках конечно-объемного подхода дискретизации. Для совместного решения системы уравнений Навье-Стокса и механической системы, описывающей взаимодействие составляющих виброробота и вязкой среды применяется специальная итерационная схема, встраиваемая в стандартный решатель пакета icoFoam. Результаты исследования показывают, что направленное движение виброробота с клиновидной формой корпуса возможно как для гармонического, так и для двухфазного законов колебания внутренней массы. В каждом из случаев удается обнаружить устойчивые режимы движения, реализуемые в широком диапазоне чисел Рейнольдса. Анализ средней скорости и эффективности режимов позволяет найти оптимальные параметры движения виброробота.
119-134 18
Аннотация
В настоящее время в промышленной разработке программного обеспечения с графическим пользовательским интерфейсом преобладают полуавтоматические подходы к тестированию, требующие участия эксперта для создания наборов тестовых сценариев. Повышение сложности программных систем приводит к снижению эффективности применения методов, полагающихся на участие эксперта в процессе тестирования. С учётом возрастания доступности и снижения стоимости вычислительных ресурсов становятся экономически выгодны методы автоматического анализа программ. В рамках данной статьи предлагается метод полностью автоматического динамического анализа программ, предоставляющих графический пользовательский интерфейс. Среди существующих инструментов тестирования и анализа программного обеспечения на основе обзора, приведённого в статье, выделяется свободно распространяемое программное инструментальное средство GUITAR, обеспечивающее максимальную степень автоматизации. Рассматриваются основные ограничения подхода, реализованного в средстве GUITAR: недостаточная степень точности модели графического интерфейса, недостаточность полноты описания атрибутов элементов графического интерфейса. Данные ограничения приводят к невозможности покрытия наборами тестовых воздействий отдельных элементов графического интерфейса в рамках анализа и созданию тестовых сценариев, которые не могут быть воспроизведены на практике. В статье предлагается ряд модификаций подхода: итеративное построение модели графического интерфейса, расширение списка атрибутов элементов графического интерфейса, алгоритм итеративного построения тестовых наборов по графу потока событий с целью явной проверки функциональности всех элементов графического интерфейса. В статье рассмотрены результаты практических экспериментов применения предложенных модификаций для набора проектов с открытым исходным кодом, демонстрирующие повышение эффективности анализа и полноты покрытия графического интерфейса создаваемыми тестовыми наборами. В заключение статьи обсуждаются перспективные направления дальнейшей работы, включающие применение методов символьного исполнения и анализа помеченных данных.
135-148 34
Аннотация
Сложность современного программного обеспечения постоянно растет, в связи с чем возникает потребность в автоматических инструментах выявления ошибок в разработанных программах. В рамках данной статьи мы представляем решение некоторых задач, возникающих в процессе разработки программного обеспечения. Профилирование работы программ с динамической оперативной памятью, символьное исполнение программ с графическим пользовательским интерфейсом, обнаружение ошибок в параллельных программах - небольшой, но крайне важный класс задач, решение которых востребовано индустрией разработки программного обеспечения. В связи с отсутствием в виртуальной машине Dalvik операционной системы Android стандартных средств подключения агентов, на базе которых возможно проведение динамической инструментации байт-кода, в статье рассмотрен подход к профилированию использования динамической памяти Java-программами при помощи инструмента, реализованного как модифицированная виртуальная машина Dalvik операционной системы Android. Показана обоснованность примененного подхода, приведены практические результаты анализа нескольких программ из комплекта поставки операционной системы Android. Также в статье описано решение задачи динамического символьного исполнения программ с графическим пользовательским интерфейсом с целью генерации минимальных последовательностей управляющих воздействий на пользовательский интерфейс, обеспечивающих тестовое покрытие программы на базе статической инструментации байт-кода Java-программ и модификации инструмента генерации тестовых наборов для приложений с графическим пользовательским интерфейсом GUITAR. В завершении статьи рассматривается применение особенности реализации инструмента обнаружения ошибок синхронизации параллельных программ на языке Java, исполняемых виртуальной машиной Dalvik операционной системы Android на базе статической инструментации байт-кода Java-программ и применения инструмента ThreadSanitizer.
149-166 19
Аннотация
Данная статья посвящена исследованию возможностей применения современных методов динамического анализа программ на основе символьного исполнения к программному обеспечению, предоставляющему графический пользовательский интерфейс. Отличительными особенностями подобных программ является интерактивная обработка данных и применение параллельных потоков команд. Данные особенности значительно усложняют эффективность применения подходов автоматического обхода путей выполнения на основе символьного исполнения. В рамках статьи предлагается проводить анализ программ, предоставляющих графический интерфейс, с помощью гибридного метода, включающего символьное исполнение и стандартные подходы к извлечению модели графического интерфейса для построения тестовых сценариев. В статье представлен обзор существующих программных средств, предоставляющих возможности анализа и тестирования программ, и выделены средства GUITAR и Coffee Machine, совмещение которых позволяет эффективно анализировать Java-программы с графическим пользовательским интерфейсом. Рассматривается схема внедрения модулей инструментации байт-кода системы Coffee Machine в рабочий цикл инструмента GUITAR. Модель структуры графического интерфейса, извлекаемая инструментом GUITAR, расширяется фрагментами предикатов пути, построенных с помощью символьного исполнения. Представлен алгоритм составления предикатов в сложные трассы, обрабатываемые инструментами проверки выполнимости булевых ограничений, позволяющий автоматически генерировать тестовые сценарии для обхода различных путей выполнения по коду функций обработки событий взаимодействия с элементами графического интерфейса. Представлены практические результаты применения совмещенного метода, позволившего обнаружить необработанные исключения в ряде проектов с открытым исходным кодом, и дана оценка полученных результатов. В заключении статьи даётся оценка эффективности предложенного метода и рассмотрены основные ограничения, избавление от которых представляется актуальным направлением дальнейших исследований.
167-194 35
Аннотация
В работе дается обзор существующих методов и средств генерации тестовых программ для микропроцессоров. Генерация тестовых программ и анализ результатов их выполнения являются основным подходом к функциональной верификации микропроцессоров. Этот подход также принято называть тестированием. Несмотря на то, что методы генерации тестовых программ непрерывно совершенствуются, тестирование остается крайне трудоемким процессом. Одна из основных причин состоит в том, что средства генерации не успевают адаптироваться к изменениям. В большинстве случаев они созданы под конкретные типы микропроцессоров и предназначены для решения конкретных задач. Поэтому поддержка новых типов микропроцессоров и новых методов генерации требует значительных усилий. Часто в таких случаях приходится создавать новую реализацию с нуля. Невозможность повторного использования имеющейся реализации затрудняет развитие средств генерации и, как следствие, препятствует улучшению качества тестирования. Текущее положение дел создает мотивацию для поиска решений, позволяющих создавать более гибкие средства генерации, которые могли бы быть с минимальными усилиями адаптированы для тестирования новых типов микропроцессоров и применения новых методов генерации. Цель данной работы - обобщить имеющийся опыт генерации тестовых программ, который мог бы послужить основой для создания таких средств. В работе рассматриваются сильные и слабые стороны распространенных методов генерации, области их применения и варианты их совместного использования. Также делается сравнительный анализ возможностей существующих средств генерации, реализующих эти методы. На основе данного анализа даются рекомендации по созданию универсальной методологии разработки средств генерации тестовых программ для микропроцессоров.
195-230 20
Аннотация
В статье приведен обзор существующих подходов к моделированию памяти Си-программ в инструментах статической верификации. Обозначены основные проблемы, возникающие при разработке моделей памяти для языка Си. В обзоре рассматриваются две основные группы моделей памяти в зависимости от полноты поддержки областей памяти наперед не ограниченного размера. Среди моделей для ограниченных областей памяти рассматриваются модель, использующая результаты предварительного анализа алиасов, и модель на основе слабейших предусловий, использующая теорию неинтерпретируемых функций и логику первого порядка. Среди моделей для областей памяти наперед не ограниченного размера рассматривается типизированная модель, модель Бурсталла-Борната, модель с регионами и полная модель памяти для теории интерпретируемых множеств элементов списков, использованная ранее в инструменте дедуктивной верификации HAVOC.
231-260 22
Аннотация
В статье рассматриваются аспекты построения и использования современных фреймворков для организации потоковой обработки данных. Уделяется внимание архитектурным аспектам фреймворков, а также связанными с ними достоинствами и недостатками. Рассматривается проблема объективного оценивания характеристик потоковых фреймворков.


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)