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?
NDSolve::bcart
-- why aren't you concerned with that one? Or don't you get the message? $\endgroup$NDSolve
when boundary conditons aren't enough isn't fully understand so far, I used to ask this but didn't get a satisfied answer. $\endgroup$