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.

Here, mass is the mass flow rate which is computed in the response_variable corresponding to the specific constraint.
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"
}