Interface ZOSAPI::Tools::Optimization::IGlobalOptimization
Last update: 13.03.2026
Definition:
Interfaces and methods for running a Global Optimization. This interface can be accessed via the IOpticalSystemTools interface.
Usage (see Example 15 for a full sample)
C#
// run global search
double GlobalOptimTimeInSeconds = 15;
IGlobalOptimization GlobalOpt = TheSystem.Tools.OpenGlobalOptimization();
if (GlobalOpt != null)
{
GlobalOpt.Algorithm = ZOSAPI.Tools.Optimization.OptimizationAlgorithm.DampedLeastSquares;
GlobalOpt.NumberOfCores = 8;
Console.WriteLine("Global Optimization for " + GlobalOptimTimeInSeconds.ToString() + " seconds...");
Console.WriteLine(String.Format("Initial Merit Function {0}", GlobalOpt.InitialMeritFunction));
GlobalOpt.NumberToSave = ZOSAPI.Tools.Optimization.OptimizationSaveCount.Save_10;
GlobalOpt.RunAndWaitWithTimeout(GlobalOptimTimeInSeconds);
for (int j = 1; j <= 10; j++)
{
Console.Write(String.Format("{0}: {1}\n", j, GlobalOpt.CurrentMeritFunction(j)));
}
GlobalOpt.Cancel();
GlobalOpt.WaitForCompletion();
GlobalOpt.Close();
}
C++
// run global search
int GlobalOptimTimeInSeconds = 15;
IGlobalOptimizationPtr GlobalOpt = TheSystem->Tools->OpenGlobalOptimization();
if (GlobalOpt != nullptr) {
GlobalOpt->Algorithm = OptimizationAlgorithm::OptimizationAlgorithm_DampedLeastSquares;
GlobalOpt->NumberOfCores = 8;
cout << "Global Optimization for " << GlobalOptimTimeInSeconds << " seconds..." << endl;
cout << "Initial Merit Function " + _bstr_t(GlobalOpt->InitialMeritFunction) << endl;
GlobalOpt->NumberToSave = OptimizationSaveCount::OptimizationSaveCount_Save_10;
ISystemToolPtr baseToolGlobal = GlobalOpt;
baseToolGlobal->RunAndWaitWithTimeout(GlobalOptimTimeInSeconds);
for (int j = 1; j <= 10; j++) {
cout << _bstr_t(int(j)) + ": " + _bstr_t(GlobalOpt->CurrentMeritFunction(j)) << endl;
}
baseToolGlobal->Cancel();
// wait for tool to stop running before closing
//bool stillRunning = baseToolGlobal->IsRunning;
//while (stillRunning) {
// stillRunning = baseToolGlobal->IsRunning;
//}
baseToolGlobal->WaitForCompletion();
baseToolGlobal->Close();
}
Matlab
% run global search
GlobalOptimTimeInSeconds = 15;
GlobalOpt = TheSystem.Tools.OpenGlobalOptimization();
if ~isempty(GlobalOpt)
GlobalOpt.Algorithm = ZOSAPI.Tools.Optimization.OptimizationAlgorithm.DampedLeastSquares;
GlobalOpt.NumberOfCores = 8;
fprintf('Global Optimization for %i seconds...\n', GlobalOptimTimeInSeconds);
fprintf('Initial Merit Function %6.3%\n', GlobalOpt.InitialMeritFunction);
GlobalOpt.NumberToSave = ZOSAPI.Tools.Optimization.OptimizationSaveCount.Save_10;
GlobalOpt.RunAndWaitWithTimeout(GlobalOptimTimeInSeconds);
for j =1:10
fprintf('%i: %6.3f\n', j, GlobalOpt.CurrentMeritFunction(j));
end
GlobalOpt.Cancel();
GlobalOpt.WaitForCompletion();
GlobalOpt.Close();
end
Python
# run global search
GlobalOptimTimeInSeconds = 5
GlobalOpt = TheSystem.Tools.OpenGlobalOptimization()
if (GlobalOpt != None):
GlobalOpt.Algorithm = ZOSAPI.Tools.Optimization.OptimizationAlgorithm.DampedLeastSquares
GlobalOpt.NumberOfCores = 8
print('Global Optimization for ' + str(GlobalOptimTimeInSeconds) + ' seconds...')
print('Initial Merit Function ', GlobalOpt.InitialMeritFunction)
GlobalOpt.NumberToSave = ZOSAPI.Tools.Optimization.OptimizationSaveCount.Save_10
GlobalOpt.RunAndWaitWithTimeout(1 * GlobalOptimTimeInSeconds)
for j in range(1, 11):
print(str(int(j)) + ': ' + str(GlobalOpt.CurrentMeritFunction(j)))
GlobalOpt.Cancel()
GlobalOpt.WaitForCompletion()
GlobalOpt.Close()
Inherits from:
Members
- Algorithm
- CanCancel
- Cancel
- Close
- CurrentMeritFunction
- CurrentMeritFunction01
- CurrentMeritFunction02
- CurrentMeritFunction03
- CurrentMeritFunction04
- CurrentMeritFunction05
- CurrentMeritFunction06
- CurrentMeritFunction07
- CurrentMeritFunction08
- CurrentMeritFunction09
- CurrentMeritFunction10
- Cycles
- ErrorMessage
- EstimateHPCTime
- HPCEstimatedTimeS
- HPCHasTimeEstimate
- HPCQueuePosition
- HPCRemainingTimeS
- HPCState
- HPCTimeToStartS
- InitialMeritFunction
- IsAsynchronous
- IsFiniteDuration
- IsHPCEnabled
- IsRunning
- IsValid
- MaxCores
- NumberOfCores
- NumberToSave
- Progress
- Run
- RunAndWaitForCompletion
- RunAndWaitWithTimeout
- Status
- Succeeded
- Systems
- TargetRunTimeM
- Targets
- Variables
- WaitForCompletion
- WaitWithTimeout
Properties
Property Algorithm
Definition:
OptimizationAlgorithm ZOSAPI.Tools.Optimization.IGlobalOptimization.Algorithm
Return type: OptimizationAlgorithm
Property NumberOfCores
Definition:
int ZOSAPI.Tools.Optimization.IGlobalOptimization.NumberOfCores
Return type: int
Property MaxCores
Definition:
int ZOSAPI.Tools.Optimization.IGlobalOptimization.MaxCores
Return type: int
Property NumberToSave
Definition:
OptimizationSaveCount ZOSAPI.Tools.Optimization.IGlobalOptimization.NumberToSave
Return type: OptimizationSaveCount
Property Targets
Definition:
int ZOSAPI.Tools.Optimization.IGlobalOptimization.Targets
Return type: int
Property Variables
Definition:
int ZOSAPI.Tools.Optimization.IGlobalOptimization.Variables
Return type: int
Property InitialMeritFunction
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.InitialMeritFunction
Return type: double
Property Systems
Definition:
long ZOSAPI.Tools.Optimization.IGlobalOptimization.Systems
Return type: long
Property Cycles
Definition:
int ZOSAPI.Tools.Optimization.IGlobalOptimization.Cycles
Return type: int
Property CurrentMeritFunction01
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction01
Return type: double
Property CurrentMeritFunction02
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction02
Return type: double
Property CurrentMeritFunction03
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction03
Return type: double
Property CurrentMeritFunction04
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction04
Return type: double
Property CurrentMeritFunction05
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction05
Return type: double
Property CurrentMeritFunction06
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction06
Return type: double
Property CurrentMeritFunction07
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction07
Return type: double
Property CurrentMeritFunction08
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction08
Return type: double
Property CurrentMeritFunction09
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction09
Return type: double
Property CurrentMeritFunction10
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction10
Return type: double
Property IsHPCEnabled
Definition:
bool ZOSAPI.Tools.Optimization.IGlobalOptimization.IsHPCEnabled
Return type: bool
Property HPCEstimatedTimeS
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.HPCEstimatedTimeS
Return type: double
Property HPCRemainingTimeS
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.HPCRemainingTimeS
Return type: double
Property HPCTimeToStartS
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.HPCTimeToStartS
Return type: double
Property HPCQueuePosition
Definition:
int ZOSAPI.Tools.Optimization.IGlobalOptimization.HPCQueuePosition
Return type: int
Property HPCState
Definition:
HPCRunState ZOSAPI.Tools.Optimization.IGlobalOptimization.HPCState
Return type: HPCRunState
Property HPCHasTimeEstimate
Definition:
bool ZOSAPI.Tools.Optimization.IGlobalOptimization.HPCHasTimeEstimate
Return type: bool
Property TargetRunTimeM
Definition:
double ZOSAPI.Tools.Optimization.IGlobalOptimization.TargetRunTimeM
Return type: double
Public functions
Function CurrentMeritFunction
double ZOSAPI.Tools.Optimization.IGlobalOptimization.CurrentMeritFunction(int N)
Parameters:
- int N
Return type: double
Function EstimateHPCTime
bool ZOSAPI.Tools.Optimization.IGlobalOptimization.EstimateHPCTime()
Return type: bool