Flowsheet models are the top level of the IDAES modeling hierarchy. The flowsheet is implemented with a FlowsheetBlock, which provides a container for other components. Flowsheet models generally contain three types of components:
- Unit models, representing unit operations
- Property packages, representing the parameters and relationships for property calculations
- Arcs, representing connections between unit models
The FlowsheetBlock is also where the time domain is implemented. While a time domain is important to support dynamic modeling, this time domain exists even for steady state models (single point in time).
Flowsheet models may also contain additional constraints relating to how different Unit models behave and interact, such as control and operational constraints. Generally speaking, if a constraint is purely internal to a single unit, and does not depend on information from other units in the flowsheet, then the constraint should be placed inside the relevant unit model. Otherwise, the constraint should be placed at the Flowsheet level.