Radiative Pusher
LL equation vs sokolov correction
In the sokolov paper, he had reformulated the Landau-Lifshitz equation in a more elegant mannar to meet the mass on shell requirement.
Convert into 3-vector form and using the plasma normalization, these equation becomes:
where
with .
and
thus
This is the only point we need laser photon energy.
sokolov quantum correction
when we use the quantum correction, the becomes
and
Luckily a very good approximate function has been found in Bulanov's paper:
Here the definition of is slightly different with that in sokolov with a factor:
.
qeta = @(eta) (1.0 + 4.8 * (1.0 + eta) .* log(1.0 + 1.7 * eta) + 2.44 * eta .* eta).^-0.666;
qchi = @(chi) (1.0 + 1.04 * chi).^-1.333;
chi = 10.^linspace(-2, 2, 50);
eta = chi / 1.5;
plot(chi.^2, chi.^2 .* qchi(chi), 'linewidth', 3);
hold on
plot(eta.^2, eta.^2 .* qeta(eta), 'linewidth', 3);
xlim([1e-4, 1e4])
ylim([1e-4, 1e2])
set(gca, 'xscale', 'log', 'yscale', 'log')
set(gca, 'fontsize', 18, 'box', 'on', 'linewidth', 1.5)
legend('qchi', 'qeta')
How do we calculate electron spectra
- we assume only high energy electrons contribute to the spectra, low energy electron only radiated through the near field manner.
- we assume these high energy electrons radiation in the direction of their momentum.
- we use the angle integrated spectra formula to generate a vector of spectra, which only depend on the radiation frequency.
The modified radiation spectra is :
and with the conversion:
with
- in each step we only calculate the modified spectra, and store it, until dump
in this step, the summation core is . And
thus, for each particle at each step we only find the , , , and count on its weight times this quantity.
In our program, we only count , here is the particle weight.
- in the post processing python file, the 2nd formula will be used with our dropped .
When we use the method from sokolov:
- . and find the discrete value ~ .
- according to the direction of find , .
- add spectra with
where .
in the sokolov push we only calculate :