Существует ли рекомендуемая передовая практика преобразования деревьев переменных из 0.X в 1.X? Моя интуиция состоит в том, чтобы превратить деревья переменных в компоненты, но мне любопытно, что думает команда OpenMDAO.
Лучшая практика конвертации из 0.X: деревья переменных
Ответы (2)
мы отошли от переменных деревьев. Вместо этого мы просто называем переменные иерархически, например «top:sub:subsub:x, top:sub:subsub:y».
килоджоули,
Я тоже был очень расстроен устранением переменных деревьев; но меня гораздо больше расстроило то, что они не смогли интегрироваться с компонентами openmdao и молчали. Скатертью дорога.
Я экспериментировал с numpy.ndarray в качестве замены деревьев переменных. Подробности смотрите в примере Селлара. Создание многомерного ndarray с именами полей, кажется, хорошо работает для структуры данных со ссылкой на имя. Кажется, что для создания многомерности требуется вложение объявлений, аналогичное ветвям дерева переменных.
Обратите внимание, что numpy.array (sic) не совместим с openmdao, но numpy.ndarray (sic) работает хорошо, поскольку ndarray является «структурированным» объектом массива с размером, формой, типом данных и т. д., указанными во внутреннем словаре. Лучше, чем деревья переменных, многомерный ndarray предоставляет несколько «представлений» одних и тех же отношений с одним (массивным) глобальным объявлением, которое может быть создано как параметр внутри компонента. Заполнение экземпляра ndarray выполняется путем присваивания имени поля вместо некоторой итерации. Это сложнее объявить, так как ВСЯ информация о структурированном массиве должна быть предоставлена для работы в openmdao. Кроме того, numpy.ndarray предназначен для жестко фиксированных размеров массивов и отношений, как деревья переменных.
Я не защищаю эту концепцию для каждого приложения, но обратите внимание на вашу ситуацию.
Сильвия