In a simple example I switch the ode depending on two events.
V = NDSolveValue[{ v'[t] == (1 - flag[t]) 3.29 - flag[t] 10.8,v[0] == 10, flag[0] == 0
, WhenEvent[v[t] == 25, flag[t] -> 1]
, WhenEvent[v[t] == 0 , "StopIntegration"]
} , v, {t, 0, 10 }, DiscreteVariables -> flag[t] ] ;
NDSolve seems to work quite good
Plot[V[t], {t, 0, V["Domain"][[1, 2]]}, GridLines -> {None, {10, 25}},PlotRange -> {0,30}]
and returns the plotted (Hermite-) interpolation.
Looking inside V[t] I get the interpolationdata
tv = Transpose[{V["Coordinates"][[1]], V["ValuesOnGrid"]}]
To my surprise there is a duplicate point inside the interpolation data tv
Cases[tv, {___, x_, x_, ___} :> x, All]
(*{{4.55927, 25.}}*)
which comes from the first event detection. That means NDSolve returns an interpolation object, working quite well, with duplicate interpolation points???
My questions:
V["InterpolationMethod"](*Hemite*)butInterpolation[tv, Method ->"Hermite"]fails. What kind of interpolation is used byNDSolve?How could I avoid duplicate points using 'NDSolve& WhenEvent`?
Thanks!

InterpolatingFunctionguru like @MichaelE2 to show up, I'll just suggest that the duplicate point has the same value, but different derivatives since it is not continuously differentiable. E.g.V[[4,3]]includes the values25., 3.29, 25., -10.8,, where I suspect the 25's are the values and the{3.29, -10.8}are the derivative. My own question is rather "can we create such anInterpolatingFunctionwith duplicate points usingInterpolation?" – Chris K Nov 25 '20 at 18:09Map[{#, V[#], V'[#]} &, V["Coordinates"][[1]] ]which gives identical derivative for the duplicate point. Still waiting for a guru ;-) – Ulrich Neumann Nov 25 '20 at 18:15(V')["ValuesOnGrid"]is a better way to extract those derivatives. – Chris K Nov 26 '20 at 00:37InterpolatingFunctionwith a duplicate point usingInterpolation. It would be helpful if WRI exposed all the functionality ofInterpolatingFunctionthrough `Interpolation. – Michael E2 Nov 26 '20 at 01:42InterpolatingFunctionSurgeryto go withInterpolatingFunctionAnatomy. – Chris K Nov 26 '20 at 02:02NDSolveseems to use a monotonic Polynom interpolation(pchip). In my application, which worked in several simulations without problems, I try to combine simple interpolation function and NDSolve result. Perhaps there exists I direct way to do that... – Ulrich Neumann Nov 26 '20 at 07:59