A solar cell is