Make fmmlib integration use new p2qbxl interaction routine in pyfmmlib
cc @mattwala
This makes use of pyfmmlib@fd0fff1d.
It's a pretty big win, given how not difficult this was.
For:
pycl test_layer_pot_identity.py 'test_identity_convergence(cl._csc,SphereGreenTest())'
Timing/errors before:
h |Error |Running EOC
-------------------+-----------------+-------------
0.7926660362446749 |0.000649110885086|
0.42409160875182805|0.000112837136995|2.79742751924
Overall EOC: 2.79742751924
python test_layer_pot_identity.py 240.02s user 28.57s system 268% cpu 1:40.05 total
Timing/errors after:
h |Error |Running EOC
-------------------+-----------------+-------------
0.7926660362446749 |0.000649110885086|
0.42409160875182805|0.000112837136994|2.79742751925
Overall EOC: 2.79742751925
python test_layer_pot_identity.py 140.56s user 28.14s system 834% cpu 20.214 total
IOW, result same, time goes from 1:40 to 20s (and much better CPU utilization). I'd say this puts us within reach of calling pytential a plausible 3D code.