split differentiation into adstate
Adjoint good, cavity adjoint working