Interface between CONDOR and XFLOS / Pre-Solve phase

Subject to: | (11.1) |

For the Method project, the objective function is an external code (an executable program): XFLOS. I developed a simple interface between CONDOR and XFLOS. This interface is configured via a configuration text file: ``optim.cfg''. I will now describe the content of ``optim.cfg''.

**Parameter 1:**

The filename of the executable that must be launched to run XFLOS.**Parameters 2 & 3:**

The information exchange between CONDOR and XFLOS is based on files written on the hard drive. There are two files: The first one is a file written by CONDOR to tell XFLOS what's the current point we want to evaluate. The second one is written by XFLOS and is the result of the evaluation. Parameters 2 & 3 are the name of these files.**Parameters 4:**

Dimension of the search space (31)**Parameters 5,6 & 7:**

The result of a run of XFLOS is a vector of 20 values which must be aggregated into one single value which is the value of the objective function at the current point. The aggregation is based on Parameters 5,6 & 7.**Parameter 8:**

In the industry, there are two kinds of impellers:- 2D impellers
- 3D impellers

**Warning !**If you want, for example, to optimize variables, never do the following:- Activate the first variables, let the other variables fixed, and run CONDOR (Choose as starting point the best point known so far)
- Activate the second set of variables, let the first set of variables fixed, and run CONDOR (Choose as starting point the best point known so far).
- If the stopping criteria is met then stop, otherwise go back to step 1.

**Parameter 9:**

Starting point .**Parameter 10:**

If some runs of XFLOS have already been computed and saved on the hard drive, it's possible to tell CONDOR to use the old evaluations (*warm start*). If a*warm start*is performed, the evaluations needed to build the first quadratic will be lowered. Beside, it may be interesting to use as starting point the best point known so far, instead of value specified at parameter 9. Parameter 10 tells to CONDOR which alternative it must use for the choice of the starting point.**Parameter 11:**

Lower bound on :**Parameter 12:**

Upper bound on :**Parameter 13:**

Number of linear inequalities for constrained optimization.**Parameter 14:**

The linear inequalities are described here. Each line represents a constraint. On each line, you will find: and . Using parameter 7, we can let some variables fixed. In this case, some linear constraints may:- be simply removed:

( is zero for all the active variables)

( is defined using config-file-parameter 8). - be removed
and replaced by a tighter bound on the variable (
)

and .

The component of or will maybe be updated.

- be simply removed:
**Parameter 15:**

The normalization factor for each variables (see Section 12.3 about normalization).**Parameter 16:**

The stopping criteria: . This criteria is tested inside the normalized space.**Parameter 17:**

We consider that the evaluation of the objective function inside XFLOS has failed when the result of this evaluation is greater than parameter 17. It means that a ``virtual constraint'' has been encountered. See Section 12.2.2 for more information.**Parameter 18:**

In the method project, some constraints are non-linear and have been hard-coded inside the class ``METHODObjectiveFunction''. Parameter 18 activates/deactivates these non-linear constraints.**Parameter 19:**

This parameter is the name of the file which contains all the evaluations of the objective function already performed. This file can be used to*warm start*(see parameter 10).**Parameter 20:**

When XFLOS is running, CONDOR is waiting. CONDOR regularly checks the hard drive to see if the result file of XFLOS has appeared. Parameter 20 defines the time interval between two successive checks.

