# CONSTRAINT

Specifies the constraints based on responses.

## Type

AcuSolve Command

## Syntax

CONSTRAINT {parameters}

## Qualifier

This command has no qualifier.

## Parameters

- type (enumerated) [=less_than]
- Constraints are specified by relating the response variables with the type.
Requires RESPONSE_VARIABLE.
- less_than
- greater_than
- equal_to

- response_variable (string) [=""]
- User defined name of the response variable that is used to compute the objective and constraint functions.

- bound (real) [=0.0]
- Bounds are set to control the motion of surface/body in the optimization region. When type = equal_to the constraint is satisfied within the given tolerance.

- tolerance (real) [=0.0]
- Absolute tolerance within which the mass balance constraint of type = equal_to is satisfied.

## Description

The CONSTRAINT command defines the constraint functions used in optimization. One or more constraints can be created to control the motion of the model during the optimization process. To create a constraint, first a response variable needs to be created and the type and bound needs to be defined. This can be a time history output, surface integrated output, and so on.

In topology optimization with mass balancing, "bound" is the target mass flow rate at the specific exit and "tolerance" is the acceptable absolute deviation from this mass flow rate. The constraint is defined as:

bound - tolerance < mass < bound + tolerance, or |mass - bound| < tolerance.

```
CONSTRAINT( "subject to pressure >= bound” ) {
type = larger_than
response_variable = "Inflow Pressure"
bound = 1000
}
RESPONSE_VARIABLE( "Inflow Pressure” ) {
type = surface_output
surface_output = "Inlet"
surface_output_variable = pressure
}
```

```
CONSTRAINT( "flow balance 1” ) {
type = equal_to
response_variable = "flow_balance_1"
bound = 0.01
tolerance = 0.0001
}
RESPONSE_VARIABLE( "flow_balance_1" ) {
type = topology_variable
topology_variable = surface_mass_flow
mass_flow_surface = "Outlet_1"
}
```