-
Define input data, additional groups, and design variables.
FEM_INPUT
ID_NAME = MY_INPUT_FILES
FILE = shaft_surfturn_sens.inp
END_
include, shaft_surfturn_sens.inc
GROUP_DEF
ID_NAME = NODES_FOR_DISP
TYPE = NODE
FORMAT = LIST
LIST_BEGIN
13, 440
END_
DV_SHAPE
ID_NAME = MY_DV_SHAPE
ND_GROUP = design_nodes
END_
-
Create geometrical constraints.
-
Rotational Symmetry (SURF_TURN):
LINK_SHAPE
ID_NAME = LS_TURN
CLIENT = SURF_TURN
MAIN = AUTO
CLIENT_DIR = 0, 1, 0
CS = CS_0
END_
DVCON_SHAPE
ID_NAME = DVCON_SHAPE_SURF_TURN
CHECK_BC = NO
ND_GROUP = design_nodes
CHECK_LINK = LS_TURN
END_
-
Node fixations:
CS_DEF
ID_NAME = MY_CS
DEF_TYPE = LOCAL
CS_TYPE = CYLINDRICAL
CS_REF = CS_0
ORIGIN_123 = 0, 0, 0
ROTATION_321 = 0, 0, 270
END_
DVCON_SHAPE
ID_NAME = DVCON_SHAPE_FIXED
CHECK_BC = NO
ND_GROUP = nodes_fixed
CHECK_DOF = MY_CS, FIX , FREE, FREE
END_
-
Shrink control:
DVCON_SHAPE
ID_NAME = SHRINK_CTRL
CHECK_SHRINK = 3.
ND_GROUP = design_nodes
END_
-
Create a constraint for the volume.
-
Define a Design Response with the volume (DRESP):
DRESP
ID_NAME = DRESP_VOLUME
LIST = NO_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 100%.
CONSTRAINT
ID_NAME = VOLUME_CONSTRAINT
DRESP = DRESP_VOLUME
MAGNITUDE = REL
LE_VALUE = 1.0
END_
-
To define the Objective Function (OBJ_FUNC) for the plastic equivalent magnitude (PEMAG)
in the second load case, do the following:
-
Create a Design Response (DRESP).
DRESP
ID_NAME = DRESP_PEMAG
DEF_TYPE = SYSTEM
TYPE = PEMAG
EL_GROUP = ALL_ELEMENTS
END_
-
Define the objective function.
OBJ_FUNC
ID_NAME = OBJ_FUNCTION
TARGET = MIN
DRESP = DRESP_PEMAG
END_
-
Design responses and optimization functions
DRESP
ID_NAME = VOLUME
DEF_TYPE = SYSTEM
TYPE = VOLUME
EL_GROUP = ALL_ELEMENTS
END_
DRESP
ID_NAME = DISPLACEMENT_X
DEF_TYPE = SYSTEM
TYPE = DISP_X_ABS
ND_GROUP = NODES_FOR_DISP
GROUP_OPER = Max
CS_REF = CS_0
END_
DRESP
ID_NAME = DISPLACEMENT_Z
DEF_TYPE = SYSTEM
TYPE = DISP_Z_ABS
ND_GROUP = NODES_FOR_DISP
GROUP_OPER = Max
CS_REF = CS_0
END_
OBJ_FUNC
ID_NAME = MY_OBJ_FUNC
TARGET = MINMAX
DRESP = DISPLACEMENT_X, ,
DRESP = DISPLACEMENT_Z, ,
END_
CONSTRAINT
ID_NAME = VOLUME_CONSTRAINT
MAGNITUDE = REL
DRESP = VOLUME
LE_VALUE = 1.0
END_
-
Mesh regularization
MESH_SMOOTH
ID_NAME = MY_MESH_SMOOTH
CORRECT_ELEMENTS = YES
FREE_SF = FREE
MS_LAYER = design_nodes, 4
FREEZE_DESIGN_NODES = YES
END_
-
Reference the Design Variables, Objective Function, and Constraints as well as DVCONs in
the OPTIMIZE command.
OPTIMIZE
ID_NAME = MY_OPTIMIZATION_TASK
OBJ_FUNC = MY_OBJ_FUNC
DV = MY_DV_SHAPE
CONSTRAINT = VOLUME_CONSTRAINT
STRATEGY = SHAPE_SENSITIVITY
DVCON = DVCON_SHAPE_SURF_TURN
DVCON = DVCON_SHAPE_FIXED
DVCON = SHRINK_CTRL
MESH_SMOOTH = MY_MESH_SMOOTH
END_
-
Set stop condition.
STOP
ID_NAME = MY_STOP
ITER_MAX = 150
END_
The optimization result looks as follows:
