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' }
|
}
|