A review of solar energy modeling techniques