IHammerOptimization OpenHammerOptimization

IHammerOptimization iHam = Tools.OpenHammerOptimization();
if (iHam != null)
{
    iHam.NumberOfCores = 8;             //  READ/WRITE
    switch (iHam.Algorithm)             //  READ/WRITE 
    {
        case OptimizationAlgorithm.DampedLeastSquares:
        case OptimizationAlgorithm.OrthogonalDescent:
            break;
    }
    iHam.AutomaticOptimization = true;  //  READ/WRITE
    int nTargets = iHam.Targets;        //  READ ONLY
    int nVars = iHam.Variables;         //  READ ONLY
    long nSystem = iHam.Systems;        //  READ ONLY
    double iM = iHam.InitialMeritFunction;
    Console.WriteLine(String.Format("Initial Merit Function {0}", iM));
    for (int i = 1; i <= 10; i++)
    {
        Thread.Sleep(1000);
        Console.WriteLine(String.Format("Iteration {0}", i));
        iM = iHam.CurrentMeritFunction;
        Console.WriteLine(String.Format("\t{0}", iM));
    }
    iHam.Cancel();
    iHam.Close();
}

Next: