# Documentation/Modules/BoundHandler

## Summary

Some optimizations require bounds on the design variables xxx. E.g. for the diameter of any mechanical support must be above a certain minimum value.

As not all optimization algorithms include bound handling, the module `BoundHandler` was created.

## Properties

### General

 Algorithm deterministic continuous variables, discrete or mixed variables are possible. any number any number Design variables values outside the boundaries are corrected not affected not affected not required

### Connections

 Starting at his module One connection of type `optimization` One connection of type `optimization`

Name Description
- -

### Options

The options are currently described as "pop-up help".

## Module Description

The optimization algorithm proposes one or several new solutions x. Some values of x might be outside the lower bounds xl and upper bounds xu, specified in the "Problem" module. These variables are corrected to values within the bounds by thress different methods:

0. no bound handling

This option turns off the bound handling.

1. set to bounds

If one of the variables x is below or above the bounds, it is set to the bound value, i.e.

```   if x < xl, then x = xl
else if x > xu, then x = xu
```

2. reflect

If one of the variables x is below or above the bounds, it is reflected from the bound. The reflection is done such that if x goes to infinity, x is equal to the lower bound and if x goes to minus infinity, it is set to the upper bound.

```   if x < xl, then x = xu + (xl- xu)^2 / (x - xu)
```
```   else if x > xu, then x = xl + (xu- xl)^2 / (x - xl)
```

-