# Ignore part of the gradient calculation inside differential equation model

I am trying to differentiate the solution of a differential equation using `DifferentialEquation` with respect to some parameters but ignoring parts of the calculation of the gradient for being redundant or computationally expensive to compute. However, I cannot manage to ignore parts of the forward model when computing the gradient using `Zygote`. I am including next a MWE.

We can compute the gradient of the solution of a simple ODE with respect of the vector parameter `p` as follows

``````using DifferentialEquations
using Zygote, SciMLSensitivity
using Plots
using DiffEqFlux
using ChainRulesCore
using Zygote: @ignore

p = [0.1, 0.2]

function dynamics(du, u, p, t)
du[1] = - p[1] * u[1] + p[2]
end

[10.0],
(0.0,10.0),
tstops=[4.0],
p), Tsit5()).u[end][1], p)
``````

which results in the final calculation of `dp=([-42.072752200991175, 6.321205292676615],)`. Now, I would like to consider a case in which the dependency of the solution with one of the parameters, let say `p[2]` is ignored. Zygote allows ignoring certain computations of the gradient by using the macro `@ignore`, for example in the following example:

``````using Zygote: @ignore

function foo(x)
y = @ignore x
return y*x
end
``````

where the computed gradient gives the formula `f'(x) = x` instead of `f'(x) = 2x`. However, running the previous example with the `ignore` macro inside `dynamics()` leads to the same numerical value of the gradient

``````function dynamics2(du, u, p, t)
offset = @ignore p[2]
du[1] = - p[1] * u[1] + offset
end

where `dp2 = ([-42.072752200991175, 6.321205292676615],)`.
Does anyone knows if `@ignore` is supported for differential equations? There is a chance I am also missing something about the behavior of `@ignore`, but my understanding is that this command should ignore the dependency of certain parts of the code at the moment of applying AD.