Наследование модулей в OpenMDAO

У меня есть ряд компонентов в группе, где некоторые из компонентов написаны для общего назначения, а не для моего приложения. Я хотел бы, чтобы входы и выходы этих общих компонентов наследуют единицы от параметров, к которым они подключены в своей родительской группе. Это возможно? Я не уверен, что это действительно необходимо, и все работает нормально, но я продолжаю получать следующее предупреждение:

Unit Conversions
GeneralComp.Output -> SpecificComp.Input : None -> kW

Я мог предвидеть проблему, когда единицы, переданные в GeneralComp, должны быть преобразованы в какой-то момент, но это не так, поскольку единицы потеряны.


person jthomas    schedule 09.02.2016    source источник


Ответы (1)


У нас нет способа наследовать единицы от соединений src. Вообще говоря, это было бы слишком рискованно и, вероятно, привело бы к спутник упадет на Марс. Я предпочитаю, чтобы единицы измерения в этом случае были явными, так как их отсутствие работает нормально (мы просто берем значение, которое вы даете, и передаем его нижестоящему потоку).

Почему бы не добавить аргумент инициализации «единицы» к вашим компонентам, чтобы вы могли указать его во время инициализации?

person Justin Gray    schedule 09.02.2016
comment
Не могли бы Вы уточнить? Вам нужна сама единица (например, «м / с») или вам нужно значение в единицах параметра? - person Justin Gray; 09.02.2016
comment
Самый простой способ — перейти к компоненту, которому принадлежит этот параметр, через ‹проблема›.root.somegroup.someothergroup.component.params['param_name'] - person Justin Gray; 10.02.2016