This doesn't help since 
```BFit3D::GetField```  calls ``` HarmBasis3DCyl::SetPoint()``` which calls the static function ```rz_harm_poly::IncNPwr``` which changes the static variable ```rz_harm_poly::NPwr```.  That whole ```rz_harm_poly``` and its base class are filled with static which are changed during those calls.

If you want to be quick and dirty, it might work to change those statics to ```thread_local```.