Sequential Quadratic Programming

A Continuous Search Method available in the Sizing Method panel.

Sequential Quadratic Programming (SQP) finds the best case design by solving a series of quadratic approximations to the Objective Function. Each of these "Sub-Problems" is solved with the Modified Method of Feasible Directions. This method is often the best and most efficient if the problem is numerically well defined. Sizing with this method is always worth checking.

Note: Branch and Bound rapidly becomes inefficient with an increase in independent variables. For discrete optimization with more than 10 independently sized pipes, the Sequential Unconstrained or Genetic Algorithm methods should be considered.

Sizing Control Parameters

  • Finite Difference Gradient Calculation - The most likely parameters to be changed, gradient calculation directly influences the search direction. See a detailed discussion in Estimating the Gradient.

    • Method - Forward or Central, directly affects the quality of the gradient at the cost of runtime. Central gradients are more accurate but require about twice as many hydraulic solutions.

    • Step Size - How much to perturb the pipe sizes to determine the gradient. If the Objective was known exactly, it would make sense to make these values very small. However, as Fathom itself is an iterative solver, the Objective is only known to within a certain tolerance. Making the Finite Difference Step Size too small actually introduces uncertainty into the gradient and can therefore generate poor search directions making the process take longer, if a solution can be found at all. A Step Size that is too large has a similar effect, so it is important to select an appropriate value between the two extremes. The best value to use depends on the system in question - when in doubt, use the default.

  • Print Text Debug File - Generate a tab-separated file reporting on each call to the hydraulic solver. Actual pipe sizes are presented along with current Objective value and Design Requirement status.

Caution: The Advanced Control Parameters below should not be changed under normal circumstances without the direction of AFT Support.

  • Sizing Level Convergence

    • Maximum Iterations - This value is the number of sizing iterations, not the number of hydraulic solutions allowed. Generally, the hydraulic solution is by far the slowest part of the process, and as the number of uniquely sized pipes increases, so does the number of required hydraulic solutions. A problem with 100 independently sized pipes would require, at minimum, 100 hydraulic solutions just for 1 sizing iteration. That said, it is important to have an adequate number of sizing iterations regardless of the number of variables - if the process is stopped prematurely, the ideal sizes have not been found.

    • Consecutive Iterations for Convergence - The sizing process will be repeated at least this number of times while satisfying the convergence criteria. It is helpful to allow additional iterations because the sizing process can occasionally make little change in one iteration and then significant change in the next.

    • Relative Tolerance - Changes smaller than this relative amount (default of 0.1%) are considered small enough to be converged. Note that the number of iterations requiring a change in the value of the Objective smaller than this amount can be modified.

    • Absolute Tolerance - The value entered here is multiplied by the initial Objective value. The resulting value is considered as an absolute tolerance. By default, the Objective is scaled to 1,000 meaning that the default value of 0.0001 results in an absolute tolerance of 1,000*0.0001 = 0.1. Objective values smaller than 0.1 will use the absolute criterion instead of the relative.

  • Sub-Problem Iterations

    • Maximum - This is the maximum number of approximate problem cycles.

    • Consecutive for Convergence - The approximations will be repeated at least this number of times while satisfying the Sizing Level Convergence tolerance criteria.

  • Sequential Unconstrained Parameters

    • Maximum Number of Independent Pipe Sizes for Branch and Bound - Discrete solutions with this method require the use of Branch and Bound. If the system has more independently sized pipes than this value, the Sequential  Unconstrained will automatically be used.

    • Sequential Unconstrained Parameters - See Sequential Unconstrained.

  • Design Requirement Tolerances

    • Violated - A very small positive value, which allows Design Requirements to be violated. It is important to allow this small violation for numerical reasons, as attempting to force values to zero is often difficult computationally.

    • Active - This small negative number determines how close to the Design Requirement the Objective can be before the Design Requirement influences the search direction. This value is updated automatically during the sizing process.

  • Scaling Parameters

    • Desired Objective Scaled Value - In some cases it is helpful to scale the value of the Objective. Very large or very small unscaled Objective values can present numerical issues, and scaling can help with this.

    • Scale Factor for Design Requirements

      • Common - Design Requirements are always scaled (dividing by the user defined quantity) for numerical reasons. This factor allows additional scaling.

      • Violated Tolerance - This can be used to reduce the value of Violated Design Requirement Tolerance. This can be useful if the small violation is unacceptable for a feasible design.

  • Print Optimizer Debug File - Generate a debug file detailing the normalized and generalized optimization process.