@@ -60,6 +60,11 @@ export class HighDensitySolver extends BaseSolver {
6060 useGrowShrinkHighDensityIntraNodeSolver : boolean
6161 preserveTerminalPcbPortIds : boolean
6262 growShrinkMaxInnerIterationsPerGrowthAttempt ?: number
63+ growShrinkMaxInitialScaleSupervisorIterations ?: number
64+ growShrinkMaxTotalGrownScaleSupervisorIterations ?: number
65+ growShrinkTryLargestScaleAsRepairSeedAfterInitialFailure : boolean
66+ prioritizeSolvedSegmentProgressBeforeAdaptiveExpansion : boolean
67+ includeSyntheticPortBoundsForExternalSolvers : boolean
6368 growShrinkFallbackToInvalidGeometryOnFailure : boolean
6469 growShrinkSolutionValidator ?: ( routes : HighDensityIntraNodeRoute [ ] ) => boolean
6570 captureSearchDebug : boolean
@@ -95,6 +100,11 @@ export class HighDensitySolver extends BaseSolver {
95100 useGrowShrinkHighDensityIntraNodeSolver,
96101 preserveTerminalPcbPortIds,
97102 growShrinkMaxInnerIterationsPerGrowthAttempt,
103+ growShrinkMaxInitialScaleSupervisorIterations,
104+ growShrinkMaxTotalGrownScaleSupervisorIterations,
105+ growShrinkTryLargestScaleAsRepairSeedAfterInitialFailure,
106+ prioritizeSolvedSegmentProgressBeforeAdaptiveExpansion,
107+ includeSyntheticPortBoundsForExternalSolvers,
98108 growShrinkFallbackToInvalidGeometryOnFailure,
99109 growShrinkSolutionValidator,
100110 captureSearchDebug,
@@ -111,6 +121,11 @@ export class HighDensitySolver extends BaseSolver {
111121 useGrowShrinkHighDensityIntraNodeSolver ?: boolean
112122 preserveTerminalPcbPortIds ?: boolean
113123 growShrinkMaxInnerIterationsPerGrowthAttempt ?: number
124+ growShrinkMaxInitialScaleSupervisorIterations ?: number
125+ growShrinkMaxTotalGrownScaleSupervisorIterations ?: number
126+ growShrinkTryLargestScaleAsRepairSeedAfterInitialFailure ?: boolean
127+ prioritizeSolvedSegmentProgressBeforeAdaptiveExpansion ?: boolean
128+ includeSyntheticPortBoundsForExternalSolvers ?: boolean
114129 growShrinkFallbackToInvalidGeometryOnFailure ?: boolean
115130 growShrinkSolutionValidator ?: (
116131 routes : HighDensityIntraNodeRoute [ ] ,
@@ -137,6 +152,16 @@ export class HighDensitySolver extends BaseSolver {
137152 this . preserveTerminalPcbPortIds = preserveTerminalPcbPortIds ?? false
138153 this . growShrinkMaxInnerIterationsPerGrowthAttempt =
139154 growShrinkMaxInnerIterationsPerGrowthAttempt
155+ this . growShrinkMaxInitialScaleSupervisorIterations =
156+ growShrinkMaxInitialScaleSupervisorIterations
157+ this . growShrinkMaxTotalGrownScaleSupervisorIterations =
158+ growShrinkMaxTotalGrownScaleSupervisorIterations
159+ this . growShrinkTryLargestScaleAsRepairSeedAfterInitialFailure =
160+ growShrinkTryLargestScaleAsRepairSeedAfterInitialFailure ?? false
161+ this . prioritizeSolvedSegmentProgressBeforeAdaptiveExpansion =
162+ prioritizeSolvedSegmentProgressBeforeAdaptiveExpansion ?? false
163+ this . includeSyntheticPortBoundsForExternalSolvers =
164+ includeSyntheticPortBoundsForExternalSolvers ?? false
140165 this . growShrinkFallbackToInvalidGeometryOnFailure =
141166 growShrinkFallbackToInvalidGeometryOnFailure ?? false
142167 this . growShrinkSolutionValidator = growShrinkSolutionValidator
@@ -156,6 +181,7 @@ export class HighDensitySolver extends BaseSolver {
156181 solverNodeCount : { } as Record < string , number > ,
157182 difficultNodePfs : { } as Record < string , number [ ] > ,
158183 highDensityResizeCount : 0 ,
184+ highDensityUnvalidatedRepairSeedCount : 0 ,
159185 }
160186 }
161187
@@ -283,6 +309,10 @@ export class HighDensitySolver extends BaseSolver {
283309 if ( ! ( solver instanceof GrowShrinkHighDensityIntraNodeSolver ) ) return
284310 this . stats . highDensityResizeCount =
285311 ( this . stats . highDensityResizeCount ?? 0 ) + solver . growthAttempts
312+ if ( solver . stats . unvalidatedPostShrinkRepairSeed ) {
313+ this . stats . highDensityUnvalidatedRepairSeedCount =
314+ ( this . stats . highDensityUnvalidatedRepairSeedCount ?? 0 ) + 1
315+ }
286316 }
287317
288318 private getSolvedRoutesWithTerminalPcbPortIds (
@@ -383,6 +413,16 @@ export class HighDensitySolver extends BaseSolver {
383413 layerCount : this . layerCount ,
384414 maxInnerIterationsPerGrowthAttempt :
385415 this . growShrinkMaxInnerIterationsPerGrowthAttempt ,
416+ maxInitialScaleSupervisorIterations :
417+ this . growShrinkMaxInitialScaleSupervisorIterations ,
418+ maxTotalGrownScaleSupervisorIterations :
419+ this . growShrinkMaxTotalGrownScaleSupervisorIterations ,
420+ tryLargestScaleAsRepairSeedAfterInitialFailure :
421+ this . growShrinkTryLargestScaleAsRepairSeedAfterInitialFailure ,
422+ prioritizeSolvedSegmentProgressBeforeAdaptiveExpansion :
423+ this . prioritizeSolvedSegmentProgressBeforeAdaptiveExpansion ,
424+ includeSyntheticPortBoundsForExternalSolvers :
425+ this . includeSyntheticPortBoundsForExternalSolvers ,
386426 fallbackToInvalidGeometryOnFailure :
387427 this . growShrinkFallbackToInvalidGeometryOnFailure ,
388428 growShrinkSolutionValidator : this . growShrinkSolutionValidator ,
0 commit comments