admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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' }
}