Debugging and data validation

Finding the cause for infeasibilities or counter-intuitive results in large-scale numerical models is not trivial. For this reason, the MESSAGEix framework includes a number of features to simplify debugging and pre-processing data validation.

Pre-processing data validation

The data validation checks are included in the file model/MESSAGE/data_load.gms. If the data validation fails, an error message is written to the log file.

Identification of infeasibilities

The MESSAGEix framework includes the option to “relax” the most common constraints, simultaneously adding a penalty term for the relaxation to the objective function. Solving the relaxed version of the model can help to identify incompatible constraints or input data errors causing infeasible models.

The relaxations can be activated by blocks/types of equations by setting the respective global variables ($SETGLOBAL in GAMS) in MESSAGE_master.gms or by calling MESSAGE_run.gms passing the global variables as command-line arguments.