Gradient-based longitudinal space charge calculation#108
Gradient-based longitudinal space charge calculation#108austin-hoover wants to merge 17 commits into
Conversation
For some reason there is an MPI error if I call `setNumModes` when creating the `SC1D_AccNode` object. There is no error when I call this function after creating the node...
|
It looks good in some initial tests; will need to think about how to benchmark. |
|
So, what about the benchmark? Was it successful? As I understand frequency approach allows to cut or to keep high frequency noise. What about the suggested new gradient method? Could you reproduce the results of the paper: |
|
This PR doesn't replace the frequency approach, just adds option to use gradient instead. One option for a benchmark would be a uniform disk in x-y plane within conducting pipe of radius b, and then a Gaussian z distribution. The energy kick from the 1D and 2D-sliced solvers should agree with the analytic result. I've tested this 1D solver against 2D-sliced for bunch compression simulations in the SNS ring, and they give similar results. But we do expect differences in that case since the transverse distribution is not uniform. I'm not sure about the space-charge-sustained microbunching. We should definitely try to reproduce these simulations, but it might be better to start with a simpler benchmark. |
This PR adds the option to calculate the longitudinal space charge kick in
LSpaceChargeCalcusing the gradient of the charge density. The current solver calculates the kick in frequency space using the impedance formulation.