PintUnitExtractionVisitor

(类来自 pyomo.core.base.units_container)

class pyomo.core.base.units_container.PintUnitExtractionVisitor(pyomo_units_container, units_equivalence_tolerance=1e-12)[source]

基础类:StreamBasedExpressionVisitor

__init__(pyomo_units_container, units_equivalence_tolerance=1e-12)[source]

用于确定表达式单位的访问者类。不要直接使用此类,而是使用 “py:meth:PyomoUnitsContainer.assert_units_consistentPyomoUnitsContainer.get_units()

Parameters:
  • pyomo_units_container (PyomoUnitsContainer) – 用于表达式中单位的PyomoUnitsContainer实例。Pyomo不支持“混合”来自不同容器的单位

  • units_equivalence_tolerance (float (default 1e-12)) – 用于决定单位是否等效的浮点容差。

注释

这个类继承自StreamBasedExpressionVisitor,以实现一个遍历器,该遍历器返回与表达式对应的pyomo单位和pint单位。

有一些类属性(字典)将表达式节点类型映射到特定的方法,这些方法应根据其子参数的单元返回节点的单元。此映射在exitNode中使用。

方法

__init__(pyomo_units_container[, ...])

用于确定表达式单位的访问者类。

beforeChild(node, child, child_idx)

exitNode(node, data)

在向上遍历表达式树时的访问者回调。

finalizeResult(result)

initializeWalker(expr)

walk_expression(expr)

遍历一个表达式,调用已注册的回调函数。

walk_expression_nonrecursive(expr)

非递归地遍历表达式,调用已注册的回调函数。

属性

client_methods

node_type_method_map

unary_function_method_map

成员文档

exitNode(node, data)[source]

在向上遍历表达式树时的访问者回调。

回调用于 pyomo.core.current.StreamBasedExpressionVisitor。此 方法在深度优先搜索中向上移动树时被调用。

walk_expression(expr)

遍历一个表达式,调用已注册的回调函数。

这是运行访问者的标准接口。它默认使用访问者的高效递归实现,如果递归堆栈太深,则回退到walk_expression_nonrecursive()

walk_expression_nonrecursive(expr)

非递归地遍历表达式,调用已注册的回调函数。

这个例程对于深度(或不平衡)树来说比递归遍历更安全。然而,它比递归实现稍微慢一些。