1. A method of obtaining an optimal design of an engineering product in a topology optimization comprising: receiving, in a computer system, a definition of an engineering product including a designated design domain to be optimized in accordance with at least one design objective, the definition includes a finite element analysis (FEA) grid of the design domain and a baseline material to be used for the design domain, wherein the FEA grid comprises a plurality of finite elements each assigned a design variable, which corresponds to the baseline material's properties; deriving a plurality of discrete material models each configured for representing a specific fraction of the baseline material, wherein the specific fraction is associated with a corresponding portion of the range of the design variable; and obtaining an optimal design of the design domain that achieves said at least one design objective by iteratively modifying some of the elements according to the respective design variable changes in an iterative topology optimization of the design domain, wherein each iteration of the topology optimization comprises performing at least one engineering simulation in the computer system using finite element analysis of the engineering product and evaluating said at least one design objective from said at least one engineering simulation's results to update the respective design variable of each of the elements, said each of the elements is assigned a corresponding one of the discrete material models according to the respective design variable in said each iteration, and one or more of the elements having said respective design variable below a predefined threshold are removed at the end of said each iteration.