Driving and extending legacy codes using Python - [EM programmer's notebook]
Software-engineering aspects in computational electromagnetics (CEM) are becoming more important as the complexity of GEM codes continues to increase. Object-oriented programming (OOP) methods promise to alleviate the challenges posed by more-complex software systems, but offer little help for legacy codes. Python, an object-oriented very-high-level language (VHLL), can be used to extend legacy codes. It provides the dual benefit of a very productive programming environment and of enabling legacy codes to be migrated to object-oriented designs with low risk. The application of this method is described in the context of eMA GUS, a microwave Finite-Element Method code.