生成切片组件

(函数来自 pyomo.dae.flatten)

pyomo.dae.flatten.generate_sliced_components(b, index_stack, slice_, sets, ctype, index_map, active=None)[源代码]

递归生成指定ctype沿指定集合的切片

Parameters:
  • b (BlockData) – 其组件将被切片的块

  • index_stack (list) – 设置在块层次结构中位于 b 之上的集合,包括其父组件中已被切片的集合。这是为了返回已被切片的集合。

  • slice (IndexedComponent_sliceBlockData) – 到目前为止生成的切片。此函数将在块层次结构的当前级别生成此切片的扩展。

  • 集合 (ComponentSetPyomo 集合) – 将被切片的集合

  • ctype (子类Component) – 要生成的组件类型

  • index_map (ComponentMap) – 从(部分)指定的集合到“代表索引”的映射,用于在进入子块时使用。虽然此映射不需要包含切片集合中的每个集合,但它不能包含任何不会被切片的集合。

  • active (BoolNone) – 如果不是 None,这是一个布尔标志,用于根据组件对象的活动状态进行过滤。

Yields:

集合的元组和IndexedComponent_slice或ComponentData – 索引返回的组件或切片的集合。如果组件被索引,则返回IndexedComponent_slice。否则,返回ComponentData。