Under topology optimization, the material density of each element should take a value
                of either 0 or 1, defining the element as being either void or solid, respectively.
                Unfortunately, optimization of a large number of discrete variables is
                computationally prohibitive. Therefore, representation of the material distribution
                problem in terms of continuous variables has to be used.
            With the density method, the material density of each element is directly used as the
                design variable and varies continuously between 0 and 1; these represent the state
                of void and solid, respectively. Intermediate values of density represent fictitious
                material. The stiffness of the material is assumed to be linearly dependent on the
                density. This material formulation is consistent with our understanding of common
                materials. For example, steel, which is denser than aluminum, is stiffer than
                aluminum. Following this logic, the representation of fictitious material at
                intermediate densities does reflect engineering intuitions.
Penalization
            
            In general, the optimal solution of problems involves large gray areas of
                intermediate densities in the structural domain. Such solutions are not meaningful
                when you are looking for the topology of a given material, and not meaningful when
                considering the use of different materials within the design space. Therefore,
                techniques need to be introduced to penalize intermediate densities and to force the
                final design to be represented by densities of 0 or 1 for each element. OptiStruct uses different penalization techniques in
                different settings of topology optimizations. These are SIMP, RAMP or
                Polynomial.
            SIMP:
(1)
                    
                    
                        
                    
                 
            Where, 
                        
                     and 
                        
                     represent the penalized and the real stiffness
                matrix of an element, respectively, 
          
         is the density and 
                        
                     is the penalization factor which is always greater
                than 1. SIMP is used for the vast majority of setups.
            RAMP:
(2)
                    
                    
                        
                     
                Where, 
                            
                         and 
                            
                         represent the penalized and the real stiffness
                    matrix of an element, respectively and 
                            
                         is the penalization factor which is always
                    greater than 1. RAMP is the default when using the OVERHANG constraint. This
                    default can be overwritten with the PENSCHE field on the
                        DTPL card. At the moment RAMP can only be used with
                    OVERHANG.
 
            POLYNOMIAL:
(3)
                    
                    
                        
                     
                Where, 
                            
                         and 
                            
                         represent the penalized and the real stiffness
                    matrix of an element, respectively and 
                            
                         is the penalization factor which is always
                    greater than 1. The value of alpha (
                            
                        ) is 15.0.
The polynomial penalization is
                    active by default whenever mass influences the loading, for instance for normal
                    modes, frequency response, gravity loading (
GRAV) or
                    rotational forces (
RFORCE). This penalization scheme can be
                    turned off and replaced by SIMP by using 
DOPTPRM,
                        
OLDPEN, 
1. In that case the loading is
                    calculated with the penalized mass matrix. However, the mass response value
                    printed to the 
.out file for each iteration does not
                    consider the penalty but simply the mass times the density, because the mass
                    matrix is penalized for gravity force calculation and if there are semi-dense
                    elements in the model which is usually the case for non-converged iterations,
                    the 
Sum of the Applied Forces or 
SPCFORCE values
                    printed in the 
.out file will be different from their
                    expected values (from the printed mass response). After convergence, typically
                    the 
SPCFORCE and 
Sum of Applied Forces will be
                    closer to the printed mass response-based applied force calculation since the
                    converged solution typically is more discrete and contains lower number of
                    intermediate density elements.
Note: There is no mass penalization when using the
                        Polynomial penalization which is applied only to the
                stiffness.
 
 
        
Discreteness
            
            As described above, for the sake of interpretability it is desirable to achieve a
                discrete design, that is, a design where the vast majority of elements is either 0
                or 1. In addition to interpretability, the performance of the structure, reported at
                the end of the optimization, becomes inaccurate when large amounts of medium dense
                elements exist. This is because the medium dense elements, despite their low
                penalized stiffness, can still have a significant influence on the structural
                behavior. A reanalysis after interpretation of the structure is the only reliable
                way to verify the performance of the structure. This becomes even more important
                when comparing structures obtained with different penalty schemes, for instance
                comparing a structure obtained with DRAW and a structure with OVERHANG, that is, a
                topology obtained with SIMP and one obtained with RAMP. The different penalty
                schemes can further amplify differences between the reported performances as medium
                dense elements are penalized differently.
        
Estimating Discreteness
            
            In practice, it is very difficult to obtain a design that is comprised of densities
                exclusively equal to 0.0 or 1.0. In reality a transition zone usually exists between
                a solid member and voids. This transition zone is acceptable in most cases. It
                should be avoided however, to have large areas containing mainly medium dense
                elements. To quantify this, OptiStruct reports a
                discreteness index in the .out file after each iteration (since
                version 2017.2.3). This indicates the amount of medium dense elements in the
                structure by calculating the ratio between the volume from elements with densities
                of at least 0.9 and that of the entire design space. For a perfectly discrete model
                this value would be 1.0 but for structures where a transition zone exists, this
                parameter should be 0.5 or higher. When values are smaller than that at the end of
                the optimization, the topology should at least be interpreted with caution and
                possibly measures should be taken to improve discreteness. 
            An example discreteness index table from the 
