Block Triangularization Initializer¶
The Block Triangularization initializer is a general purpose Initializer
that can be applied to any model type. It applies the Pyomo incidence analysis toolbox to attempt to decompose the model into the maximum set of smaller sub-problems that can be solved sequentially using a block traingularization transformation. These sub-problems can then be solved by applying either a simple Newton solver (for 1x1 blocks, i.e., one variable and constraint) or a user selected solver for NxN blocks. The Block Triangularization initializer also inherently handles plug-ins, as these are decomposed as part of the overall model strucutre.
This approach is often faster and more reliable than heuristic methods, however it may struggle to decompose problems involving tightly couples systems of equations such as column models and counter-current flow.
The BlockTraingulariaztionInitializer` is the default Initializer
assigned to all IDAES models (via model.default_initializer
unless this is overwritten by the model developer.
BlockTriangularizationInitializer Class¶
- class idaes.core.initialization.block_triangularization.BlockTriangularizationInitializer(**kwargs)[source]¶
Block Triangularization based Initializer object.
This Initializer should be suitable for most models, but may struggle to initialize tightly coupled systems of equations.
This Initializer uses the common workflow defined in InitializerBase and calls the Pyomo solve_strongly_connected_components function to initialize the model.
- Keyword Arguments
constraint_tolerance – Tolerance for checking constraint convergence
output_level – Set output level for logging messages
block_solver – Solver to use for NxN blocks
block_solver_options – Dict of options to pass to block solver
calculate_variable_options – Dict of options to pass to calc_var_kwds argument in solve_strongly_connected_components method. NOTE: models involving ExternalFunctions must set ‘diff_mode=differentiate.Modes.reverse_numeric’
- initialize(model, initial_guesses=None, json_file=None)¶
Execute full initialization routine.
- Parameters
Note - can only provide one of initial_guesses or json_file.