UserCtx holds the grid's coordinate vectors (Coor, lCoor), set once with the DM, and every coordinate read uses them instead of asking PETSc (the particle search did so once per walk step); Coordinates is now an ordinary catalog field, still logged by min/max and anatomy. Fix: the opt-in Newton-Krylov fixed-point test compiles again. Results are byte-identical.