You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In shadow3 the calculation of the flux (also the heat load) needs additional information and calculations.
I propose to store this information for calculating this in a standalone way.
The typical calculation of flux requires DE_1 and I_1 (intensity) at the image plane. Knowing DE_0 and I_0 at the source, and knowing also the number of photons N_0 we have at the source, the flux at the image is N_0 (I_1/DE_1) / (I_0/DE_0) photons/s/eV or N_0 (I_1/DE_1) / (I_0/DE_0) D_E1 = N_0 I_1 / (I_0/DE_0) photons/s.
To do it automatically, we need to store DE_0, I_0, and N_0 at the source, and pass (copy it) in the trace process.
I propose to store in the beam: E_min in eV, E_max in eV, N_rays, and N_0 in photons/s/eV. Now, we do not store anything more than the rays, so N_0=rays.shape[0], E_min=col26.min(), E_max=col26.max(), but it is required to store them as the beam can be "cleaned" (removed lost rays) so this information is lost.
Another way to do it is to store it in the lightsource (at the time of its creation), not in the beam. But this requires to access the lightsource instance at any time we want to calculate flux.
It could be possible to store also the initial power W_0 (sum of intensity * energy) directly in eV/s, or better in Watts [total]. This will allow at any point to compute the absolute power carried by the beam.
What do you think, what do you prefer? Any comment?
Any other idea to also improve the heat load loops?
Thank you!
The text was updated successfully, but these errors were encountered:
In shadow3 the calculation of the flux (also the heat load) needs additional information and calculations.
I propose to store this information for calculating this in a standalone way.
The typical calculation of flux requires DE_1 and I_1 (intensity) at the image plane. Knowing DE_0 and I_0 at the source, and knowing also the number of photons N_0 we have at the source, the flux at the image is N_0 (I_1/DE_1) / (I_0/DE_0) photons/s/eV or N_0 (I_1/DE_1) / (I_0/DE_0) D_E1 = N_0 I_1 / (I_0/DE_0) photons/s.
To do it automatically, we need to store DE_0, I_0, and N_0 at the source, and pass (copy it) in the trace process.
I propose to store in the beam: E_min in eV, E_max in eV, N_rays, and N_0 in photons/s/eV. Now, we do not store anything more than the rays, so N_0=rays.shape[0], E_min=col26.min(), E_max=col26.max(), but it is required to store them as the beam can be "cleaned" (removed lost rays) so this information is lost.
Another way to do it is to store it in the lightsource (at the time of its creation), not in the beam. But this requires to access the lightsource instance at any time we want to calculate flux.
It could be possible to store also the initial power W_0 (sum of intensity * energy) directly in eV/s, or better in Watts [total]. This will allow at any point to compute the absolute power carried by the beam.
What do you think, what do you prefer? Any comment?
Any other idea to also improve the heat load loops?
Thank you!
The text was updated successfully, but these errors were encountered: