Skip to main content

ModelCenter Custom Optimization Algorithm SDK 2026 R1

IAlgorithm Interface

Last update: 19.06.2026

Namespace: Phoenix.Optimization

Overview

Interface used to define an algorithm for the Optimization Tool infrastructure.

Inheritance

IAlgorithm

Declaration

interface IAlgorithm

Description

Interface used to define an algorithm for the Optimization Tool infrastructure.

Public Member Functions

Type Name Description
void RestoreCheckPoint (string saveState) Restore a specific state of the analysis.
void Run () Initiates execution of the solver.
void SetConstraints (List< OptConstraint > constraints) Used by the infrastructure to pass the constraints to the algorithm.
void SetDesignVariables (List< DesignVariable > designVariables) Used by the infrastructure to pass the design variables to the algorithm.
void SetHost (IAlgorithmHost host) Set the host interface to be used for callbacks.
void SetObjectives (List< Objective > objectives) Used by the infrastructure to pass the objectives to the algorithm.
bool ShowOptionsDialog (IWin32Window owner) Called to display the algorithms custom options form.

Properties

Type Name Description
string Author [get] String containing the author of the algorithm.
string Description [get] String containing the description of the algorithm.
string DetailsReport [get] String containing the details report for the problem.
string HelpFilePath [get] String containing the relative path to the algorithm's help file.
string HelpURL [get] String containing a URL that can be used get further help with the algorithm.
string IconLocation [get] String containing the relative path to the algorithm's icon.
string Keywords [get] String containing the keywords associated with the algorithm.
string LicenseFeature [get] String containing the algorithms FlexLM license feature.
int MaxNumberOfObjectives [get] Integer containing the maximum number of objectives supported by the algorithm.
string Name [get] String containing the name of the algorithm.
AlgorithmNumModelEvaluations NumModelEvaluations [get] AlgorithmNumModelEvaluations indicating how many model evaluations are required for convergence.
object Options [get, set] Object containing the options for the algorithm.
string ReleaseDate [get] String containing the release date for the algorithm in the format YYYY.MMDD
string ResultsReport [get] String containing the results report for the problem.
FuzzyBoolean SupportsConstraints [get] FuzzyBoolean stating whether the algorithm supports constraints.
FuzzyBoolean SupportsDiscreteVariables [get] FuzzyBoolean stating whether the algorithm supports discrete variables.
bool SupportsFailedRuns [get] Boolean stating whether the algorithm is able to handle failed model evaluations.
FuzzyBoolean SupportsMinMax [get] FuzzyBoolean stating whether the algorithm supports minimize and maximize objectives.
bool SupportsMultipleObjectives [get] Boolean stating whether or not the algorithm supports multiple objectives.
FuzzyBoolean SupportsNonSmoothResponses [get] FuzzyBoolean stating whether the algorithm supports non-smooth responses (objectives and constraints).
FuzzyBoolean SupportsSolveFor [get] FuzzyBoolean stating whether the algorithm supports the solve for value objective.
string Version [get] String containing the version of the algorithm.

Member Function Documentation

RestoreCheckPoint

void RestoreCheckPoint ( string saveState)

Restore a specific state of the analysis. This save state is provided to the infrastructure by the algorithm using the M:Phoenix.Optimization.IAlgorithmHost.SaveCheckPoint(System.String,System.String) method. Implemented in MockAlgorithm.

Parameters:

  • saveState - String containing the information needed to restore the algorithm to a specific state.

Run

void Run ( )

Initiates execution of the solver. The solver should throw an exception if for any reason it fails to find an optimum value. Implemented in MockAlgorithm.

SetConstraints

void SetConstraints ( List< OptConstraint > constraints)

Used by the infrastructure to pass the constraints to the algorithm. Implemented in MockAlgorithm.

Parameters:

  • constraints - List of PHXConstraints in the problem definition.

SetDesignVariables

void SetDesignVariables ( List< DesignVariable > designVariables)

Used by the infrastructure to pass the design variables to the algorithm. Implemented in MockAlgorithm.

Parameters:

  • designVariables - List of PHXDesignVariables in the problem definition.

SetHost

void SetHost ( [IAlgorithmHost]() host)

Set the host interface to be used for callbacks. A typical implementation would look like: Implemented in MockAlgorithm.

Parameters:

  • host - T:Phoenix.Optimization.IAlgorithmHost to be used by the algorithm for model evaluations

SetObjectives

void SetObjectives ( List< Objective > objectives)

Used by the infrastructure to pass the objectives to the algorithm. Implemented in MockAlgorithm.

Parameters:

  • objectives - List of PHXObjectives in the problem definition.

ShowOptionsDialog

bool ShowOptionsDialog ( IWin32Window owner)

Called to display the algorithms custom options form. If an algorithm displays a custom options form, it is responsible for saving the options back into the algorithm. When the options for is displayed, it should be displayed using the ShowDialog method passing in the owner as an argument. If an algorithm wishes to use the default PropertyGrid options dialog, it should implement the method to simply return false. Implemented in MockAlgorithm.

Parameters:

  • owner - Any object that implements IWin32Window that represents the top-level window that will own the modal dialog box.

Returns:

  • Returns true if the algorithm displayed a custom form, false if the default property grid form should be displayed.

Author

string Author

String containing the author of the algorithm. Implemented in MockAlgorithm.

Description

string Description

String containing the description of the algorithm. Implemented in MockAlgorithm.

DetailsReport

string DetailsReport

String containing the details report for the problem. The details report should contain information about the execution of the algorithm that can be used to troubleshoot it's execution. The resutls report can either be formatted text or HTML. Implemented in MockAlgorithm.

HelpFilePath

string HelpFilePath

String containing the relative path to the algorithm's help file. The base directory used with the relative path it the assembly location. Implemented in MockAlgorithm.

HelpURL

string HelpURL

String containing a URL that can be used get further help with the algorithm. Implemented in MockAlgorithm.

IconLocation

string IconLocation

String containing the relative path to the algorithm's icon. The base directory used with the relative path it the assembly location. Implemented in MockAlgorithm.

Keywords

string Keywords

String containing the keywords associated with the algorithm. Implemented in MockAlgorithm.

LicenseFeature

string LicenseFeature

String containing the algorithms FlexLM license feature. If the algorithm does not use FlexLM licensing, LicenseFeature should be an empty string. Implemented in MockAlgorithm.

MaxNumberOfObjectives

int MaxNumberOfObjectives

Integer containing the maximum number of objectives supported by the algorithm. If there is no limit to the number of objectives, this property should be set to -1. Implemented in MockAlgorithm.

Name

string Name

String containing the name of the algorithm. Implemented in MockAlgorithm.

NumModelEvaluations

AlgorithmNumModelEvaluations NumModelEvaluations

AlgorithmNumModelEvaluations indicating how many model evaluations are required for convergence. Implemented in MockAlgorithm.

Options

object Options

Object containing the options for the algorithm. Options should be public properties of the object. Implemented in MockAlgorithm.

ReleaseDate

string ReleaseDate

String containing the release date for the algorithm in the format YYYY.MMDD Implemented in MockAlgorithm.

ResultsReport

string ResultsReport

String containing the results report for the problem. The results report can either be formatted text or HTML. Implemented in MockAlgorithm.

SupportsConstraints

FuzzyBoolean SupportsConstraints

FuzzyBoolean stating whether the algorithm supports constraints. Implemented in MockAlgorithm.

SupportsDiscreteVariables

FuzzyBoolean SupportsDiscreteVariables

FuzzyBoolean stating whether the algorithm supports discrete variables. Implemented in MockAlgorithm.

SupportsFailedRuns

bool SupportsFailedRuns

Boolean stating whether the algorithm is able to handle failed model evaluations. Implemented in MockAlgorithm.

SupportsMinMax

FuzzyBoolean SupportsMinMax

FuzzyBoolean stating whether the algorithm supports minimize and maximize objectives. Implemented in MockAlgorithm.

SupportsMultipleObjectives

bool SupportsMultipleObjectives

Boolean stating whether or not the algorithm supports multiple objectives. Implemented in MockAlgorithm.

SupportsNonSmoothResponses

FuzzyBoolean SupportsNonSmoothResponses

