Problem Tables and Temperature Shifting
The numerical core of OpenPinch is the Problem Table style interval cascade. This is the bridge between raw stream temperatures and the reported utility and pinch targets.
Why Temperature Shifting Exists
Real heat exchange requires a finite temperature approach. OpenPinch models that requirement by shifting stream temperatures before building the cascade.
In the runtime stream model:
hot streams shift downward using the active approach value
cold streams shift upward using the active approach value
This is why the package distinguishes between:
original physical temperatures
shifted temperatures used for targeting calculations
The shifted view answers the practical recovery question, not just the ideal overlap question.
OpenPinch Runtime Representation
At the class level, the stream model stores:
the original/base dt_cont
the active/effective dt_cont
shifted temperatures such as t_min_star and t_max_star
That allows workflows such as sensitivity studies or zone-level multiplier updates without overwriting the original input assumption.
What The Problem Table Produces
Once streams are shifted and grouped into temperature intervals, the cascade can be used to derive:
hot utility target
cold utility target
heat recovery
pinch temperatures
graph-ready curve data
The same broad machinery supports both direct process-level targeting and the site-style aggregation workflows, although the stream sets being cascaded are different.
Real and Shifted Outputs
OpenPinch exposes both thermodynamic numbers and graph interpretations. This is why you will see multiple graph families:
composite curves
shifted composite curves
balanced composite curves
grand composite curves
The shifted views are usually the best place to connect the numerical targets back to a practical integration picture.
Implications For Sensitivity Work
Any workflow that changes effective approach assumptions should be expected to change:
shifted temperatures
interval boundaries
utility targets
graph shapes
This is why OpenPinch rebuilds prepared runtime structures when some configuration-level assumptions change, rather than pretending those values are harmless scalar tweaks.