Faster CircularResistiveWall
Update CircularResistiveWall class in resistive_wall.py to replace numerical integrations with an analytical forms for improved performance.
- Numerical integrations are removed.
- LongWakeExact and TransWakeExact are used even in the case where time > 20*t0.
- "atol" for LongWakeExact is removed.
I believe "atol" is not needed when considering the fundamental theorem of beam loading. This is because Wl(0) = Wl(0+)/2 is comes from the equation Wl(0) = [Wl(0-)*l/2 + Wl(0+)*l/2] / l, which represents the average Wl value of a very narrow bin (as the length of bin l -> 0) at the origin. Defining "atol" for the fundamental theorem of beam loading introduces the possibility that more than one point could be divided by 2, which I believe is mathematically and physically unacceptable. Thus, it is correct to consider the fundamental theorem of beam loading only at the origin. PyHEADTAIL also considers the fundamental theorem of beam loading only at the origin. Please see def function_longitudinal at the link (line 341).