FuzzyBoolean stating whether the algorithm supports non-smooth responses (objectives and constraints). If the algorithm supports small discontinuities set capability to 'Maybe' If the algorithm supports both small and large discontinuities set capability to 'True If the algorithm does not support any discontinuities set capability to 'False' Implemented in MockAlgorithm.

SupportsSolveFor

FuzzyBoolean SupportsSolveFor

FuzzyBoolean stating whether the algorithm supports the solve for value objective. Implemented in MockAlgorithm.

Version

string Version

String containing the version of the algorithm. Implemented in MockAlgorithm.

Property Documentation

Author

string Author

String containing the author of the algorithm. Implemented in MockAlgorithm.

Description

string Description

String containing the description of the algorithm. Implemented in MockAlgorithm.

DetailsReport

string DetailsReport

String containing the details report for the problem. The details report should contain information about the execution of the algorithm that can be used to troubleshoot it's execution. The resutls report can either be formatted text or HTML. Implemented in MockAlgorithm.

HelpFilePath

string HelpFilePath

String containing the relative path to the algorithm's help file. The base directory used with the relative path it the assembly location. Implemented in MockAlgorithm.

HelpURL

string HelpURL

String containing a URL that can be used get further help with the algorithm. Implemented in MockAlgorithm.

IconLocation

string IconLocation

String containing the relative path to the algorithm's icon. The base directory used with the relative path it the assembly location. Implemented in MockAlgorithm.

Keywords

string Keywords

String containing the keywords associated with the algorithm. Implemented in MockAlgorithm.

LicenseFeature

string LicenseFeature

String containing the algorithms FlexLM license feature. If the algorithm does not use FlexLM licensing, LicenseFeature should be an empty string. Implemented in MockAlgorithm.

MaxNumberOfObjectives

int MaxNumberOfObjectives

Integer containing the maximum number of objectives supported by the algorithm. If there is no limit to the number of objectives, this property should be set to -1. Implemented in MockAlgorithm.

Name

string Name

String containing the name of the algorithm. Implemented in MockAlgorithm.

NumModelEvaluations

AlgorithmNumModelEvaluations NumModelEvaluations

AlgorithmNumModelEvaluations indicating how many model evaluations are required for convergence. Implemented in MockAlgorithm.

Options

object Options

Object containing the options for the algorithm. Options should be public properties of the object. Implemented in MockAlgorithm.

ReleaseDate

string ReleaseDate

String containing the release date for the algorithm in the format YYYY.MMDD Implemented in MockAlgorithm.

ResultsReport

string ResultsReport

String containing the results report for the problem. The results report can either be formatted text or HTML. Implemented in MockAlgorithm.

SupportsConstraints

FuzzyBoolean SupportsConstraints

FuzzyBoolean stating whether the algorithm supports constraints. Implemented in MockAlgorithm.

SupportsDiscreteVariables

FuzzyBoolean SupportsDiscreteVariables

FuzzyBoolean stating whether the algorithm supports discrete variables. Implemented in MockAlgorithm.

SupportsFailedRuns

bool SupportsFailedRuns

Boolean stating whether the algorithm is able to handle failed model evaluations. Implemented in MockAlgorithm.

SupportsMinMax

FuzzyBoolean SupportsMinMax

FuzzyBoolean stating whether the algorithm supports minimize and maximize objectives. Implemented in MockAlgorithm.

SupportsMultipleObjectives

bool SupportsMultipleObjectives

Boolean stating whether or not the algorithm supports multiple objectives. Implemented in MockAlgorithm.

SupportsNonSmoothResponses

FuzzyBoolean SupportsNonSmoothResponses

FuzzyBoolean stating whether the algorithm supports non-smooth responses (objectives and constraints). If the algorithm supports small discontinuities set capability to 'Maybe' If the algorithm supports both small and large discontinuities set capability to 'True If the algorithm does not support any discontinuities set capability to 'False' Implemented in MockAlgorithm.

SupportsSolveFor

FuzzyBoolean SupportsSolveFor

FuzzyBoolean stating whether the algorithm supports the solve for value objective. Implemented in MockAlgorithm.

Version

string Version

String containing the version of the algorithm. Implemented in MockAlgorithm.

Connect with Ansys