-
Define input data and Design Variables:
FEM_INPUT
ID_NAME = INPUT_FILE
FILE = topo_ribs_plastic.inp
END_
DV_TOPO
ID_NAME = globalDesignArea
EL_GROUP = globalDesignRegion
END_
-
Define additional groups for nondesign elements:
GROUP_DEF
ID_NAME = designAreaNonFrozen
TYPE = ELEM
FORMAT = LIST_SUBTRACT_GROUP
LIST_BEGIN
globalDesignRegion, globalFrozenRegion
END_
-
To use the compliance in the objective, define a Design Response (DRESP) as follows:
DRESP
ID_NAME = TASK_STIFFNESS
DEF_TYPE = SYSTEM
TYPE = ENERGY_STIFF_MEASURE
EL_GROUP = ALL_ELEMENTS
GROUP_OPER = SUM
END_
-
Define the Objective Function (OBJ_FUNC) as follows:
OBJ_FUNC
ID_NAME = MY_OBJECTIVE
DRESP = TASK_STIFFNESS
TARGET = MIN
END_
-
To define the mass constraints, do the following:
-
Define the corresponding design response:
DRESP
ID_NAME = TASK_MASS
DEF_TYPE = SYSTEM
TYPE = WEIGHT
EL_GROUP = globalDesignRegion
GROUP_OPER = SUM
END_
-
Define the constraints (CONSTRAINT):
CONSTRAINT
ID_NAME = TASK_MASS_CONSTRAINT
DRESP = TASK_MASS
MAGNITUDE = REL
LE_VALUE = 0.4
END_
-
Define the rib pattern and frozen DVCONs:
DVCON_TOPO
ID_NAME = PreservedRegion1
CHECK_TYPE = FROZEN
EL_GROUP = globalFrozenRegion
END_
DVCON_TOPO
ID_NAME = RibControl1
CHECK_TYPE = RIB_DESIGN
EL_GROUP = designAreaNonFrozen
CHECK_GROUP = designAreaNonFrozen
RIB_THICKNESS = 0.015
RIB_DISTANCE = 0.025
RIB_DIRECTION = 0.000419, -0.000034, -0.000907
RIB_CS = CS_0
END_
-
Reference the Objective Function, Design Variables and Constraint as well as DVCON in the OPTIMIZE command:
OPTIMIZE
ID_NAME = Objective
STRATEGY = TOPO_SENSITIVITY
DV = globalDesignArea
OBJ_FUNC = MY_OBJECTIVE
CONSTRAINT = TASK_MASS_CONSTRAINT
DVCON = PreservedRegion1
DVCON = RibControl1
END_
The optimization result looks as follows:

Using a standard casting restriction instead of the rib feature, more materials are accumulated in few areas
resulting in a bulkier structure:
