57 const int& multiplier_ratio,
74 const amrex::ParticleReal gamma_lepton = std::sqrt(1._prt + (u2x*u2x + u2y*u2y + u2z*u2z)*inv_c_sq);
79 const amrex::ParticleReal u1_norm_rest = u1_norm * gamma_lepton - (u1x*u2x + u1y*u2y + u1z*u2z)*inv_c;
82 const amrex::ParticleReal lab_to_rest_frame_factor = u1_norm_rest * 1._prt / (u1_norm * gamma_lepton);
90 const amrex::ParticleReal f1 = 2._prt * ( 2._prt + k*(1._prt+k)*(8._prt+k) ) / ( k*k * (1._prt + 2._prt*k)*(1._prt + 2._prt*k) );
91 const amrex::ParticleReal f2 = ( 2._prt + k*(2._prt-k) ) * std::log( 1._prt + 2._prt*k ) / (k*k*k);
97 lab_to_rest_frame_factor * w_max * klein_nishina_cross_section * v_rel * dt / dV;
105 if (probability_estimate > probability_threshold)
109 event_multiplier_eff =
amrex::max(event_multiplier *
110 probability_target_value / probability_estimate , 1._prt);
111 probability_estimate *= event_multiplier_eff/event_multiplier;
125 if (random_number < probability)
127 p_mask[pair_index] =
true;
128 p_pair_reaction_weight[pair_index] = w_min/event_multiplier_eff;
132 p_mask[pair_index] =
false;
AMREX_GPU_HOST_DEVICE AMREX_INLINE void SingleLinearComptonCollisionEvent(const amrex::ParticleReal &u1x, const amrex::ParticleReal &u1y, const amrex::ParticleReal &u1z, const amrex::ParticleReal &u2x, const amrex::ParticleReal &u2y, const amrex::ParticleReal &u2z, amrex::ParticleReal w1, amrex::ParticleReal w2, const amrex::Real &dt, const amrex::ParticleReal &dV, const int &pair_index, index_type *AMREX_RESTRICT p_mask, amrex::ParticleReal *AMREX_RESTRICT p_pair_reaction_weight, const amrex::ParticleReal &event_multiplier, const int &multiplier_ratio, const amrex::ParticleReal &probability_threshold, const amrex::ParticleReal &probability_target_value, const amrex::RandomEngine &engine)
This function computes whether the collision between a photon and lepton results in a scattering even...
Definition SingleLinearComptonCollisionEvent.H:49