Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I want to numerically integrate two functions that have several poles inside the integration region. These are the functions:

ThermPotQuarkGluonLoop10 = 1/2*PreFactor* Jplus*Σx
ThermPotQuarkGluonLoop12 = -1/2*PreFactor*2*(Jplus (x - y) - Jminus (x + y)) nb*Nfx/ωpq;

with the following definitions:

ωpq = Sqrt[x^2 - m^2 - 2*Sqrt[x^2 - m^2] Sqrt[y^2 - m^2] z + y^2 - m^2];
Jplus = NG ((2*m^2 + Sqrt[x^2 - m^2] Sqrt[y^2 - m^2] z - 
   x y)/((x - y)^2 - ωpq^2));
Jminus = NG ((2*m^2 + Sqrt[x^2 - m^2] Sqrt[y^2 - m^2] z + 
   x y)/((x + y)^2 - ωpq^2));
nfxp = 1/(Exp[β (x + μ)] + 1);
nfxm = 1/(Exp[β (x - μ)] + 1);
nfyp = 1/(Exp[β (y + μ)] + 1);
nfym = 1/(Exp[β (y - μ)] + 1);
nb = 1/(Exp[β ωpq] - 1);
Σx = nfxp*nfyp + nfxm*nfym;
Σy = nfxp*nfym + nfxm*nfyp;
Nfx = nfxp + nfxm;
Nfy = nfyp + nfym;
PreFactor = αs/(4*Pi^3) Sqrt[x^2 - m^2] Sqrt[y^2 - m^2];

I've fixed several numerical values

hbarc = 1973*10^(-1);
β = 67*10^(-5) hbarc;
NG = 8;
αs = 3*10^(-1);
NC = 3;
m = 48*10^(-1)/hbarc;
μ = 300/hbarc;
Λ = 25*10^(-1)*μ;

Now I integrate it numerically:

NIntegrate[ThermPotQuarkGluonLoop10, {x, m, Infinity}, {y, m, Infinity}, {z, -1, 1}, AccuracyGoal -> Infinity, PrecisionGoal -> 3, WorkingPrecision -> 20]

and

NIntegrate[ThermPotQuarkGluonLoop12, {x, m, Infinity}, {y, m, Infinity}, {z, -1, 1}, AccuracyGoal -> Infinity, PrecisionGoal -> 3, WorkingPrecision -> 20, Method -> {"DuffyCoordinates", Method -> "GlobalAdaptive"}]

My questions are:

  • The Code is working for the given numerical values. Why does no error/warning appear for the integration of ThermPotQuarkGluonLoop10? This expression has several poles within the integration region but Mathematica can handle it without that I fixed any specified integration method for dealing with poles
  • When I assume higher masses (m=95) I get the NIntegrate::slwcon: warning. For the integration of ThermPotQuarkGluonLoop10 I can switch to Method -> {"DuffyCoordinates", Method -> "GlobalAdaptive"} and it's fine. But for the integration of ThermPotQuarkGluonLoop12 it is not working without a warning. How can I get a correct integration?
  • Are the chosen methods the right way to calculate the numerical integrals or shall I choose another preprocessor/method/rule?
  • Is there a way to speed up the computation?

Finally I apologize for my bad coding style. I'm a Mathematica beginner...

Thank you very much for your help!

Cheers, Startup

share|improve this question

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.