Quintiq file version 2.0
|
#parent: #root
|
Method InitVariablesForUnitPeriod (
|
CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program,
|
const UnitPeriod unitperiod,
|
const LibOpt_Scope scope
|
) const
|
{
|
Description: 'Initialize the variables for a single unit period related to the capacity calculations'
|
TextBody:
|
[*
|
// UnitCapacityNotMet variable UoM: Unit or Time
|
unitperiod.NewCapacityNotMetVariable( program ); // The additional quantity/time which needs to be processed by the unit period to reach the defined minimum usage
|
|
// UnitCapacityOverloaded variable UoM: Unit or Time
|
unitperiod.NewCapacityOverloadedVariable( program );
|
|
if( unitperiod.istype( UnitPeriodTime ) and this.MacroPlan().HasTool() )
|
{
|
// UnitPeriodNrOfToolChange variable
|
nrchangevar := program.UnitPeriodNrOfToolChangeVariables().New( unitperiod ); // The number of tool change required for the unit period
|
this.SetStartSolutionNrOfToolChangeVar( nrchangevar, unitperiod );
|
|
}
|
|
if( unitperiod.istype( UnitPeriodTransportQuantity )
|
and unitperiod.astype( UnitPeriodTransportQuantity ).HasSecondaryCapacityDefinition() )
|
{
|
// UnitSecondaryCapacityNotMet variable UoM: TransportCapacity
|
program.UnitSecondaryCapacityNotMetVariables().New( unitperiod );
|
// UnitSecondaryCapacityOverloaded variable UoM: TransportCapacity
|
program.UnitSecondaryCapacityOverloadedVariables().New( unitperiod );
|
}
|
|
// capacity smoothing
|
if( this.GetRunContextConst().UseCapacitySmoothing()
|
and not isnull( unitperiod.AsCapacitySmoothingUnitPeriod() ) )
|
{
|
// Calculate capacity usage of unit period
|
// CapacityUsage variable UoM: %
|
program.CapacityUsageVariables().New( unitperiod );
|
|
// Store min and max capacity usage over next Unit.CapacitySmoothingLength periods
|
if( not isnull( unitperiod.AsCapacitySmoothingHead() ) )
|
{
|
// MinCapacityUsage variable UoM: %
|
program.MinCapacityUsageVariables().New( unitperiod );
|
// MaxCapacityUsage variable UoM: %
|
program.MaxCapacityUsageVariables().New( unitperiod );
|
// Capacity smoothing slack variable
|
program.CapacitySmoothingSlackVariables().New( unitperiod );
|
}
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|