.out file and the
                corresponding equation used in the calculation.
                    
Density                      %
------------------------------
0.0-0.1                   64.6
0.1-0.2                    0.9
0.2-0.3                    0.8
0.3-0.4                    1.3
0.4-0.5                    1.2
0.5-0.6                    2.1
0.6-0.7                    1.2
0.7-0.8                    4.1
0.8-0.9                    5.6
0.9-1.0                   18.2
(4)
                    
                    
                        
                     
                 
            Where,
                    
                        - 
                        
 
                        - Discreteness indexed
 
                    
                    
                        - 
                        
 
                        - Density of element 
                        
 
                    
                    
                        - 
                        
 
                        - Volume of element 
                                    
                                
 
                    
                
 
        
Improving Discreteness
            
            There are numerous ways to improve the discreteness of the resulting topology. A list
                of potential issues leading to indiscrete designs and how to address them are:
 
        
Lattice Optimization
            
            While it is desirable to achieve purely solid and void designs in regular topology
                optimization, Lattice structure opens up the freedom of realizing porous zones
                (medium dense regions) into lattice regions. The penalty used for this type of
                optimization is usually reduced to increase porous zones in the design. The penalty
                and thus the amount of lattice structure is controlled via
                LATPRM, POROSITY. Refer to Lattice Structure Optimization for additional
                information.
        
Penalty for SIMP
            
            In OptiStruct, the DISCRETE parameter
                corresponds to (
                        
                    ). DISCRETE can be defined on the
                    DOPTPRM Bulk Data Entry. 
                        
                     usually takes a value between 2.0 and 4.0. For
                example, compared to the non-penalized formulation (which is equivalent to 
                        
                    =1) at 
          
        =0.3, 
                        
                    =2 reduces the stiffness of the element from 0.3 to
                0.09 times the stiffness of the fully dense element. The default
                    DISCRETE is 1.0 for shell dominant structures, and 2.0 for
                solids dominant structures with member size control and no manufacturing constraints
                (the dominance is defined by the proportion of number of elements). An additional
                parameter, DISCRT1D, can also be defined on the
                    DOPTPRM Bulk Data Entry. DISCRT1D allows
                1D elements to use a different penalization to 2D or 3D elements.
            For non-solid dominant models, when 
Member Size Control is used, the penalty starts at 2 and is increased to 3 for the second and third
                iterative phases. This is done in order to achieve a more discrete solution. For
                other manufacturing constraints such as 
Draw Direction Constraints, 
Extrusion Constraints, 
Pattern Repetition, and 
Pattern Grouping,
                the penalty starts at 2 and increases to 3 and 4 for the second and third iterative
                phases, respectively. Obviously, due to the existence of semi-dense elements, the
                analysis results may change dramatically when the design process enters a new phase
                using a different penalization factor.
Table 1. Default DISCRETE and Penalty Values for Topology Optimization
                            
                                | Model | 
                                DOPTPRM, DISCRETE | 
                                Penalty | 
                            
                        
                            
                                | Shell-dominant structure | 
                                1.0 | 
                                2.0 | 
                            
                            
                                | Shell-dominant structure + member size control only | 
                                1.0 | 
                                1st Phase - 2.0 2nd Phase - 3.0 
3rd Phase -
                                    3.0 
 | 
                            
                            
                                | Shell-dominant structure + other manufacturing
                                    constraints | 
                                1.0 | 
                                1st Phase - 2.0 2nd Phase - 3.0 
3rd Phase -
                                    4.0 
 | 
                            
                            
                                | Solid-dominant structure | 
                                1.0 | 
                                2.0 | 
                            
                            
                                | Solid-dominant structure + member size control only | 
                                2.0 | 
                                1st Phase - 3.0 2nd Phase - 4.0 
3rd Phase -
                                    4.0 
 | 
                            
                            
                                | Solid-dominant structure + other manufacturing
                                    constraints | 
                                1.0 | 
                                1st Phase - 2.0 2nd Phase - 3.0 
3rd Phase -
                                    4.0 
 | 
                            
                        
 
 
            Three types of finite elements can be defined as topology Design Elements in
                    OptiStruct: Solid elements, shell elements, and 1D
                elements (including ROD,
                    BAR/BEAM, BUSH, and
                    WELD elements).