ComputationalRadiationPhysics / picongpu

Performance-Portable Particle-in-Cell Simulations for the Exascale Era :sparkles:
https://picongpu.readthedocs.io
Other
693 stars 218 forks source link

Is it possible to radiate without photon creation? #2783

Open xsgeng opened 5 years ago

xsgeng commented 5 years ago

If pair-production or other photon interaction is excluded, hard photon creation and pushing is sometimes not necessary. Is there an option to turn off photon creation and pushing?

A hard photon is totally determined by its energy, direction, the creation time and creation position (and polarization). Statistics like energy and angular distribution can be calculated from creation status. It is not necessary to create the photon and leave them in the memory. If someone cares about the photon propagation, he can dump all the created photon at every time step.

PrometheusPi commented 5 years ago

Hi @xsgeng welcome to the PIConGPU repo.

Thanks for your question. Deactivating the photon creation (as propagating macro-particle inside the simulation box) and deactivating the back reaction on the electron is definitely possible with the implemented code as the original author @Heikman did this for tests. However, currently we do not expose these features as an easy to access feature in the default configuration setup. Exposing this, is however possible and I will have a look at this in the near future.

If you however are interested in photons where back-reaction etc. can be neglected, please have a look at our radiation plugin. It computes the spectrally (energetically) and directionally resolved (classical) radiation. There are no (unnecessary) photons created and it also handles coherent and incoherent radiation.

Is this plugin suited for your applications?

xsgeng commented 5 years ago

@PrometheusPi Thank you for your reply.

The radiation plugin is useful but is still a classical model without radiation-reaction. If the back-action and photon spectrum (from QED process) are important, photon emission is not replaceable. The large amount of photons definitely slows down the code even when they are not needed. From my point of view, radiation without photon creation should be a default option because it seems that the code does not contain (hard) photon interaction with particles for the current version.

PrometheusPi commented 5 years ago

@xsgeng I agree with you that since currently their is no photon interaction implemented, writing the photons directly to output (to the calorimeter in-situ plugin would save memory. As said before, I will see if we can expose this option to the user soon.

If you are interested in back-reaction, you could use the reduced Landau Lifshitz pusher. It provides radiation back reaction (on a classical level). For quantum-nonlinearity factors chi < 1, it shows the same mean effect as a purely Monte-Carlo based QED back reaction.

In combination with the radiation plugin, you get both photon spectra and radiation reaction without producing photons.

Just out of curiosity: What are you planning to simulate?

xsgeng commented 5 years ago

@PrometheusPi Actually I am testing this code in various situation for my group and see if we can build a GPU cluster for this code. (for me it is absolutely worth it.)

ax3l commented 5 years ago

@xsgeng that sounds great! Feel free to add yourself to our community map when you have the time: https://github.com/ComputationalRadiationPhysics/picongpu-communitymap