From a5306d97d7c604a3e33afa38b4f7e5b8055dc94e Mon Sep 17 00:00:00 2001 From: caes Date: Tue, 4 Jul 2017 11:17:17 -0400 Subject: [PATCH] update --- reference/linelist.c17 | 468 +++++++++++--------------------------- src/agn.hpp | 130 +++++++++-- src/create_fort_files.cpp | 19 +- src/spectral_lines.hpp | 101 ++++++-- 4 files changed, 342 insertions(+), 376 deletions(-) diff --git a/reference/linelist.c17 b/reference/linelist.c17 index 02cc644..a7d7d2d 100644 --- a/reference/linelist.c17 +++ b/reference/linelist.c17 @@ -2,19 +2,20 @@ # Lines appear in approximate order they appear in Cloudy standard output file. # Program should ignore the comments after the line label # Program knows to look for inward fractions as well -# Program searches intrinsic lines +# Program searches intrinsic emission line fluxes #two incident continuum points Inci 1215.00A incident continuum nu*f_nu near Ly-alpha, at illuminated face of cloud -Inci 4860.00A incident continuum nu*f_nu at H-beta, at illuminated face of cloud +Inci 4860.00A incident continuum nu*f_nu near H-beta, at illuminated face of cloud #Some informative quantities -Bac 3646.00A residual flux at head of Balmer continuum, nuFnu +# Bac 3646.00A residual flux at head of Balmer continuum, nuFnu Ba C 0 integrated Balmer continuum emission PA C 0 Paschen continuum emission +# Hydrogen transitions + # Lyman -# Can't find an equivalent to TOTL 1215A in c17 H 1 1215.67A H-like, 1 3, 1^2S - 2^2P H 1 1025.72A H-like, 1 5, 1^2S - 3^2P H 1 972.537A H-like, 1 8, 1^2S - 4^2P @@ -67,15 +68,15 @@ H 1 9014.87A H-like, 4 47, 3^2S - 10^2P #H 1 4.05113m H-like, 7 12, 4^2S - 5^2P #H 1 2.62513m H-like, 7 17, 4^2S - 6^2P H 1 2.16551m H-like, 7 23, 4^2S - 7^2P -#H 1 1.94454m H-like, 7 30, 4^2S - 8^2P -#H 1 1.81740m H-like, 7 38, 4^2S - 9^2P -#H 1 1.73620m H-like, 7 47, 4^2S - 10^2P -#H 1 1.68064m H-like, 7 57, 4^2S - 11^2P +H 1 1.94454m H-like, 7 30, 4^2S - 8^2P +H 1 1.81740m H-like, 7 38, 4^2S - 9^2P +H 1 1.73620m H-like, 7 47, 4^2S - 10^2P +H 1 1.68064m H-like, 7 57, 4^2S - 11^2P #He II lines: -#Balmer +#'Balmer' He 2 1640.43A H-like, 2 5, 2^2S - 3^2P He 2 1215.13A H-like, 2 8, 2^2S - 4^2P He 2 1084.94A H-like, 2 12, 2^2S - 5^2P @@ -84,13 +85,13 @@ He 2 992.360A H-like, 2 23, 2^2S - 7^2P He 2 972.108A H-like, 2 30, 2^2S - 8^2P He 2 958.694A H-like, 2 38, 2^2S - 9^2P -#Paschen +#'Paschen' He 2 4685.64A H-like, 4 8, 3^2S - 4^2P He 2 3203.04A H-like, 4 12, 3^2S - 5^2P He 2 2733.24A H-like, 4 17, 3^2S - 6^2P He 2 2511.15A H-like, 4 23, 3^2S - 7^2P -#Brackett +#'Brackett' (I think this are 'Pfund' transitions.) He 2 1.01233m H-like, 7 12, 4^2S - 5^2P He 2 6559.91A H-like, 7 17, 4^2S - 6^2P He 2 5411.37A H-like, 7 23, 4^2S - 7^2P @@ -103,37 +104,43 @@ He 2 4025.48A H-like, 7 80, 4^2S - 13^2P He 2 3968.32A H-like, 7 93, 4^2S - 14^2P He 2 3923.37A H-like, 7 107, 4^2S - 15^2P +# approximately 70 H, HeII lines, plus 4 continuum type bins, above. #He I Lines: +# First, the triplets TOTL 1.08303m total emission in He-like lines, use average of three line wavelengths He 1 1.08303m He-like, 2 4, 2^3S - 2^3P -# Have not been able to find equivalents -# for all parts of this triplet in c17 - -He 1 8863.66A He-like, 2 7, 2^3S - 2^1P_1 -He 1 3888.63A He-like, 2 10, 2^3S - 3^3P -He 1 3793.50A He-like, 2 13, 2^3S - 3^1P_1 - -He 1 2.05813m He-like, 3 7, 2^1S - 2^1P_1 -He 1 5183.33A He-like, 3 10, 2^1S - 3^3P -He 1 5015.68A He-like, 3 13, 2^1S - 3^1P_1 - -He 1 7065.22A He-like, 6 8, 2^3P_2 - 3^3S -He 1 6067.08A He-like, 6 10, 2^3P_2 - 3^3P -He 1 5875.64A He-like, 6 11, 2^3P_2 - 3^3D +# +He 1 7065.22A He-like, 6 8, 2^3P_2 - 3^3S He 1 4713.03A He-like, 6 14, 2^3P_2 - 4^3S -He 1 4517.44A He-like, 6 16, 2^3P_2 - 4^3P -He 1 4471.49A He-like, 6 17, 2^3P_2 - 4^3D He 1 4120.82A He-like, 6 22, 2^3P_2 - 5^3S +He 1 3867.48A He-like, 6 32, 2^3P_2 - 6^3S -He 1 7281.35A He-like, 7 9, 2^1P_1 - 3^1S -He 1 6678.15A He-like, 7 12, 2^1P_1 - 3^1D_2 +He 1 5875.64A He-like, 6 11, 2^3P_2 - 3^3D +He 1 4471.49A He-like, 6 17, 2^3P_2 - 4^3D +He 1 4026.20A He-like, 6 25, 2^3P_2 - 5^3D +He 1 3819.61A He-like, 6 35, 2^3P_2 - 6^3D + +He 1 3888.63A He-like, 2 10, 2^3S - 3^3P +He 1 3187.74A He-like, 2 16, 2^3S - 4^3P + +# next, the singlets +He 1 2.05813m He-like, 3 7, 2^1S - 2^1P_1 + +He 1 7281.35A He-like, 7 9, 2^1P_1 - 3^1S He 1 5047.64A He-like, 7 15, 2^1P_1 - 4^1S -He 1 4921.93A He-like, 7 18, 2^1P_1 - 4^1D_2 He 1 4437.55A He-like, 7 23, 2^1P_1 - 5^1S -He 1 4387.93A He-like, 7 26, 2^1P_1 - 5^1D_2 He 1 4168.97A He-like, 7 33, 2^1P_1 - 6^1S +He 1 6678.15A He-like, 7 12, 2^1P_1 - 3^1D_2 +He 1 4921.93A He-like, 7 18, 2^1P_1 - 4^1D_2 +He 1 4387.93A He-like, 7 26, 2^1P_1 - 5^1D_2 +He 1 4143.76A He-like, 7 36, 2^1P_1 - 6^1D_2 + +He 1 5015.68A He-like, 3 13, 2^1S - 3^1P_1 +He 1 3964.73A He-like, 3 21, 2^1S - 4^1P_1 + +# 23 He I lines, above #Heavy Element Lines: Blnd 1657.00A Blend: "C 1 1657.01A"+"C 1R 1656.00A" @@ -156,8 +163,8 @@ Blnd 1335.00A Blend: "C 2 1334.53A"+"C 2 1335.66A"+"C 2 C 3 977.000A recombination line Blnd 1909.00A Blend: "C 3 1908.73A"+"C 3 1906.68A"+"C 3R 1909.00A"+"C 3H 1909.00A" -#C 3 1908.73A Stout, 1 3 -#C 3 1906.68A Stout, 1 4 +C 3 1908.73A Stout, 1 3 +C 3 1906.68A Stout, 1 4 Blnd 1176.00A Blend: "C 3 1174.61A"+"C 3 1174.93A"+"C 3 1175.26A"+"C 3 1175.59A"+"C 3 1175.71A"+"C 3 1175.99A"+"C 3 1176.37A"+"C 3 1176.77A"+"C 3R 1175.00A" #C 3 1175.26A Stout, 2 7 @@ -173,9 +180,6 @@ Blnd 1549.00A Blend: "C 4 1550.78A"+"C 4 1548.19A"+"C 4R C 4 1550.78A C 4 1548.19A -N 1 1200.22A Stout, 1 7 -N 1 1200.71A Stout, 1 6 - Blnd 2141.00A Blend: "N 2 2139.01A"+"N 2 2142.78A" #N 2 2139.01A #N 2 2142.78A @@ -203,8 +207,8 @@ Blnd 990.000A Blend: "N 3 989.799A"+"N 3 991.511A"+"N 3 #N 3R 990.000A Blnd 1486.00A Blend: "N 4 1483.32A"+"N 4 1486.50A" -#N 4 1483.32A -#N 4 1486.50A +N 4 1483.32A +N 4 1486.50A Blnd 765.000A Blend: "N 4 765.147A"+"N 4R 765.000A" #N 4 765.147A @@ -215,9 +219,9 @@ N 5 1238.82A N 5 1242.80A Blnd 1304.00A Blend: "O 1 1302.17A"+"O 1 1304.86A"+"O 1 1306.03A" -O 1 1302.17A -O 1 1304.86A -O 1 1306.03A +#O 1 1302.17A +#O 1 1304.86A +#O 1 1306.03A Blnd 8446.00A Blend: "O 1 8446.25A"+"O 1 8446.36A"+"O 1 8446.76A" #O 1 8446.25A @@ -252,8 +256,8 @@ Blnd 630.000A Blend: "O 5 629.732A"+"O 5R 630.000A" #O 5R 630.000A Blnd 1218.00A Blend: "O 5 1213.81A"+"O 5 1218.34A" -#O 5 1213.81A -#O 5 1218.34A +O 5 1213.81A +O 5 1218.34A Blnd 1035.00A Blend: "O 6 1031.91A"+"O 6 1037.62A" O 6 1031.91A @@ -305,8 +309,8 @@ Si 2 1236.03A Stout, 2 12 Si 2 1235.12A Stout, 2 13 Blnd 1888.00A Blend: "Si 3 1882.71A"+"Si 3 1892.03A" -#Si 3 1882.71A -#Si 3 1892.03A +Si 3 1882.71A +Si 3 1892.03A Blnd 1397.00A Blend: "Si 4 1393.75A"+"Si 4 1402.77A" Si 4 1393.75A @@ -344,28 +348,22 @@ S 5 1188.28A S 6 944.524A Chianti, 1 2 S 6 933.380A Chianti, 1 3 -#Ca2R 3933.00A recombination contribution to CaII emission - Blnd 8579.00A Blend: "Ca 2 8662.14A"+"Ca 2 8542.09A"+"Ca 2 8498.02A" Ca 2 8662.14A Ca 2 8542.09A Ca 2 8498.02A -Blnd 7306.00A Blend: "Ca 2 7291.47A"+"Ca 2 7323.89A" -Ca 2 7291.47A -Ca 2 7323.89A - Blnd 3933.00A Blend: "Ca 2 3933.66A"+"Ca 2 3968.47A" Ca 2 3933.66A Ca 2 3968.47A +#Ca2R 3933.00A recombination contribution to CaII emission FeKa 1.78000A total intensity of K-alpha line - +# approximately 120 heavy element lines +# #Diffuse continua: -# Program knows to check for nInu, etc. as well -nFnu 3645.00A total flux above head of Balmer continuum, nuFnu -nFnu 3647.00A total flux above head of Balmer continuum, nuFnu +# Program knows to check for InwT, InwC, as well # standard Cloudy continuum bins #nFnu 23.5131c total continuum at selected energy points #nFnu 20.4636c total continuum at selected energy points @@ -377,8 +375,11 @@ nFnu 3647.00A total flux above head of Balmer continuum, nuFnu #nFnu 2.00329c total continuum at selected energy points #nFnu 1.33478c total continuum at selected energy points #nFnu 9993.08m total continuum at selected energy points -#nFnu 6917.22m total continuum at selected energy points -nFnu 122.400m total continuum at selected energy points +#nFnu 6917.22m total continuum at selected energy points +# +nFnu 122.400m total continuum at selected energy points +nFnu 100.000m supplemental +nFnu 80.0000m supplemental nFnu 60.8322m total continuum at selected energy points nFnu 41.2152m total continuum at selected energy points nFnu 30.8695m total continuum at selected energy points @@ -405,23 +406,79 @@ nFnu 2.32440m total continuum at selected energy points nFnu 1.64313m total continuum at selected energy points nFnu 1.48022m total continuum at selected energy points nFnu 1.43649m total continuum at selected energy points -nFnu 1.11867m total continuum at selected energy points -nFnu 8329.68A total continuum at selected energy points -nFnu 8078.61A total continuum at selected energy points -nFnu 6209.66A total continuum at selected energy points +nFnu 1.11867m total continuum at selected energy points +nFnu 10000.0A supplemental +nFnu 9800.00A supplemental +nFnu 9600.00A supplemental +nFnu 9400.00A supplemental +nFnu 9200.00A supplemental +nFnu 9000.00A supplemental +nFnu 8800.00A supplemental +nFnu 8600.00A supplemental +nFnu 8400.00A supplemental +nFnu 8329.68A total continuum at selected energy points +nFnu 8300.00A supplemental +nFnu 8250.00A supplemental +nFnu 8210.00A supplemental +nFnu 8200.00A supplemental +nFnu 8150.00A supplemental +nFnu 8078.61A total continuum at selected energy points +nFnu 7800.00A supplemental +nFnu 7600.00A supplemental +nFnu 7400.00A supplemental +nFnu 7200.00A supplemental +nFnu 7000.00A supplemental +nFnu 6800.00A supplemental +nFnu 6600.00A supplemental +nFnu 6400.00A supplemental +nFnu 6209.66A total continuum at selected energy points +nFnu 6000.00A supplemental +nFnu 5800.00A supplemental +nFnu 5600.00A supplemental +nFnu 5400.00A supplemental +nFnu 5200.00A supplemental +nFnu 5000.00A supplemental nFnu 4885.36A total continuum at selected energy points -nFnu 3704.34A total continuum at selected energy points +nFnu 4800.00A supplemental +nFnu 4600.00A supplemental +nFnu 4400.00A supplemental +nFnu 4200.00A supplemental +nFnu 4000.00A supplemental +nFnu 3800.00A supplemental +nFnu 3704.34A total continuum at selected energy points +nFnu 3648.00A supplemental +nFnu 3644.00A supplemental nFnu 3587.67A total continuum at selected energy points +nFnu 3500.00A supplemental +nFnu 3400.00A supplemental +nFnu 3300.00A supplemental +nFnu 3200.00A supplemental +nFnu 3100.00A supplemental +nFnu 3000.00A supplemental +nFnu 2900.00A supplemental +nFnu 2800.00A supplemental +nFnu 2700.00A supplemental +nFnu 2600.00A supplemental +nFnu 2500.00A supplemental nFnu 2430.05A total continuum at selected energy points -nFnu 2392.03A total continuum at selected energy points +nFnu 2392.03A total continuum at selected energy points +nFnu 2200.00A supplemental +nFnu 2100.00A supplemental nFnu 2071.34A total continuum at selected energy points -nFnu 2052.68A total continuum at selected energy points -nFnu 1793.44A total continuum at selected energy points -nFnu 1585.12A total continuum at selected energy points -nFnu 1458.33A total continuum at selected energy points -nFnu 1356.96A total continuum at selected energy points +nFnu 2052.68A total continuum at selected energy points +nFnu 1900.00A supplemental +nFnu 1793.44A total continuum at selected energy points +nFnu 1700.00A supplemental +nFnu 1650.00A supplemental +nFnu 1585.12A total continuum at selected energy points +nFnu 1500.00A supplemental +nFnu 1458.33A total continuum at selected energy points +nFnu 1400.00A supplemental +nFnu 1356.96A total continuum at selected energy points +nFnu 1324.00A supplemental nFnu 1297.29A total continuum at selected energy points nFnu 1262.79A total continuum at selected energy points +nFnu 1240.00A supplemental nFnu 1218.08A total continuum at selected energy points nFnu 1196.33A total continuum at selected energy points nFnu 1175.06A total continuum at selected energy points @@ -431,273 +488,22 @@ nFnu 1103.23A total continuum at selected energy points nFnu 1073.86A total continuum at selected energy points nFnu 1064.34A total continuum at selected energy points nFnu 1035.92A total continuum at selected energy points -nFnu 1000.00A total continuum at selected energy points +nFnu 1000.00A total continuum at selected energy points +nFnu 950.000A supplemental nFnu 925.144A total continuum at selected energy points -nFnu 897.800A total continuum at selected energy points +nFnu 913.000A supplemental +nFnu 897.800A total continuum at selected energy points +nFnu 875.000A supplemental +nFnu 850.000A supplemental +nFnu 800.000A supplemental nFnu 760.023A total continuum at selected energy points nFnu 701.514A total continuum at selected energy points +nFnu 650.000A supplemental nFnu 608.160A total continuum at selected energy points nFnu 575.146A total continuum at selected energy points nFnu 511.948A total continuum at selected energy points -nFnu 496.874A total continuum at selected energy points +nFnu 496.874A total continuum at selected energy points +nFnu 450.000A supplemental nFnu 399.153A total continuum at selected energy points -# additional bins -nFnu 800.000A total continuum at selected energy points -nFnu 840.000A total continuum at selected energy points -nFnu 850.000A total continuum at selected energy points -nFnu 880.000A total continuum at selected energy points -nFnu 900.000A total continuum at selected energy points -nFnu 910.000A total continuum at selected energy points -nFnu 913.000A total continuum at selected energy points -nFnu 950.000A total continuum at selected energy points -nFnu 960.000A total continuum at selected energy points -nFnu 1050.00A total continuum at selected energy points -nFnu 1100.00A total continuum at selected energy points -nFnu 1150.00A total continuum at selected energy points -nFnu 1200.00A total continuum at selected energy points -nFnu 1240.00A total continuum at selected energy points -nFnu 1250.00A total continuum at selected energy points -nFnu 1300.00A total continuum at selected energy points -nFnu 1324.00A total continuum at selected energy points -nFnu 1350.00A total continuum at selected energy points -nFnu 1400.00A total continuum at selected energy points -nFnu 1410.00A total continuum at selected energy points -nFnu 1450.00A total continuum at selected energy points -nFnu 1500.00A total continuum at selected energy points -nFnu 1550.00A total continuum at selected energy points -nFnu 1600.00A total continuum at selected energy points -nFnu 1650.00A total continuum at selected energy points -nFnu 1700.00A total continuum at selected energy points -nFnu 1750.00A total continuum at selected energy points -nFnu 1800.00A total continuum at selected energy points -nFnu 1850.00A total continuum at selected energy points -nFnu 1900.00A total continuum at selected energy points -nFnu 1950.00A total continuum at selected energy points -nFnu 2000.00A total continuum at selected energy points -nFnu 2050.00A total continuum at selected energy points -nFnu 2100.00A total continuum at selected energy points -nFnu 2150.00A total continuum at selected energy points -nFnu 2200.00A total continuum at selected energy points -nFnu 2250.00A total continuum at selected energy points -nFnu 2300.00A total continuum at selected energy points -nFnu 2350.00A total continuum at selected energy points -nFnu 2400.00A total continuum at selected energy points -nFnu 2450.00A total continuum at selected energy points -nFnu 2500.00A total continuum at selected energy points -nFnu 2550.00A total continuum at selected energy points -nFnu 2600.00A total continuum at selected energy points -nFnu 2650.00A total continuum at selected energy points -nFnu 2700.00A total continuum at selected energy points -nFnu 2750.00A total continuum at selected energy points -nFnu 2800.00A total continuum at selected energy points -nFnu 2850.00A total continuum at selected energy points -nFnu 2900.00A total continuum at selected energy points -nFnu 2950.00A total continuum at selected energy points -nFnu 3000.00A total continuum at selected energy points -nFnu 3050.00A total continuum at selected energy points -nFnu 3100.00A total continuum at selected energy points -nFnu 3150.00A total continuum at selected energy points -nFnu 3200.00A total continuum at selected energy points -nFnu 3250.00A total continuum at selected energy points -nFnu 3300.00A total continuum at selected energy points -nFnu 3350.00A total continuum at selected energy points -nFnu 3400.00A total continuum at selected energy points -nFnu 3450.00A total continuum at selected energy points -nFnu 3500.00A total continuum at selected energy points -nFnu 3550.00A total continuum at selected energy points -nFnu 3600.00A total continuum at selected energy points -nFnu 3644.00A total continuum at selected energy points -nFnu 3645.00A total continuum at selected energy points -nFnu 3648.00A total continuum at selected energy points -nFnu 3650.00A total continuum at selected energy points -nFnu 3700.00A total continuum at selected energy points -nFnu 3750.00A total continuum at selected energy points -nFnu 3800.00A total continuum at selected energy points -nFnu 3850.00A total continuum at selected energy points -nFnu 3900.00A total continuum at selected energy points -nFnu 3950.00A total continuum at selected energy points -nFnu 4000.00A total continuum at selected energy points -nFnu 4050.00A total continuum at selected energy points -nFnu 4100.00A total continuum at selected energy points -nFnu 4150.00A total continuum at selected energy points -nFnu 4200.00A total continuum at selected energy points -nFnu 4250.00A total continuum at selected energy points -nFnu 4300.00A total continuum at selected energy points -nFnu 4350.00A total continuum at selected energy points -nFnu 4400.00A total continuum at selected energy points -nFnu 4450.00A total continuum at selected energy points -nFnu 4500.00A total continuum at selected energy points -nFnu 4550.00A total continuum at selected energy points -nFnu 4600.00A total continuum at selected energy points -nFnu 4650.00A total continuum at selected energy points -nFnu 4700.00A total continuum at selected energy points -nFnu 4750.00A total continuum at selected energy points -nFnu 4800.00A total continuum at selected energy points -nFnu 4850.00A total continuum at selected energy points -nFnu 4900.00A total continuum at selected energy points -nFnu 4950.00A total continuum at selected energy points -nFnu 5000.00A total continuum at selected energy points -nFnu 5050.00A total continuum at selected energy points -nFnu 5100.00A total continuum at selected energy points -nFnu 5150.00A total continuum at selected energy points -nFnu 5200.00A total continuum at selected energy points -nFnu 5250.00A total continuum at selected energy points -nFnu 5300.00A total continuum at selected energy points -nFnu 5350.00A total continuum at selected energy points -nFnu 5400.00A total continuum at selected energy points -nFnu 5450.00A total continuum at selected energy points -nFnu 5500.00A total continuum at selected energy points -nFnu 5550.00A total continuum at selected energy points -nFnu 5600.00A total continuum at selected energy points -nFnu 5650.00A total continuum at selected energy points -nFnu 5700.00A total continuum at selected energy points -nFnu 5750.00A total continuum at selected energy points -nFnu 5800.00A total continuum at selected energy points -nFnu 5850.00A total continuum at selected energy points -nFnu 5900.00A total continuum at selected energy points -nFnu 5950.00A total continuum at selected energy points -nFnu 6000.00A total continuum at selected energy points -nFnu 6050.00A total continuum at selected energy points -nFnu 6100.00A total continuum at selected energy points -nFnu 6150.00A total continuum at selected energy points -nFnu 6200.00A total continuum at selected energy points -nFnu 6250.00A total continuum at selected energy points -nFnu 6300.00A total continuum at selected energy points -nFnu 6350.00A total continuum at selected energy points -nFnu 6400.00A total continuum at selected energy points -nFnu 6450.00A total continuum at selected energy points -nFnu 6500.00A total continuum at selected energy points -nFnu 6550.00A total continuum at selected energy points -nFnu 6600.00A total continuum at selected energy points -nFnu 6650.00A total continuum at selected energy points -nFnu 6700.00A total continuum at selected energy points -nFnu 6750.00A total continuum at selected energy points -nFnu 6800.00A total continuum at selected energy points -nFnu 6850.00A total continuum at selected energy points -nFnu 6900.00A total continuum at selected energy points -nFnu 6950.00A total continuum at selected energy points -nFnu 7000.00A total continuum at selected energy points -nFnu 7050.00A total continuum at selected energy points -nFnu 7100.00A total continuum at selected energy points -nFnu 7150.00A total continuum at selected energy points -nFnu 7200.00A total continuum at selected energy points -nFnu 7250.00A total continuum at selected energy points -nFnu 7300.00A total continuum at selected energy points -nFnu 7350.00A total continuum at selected energy points -nFnu 7400.00A total continuum at selected energy points -nFnu 7450.00A total continuum at selected energy points -nFnu 7500.00A total continuum at selected energy points -nFnu 7550.00A total continuum at selected energy points -nFnu 7600.00A total continuum at selected energy points -nFnu 7650.00A total continuum at selected energy points -nFnu 7700.00A total continuum at selected energy points -nFnu 7750.00A total continuum at selected energy points -nFnu 7800.00A total continuum at selected energy points -nFnu 7850.00A total continuum at selected energy points -nFnu 7900.00A total continuum at selected energy points -nFnu 7950.00A total continuum at selected energy points -nFnu 8000.00A total continuum at selected energy points -nFnu 8050.00A total continuum at selected energy points -nFnu 8100.00A total continuum at selected energy points -nFnu 8150.00A total continuum at selected energy points -nFnu 8200.00A total continuum at selected energy points -nFnu 8204.00A total continuum at selected energy points -nFnu 8205.00A total continuum at selected energy points -nFnu 8207.00A total continuum at selected energy points -nFnu 8210.00A total continuum at selected energy points -nFnu 8250.00A total continuum at selected energy points -nFnu 8300.00A total continuum at selected energy points -nFnu 8350.00A total continuum at selected energy points -nFnu 8400.00A total continuum at selected energy points -nFnu 8450.00A total continuum at selected energy points -nFnu 8500.00A total continuum at selected energy points -nFnu 8550.00A total continuum at selected energy points -nFnu 8600.00A total continuum at selected energy points -nFnu 8650.00A total continuum at selected energy points -nFnu 8700.00A total continuum at selected energy points -nFnu 8750.00A total continuum at selected energy points -nFnu 8800.00A total continuum at selected energy points -nFnu 8850.00A total continuum at selected energy points -nFnu 8900.00A total continuum at selected energy points -nFnu 8950.00A total continuum at selected energy points -nFnu 9000.00A total continuum at selected energy points -nFnu 9050.00A total continuum at selected energy points -nFnu 9100.00A total continuum at selected energy points -nFnu 9150.00A total continuum at selected energy points -nFnu 9200.00A total continuum at selected energy points -nFnu 9250.00A total continuum at selected energy points -nFnu 9300.00A total continuum at selected energy points -nFnu 9350.00A total continuum at selected energy points -nFnu 9400.00A total continuum at selected energy points -nFnu 9450.00A total continuum at selected energy points -nFnu 9500.00A total continuum at selected energy points -nFnu 9550.00A total continuum at selected energy points -nFnu 9600.00A total continuum at selected energy points -nFnu 9650.00A total continuum at selected energy points -nFnu 9700.00A total continuum at selected energy points -nFnu 9750.00A total continuum at selected energy points -nFnu 9800.00A total continuum at selected energy points -nFnu 9850.00A total continuum at selected energy points -nFnu 9900.00A total continuum at selected energy points -nFnu 9950.00A total continuum at selected energy points -nFnu 10000.0A total continuum at selected energy points -nFnu 1.00500m total continuum at selected energy points -nFnu 1.01000m total continuum at selected energy points -nFnu 1.01500m total continuum at selected energy points -nFnu 1.02000m total continuum at selected energy points -nFnu 1.02500m total continuum at selected energy points -nFnu 1.03000m total continuum at selected energy points -nFnu 1.03500m total continuum at selected energy points -nFnu 1.04000m total continuum at selected energy points -nFnu 1.04500m total continuum at selected energy points -nFnu 1.05000m total continuum at selected energy points -nFnu 1.05500m total continuum at selected energy points -nFnu 1.06000m total continuum at selected energy points -nFnu 1.06500m total continuum at selected energy points -nFnu 1.07000m total continuum at selected energy points -nFnu 1.07500m total continuum at selected energy points -nFnu 1.08000m total continuum at selected energy points -nFnu 1.08500m total continuum at selected energy points -nFnu 1.09000m total continuum at selected energy points -nFnu 1.09500m total continuum at selected energy points -nFnu 1.10000m total continuum at selected energy points -nFnu 1.10500m total continuum at selected energy points -nFnu 1.11000m total continuum at selected energy points -nFnu 1.11500m total continuum at selected energy points -nFnu 1.12000m total continuum at selected energy points -nFnu 1.12500m total continuum at selected energy points -nFnu 1.13000m total continuum at selected energy points -nFnu 1.13500m total continuum at selected energy points -nFnu 1.14000m total continuum at selected energy points -nFnu 1.14500m total continuum at selected energy points -nFnu 1.15000m total continuum at selected energy points -nFnu 1.15500m total continuum at selected energy points -nFnu 1.16000m total continuum at selected energy points -nFnu 1.16500m total continuum at selected energy points -nFnu 1.17000m total continuum at selected energy points -nFnu 1.17500m total continuum at selected energy points -nFnu 1.18000m total continuum at selected energy points -nFnu 1.18500m total continuum at selected energy points -nFnu 1.19000m total continuum at selected energy points -nFnu 1.19500m total continuum at selected energy points -nFnu 1.20000m total continuum at selected energy points -nFnu 1.20500m total continuum at selected energy points -nFnu 1.21000m total continuum at selected energy points -nFnu 1.21500m total continuum at selected energy points -nFnu 1.22000m total continuum at selected energy points -nFnu 1.22500m total continuum at selected energy points -nFnu 1.23000m total continuum at selected energy points -nFnu 1.23500m total continuum at selected energy points -nFnu 1.24000m total continuum at selected energy points -nFnu 1.24500m total continuum at selected energy points -nFnu 1.25000m total continuum at selected energy points -nFnu 1.25500m total continuum at selected energy points -nFnu 1.26000m total continuum at selected energy points -nFnu 1.26500m total continuum at selected energy points -nFnu 1.27000m total continuum at selected energy points -nFnu 1.27500m total continuum at selected energy points -nFnu 1.28000m total continuum at selected energy points -nFnu 1.28500m total continuum at selected energy points -nFnu 1.29000m total continuum at selected energy points -nFnu 1.29500m total continuum at selected energy points -nFnu 1.30000m total continuum at selected energy points \ No newline at end of file +# 125 nFnu continuum wavelength bins +# end of line list \ No newline at end of file diff --git a/src/agn.hpp b/src/agn.hpp index 3c47fb2..6881a38 100644 --- a/src/agn.hpp +++ b/src/agn.hpp @@ -17,7 +17,7 @@ namespace agn { -const bool debug = true; +const bool debug = false; const bool line_debug = false; // General constants @@ -28,6 +28,34 @@ const double RYDBERG_CONST=1.0973731568539e7; // in 1 / m const double RYDBERG_UNIT_EV=13.60569252; // in eV const double RYDBERG_UNIT_ANGSTROM=1e10/RYDBERG_CONST; // in A +// line label header lengths based on cloudy version +// For cloudy 17, the characters reserved for the output quantities: +// Label: 0-9 +// Wavelength: 10-20 +// radiated energy: 21-26 +// eq width: 27-36 +// Cloudy 13 had: 1,13; 17,5; 22,11; +// c17: 0,18; 18,9; 27, 10 + +// c13 settings +//int labelstr_pos = 1; +//int labelstr_len = 13; +//int radiatedenergystr_pos = 14; +//int radiatedenergystr_len = 8; +//int eqwidthstr_pos = 22; +//int eqwidthstr_len = 9; + +// c17 settings +int LABELSTR_POS = 0; +int LABELSTR_LEN = 18; +int RADIATEDENERGYSTR_POS = 18; +int RADIATEDENERGYSTR_LEN = 9; +int EQWIDTHSTR_POS = 27; +int EQWIDTHSTR_LEN = 10; + +// Trims whitespace from line labels +std::string label_trim(std::string); + // Some useful containers and functions. typedef std::map table1d; typedef table1d::iterator iterator1d; @@ -57,6 +85,7 @@ struct cloudy_result { std::list cautions; cloudy_line_output emergent_line_intensity; cloudy_line_output intrinsic_line_intensity; + cloudy_line_output intrinsic_line_inward_intensity; int iterations; double phi,hden,colden; cloudy_result(): @@ -117,7 +146,26 @@ std::ostream& operator<< (std::ostream&, cloudy_result); // Definitions - +std::string agn::label_trim(std::string label) { + std::stringstream newlabel; + newlabel + << label[0] + << label[1] + << label[2] + << label[3] + << " " + << label[agn::LABELSTR_LEN-8] + << label[agn::LABELSTR_LEN-7] + << label[agn::LABELSTR_LEN-6] + << label[agn::LABELSTR_LEN-5] + << label[agn::LABELSTR_LEN-4] + << label[agn::LABELSTR_LEN-3] + << label[agn::LABELSTR_LEN-2] + << label[agn::LABELSTR_LEN-1]; + for (int i=agn::LABELSTR_LEN; i::iterator linetext_it=point.intrinsic_line_raw_text.begin(); std::list duplicate_labels; int index=0; + std::string label; // For cloudy 17, the characters reserved for the output quantities: // Label: 0-9 // Wavelength: 10-20 @@ -328,7 +377,48 @@ agn::cloudy_grid agn::read_cloudy_grid(std::ifstream& inputfile) { int eqwidthstr_len = 10; while(linetext_it != point.intrinsic_line_raw_text.end()) { - std::string label=(*linetext_it).substr( + // This section is also only written for the "final case" as alerted below + if ((*linetext_it).substr(labelstr_pos,4) == "Inwd") { + agn::cloudy_line_data inwddata; + inwddata.index = ++index; + inwddata.radiated_energy = atof((*linetext_it).substr( + radiatedenergystr_pos, + radiatedenergystr_len).c_str() + ); + inwddata.eq_width = atof((*linetext_it).substr( + eqwidthstr_pos, + eqwidthstr_len).c_str() + ); + if(line_debug) { + std::cout + << std::setprecision(5) + << "Inwd " + << (*linetext_it).substr(5) + << ": " + << label + << "; " + << inwddata.radiated_energy + << " from " + << (*linetext_it).substr( + radiatedenergystr_pos, + radiatedenergystr_len).c_str() + << "; " + << inwddata.eq_width + << " from " + << (*linetext_it).substr( + eqwidthstr_pos, + eqwidthstr_len).c_str() + << "\n"; + } + point.intrinsic_line_inward_intensity[label] = inwddata; + linetext_it++; + continue; + } + + + + + label=(*linetext_it).substr( labelstr_pos, labelstr_len ); @@ -345,23 +435,23 @@ agn::cloudy_grid agn::read_cloudy_grid(std::ifstream& inputfile) { ); if(line_debug) { std::cout - << std::setprecision(5) - << *linetext_it - << ": " - << label - << "; " - << data.radiated_energy - << " from " - << (*linetext_it).substr( - radiatedenergystr_pos, - radiatedenergystr_len).c_str() - << "; " - << data.eq_width - << " from " - << (*linetext_it).substr( - eqwidthstr_pos, - eqwidthstr_len).c_str() - << "\n"; + << std::setprecision(5) + << *linetext_it + << ": " + << label + << "; " + << data.radiated_energy + << " from " + << (*linetext_it).substr( + radiatedenergystr_pos, + radiatedenergystr_len).c_str() + << "; " + << data.eq_width + << " from " + << (*linetext_it).substr( + eqwidthstr_pos, + eqwidthstr_len).c_str() + << "\n"; } if(point.intrinsic_line_intensity.count(label) == 0) { data.has_duplicates = false; diff --git a/src/create_fort_files.cpp b/src/create_fort_files.cpp index 4154a21..76f6fcd 100644 --- a/src/create_fort_files.cpp +++ b/src/create_fort_files.cpp @@ -38,25 +38,26 @@ int main(int argc, char const *argv[]) { while(table_it != tables.end()) { if(agn::is_zero(*table_it)) { std::string linetype = table_it->header[0].substr(0,4); - if (linetype == "nFnu" || - linetype == "nInu" || - linetype == "InwT" || - linetype == "InwC") { - table_it++; - continue; - } + //if (linetype == "nFnu" || + // linetype == "nInu" || + // linetype == "InwT" || + // linetype == "InwC") { + // table_it++; + // continue; + //} zeroreport << " " << table_it->header[0] << std::endl; num_zeroes++; - table_it = tables.erase(table_it); + //table_it = tables.erase(table_it); + table_it++; // needed since the erase() would have incremented continue; } table_it++; } - std::cout << "Removed " + std::cout << "Removed (currently disabled) " << num_zeroes << " tables from the list because" << " they had zero value." diff --git a/src/spectral_lines.hpp b/src/spectral_lines.hpp index b17f879..5e0184b 100644 --- a/src/spectral_lines.hpp +++ b/src/spectral_lines.hpp @@ -16,6 +16,9 @@ const double RATIO_THRESHOLD_MULTIPLIER = .06; typedef std::list line_list; line_list read_line_list(std::ifstream&); +// Trims whitespace from line labels +std::string label_trim(std::string); + // Emission line flux contours are represented by a singly-nested sorted map. struct eqwidth_table { std::string header[2]; @@ -156,8 +159,9 @@ std::string agn::format_eqwidth_table_slice(agn::eqwidth_table table,agn::iterat } -std::ostream& agn::operator<< (std::ostream& outstream, agn::eqwidth_table table) { - std::string header0_trimmed = table.header[0]; // need to setup a trim function for this +std::ostream& agn::operator<< ( std::ostream& outstream, + agn::eqwidth_table table) { + std::string header0_trimmed = agn::label_trim(table.header[0]); outstream << header0_trimmed << std::endl @@ -197,9 +201,9 @@ agn::line_list agn::read_line_list(std::ifstream& inputfile) { if (line[0] == '#' || line.size() < 2) continue; if (line[0] == ' ' && line[1] == ' ') continue; if (line[0] == ' ') - label = line.substr(1,18); + label = line.substr(1,agn::LABELSTR_LEN); else - label = line.substr(0,18); + label = line.substr(0,agn::LABELSTR_LEN); // above is only good for c17? if(agn::debug) std::cout << "Adding label " @@ -208,13 +212,14 @@ agn::line_list agn::read_line_list(std::ifstream& inputfile) { std::string applabel = label.substr(4); if (label.substr(0,4).compare(std::string("nFnu")) == 0) { list.push_back(std::string("nFnu").append(applabel)); - list.push_back(std::string("nInu").append(applabel)); + //list.push_back(std::string("nInu").append(applabel)); list.push_back(std::string("InwT").append(applabel)); list.push_back(std::string("InwC").append(applabel)); continue; } list.push_back(label); - list.push_back(std::string("Inwd").append(applabel)); + //if (label.substr(0,4) != "Inci" && applabel != " 0 ") + // list.push_back(std::string("Inwd").append(applabel)); } return list; } @@ -228,22 +233,21 @@ std::list agn::compile_eqwidth_tables(agn::cloudy_grid grid, double x,y; agn::cloudy_line_data data; agn::eqwidth_table new_table; + std::string label = *line_label_it; if(agn::debug) std::cout << "Processing label " - << *line_label_it + << label << std::endl; std::stringstream header0; header0 - << *line_label_it - << " relative to Inci 1215.00A scaled to " - << scale_factor; + << label + << " relative to Inci 1215.00A"; new_table.header[0] = header0.str(); - new_table.header[1] = "Hden Phi(H) Eq_Width (A)"; - agn::cloudy_grid::iterator result_it = grid.begin(); - while (result_it != grid.end()) { - x = result_it->first.first; - y = result_it->first.second; - std::string label = *line_label_it; + new_table.header[1] = "Hden Phi(H) Eq_Width (A)"; + agn::cloudy_grid::iterator result_it = grid.begin(); + while (result_it != grid.end()) { + x = result_it->first.first; + y = result_it->first.second; // if no data exist under this label, initialize some: if ( result_it->second.intrinsic_line_intensity.count(label) == 0 ) { data.radiated_energy=-35.0; @@ -271,6 +275,7 @@ std::list agn::compile_eqwidth_tables(agn::cloudy_grid grid, // the functionality is written in the agn.hpp sections, but is not // implemented here, and as of 2017, the agn.hpp function writes the // last-encountered instance of the emission line value to the label + // probably needs to be fixed for the inwd part too } } if ( data.radiated_energy < EQWIDTH_MIN_VAL_LOG || data.eq_width < EQWIDTH_MIN_VAL) { @@ -281,6 +286,70 @@ std::list agn::compile_eqwidth_tables(agn::cloudy_grid grid, result_it++; } table_list_eq_width.push_back(new_table); + // Add inward table for emission lines, and only works for c17 + if (label.substr(agn::LABELSTR_POS,4) != "Inci" && + label.substr(agn::LABELSTR_POS,4) != "FeKa" && + //label.substr(agn::LABELSTR_POS,4) != "Blnd" && + label.substr(agn::LABELSTR_POS,3) != "nFn" && + label.substr(agn::LABELSTR_POS,3) != "Inw" && + label.substr(LABELSTR_LEN - 14) != " 0 ") { + if(agn::debug) std::cout + << "Processing Inwd for label " + << label + << std::endl; + std::stringstream inwdheader0; + agn::eqwidth_table inwd_table; + inwdheader0 + << "Inwd " + << label.substr(5) + << " relative to Inci 1215.00A"; + inwd_table.header[0] = inwdheader0.str(); + inwd_table.header[1] = "Hden Phi(H) Eq_Width (A)"; + result_it = grid.begin(); + agn::cloudy_line_data inwddata; + while (result_it != grid.end()) { + x = result_it->first.first; + y = result_it->first.second; + // if no data exist under this label, initialize some: + if ( result_it->second.intrinsic_line_inward_intensity.count(label) == 0 ) { + inwddata.radiated_energy=-35.0; + inwddata.eq_width=0.0; + } + else { + inwddata = result_it->second.intrinsic_line_inward_intensity[label]; + inwddata.eq_width /= scale_factor; + } + if(agn::line_debug) std::cout + << "Added " + << std::setprecision(2) + << std::fixed + << x + << ", " + << y + << " -- " + << std::scientific + << inwddata.radiated_energy + << ", " + << inwddata.eq_width + << "\n"; + if ( inwddata.has_duplicates ) { + // This needs to be expanded to catch all duplicate values j=1,2,etc. + // For now, just blindly use the value the program finds... + // the functionality is written in the agn.hpp sections, but is not + // implemented here, and as of 2017, the agn.hpp function writes the + // last-encountered instance of the emission line value to the label + // probably needs to be fixed for the inwd part too + } + if ( inwddata.radiated_energy < EQWIDTH_MIN_VAL_LOG || + inwddata.eq_width < EQWIDTH_MIN_VAL) { + inwddata.radiated_energy = EQWIDTH_MIN_VAL_LOG; + inwddata.eq_width = EQWIDTH_MIN_VAL; + } + inwd_table.value[x][y] = inwddata.eq_width; + result_it++; + } + table_list_eq_width.push_back(inwd_table); + } line_label_it++; } return table_list_eq_width;