Skip to content

Commit 05fdd6f

Browse files
Merge pull request #461 from ChrisArran/ChrisArran-photonEnergyExtrapolation
Bug fix: photon energy extrapolation
2 parents f371258 + ac93b12 commit 05fdd6f

File tree

3 files changed

+30
-9
lines changed

3 files changed

+30
-9
lines changed

epoch1d/src/physics_packages/photons.F90

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -916,10 +916,17 @@ FUNCTION calculate_photon_energy(rand_seed, eta, generating_gamma)
916916

917917
REAL(num) :: calculate_photon_energy
918918
REAL(num), INTENT(IN) :: rand_seed, eta, generating_gamma
919-
REAL(num) :: chi_final
919+
REAL(num) :: eta_min, chi_tmp, chi_final
920920

921-
chi_final = find_value_from_table_alt(eta, rand_seed, &
922-
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
921+
eta_min = 10.0_num**MINVAL(log_eta)
922+
IF (eta < eta_min) THEN ! Extrapolate downwards with chi \propto eta^2
923+
chi_tmp = find_value_from_table_alt(eta_min, rand_seed, &
924+
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
925+
chi_final = chi_tmp * (eta / eta_min)**2
926+
ELSE
927+
chi_final = find_value_from_table_alt(eta, rand_seed, &
928+
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
929+
ENDIF
923930

924931
calculate_photon_energy = (2.0_num * chi_final / eta) * generating_gamma &
925932
* m0 * c**2

epoch2d/src/physics_packages/photons.F90

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -929,10 +929,17 @@ FUNCTION calculate_photon_energy(rand_seed, eta, generating_gamma)
929929

930930
REAL(num) :: calculate_photon_energy
931931
REAL(num), INTENT(IN) :: rand_seed, eta, generating_gamma
932-
REAL(num) :: chi_final
932+
REAL(num) :: eta_min, chi_tmp, chi_final
933933

934-
chi_final = find_value_from_table_alt(eta, rand_seed, &
935-
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
934+
eta_min = 10.0_num**MINVAL(log_eta)
935+
IF (eta < eta_min) THEN ! Extrapolate downwards with chi \propto eta^2
936+
chi_tmp = find_value_from_table_alt(eta_min, rand_seed, &
937+
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
938+
chi_final = chi_tmp * (eta / eta_min)**2
939+
ELSE
940+
chi_final = find_value_from_table_alt(eta, rand_seed, &
941+
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
942+
ENDIF
936943

937944
calculate_photon_energy = (2.0_num * chi_final / eta) * generating_gamma &
938945
* m0 * c**2

epoch3d/src/physics_packages/photons.F90

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -942,10 +942,17 @@ FUNCTION calculate_photon_energy(rand_seed, eta, generating_gamma)
942942

943943
REAL(num) :: calculate_photon_energy
944944
REAL(num), INTENT(IN) :: rand_seed, eta, generating_gamma
945-
REAL(num) :: chi_final
945+
REAL(num) :: eta_min, chi_tmp, chi_final
946946

947-
chi_final = find_value_from_table_alt(eta, rand_seed, &
948-
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
947+
eta_min = 10.0_num**MINVAL(log_eta)
948+
IF (eta < eta_min) THEN ! Extrapolate downwards with chi \propto eta^2
949+
chi_tmp = find_value_from_table_alt(eta_min, rand_seed, &
950+
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
951+
chi_final = chi_tmp * (eta / eta_min)**2
952+
ELSE
953+
chi_final = find_value_from_table_alt(eta, rand_seed, &
954+
n_sample_eta, n_sample_chi, log_eta, log_chi, p_photon_energy)
955+
ENDIF
949956

950957
calculate_photon_energy = (2.0_num * chi_final / eta) * generating_gamma &
951958
* m0 * c**2

0 commit comments

Comments
 (0)