Replies: 1 comment 1 reply
-
|
Hi, unfortunately, I'm not aware of a some magical way to make
To me this sound like a very large expression and at this point you probably already notice that Mathematica is not doing a good job handling such quantities.
If you had multiple diagrams with moderately complicated tensor structures, parallelization might be worth thinking of. But one complicated expression with made of several very long products is not really a good candidate for parallelizing (may be, but it is tricky to split it into equal pieces).
With
This is essentially what using
There were some attempts to use FORM to speed up contractions or Dirac traces and then pipe the results back to Mathematica, but both projects I am aware of (FeynCalcFormLink, FormTracer) are not being actively maintained anymore. IMHO the problem with such interfaces is that the output of a FORM evalation can be pretty large and while FORM can handle it efficiently, Mathematica can't. So to benefit from FORM one should move most of the calculation into FORM rather than sending expressions between FORM and Mathematica back and forth. Cheers, |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
I am having issues with contract. On relativeley small expressions ~10Mb Contract takes in eternity to do its job. It isn't that it doesn't work, just that it is a hassle to have to wait in the order of hours for this step to finish. For me this is by far the biggest bottelneck for making my code run faster.
Maybe a bit background: My expression is, when expanded ~100Mb, and after contract it is ~30Mb. I have lots of metric tensors, because I streamlined all the other parts of the code (in similar fashion to how LoopIsolate, LoopCanonicalize, and FCloopsolutionList works), this is because applying TID directly would take even longer. I do the same for diracstructures because else Chisholm would not work reliably (again I have very few dirac structures, just lots of appearances of them).
In the end I have a very compact result but of the form (few terms with lots of metric tensors)(few terms with lots of tensors) ... , I think you get the gist.
I tried looking into the inner workings of Contract, but i didn't find anything which could make it faster.
My Idea would be to in a first step replace Pair[LI[a],LI[b]] Pair[LI[b],LI[c]]->Pair[LI[a],LI[c]] repeatedly, because this is faster than how Contract does it (?), and then apply contract, but it does not give a huge improvement.
I would be glad for any Ideas, or maybe something is already implemented, I just didn't find it.
Note: My code will not get more complex (switching to FORM is worse than waiting on a calculation for me, i also don't want to learn FORM to be honest).
Greetings,
Phil
Beta Was this translation helpful? Give feedback.
All reactions