A study of mathematical programming methods for structural optimization. Part I: Theory | Synapse