-
Define input data and Design Variables.
FEM_INPUT
ID_NAME = MY_INPUT_FILES
FILE = control_arm.inp
END_
DV_TOPO
ID_NAME = DESIGN_AREA
EL_GROUP = DESIGN_ELEMENTS
END_
-
Create a constraint for the volume.
-
Define a Design Response (DRESP) with the volume:
DRESP
ID_NAME = TOSCA_DRESP_2_VOLUME_CONSTRAINT_1
LIST = LIST
DEF_TYPE = SYSTEM
EL_GROUP = ALL_ELEMENTS
TYPE = VOLUME
UPDATE = EVER
GROUP_OPER = Sum
END_
-
Reference the Design Response in a constraint (CONSTRAINT) and constrain it to 70% of the initial volume:
CONSTRAINT
ID_NAME = CONSTRAINT_1_VOLUME_CONSTRAINT_1
DRESP = TOSCA_DRESP_2_VOLUME_CONSTRAINT_1
MAGNITUDE = REL
EQ_VALUE = 0.7
END_
-
To define the Objective Function (OBJ_FUNC) for the compliance (STRAIN_ENERGY), do the following:
-
Create a Design Response (DRESP):
DRESP
ID_NAME = TOSCA_DRESP_1_COMPLIANCE_TERM_1
LIST = LIST
DEF_TYPE = SYSTEM
EL_GROUP = ALL_ELEMENTS
TYPE = STRAIN_ENERGY
UPDATE = EVER
GROUP_OPER = Sum
END_
-
Reference the Design Response in the Objective Function (OBJ_FUNC) and minimize it:
OBJ_FUNC
ID_NAME = OBJ_FUNC_1_OBJ_FUNC_ITEM_1
TARGET = MIN
DRESP = TOSCA_DRESP_1_COMPLIANCE_TERM_1
END_
-
Define the DVCON_TOPO for the demold restriction.
DVCON_TOPO
ID_NAME = DVCON_TOPO_1_DEMOLD_CONTROL_1
EL_GROUP = DESIGN_ELEMENTS
CHECK_TYPE = CAST
PULL_DIR = 0.,0.,1.
CHECK_GROUP = ALL_ELEMENTS
MID_PLANE = NONE
PULL_CS = CS_0
CREATE_PULL_GROUP = NO
END_
-
Reference the Design Variables, Objective Function and Constraints as well as DVCON in the OPTIMIZE command:
OPTIMIZE
ID_NAME = OPTIMIZE_1_TOPOLOGY_OPTIMIZATION_SENSITIVITY
DV = DESIGN_AREA
OBJ_FUNC = OBJ_FUNC_1_OBJ_FUNC_ITEM_1
DVCON = DVCON_TOPO_1_DEMOLD_CONTROL_1
CONSTRAINT = CONSTRAINT_1_VOLUME_CONSTRAINT_1
STRATEGY = TOPO_CONTROLLER
END_
-
Define the smooth command.
SMOOTH
ID_NAME = ISO_SMOOTHING_0_3
TASK = iso
ISO_VALUE = 0.3
SELF_INTERSECTION_CHECK = runtime
SMOOTH_CYCLES = 10
REDUCTION_RATE = 60
REDUCTION_ANGEL = 5.0
FORMAT = vtf
FORMAT = stl
FORMAT = onf
END_
The optimization result looks as follows:
