An agent-based approach to designing residential renewable energy systems. (September 2019)