RESPONSE VARIABLE

Specifies the responses to be used for optimization.

Type

AcuSolve Command

Syntax

RESPONSE_VARIABLE {parameters}

Qualifier

This command has no qualifier.

Parameters

type (enumerated) [=surface_output]
Responsible variable types.
surface_output
element_output
time_history_output
time_history_output_distance or dist
topology_variable
design_variable
constant or const
identity or id
square or sq
cube
square_root or sqrt
exponential_function or exp
natural_logarithm or ln
sine or sin
cosine or cos
tangent or tan
cotangent or cot
arcsine or asin
arccosine or acos
arctangent or atan
arccotangent or acot
negation or neg
reciprocal or one_over
absolute or abs
ratio or over
addition or plus
subtraction or minus
multiplication or times
power or pow
average or mean
average_absolute_value
minimum or min
minimum_absolute_value
absolute_minimum_value
maximum or max
maximum_absolute_value
absolute_maxmimum_value
summation or sum
sum_absolute_value
sum_squares
sqrt_sum_squares or norm
weighted_sum
product
surface_output (string) [=""]
User defined name of the surface from which the output will be extracted.
surface_output_variable (enumerated) [=pressure]
The surface output variables are used in the RESPONSE_VARIABLE command.
x_traction
y_traction
z_traction
mass_flux
heat_flux
x_velocity or xvel
y_velocity or yvel
z_velocity or zvel
temperature or temp
pressure or pres
area
partial_volume
element_output (string) [=""]
User defined name of the element set from which the output will be extracted.
element_output_variable (enumerated) [=volume]
Element output quantities are used in optimization.
volume
x_velocity or xvel
y_velocity or yvel
z_velocity or zvel
pressure or pres
temperature or temp
total_pressure
mass
time_history_output (string) [="unknown"]
User defined name of time history output.
time_history_output_variable (enumerated) [=pressure]
Time history output quantities are used in optimization.
x_undeformed or x0
y_undeformed or y0
z_undeformed or z0
x_deformed or x
y_deformed or y
z_deformed or z
x_velocity or xvel
y_velocity or yvel
z_velocity or zvel
pressure or pres
temperature or temp
time_history_output_1 (string) [=" "]
User defined name of time history output point. Used with time_history_output_distance.
time_history_output_2 (string) [=""]
User defined name of time history output point. Used with time_history_output_distance.
time_history_output_coordinates_1 (enumerated) [=deformed]
Specifies the method of tracking time_history_output_1 location.
undeformed_coordinates or undeformed
deformed_coordinates or deformed
time_history_output_coordinates_2 (enumerated) [=deformed]
Specifies the method of tracking time_history_output_2 location.
undeformed_coordinates or undeformed
deformed_coordinates or deformed
time_history_index_1 (integer) [=1]
Time history indices must be referenced by the order of the coordinates in the time history output command.
time_history_index_2 (integer) [=1]
Time history indices must be referenced by the order of the coordinates in the time history output command.
design_variable (string) [=""]
User-defined name of the design variable.
topology_variable (enumerated) [=mechanical_energy]
mechanical_energy
Mechanical energy.
design_volume_fraction
The integral of the design variables field variable divided by the volume of the design space. This will give a value of zero for an empty design space, and a value of one for a design space where the design variables field variable is constant one.
surface_mass_flow
The mass flow rate at a flow boundary surface whose name is given in mass_flow_surface.
temperature
The mass-averaged temperature; integral over outlet surfaces minus integral over the inlet surfaces.
mean_field_temperature
The average temperature in the whole design domain.
mean_field_temperature_gamma
The average temperature in the solid part (topology_design = 1) of the design domain.
temperature_compliance
Thermal compliance is computed from the integrated square of the temperature gradients, multiplied by the conductivity.
mass_flow_surface (string) [=""]
The name of the flow boundary surface for which a mass flow rate optimization constraint can be imposed when topology_variable = surface_mass_flow. Most often this will reference a SIMPLE_BOUNDARY_CONDITION of type = outlet.
constant_response (real) [=0.0]
Specifies a constant value.
response_variables (list) [={}]
Specifies the response variables.
weights (array) [={}]
Specifies the factors multiplying the response variables in a weighted sum. If you use M response variables in the weighted sum, you need to specify M weights.
evaluation (enumerated) [=step]
The evaluation specifies how the response value is computed over a case.
step
Evaluate the response value based on the last time step of a case.
average_case_steps
Evaluate the response value based on the average of the last specified time steps of a case. Used with evaluation_num_steps.
average_case_fraction
Evaluate the value based on the last average fraction of time steps within a case. Used with evaluation_fraction.
average_time
Evaluate an average response value based on integration over a time interval divided by the time interval length. Used with evaluation_time.
evaluation_num_steps (integer) [=0]
Number of time steps used to evaluate the response value. Used with evaluation = average_case_steps.
evaluation_fraction (real) [=0.5]
Fraction of time steps within a case used to evaluate the response value. Used with evaluation = average_case_fraction.
evaluation_time (real) [=0.0]
Time interval to evaluate the response value. Used with evaluation = average_time.

Description

The objectives and constraints are defined in terms of response variables that may reference surface or volume outputs. Response variables may also control parameters by using multiplier functions of type set to response_variable. The values of the objective and constraint functions are computed using response variable commands. In turn, the values of the response variable functions are computed from either (i) integrated surface quantities, (ii) integrated volume quantities, (iii) design variables, (iv) given constants, or (v) functions of one or more other response variables.

Below are some examples of responses.

Response variable generated using surface output:
RESPONSE_VARIABLE(“inflow pressure”) {
	type                    = surface_output
	surface_output          = “inflow”
	surface_output_variable = pressure
}
SURFACE_OUTPUT(“inflow”) {
	surfaces                    = Read( “inflow.srf” )
	shape                       = three_node_triangle
	element_set                 = “fluid”
	integrated_output_frequency = 1
}
Response variable generated using element output:
RESPONSE_VARIABLE(“mass of object”) {
	type                    = element_output
	element_output          = “object”
	element_output_variable = mass
}
ELEMENT_OUTPUT(“object”) {
	elements                    = Read( “object.cnn” )
	shape                       = four_node_tet
	element_set                 = “object”
	integrated_output_frequency = 1
}
Response variable generated using time history output:
RESPONSE_VARIABLE(“temperature in a node”) {
	type                         = time_history_output
	time_history_output          = “oth_node”
	time_history_output_variable = temperature
}
TIME_HISTORY_OUTPUT(“oth_node”) {
	type             = nodal
	nodes            = { 54 }
	output_frequency = 1
}
RESPONSE_VARIABLE(“x-position of a deformed point”) {
	type                         = time_history_output
	time_history_output          = “oth_point”
	time_history_output_variable = x_deformed
}
TIME_HISTORY_OUTPUT(“oth_point”) {
	type             = coordinates
	coordinates      = { 1, 1,0, 0.0, 2.0 }
	output_frequency = 1
}
Response variable generated based on time history output distance:
RESPONSE_VARIABLE(“distance between two deformed points”) {
	type                              = time_history_output
	time_history_output_1             = “points”
	time_history_output_2             = “points”
	time_history_output_coordinates_1 = deformed
	time_history_output_coordinates_2 = deformed
	time_history_index_1              = “1”
	time_history_index_2              = “2”
}
TIME_HISTORY_OUTPUT(“oth_point”) {
	type             = coordinates
	coordinates      = { 
				1, 0.0, 0.0, 0.0
				2, 2.0, 3.0, 0.0
			    }
	output_frequency = 1
}

The indices in time history output are numbered from one to two and are referenced in the response variable command. In general, the response variable command time history indices must be referenced by the order of the coordinates in the time history output command. The first column is not the index number, but the point identifier.

Response variable for topology optimization:
RESPONSE_VARIABLE(“mechanical energy”) {
 type = topology_variable
topology_variable = mechanical_energy
}

Normally the response value is computed for a single time step, typically at the end of an optimization case cycle. The evaluation parameters add the option to evaluate response functions based on average values over several time steps.

A typical response command looks like:
RESPONSE_VARIABLE( "drag" ) {
     type                     = surface_output
     surface_output           = "wing"
     surface_output_variable  = x_traction
}

This response value is computed at the end of a case for a steady state run.

Sometimes values fluctuate from step to step. In order to make a smoother evaluation, a steady-state run can average the response values over several steps using the evaluation parameter. To enable averaging over several steps you can use the option evaluation = average_case_steps and set the number of steps to be used for the calculation.
RESPONSE_VARIABLE( "drag" ) {
     type                     = surface_output
     surface_output           = "wing"
     surface_output_variable  = x_traction
     evaluation		     = average_case_steps
     evaluation_num_steps     = 10
}

Where 10 steps are used to compute the average value. If the parameter evaluation_num_steps is larger than the number of time steps used for a case, then the number of case time steps is used instead.

Another method is to set the fraction of steps to be used within a case to compute the average value.
RESPONSE_VARIABLE( "drag" ) {
        type                     = surface_output
        surface_output           = "wing"
        surface_output_variable  = x_traction
        evaluation		     = average_case_fraction
        evaluation_fraction      = 0.5
}

Here, the last 50 percent of the steps are used to compute the response value.

For transient runs, averaging may be done over a set time interval.
RESPONSE_VARIABLE( "drag" ) {
     type                     = surface_output
     surface_output           = "wing"
     surface_output_variable  = x_traction
     evaluation		      = average_time
     evaluation_time          = 2.0 # s
}

The given response value is computed as an average over a 2.0-second time interval.

The default option evaluation = step computes the value at the end of a case.
RESPONSE_VARIABLE( "drag" ) {
     type                     = surface_output
     surface_output           = "wing"
     surface_output_variable  = x_traction
     evaluation		      = step
}