| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ActivateSolverSettingsHierarchical ( | 
|   MathematicalProgram program, | 
|   const StrategyLevelMacroPlan runlevel, | 
|   MPGoal goal, | 
|   const RunContextForCapacityPlanning runcontext | 
| ) const | 
| { | 
|   Description: 'Activates the solver settings of the current algorithm run' | 
|   TextBody: | 
|   [* | 
|     // Activate the solver settings | 
|      | 
|     maxthreadsglobal := ifexpr( this.MacroPlan().IsSizingParameterOn(), this.MacroPlan().ResourceManager_MP().MaxThreadForOptimization(), Number::MaxNumber() );  | 
|     traverse( runlevel, SolverSettingGroupMacroPlan.SolverSettingMacroPlan, solversettingrun )  | 
|     { | 
|        | 
|       parametervalue := solversettingrun.ParameterValue(); | 
|       if ( solversettingrun.IsNumberParameter() )  | 
|       { | 
|         if ( solversettingrun.ParameterNumber() = 1067 and runcontext.IsForBenchmarking() ) // threads  | 
|         { | 
|           parametervalue := minvalue( parametervalue, runcontext.MaxNumberOfThreadsForBenchmarking() );    | 
|         } | 
|          | 
|         parametervalue := minvalue( parametervalue, maxthreadsglobal ); // limit by sizing parameter setting | 
|          | 
|         goal.ParameterSet().Set(  solversettingrun.ParameterNumber(), [Number]parametervalue );  | 
|       } | 
|       else | 
|       { | 
|         goal.ParameterSet().Set(  solversettingrun.ParameterNumber(), parametervalue );  | 
|       } | 
|       debuginfo(  this.MacroPlan().DatasetName(),  | 
|                   runlevel.Level(),  | 
|                   '->',  | 
|                   solversettingrun.SolverSettingGroupMacroPlan().Name(),  | 
|                   ':', solversettingrun.ParameterNumber(),  | 
|                   '-', parametervalue );  | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |