Skip to content

Instantly share code, notes, and snippets.

@kaushik94
Created June 17, 2015 16:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kaushik94/f0d29056f51beadd4992 to your computer and use it in GitHub Desktop.
Save kaushik94/f0d29056f51beadd4992 to your computer and use it in GitHub Desktop.
montecarlo_thomson_scatter
void
montecarlo_thomson_scatter (rpacket_t * packet, storage_model_t * storage,
double distance)
{
double comov_energy, doppler_factor, comov_nu, inverse_doppler_factor;
doppler_factor = move_packet (packet, storage, distance);
comov_nu = rpacket_get_nu (packet) * doppler_factor;
comov_energy = rpacket_get_energy (packet) * doppler_factor;
rpacket_set_mu (packet, 2.0 * rk_double (&mt_state) - 1.0);
inverse_doppler_factor = 1.0 / rpacket_doppler_factor (packet, storage);
rpacket_set_nu (packet, comov_nu * inverse_doppler_factor);
rpacket_set_energy (packet, comov_energy * inverse_doppler_factor);
rpacket_reset_tau_event (packet);
rpacket_set_recently_crossed_boundary (packet, 0);
storage->last_interaction_type[storage->current_packet_id] = 1;
if (rpacket_get_virtual_packet_flag (packet) > 0)
{
montecarlo_one_packet (storage, packet, 1);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment