I have to solve a PDE (in the context of the functional renormalization group in physics). I have a function of two variables, $U(l,p)$. I know $U(0,p)=U_0(p)$ and then I have an equation (eq925) that gives me $\partial_l U(l,p)$. Here is the code
Definitions
eq925 = D[U[l, p], l] == d U[l, p] - (d - 2) p D[U[l, p], p] - k[d]/d (1/(1 + D[U[l, p], p] + 2 p D[U[l, p], {p, 2}]));
k[d_] := (2^(d - 1) π^(d/2) Gamma[d/2])
U0[p_] := u0/6 (p - p0)^2
u0v = 0.01;
p0v = 0.050459;
d = 3;
Attempt at solving
s2 = NDSolve[{eq925, U[0, p] == Evaluate[U0[p] /. {u0 -> u0v, p0 -> p0v}]},U[l, p], {l, 0, 1}, {p, -4, 4}]
Depending on the range of p
in my NDSolve
I get problems. If I only keep positive p
, I get a reasonable solution, but if include (like I did in the previous line code) negative values of p
, I get this error
NDSolve::eerr: Warning: scaled local spatial error estimate of
3152.029270554484` at l = 0.0659979486053968` in the direction of independent variable
p is much greater than the prescribed error tolerance. Grid spacing with 25 points may
be too large to achieve the desired accuracy or precision. A singularity may have formed
or a smaller grid spacing can be specified using the MaxStepSize or MinPoints
method options. >>
I know I could have singularities in the denominator of eq925
, but this should happen in my case for values around $p=-100$, which is far outside my range.
Any ideas why this happens?