A Methodology for Designing Energy-aware Systems for Computational Science