; number of CPU's (not used currently) ;1 ; IP's (not used currently) ;127.0.0.1 ; blackbox objective function ;/home/andromeda_2/fld_user/METHOD/TD21/splitter /home/fvandenb/L6/splitter ;testoptim ; objective function: input file: /home/fvandenb/L6/000/optim.out ; objective function: output file: /home/fvandenb/L6/000/xflos.out ; number of input variables (x vector) for the objective function 31 ; The objective function is ofunction= sum_over_i ( w_i * ( O_i - C_i)^(e_i) ) ; of many variables. The weights (w_i) are: ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 -1 20 ; C_i are: ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0956 0 0 0.521 ; e_i are: ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ; optimization of only a part of the variables: ;dz zh1 rh2 zs1 rs2 sleh sles sh1 sh2 th1 th3 ss1 ss2 ts0 ts1 ts3 tkh tks b0 b2 r2 r0 delt bet2 str coel dle el11 el12 el21 el22 ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 ; a priori estimated x (starting point)- ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ; 21 22 23 24 25 26 27 28 29 30 31 ; dz zh1 rh2 zs1 rs2 sleh sles sh1 sh2 th1 th3 ss1 ss2 ts0 ts1 ts3 tkh tks b0 b2 r2 ; r0 delt bet2 str coel dle el11 el12 el21 el22 0.1068 0.0010 0.055555 0.0801 0.2245 0.0096 0.000 0.3 0.37 -0.974 -1.117010721 0.297361 0.693842 -0.301069296 -0.8 -1.117010721 0.004 0.0051 0.07647 0.035 0.225 0.07223 0.0 -0.99398 0.00 4.998956 0.000 0.000 0.000 0.000 0.0000 ; use previous line as starting point: ; - 1: yes ; - 0: no, use best point found in database. 1 ; lower bounds for x ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ;dz zh1 rh2 zs1 rs2 sleh sles sh1 sh2 th1 th3 ss1 ss2 ts0 ts1 ts3 tkh tks b0 b2 r2 r0 delt bet2 str coel dle el11 el12 el21 el22 0 0 0 0 0 0 0 0 0 -1.7 -1.7 0 0 -1.7 -1.7 -1.7 .002 .002 0 0 0 .05 0 -1.0 -.5 0.1 -0.05 0 0 0 0 ; upper bounds for x ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ;dz zh1 rh2 zs1 rs2 sleh sles sh1 sh2 th1 th3 ss1 ss2 ts0 ts1 ts3 tkh tks b0 b2 r2 r0 delt bet2 str coel dle el11 el12 el21 el22 1 1 2 1 2 1 1 1 1 1.7 1.7 1 1 1.7 1.7 1.7 .05 .05 2 1 2 1 2 -0.4 .5 10 0.05 0.02 0.02 0.02 0.02 ; number of inequalities 15 ;0 ; here would be the matrix for inequalities definition if they were needed ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ;dz zh1 rh2 zs1 rs2 sleh sles sh1 sh2 th1 th3 ss1 ss2 ts0 ts1 ts3 tkh tks b0 b2 r2 r0 delt bet2 str coel dle el11 el12 el21 el22 RHS -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .35 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 ; scaling factor for the normalization of the variables. ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ; dz zh1 rh2 zs1 rs2 sleh sles sh1 sh2 th1 th3 ss1 ss2 ts0 ts1 ts3 tkh tks b0 b2 r2 r0 delt bet2 str coel dle el11 el12 el21 el22 1e-3 1e-3 1e-3 1e-3 1e-3 1e-3 1e-3 1e-2 1e-2 1e-2 1e-2 1e-2 1e-2 1e-2 1e-2 1e-2 5e-4 5e-4 1e-3 1e-3 1e-3 1e-3 1e-3 1e-2 1e-3 1e-2 1e-3 1e-3 1e-3 1e-3 1e-3 ; stopping criteria \rho_end= 1e-4 ;1e-8 ; bad value of the objective function 3 ; Nuovo Pignone non-linear constaints hard coded into code must be ; - activated : 1 ; - desactivated: 0 ;1 1 ; the data are inside a file called: ;/home/andromeda_2/fld_user/METHOD/TD21/data.ll /home/fvandenb/L6/dataNEW.ll ; when waiting for the result of the evaluation of the objective ; function, we check every xxx seconds for an arrival of the file ; containing the results 3

- Wait to receive from the server a sampling site (a point) (using nearly no CPU time).
- Evaluate the objective function at this site and return immediately the result to the server. Go to step 1.