Photodiode + Op-Amp Acting Nonlinearly

I've built a laser power meter based on a photodiode (likely a ThorLabs FDS10X10), a simple op-amp circuit (op-amp is TLV2462, max 12V), and a microcontroller+screen: Internally, I've built the following circuit: simulate this circuit – Schematic created using CircuitLab

I'm not sure this is a reasonable circuit. Here's what I was thinking coming up with it:

The photodiode is reverse-biased for better sensitivity and linearity. The voltage drop across R1 is linear with respect to the power hitting the photodiode. To measure this voltage, I use an op amp, with potentiometer 2 causing negative feedback to reduce the op amp's ridiculous gain.

First, pot 2 is set for maximum gain and pot 1 is tuned so that in complete darkness the voltage at E just drops to ground. Then pot 2 is tuned to set the gain, and hence the range of brightnesses that can be measured.

However, the voltage at node E is not linear with respect to incoming light as I want and had expected it to be.

Example: In an otherwise-dark room, laser 1 produces an output of 0.678 (arbitrary units!) while laser 2 produces 2.198. However, together they only produce a reading of 2.290 (while one would expect 0.678+2.198=2.876). The op-amp is not saturated; I can produce a reading of ~18 with a much brighter source.

Question: what's going wrong with my circuit to cause this nonlinearity? Is the equation easy to find (so that I might correct for it in software)? Otherwise, if my circuit seems reasonable, which else might be going wrong?

• For best linearity I'd use 0V diode biasing in a transimpedance amplifier configuration – Curd Feb 9 '18 at 10:30
• Although the OpAmp is not yet saturated, what about the diode resistor R1 path. If you get there already 3.3mA with Laser1 there is not much Laser2 can increase. – Curd Feb 9 '18 at 10:33
• It's all explained here: en.wikipedia.org/wiki/Transimpedance_amplifier – Janka Feb 9 '18 at 10:33

If you want linear, you want a circuit more like this: 