Maximizing the Stiffness of the Rib Plastic Part Example

This example shows the usage of the rib pattern restriction using a plastic injection part.

See Also
About Checking the Quality of the Optimization Result
  1. 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_
    
  2. Define additional groups for nondesign elements:
    GROUP_DEF
      ID_NAME = designAreaNonFrozen
      TYPE    = ELEM
      FORMAT  = LIST_SUBTRACT_GROUP
      LIST_BEGIN
    globalDesignRegion, globalFrozenRegion
    END_
    
  3. 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_
    
  4. Define the Objective Function (OBJ_FUNC) as follows:
    OBJ_FUNC
      ID_NAME         = MY_OBJECTIVE
      DRESP           = TASK_STIFFNESS
      TARGET          = MIN
    END_
    
  5. To define the mass constraints, do the following:
    1. Define the corresponding design response:
      DRESP
        ID_NAME         = TASK_MASS
        DEF_TYPE        = SYSTEM
        TYPE            = WEIGHT
        EL_GROUP        = globalDesignRegion
        GROUP_OPER      = SUM
      END_
      
    2. Define the constraints (CONSTRAINT):
      CONSTRAINT
        ID_NAME         = TASK_MASS_CONSTRAINT
        DRESP           = TASK_MASS
        MAGNITUDE       = REL
        LE_VALUE        = 0.4
      END_
      
  6. 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_
    
  7. 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: