OpenMDAO - это высокопроизводительная вычислительная платформа с открытым исходным кодом для системного анализа и междисциплинарной оптимизации, написанная на Python язык программирования.
Проект OpenMDAO в первую очередь ориентирован на поддержку оптимизации на основе градиента с аналитическими производными, чтобы позволить вам исследовать большие пространства дизайна с сотнями или тысячами переменных дизайна, но структура также имеет ряд функций параллельных вычислений, которые могут работать с оптимизацией без градиента, смешанным целочисленным нелинейным программированием и традиционным исследованием пространства дизайна.
Платформа OpenMDAO разработана для помощи в связывании отдельных частей программного обеспечения с целью комбинированного анализа. Он позволяет пользователям комбинировать инструменты анализа (или коды проектирования) из разных дисциплин на разных уровнях точности и управлять взаимодействием между ними. OpenMDAO специально разработан для управления потоком данных (фактические данные) и рабочим процессом (какой код и когда запускается) в сочетании с алгоритмами оптимизации и другими передовыми методами решения.
Разработка OpenMDAO ведется вне NASA Glenn Research Center.
Мотивация НАСА в поддержке проекта OpenMDAO проистекает из требований нетрадиционных концепций самолетов, таких как Turbo-Electric распределенная силовая установка. Хотя НАСА занимается анализом аэрокосмических приложений, сама структура носит общий характер и не относится к какой-либо дисциплине.
OpenMDAO предназначена для отделения потока информации (потока данных) от процесса, в котором выполняется анализ (рабочий процесс). Это достигается с помощью четырех конкретных конструкций: Компонент, Сборка, Драйвер и Рабочий процесс.
Создание моделей системы начинается с обертывания (или написания с нуля) различных кодов анализа как компонентов. Группа компонентов связана вместе внутри сборки, определяя поток данных между ними. После создания потока данных можно выбрать конкретные драйверы (оптимизаторы, решатели, план экспериментов и т. Д.) И настроить рабочий процесс, чтобы точно определить, как проблема должна быть решена.
OpenMDAO также включает графический пользовательский интерфейс на основе веб-браузера (GUI) для визуального построения, выполнения и оптимизации моделей.