## Implementation details of the main() function

### Distributed or Dirichlet boundary control

Using the parameters DIMENSIONSTATE and DIMENSIONCONTROL, the user can directly control the state and control discretization of the system. Setting

#define DIMENSIONCONTROL DIMENSIONSTATE

will result in a distributed control setting whereas in the case

#define DIMENSIONCONTROL 2

a Dirichlet boundary setting is obtained.

## Implementation details of the model

### Distributed or Dirichlet boundary control

The model automatically distinguishes between distributed and Dirichlet boundary control by setting the bool variable yane::ExampleModels2::SemiHeat::_distributedControl in the constructor yane::ExampleModels2::SemiHeat::SemiHeat.

- For distributed control it is assumed that the dimension of the state, i.e. its discretization, is equal to the dimension of the control, i.e. its discretization.
- For Dirichlet boundary control the dimension of the control is assumed to be 2.

### Usage of or norm

Setting the bool variable yane::ExampleModels2::SemiHeat::_h1norm to true will result in using the norm in the running cost function, otherwise the norm is used.

### Discrete or integral type cost functional

Calling the method yane::ExampleModels2::SemiHeat::getObjectiveWeight the values of weight_continuousCostfunction and weight_discreteCostfunction are returned. Setting, e.g., weight_continuousCostfunction = 1 and weight_discreteCostfunction = 0 an integral type cost functional is used. Note that this method also allows to mix both types of cost functionals.

**Author:**- Jürgen Pannek <juergen.pannek@googlemail.com>