diff --git a/ToDo.txt b/ToDo.txt index 84dd7f6..02e3183 100644 --- a/ToDo.txt +++ b/ToDo.txt @@ -1,2 +1 @@ -- Include chemical fomula in input file and use it for output files - Increase the number of elements acceptable for each layer, currently up to 5 diff --git a/TrimSPlib.js b/TrimSPlib.js index b787196..62f4206 100644 --- a/TrimSPlib.js +++ b/TrimSPlib.js @@ -1,3 +1,819 @@ +// This is an object that contains all elements and their parameters +// To replace all other functions +const elemPars = { + muon : { + Z : 1 , + A : 0.1134289259 , + rho : 0 , + Elast : 0 , + ICRU : [] , + IAEA : [] + }, + "Li-8" : { + Z : 3 , + A : 8.02248624 , + rho : 0 , + Elast : 0 , + ICRU : [] , + IAEA : [] + }, + "B-12" : { + Z : 5 , + A : 12.0143526 , + rho : 0 , + Elast : 0 , + ICRU : [] , + IAEA : [] + }, + "Mg-31" : { + Z : 12 , + A : 30.996648 , + rho : 0 , + Elast : 0 , + ICRU : [] , + IAEA : [] + }, + H : { + Z : 1 , + A : 1.008 , + rho : 0.08 , + Elast : 0.1 , + ICRU : [1.25400,1.44000,242.60001,12000.00000,0.11590], + IAEA : [1.21941306,1.39705253,316.72610292,3622.08960714,0.03609996] + }, + He : { + Z : 2 , + A : 4.003 , + rho : 0.12 , + Elast : 0.1 , + ICRU : [1.22900,1.39700,484.50000,5873.00000,0.05225] , + IAEA : [] + }, + Li : { + Z : 3 , + A : 6.939 , + rho : 0.53 , + Elast : 1.63 , + ICRU : [1.41100,1.60000,725.59998,3013.00000,0.04578] , + IAEA : [2.55867734,2.98398784,672.22623329,223.63937274,0.05756479] + }, + Be : { + Z : 4 , + A : 9.012 , + rho : 1.85 , + Elast : 3.32 , + ICRU : [2.24800,2.59000,966.00000,153.80000,0.03475] , + IAEA : [2.13846776,2.43024550,1353.80005691,500.78353377,0.01143076] + }, + B : { + Z : 5 , + A : 10.811 , + rho : 2.34 , + Elast : 5.77 , + ICRU : [2.47400,2.81500,1206.00000,1060.00000,0.02855] , + IAEA : [2.92598306,3.33271910,1523.83401267,574.31712932,0.01671298] + }, + C : { + Z : 6 , + A : 12.011 , + rho : 2.26 , + Elast : 7.37 , + ICRU : [2.60100,2.60100,1701.00000,1279.00000,0.01638] , + IAEA : [2.51057212,2.84874359,1325.63086028,2111.57332043,0.03815981] + }, + N : { + Z : 7 , + A : 14.007 , + rho : 1.03 , + Elast : 4.92 , + ICRU : [2.95400,3.35000,1683.00000,1900.00000,0.02513] , + IAEA : [3.03231463,3.44621744,1287.27189959,3445.25706665,0.06909550] + }, + O : { + Z : 8 , + A : 15.999 , + rho : 2 , + Elast : 2.6 , + ICRU : [2.65200,3.00000,1920.00000,2000.00000,0.02230] , + IAEA : [2.58218404,2.91913321,2066.69556610,1937.28839450,0.01708201] + }, + F : { + Z : 9 , + A : 18.998 , + rho : 1.11 , + Elast : 0.84 , + ICRU : [2.08500,2.35200,2157.00000,2634.00000,0.01816] , + IAEA : [] + }, + Ne : { + Z : 10 , + A : 20.183 , + rho : 1.5 , + Elast : 0.02 , + ICRU : [1.95100,2.19900,2393.00000,2699.00000,0.01568] , + IAEA : [] + }, + Na : { + Z : 11 , + A : 22.99 , + rho : 0.97 , + Elast : 1.11 , + ICRU : [2.54200,2.86900,2628.00000,1854.00000,0.01472] , + IAEA : [] + }, + Mg : { + Z : 12 , + A : 24.312 , + rho : 1.74 , + Elast : 1.51 , + ICRU : [3.79100,4.29300,2862.00000,1009.00000,0.01397] , + IAEA : [4.32219620,4.95332934,2711.05757349,99.32422512,0.01692829] + }, + Al : { + Z : 13 , + A : 26.982 , + rho : 2.7 , + Elast : 3.39 , + ICRU : [4.15400,4.73900,2766.00000,164.50000,0.02023] , + IAEA : [4.16266645,4.73942640,3007.21967155,192.15430476,0.01478852] + }, + Si : { + Z : 14 , + A : 28.086 , + rho : 2.33 , + Elast : 4.63 , + ICRU : [4.91400,5.59800,3193.00000,232.70000,0.01419] , + IAEA : [4.56277193,5.17964542,3812.93366288,249.45105835,0.00951865] + }, + P : { + Z : 15 , + A : 30.974 , + rho : 1 , + Elast : 3.43 , + ICRU : [3.23200,3.64700,3561.00000,1560.00000,0.01267] , + IAEA : [] + }, + S : { + Z : 16 , + A : 32.064 , + rho : 2.07 , + Elast : 2.85 , + ICRU : [3.44700,3.89100,3792.00000,1219.00000,0.01211] , + IAEA : [] + }, + Cl : { + Z : 17 , + A : 35.453 , + rho : 2.03 , + Elast : 1.4 , + ICRU : [5.30100,6.00800,3969.00000,645.09998,0.01183] , + IAEA : [5.18954121,5.87010049,5726.20198003,338.90592713,0.00527894] + }, + Ar : { + Z : 18 , + A : 39.948 , + rho : 1.77 , + Elast : 0.08 , + ICRU : [5.73100,6.50000,4253.00000,530.00000,0.01123] , + IAEA : [] + }, + K : { + Z : 19 , + A : 39.102 , + rho : 0.86 , + Elast : 0.93 , + ICRU : [5.15200,5.83300,4482.00000,545.70001,0.01129] , + IAEA : [] + }, + Ca : { + Z : 20 , + A : 40.08 , + rho : 1.55 , + Elast : 1.84 , + ICRU : [5.52100,6.25200,4710.00000,553.29999,0.01120] , + IAEA : [7.38419020,8.41800474,4257.94547049,311.84732092,0.01482602] + }, + Sc : { + Z : 21 , + A : 44.956 , + rho : 2.99 , + Elast : 3.9 , + ICRU : [5.20100,5.88400,4938.00000,560.90002,0.01000] , + IAEA : [6.27366940,7.11486087,5202.32117316,349.64931132,0.00808596] + }, + Ti : { + Z : 22 , + A : 47.9 , + rho : 4.54 , + Elast : 4.85 , + ICRU : [4.85800,5.48900,5260.00000,651.09998,0.00893] , + IAEA : [4.89215322,5.52996090,4733.05002706,821.54929980,0.01141794] + }, + V : { + Z : 23 , + A : 50.942 , + rho : 6.11 , + Elast : 5.31 , + ICRU : [4.47900,5.05500,5391.00000,952.29999,0.00912] , + IAEA : [4.39418898,4.95984106,5216.28902299,873.00768319,0.00982301] + }, + Cr : { + Z : 24 , + A : 51.996 , + rho : 7.19 , + Elast : 4.1 , + ICRU : [3.98300,4.48900,5616.00000,1336.00000,0.00841] , + IAEA : [4.22355616,4.76724205,4805.40719904,1062.25237873,0.01508696] + }, + Mn : { + Z : 25 , + A : 54.938 , + rho : 7.43 , + Elast : 2.92 , + ICRU : [3.46900,3.90700,5725.00000,1461.00000,0.00883] , + IAEA : [3.45870888,3.89580224,5452.18588822,1778.16054656,0.01057380] + }, + Fe : { + Z : 26 , + A : 55.847 , + rho : 7.87 , + Elast : 4.28 , + ICRU : [3.51900,3.96300,6065.00000,1243.00000,0.00778] , + IAEA : [3.69846643,4.16916938,5392.90710239,1040.38447053,0.01152298] + }, + Co : { + Z : 27 , + A : 58.933 , + rho : 8.9 , + Elast : 4.39 , + ICRU : [3.14000,3.53500,6288.00000,1372.00000,0.00736] , + IAEA : [3.55890909,4.00775461,6796.04145497,933.86447935,0.00558368] + }, + Ni : { + Z : 28 , + A : 58.71 , + rho : 8.9 , + Elast : 4.44 , + ICRU : [3.55300,4.00400,6205.00000,555.09998,0.00876] , + IAEA : [3.42262695,3.86234880,4759.65515188,520.18934465,0.02026669] + }, + Cu : { + Z : 29 , + A : 63.54 , + rho : 8.96 , + Elast : 3.49 , + ICRU : [3.69600,4.19400,4649.00000,81.13000,0.02242] , + IAEA : [3.54912421,4.02142201,4344.22605325,128.32905834,0.02886218] + }, + Zn : { + Z : 30 , + A : 65.37 , + rho : 7.13 , + Elast : 1.35 , + ICRU : [4.21000,4.75000,6953.00000,295.20001,0.00681] , + IAEA : [4.31895518,4.91763977,5346.03925560,46.16548699,0.01518164] + }, + Ga : { + Z : 31 , + A : 69.72 , + rho : 5.91 , + Elast : 2.81 , + ICRU : [5.04100,5.69700,7137.00000,202.60001,0.00673] , + IAEA : [4.11015447,4.63998531,7681.41419449,149.38563152,0.00628772] + }, + Ge : { + Z : 32 , + A : 72.59 , + rho : 5.32 , + Elast : 3.85 , + ICRU : [5.55400,6.30000,6496.00000,110.00000,0.00969] , + IAEA : [5.80984815,6.60667983,6039.04808738,87.19744473,0.01158192] + }, + As : { + Z : 33 , + A : 74.922 , + rho : 5.72 , + Elast : 2.96 , + ICRU : [5.32300,6.01200,7611.00000,292.50000,0.00645] , + IAEA : [] + }, + Se : { + Z : 34 , + A : 78.96 , + rho : 4.79 , + Elast : 2.25 , + ICRU : [5.87400,6.65600,7395.00000,117.50000,0.00768] , + IAEA : [5.58734301,6.31119973,8423.01872583,221.61559131,0.00530434] + }, + Br : { + Z : 35 , + A : 79.909 , + rho : 3.14 , + Elast : 1.22 , + ICRU : [6.65800,7.53600,7694.00000,222.30000,0.00651] , + IAEA : [6.28480648,7.09489448,11732.76411988,150.96205589,0.00281298] + }, + Kr : { + Z : 36 , + A : 83.8 , + rho : 3.1 , + Elast : 0.12 , + ICRU : [6.41300,7.24000,11850.00000,153.70000,0.00288] , + IAEA : [6.47378266,7.31581518,9199.06183849,216.98680923,0.00437111] + }, + Rb : { + Z : 37 , + A : 85.47 , + rho : 1.53 , + Elast : 0.85 , + ICRU : [5.69400,6.42900,8478.00000,292.89999,0.00609] , + IAEA : [8.48759187,9.62951209,7271.11124671,272.67996745,0.00818815] + }, + Sr : { + Z : 38 , + A : 87.62 , + rho : 2.54 , + Elast : 1.72 , + ICRU : [6.33900,7.15900,8693.00000,330.29999,0.00600] , + IAEA : [8.66447838,9.84912713,5979.31960977,334.15705556,0.01184544] + }, + Y : { + Z : 39 , + A : 88.905 , + rho : 4.47 , + Elast : 4.37 , + ICRU : [6.40700,7.23400,8907.00000,367.79999,0.00589] , + IAEA : [7.54854264,8.54789357,6885.34110669,429.53252110,0.00930644] + }, + Zr : { + Z : 40 , + A : 91.22 , + rho : 6.51 , + Elast : 6.25 , + ICRU : [6.73400,7.60300,9120.00000,405.20001,0.00576] , + IAEA : [6.24168401,7.04236496,10674.06252597,269.66181445,0.00339805] + }, + Nb : { + Z : 41 , + A : 92.906 , + rho : 8.57 , + Elast : 7.57 , + ICRU : [6.90100,7.79100,9333.00000,442.70001,0.00559] , + IAEA : [5.96194954,6.72632300,10250.57513827,275.25886405,0.00386599] + }, + Mo : { + Z : 42 , + A : 95.94 , + rho : 10.22 , + Elast : 6.82 , + ICRU : [6.42400,7.24800,9545.00000,480.20001,0.00538] , + IAEA : [5.58867862,6.29983727,9573.16605660,523.57577519,0.00473082] + }, + Tc : { + Z : 43 , + A : 98 , + rho : 11.5 , + Elast : 6.85 , + ICRU : [6.79900,7.67100,9756.00000,517.59998,0.00532] , + IAEA : [] + }, + Ru : { + Z : 44 , + A : 101.07 , + rho : 12.37 , + Elast : 6.74 , + ICRU : [6.10900,6.88700,9966.00000,555.09998,0.00515] , + IAEA : [] + }, + Rh : { + Z : 45 , + A : 102.905 , + rho : 12.41 , + Elast : 5.75 , + ICRU : [5.92400,6.67700,10180.00000,592.50000,0.00492] , + IAEA : [] + }, + Pd : { + Z : 46 , + A : 106.4 , + rho : 12.02 , + Elast : 3.89 , + ICRU : [5.23800,5.90000,10380.00000,630.00000,0.00476] , + IAEA : [4.74762031,5.34871025,8086.17802763,942.05721488,0.00842671] + }, + Ag : { + Z : 47 , + A : 107.87 , + rho : 10.5 , + Elast : 2.95 , + ICRU : [5.34500,6.03800,6790.00000,397.79999,0.01676] , + IAEA : [5.42052240,6.17824432,4642.18214950,90.75350922,0.06061521] + }, + Cd : { + Z : 48 , + A : 112.4 , + rho : 8.65 , + Elast : 1.16 , + ICRU : [5.81400,6.55400,10800.00000,355.50000,0.00463] , + IAEA : [4.89128643,5.50754704,11831.77188508,396.06905848,0.00412049] + }, + In : { + Z : 49 , + A : 114.82 , + rho : 7.31 , + Elast : 2.52 , + ICRU : [6.22900,7.02400,11010.00000,370.89999,0.00454] , + IAEA : [5.98978289,6.77050040,6343.54720062,564.65410792,0.02270520] + }, + Sn : { + Z : 50 , + A : 118.69 , + rho : 7.31 , + Elast : 3.14 , + ICRU : [6.40900,7.22700,11210.00000,386.39999,0.00447] , + IAEA : [6.73191335,7.61854414,6946.18830598,347.19391310,0.01677246] + }, + Sb : { + Z : 51 , + A : 121.75 , + rho : 6.68 , + Elast : 2.75 , + ICRU : [7.50000,8.48000,8608.00000,348.00000,0.00907] , + IAEA : [7.92400389,8.99628409,5736.29881090,403.11722206,0.02973016] + }, + Te : { + Z : 52 , + A : 127.6 , + rho : 6.24 , + Elast : 2.23 , + ICRU : [6.97900,7.87100,11620.00000,392.39999,0.00440] , + IAEA : [] + }, + I : { + Z : 53 , + A : 126.904 , + rho : 4.93 , + Elast : 1.11 , + ICRU : [7.72500,8.71600,11830.00000,394.79999,0.00438] , + IAEA : [] + }, + Xe : { + Z : 54 , + A : 131.3 , + rho : 3.8 , + Elast : 0.16 , + ICRU : [8.33700,9.42500,10510.00000,269.60001,0.00621] , + IAEA : [8.96826400,10.16224223,8543.27304860,283.90067433,0.01019984] + }, + Cs : { + Z : 55 , + A : 132.905 , + rho : 1.9 , + Elast : 0.8 , + ICRU : [7.28700,8.21800,12230.00000,399.70001,0.00445] , + IAEA : [] + }, + Ba : { + Z : 56 , + A : 137.34 , + rho : 3.59 , + Elast : 1.9 , + ICRU : [7.89900,8.91100,12430.00000,402.10001,0.00451] , + IAEA : [] + }, + La : { + Z : 57 , + A : 138.91 , + rho : 6.15 , + Elast : 4.47 , + ICRU : [8.04100,9.07100,12630.00000,404.50000,0.00454] , + IAEA : [8.16949326,9.21144395,13933.96869212,429.99442382,0.00347440] + }, + Ce : { + Z : 58 , + A : 140.12 , + rho : 6.77 , + Elast : 4.32 , + ICRU : [7.48800,8.44400,12830.00000,406.89999,0.00442] , + IAEA : [] + }, + Pr : { + Z : 59 , + A : 140.907 , + rho : 6.77 , + Elast : 3.7 , + ICRU : [7.29100,8.21900,13030.00000,409.29999,0.00430] , + IAEA : [] + }, + Nd : { + Z : 60 , + A : 144.24001 , + rho : 7.01 , + Elast : 3.4 , + ICRU : [7.09800,8.00000,13230.00000,411.79999,0.00418] , + IAEA : [8.60801371,10.26060598,6798.65217629,7.06731816,0.02713704] + }, + Pm : { + Z : 61 , + A : 147 , + rho : 7.22 , + Elast : 0.1 , + ICRU : [6.90900,7.78600,13430.00000,414.20001,0.00406] , + IAEA : [] + }, + Sm : { + Z : 62 , + A : 150.35001 , + rho : 7.52 , + Elast : 2.14 , + ICRU : [6.72800,7.58000,13620.00000,416.60001,0.00398] , + IAEA : [] + }, + Eu : { + Z : 63 , + A : 151.96001 , + rho : 5.24 , + Elast : 1.86 , + ICRU : [6.55100,7.38000,13820.00000,419.00000,0.00388] , + IAEA : [] + }, + Gd : { + Z : 64 , + A : 157.25 , + rho : 7.9 , + Elast : 4.14 , + ICRU : [6.73900,7.59200,14020.00000,421.39999,0.00386] , + IAEA : [8.38379061,9.50012183,10804.38767518,110.71066098,0.00761735] + }, + Tb : { + Z : 65 , + A : 158.924 , + rho : 8.23 , + Elast : 4.05 , + ICRU : [6.21200,6.99600,14210.00000,423.89999,0.00372] , + IAEA : [8.69907359,10.36476708,5985.09307671,7.76175759,0.04237031] + }, + Dy : { + Z : 66 , + A : 162.5 , + rho : 8.55 , + Elast : 3.04 , + ICRU : [5.51700,6.21000,14400.00000,426.29999,0.00363] , + IAEA : [6.69350026,7.81543484,5289.65107666,12.11560717,0.05746489] + }, + Ho : { + Z : 67 , + A : 164.92999 , + rho : 8.8 , + Elast : 3.14 , + ICRU : [5.22000,5.87400,14600.00000,428.70001,0.00350] , + IAEA : [] + }, + Er : { + Z : 68 , + A : 167.25999 , + rho : 9.07 , + Elast : 3.29 , + ICRU : [5.07100,5.70600,14790.00000,433.00000,0.00341] , + IAEA : [4.31497049,4.85346547,12995.54504003,691.00380321,0.00499022] + }, + Tm : { + Z : 69 , + A : 168.93401 , + rho : 9.32 , + Elast : 2.42 , + ICRU : [4.92600,5.54200,14980.00000,433.50000,0.00334] , + IAEA : [] + }, + Yb : { + Z : 70 , + A : 173.03999 , + rho : 6.9 , + Elast : 1.6 , + ICRU : [4.78800,5.38600,15170.00000,435.89999,0.00329] , + IAEA : [6.38304258,7.21491284,12327.74719685,82.30064162,0.00516845] + }, + Lu : { + Z : 71 , + A : 174.97 , + rho : 9.84 , + Elast : 4.43 , + ICRU : [4.89300,5.50500,15360.00000,438.29999,0.00324] , + IAEA : [7.00205766,8.09268611,4589.67801229,31.06321362,0.11142124] + }, + Hf : { + Z : 72 , + A : 178.49001 , + rho : 13.31 , + Elast : 6.44 , + ICRU : [5.02800,5.65700,15550.00000,440.79999,0.00320] , + IAEA : [5.32763157,6.00140558,13853.49562768,206.93150053,0.00411522] + }, + Ta : { + Z : 73 , + A : 180.948 , + rho : 16.65 , + Elast : 8.1 , + ICRU : [4.73800,5.32900,15740.00000,443.20001,0.00319] , + IAEA : [5.15280708,5.80545310,12417.25115167,231.48549646,0.00530723] + }, + W : { + Z : 74 , + A : 183.85001 , + rho : 19.35 , + Elast : 8.9 , + ICRU : [4.58700,5.16000,15410.00000,415.29999,0.00341] , + IAEA : [4.81261962,5.41579909,15245.84079976,286.09077182,0.00344862] + }, + Re : { + Z : 75 , + A : 186.2 , + rho : 21.04 , + Elast : 8.03 , + ICRU : [5.20100,5.85100,16120.00000,441.60001,0.00312] , + IAEA : [4.26021967,4.80273372,3191.05524918,76051.48730893,0.00003161] + }, + Os : { + Z : 76 , + A : 190.2 , + rho : 22.6 , + Elast : 8.17 , + ICRU : [5.07100,5.70400,16300.00000,440.89999,0.00308] , + IAEA : [] + }, + Ir : { + Z : 77 , + A : 192.2 , + rho : 22.4 , + Elast : 6.94 , + ICRU : [4.94600,5.56300,16490.00000,440.10001,0.00296] , + IAEA : [4.16543126,4.68849191,6887.94139926,4263.90641919,0.00000004] + }, + Pt : { + Z : 78 , + A : 195.09 , + rho : 21.45 , + Elast : 5.84 , + ICRU : [4.47700,5.03400,16670.00000,439.29999,0.00287] , + IAEA : [4.62228847,5.20033612,16308.49878855,266.02263275,0.00309560] + }, + Au : { + Z : 79 , + A : 196.967 , + rho : 19.32 , + Elast : 3.81 , + ICRU : [4.84400,5.45800,7852.00000,975.79999,0.02077] , + IAEA : [4.84253074,5.44769072,15602.21662947,412.25485588,0.00331383] + }, + Hg : { + Z : 80 , + A : 200.59 , + rho : 13.55 , + Elast : 0.67 , + ICRU : [4.30700,4.84300,17040.00000,487.79999,0.00288] , + IAEA : [] + }, + Tl : { + Z : 81 , + A : 204.37 , + rho : 11.85 , + Elast : 1.88 , + ICRU : [4.72300,5.31100,17220.00000,537.00000,0.00291] , + IAEA : [] + }, + Pb : { + Z : 82 , + A : 207.19 , + rho : 11.35 , + Elast : 2.03 , + ICRU : [5.31900,5.98200,17400.00000,586.29999,0.00287] , + IAEA : [9.42473604,17.46235676,11946.86905435,0.00000001,0.00652912] + }, + Bi : { + Z : 83 , + A : 208.98 , + rho : 9.75 , + Elast : 2.18 , + ICRU : [5.95600,6.70000,17800.00000,677.00000,0.00266] , + IAEA : [10.25823796,12.26670424,7765.05387481,7.37274504,0.02310050] + }, + Po : { + Z : 84 , + A : 210 , + rho : 9.3 , + Elast : 1.5 , + ICRU : [6.15800,6.92800,17770.00000,586.29999,0.00281] , + IAEA : [] + }, + At : { + Z : 85 , + A : 210 , + rho : 0 , + Elast : 0.1 , + ICRU : [6.20300,6.97900,17950.00000,586.29999,0.00278] , + IAEA : [] + }, + Rn : { + Z : 86 , + A : 222 , + rho : 0 , + Elast : 0.2 , + ICRU : [6.18100,6.95400,18120.00000,586.29999,0.00275] , + IAEA : [] + }, + Fr : { + Z : 87 , + A : 223 , + rho : 0 , + Elast : 0.1 , + ICRU : [6.94900,7.82000,18300.00000,586.29999,0.00274] , + IAEA : [] + }, + Ra : { + Z : 88 , + A : 226 , + rho : 0 , + Elast : 1.66 , + ICRU : [7.50600,8.44800,18480.00000,586.29999,0.00273] , + IAEA : [] + }, + Ac : { + Z : 89 , + A : 227 , + rho : 0 , + Elast : 4.25 , + ICRU : [7.64800,8.60900,18660.00000,586.29999,0.00270] , + IAEA : [] + }, + Th : { + Z : 90 , + A : 232.03799 , + rho : 11.72 , + Elast : 6.2 , + ICRU : [7.71100,8.67900,18830.00000,586.29999,0.00264] , + IAEA : [] + }, + Pa : { + Z : 91 , + A : 231 , + rho : 15.4 , + Elast : 0.1 , + ICRU : [7.40700,8.33600,19010.00000,586.29999,0.00260] , + IAEA : [] + }, + U : { + Z : 92 , + A : 238.03 , + rho : 18.95 , + Elast : 5.55 , + ICRU : [7.29000,8.20400,19180.00000,586.29999,0.00267] , + IAEA : [] + }, + "" : { + Z : 0 , + A : 0.0 , + rho : 0 , + Elast : 0 , + ICRU : [0,0,0,0,0] , + IAEA : [] + } +}; + +// Extra densities +var rhos = { + "NbN":8.47, + "Bi2Se3":7.51, + "La2CuO4": 7.08, + "La1.84Sr0.16CuO4": 6.94, + "N2":1.145, + "ZnO":5.61, + "ZnSe":5.26, + "ZnS":4.09, + "ZrO":6.0, + "Gd3Ga5O12":7.08, + "MgAl2O4":3.60, + "NdGaO3":7.57, + "YAlO3":4.88, + "Y3Al5O12":4.55, + "LiF":2.60, + "CaF2":3.18, + "BaFe":4.83, + "MgF2":3.18, + "SiO2":2.65, + "TiO2":4.26, + "KTaO3":6.967, + "LaAlO3":6.70, + "Al2O3":3.98, + "SrTiO3":5.12, + "SrLaGaO4":6.389, + "SrLaAlO4":5.924, + "NbSe2":6.30, + "MgO":3.58, + "YBa2Cu3O7":6.54, + "GaAs":5.32, + "C60":1.65 +} + // This file contains function that are generic Javascript for TrimSP function parse_formula (mf) { @@ -42,486 +858,25 @@ function parse_formula (mf) { return mol; } - -function Zof(Element) -{ - var ElementsZ = { - "muon":1, - "Li-8":3, - "B-12":5, - "Mg-31":12, - "H":1, - "He":2, - "Li":3, - "Be":4, - "B":5, - "C":6, - "N":7, - "O":8, - "F":9, - "Ne":10, - "Na":11, - "Mg":12, - "Al":13, - "Si":14, - "P":15, - "S":16, - "Cl":17, - "Ar":18, - "K":19, - "Ca":20, - "Sc":21, - "Ti":22, - "V":23, - "Cr":24, - "Mn":25, - "Fe":26, - "Co":27, - "Ni":28, - "Cu":29, - "Zn":30, - "Ga":31, - "Ge":32, - "As":33, - "Se":34, - "Br":35, - "Kr":36, - "Rb":37, - "Sr":38, - "Y":39, - "Zr":40, - "Nb":41, - "Mo":42, - "Tc":43, - "Ru":44, - "Rh":45, - "Pd":46, - "Ag":47, - "Cd":48, - "In":49, - "Sn":50, - "Sb":51, - "Te":52, - "I":53, - "Xe":54, - "Cs":55, - "Ba":56, - "La":57, - "Ce":58, - "Pr":59, - "Nd":60, - "Pm":61, - "Sm":62, - "Eu":63, - "Gd":64, - "Tb":65, - "Dy":66, - "Ho":67, - "Er":68, - "Tm":69, - "Yb":70, - "Lu":71, - "Hf":72, - "Ta":73, - "W":74, - "Re":75, - "Os":76, - "Ir":77, - "Pt":78, - "Au":79, - "Hg":80, - "Tl":81, - "Pb":82, - "Bi":83, - "Po":84, - "At":85, - "Rn":86, - "Fr":87, - "Ra":88, - "Ac":89, - "Th":90, - "Pa":91, - "U":92, - "":0.0000 - } - return ElementsZ[Element]; -} - -function Massof(Element) -{ - var ElementsA = { - "muon":0.1134289259, - "Li-8":8.02248624, - "B-12":12.0143526, - "Mg-31":30.996648, - "H":1.00800, - "He":4.00300, - "Li":6.93900, - "Be":9.01200, - "B":10.81100, - "C":12.01100, - "N":14.00700, - "O":15.99900, - "F":18.99800, - "Ne":20.18300, - "Na":22.99000, - "Mg":24.31200, - "Al":26.98200, - "Si":28.08600, - "P":30.97400, - "S":32.06400, - "Cl":35.45300, - "Ar":39.94800, - "K":39.10200, - "Ca":40.08000, - "Sc":44.95600, - "Ti":47.90000, - "V":50.94200, - "Cr":51.99600, - "Mn":54.93800, - "Fe":55.84700, - "Co":58.93300, - "Ni":58.71000, - "Cu":63.54000, - "Zn":65.37000, - "Ga":69.72000, - "Ge":72.59000, - "As":74.92200, - "Se":78.96000, - "Br":79.90900, - "Kr":83.80000, - "Rb":85.47000, - "Sr":87.62000, - "Y":88.90500, - "Zr":91.22000, - "Nb":92.90600, - "Mo":95.94000, - "Tc":98.00000, - "Ru":101.07000, - "Rh":102.90500, - "Pd":106.40000, - "Ag":107.87000, - "Cd":112.40000, - "In":114.82000, - "Sn":118.69000, - "Sb":121.75000, - "Te":127.60000, - "I":126.90400, - "Xe":131.30000, - "Cs":132.90500, - "Ba":137.34000, - "La":138.91000, - "Ce":140.12000, - "Pr":140.90700, - "Nd":144.24001, - "Pm":147.00000, - "Sm":150.35001, - "Eu":151.96001, - "Gd":157.25000, - "Tb":158.92400, - "Dy":162.50000, - "Ho":164.92999, - "Er":167.25999, - "Tm":168.93401, - "Yb":173.03999, - "Lu":174.97000, - "Hf":178.49001, - "Ta":180.94800, - "W":183.85001, - "Re":186.20000, - "Os":190.20000, - "Ir":192.20000, - "Pt":195.09000, - "Au":196.96700, - "Hg":200.59000, - "Tl":204.37000, - "Pb":207.19000, - "Bi":208.98000, - "Po":210.00000, - "At":210.00000, - "Rn":222.00000, - "Fr":223.00000, - "Ra":226.00000, - "Ac":227.00000, - "Th":232.03799, - "Pa":231.00000, - "U":238.03000, - "":0.0000 - } - return ElementsA[Element]; -} - -function Elastof(Element) { - var Elast ={ - "H":0.10000, - "He":0.10000, - "Li":1.63000, - "Be":3.32000, - "B":5.77000, - "C":7.37000, - "N":4.92000, - "O":2.60000, - "F":0.84000, - "Ne":0.02000, - "Na":1.11000, - "Mg":1.51000, - "Al":3.39000, - "Si":4.63000, - "P":3.43000, - "S":2.85000, - "Cl":1.40000, - "Ar":0.08000, - "K":0.93000, - "Ca":1.84000, - "Sc":3.90000, - "Ti":4.85000, - "V":5.31000, - "Cr":4.10000, - "Mn":2.92000, - "Fe":4.28000, - "Co":4.39000, - "Ni":4.44000, - "Cu":3.49000, - "Zn":1.35000, - "Ga":2.81000, - "Ge":3.85000, - "As":2.96000, - "Se":2.25000, - "Br":1.22000, - "Kr":0.12000, - "Rb":0.85000, - "Sr":1.72000, - "Y":4.37000, - "Zr":6.25000, - "Nb":7.57000, - "Mo":6.82000, - "Tc":6.85000, - "Ru":6.74000, - "Rh":5.75000, - "Pd":3.89000, - "Ag":2.95000, - "Cd":1.16000, - "In":2.52000, - "Sn":3.14000, - "Sb":2.75000, - "Te":2.23000, - "I":1.11000, - "Xe":0.16000, - "Cs":0.80000, - "Ba":1.90000, - "La":4.47000, - "Ce":4.32000, - "Pr":3.70000, - "Nd":3.40000, - "Pm":0.10000, - "Sm":2.14000, - "Eu":1.86000, - "Gd":4.14000, - "Tb":4.05000, - "Dy":3.04000, - "Ho":3.14000, - "Er":3.29000, - "Tm":2.42000, - "Yb":1.60000, - "Lu":4.43000, - "Hf":6.44000, - "Ta":8.10000, - "W":8.90000, - "Re":8.03000, - "Os":8.17000, - "Ir":6.94000, - "Pt":5.84000, - "Au":3.81000, - "Hg":0.67000, - "Tl":1.88000, - "Pb":2.03000, - "Bi":2.18000, - "Po":1.50000, - "At":0.10000, - "Rn":0.20000, - "Fr":0.10000, - "Ra":1.66000, - "Ac":4.25000, - "Th":6.20000, - "Pa":0.10000, - "U":5.55000, - "":0.00000 - }; - return Elast[Element]; -} - function StoppingCoefficients(Element,flag) { - // flag = 1 prefer ICRU - // otherwise prefer IAEA - var StoppingCoefficientsICRU = { - "H":"1.25400,1.44000,242.60001,12000.00000,0.11590", - "He":"1.22900,1.39700,484.50000,5873.00000,0.05225", - "Li":"1.41100,1.60000,725.59998,3013.00000,0.04578", - "Be":"2.24800,2.59000,966.00000,153.80000,0.03475", - "B":"2.47400,2.81500,1206.00000,1060.00000,0.02855", - "C":"2.60100,2.60100,1701.00000,1279.00000,0.01638", - "N":"2.95400,3.35000,1683.00000,1900.00000,0.02513", - "O":"2.65200,3.00000,1920.00000,2000.00000,0.02230", - "F":"2.08500,2.35200,2157.00000,2634.00000,0.01816", - "Ne":"1.95100,2.19900,2393.00000,2699.00000,0.01568", - "Na":"2.54200,2.86900,2628.00000,1854.00000,0.01472", - "Mg":"3.79100,4.29300,2862.00000,1009.00000,0.01397", - "Al":"4.15400,4.73900,2766.00000,164.50000,0.02023", - "Si":"4.91400,5.59800,3193.00000,232.70000,0.01419", - "P":"3.23200,3.64700,3561.00000,1560.00000,0.01267", - "S":"3.44700,3.89100,3792.00000,1219.00000,0.01211", - "Cl":"5.30100,6.00800,3969.00000,645.09998,0.01183", - "Ar":"5.73100,6.50000,4253.00000,530.00000,0.01123", - "K":"5.15200,5.83300,4482.00000,545.70001,0.01129", - "Ca":"5.52100,6.25200,4710.00000,553.29999,0.01120", - "Sc":"5.20100,5.88400,4938.00000,560.90002,0.01000", - "Ti":"4.85800,5.48900,5260.00000,651.09998,0.00893", - "V":"4.47900,5.05500,5391.00000,952.29999,0.00912", - "Cr":"3.98300,4.48900,5616.00000,1336.00000,0.00841", - "Mn":"3.46900,3.90700,5725.00000,1461.00000,0.00883", - "Fe":"3.51900,3.96300,6065.00000,1243.00000,0.00778", - "Co":"3.14000,3.53500,6288.00000,1372.00000,0.00736", - "Ni":"3.55300,4.00400,6205.00000,555.09998,0.00876", - "Cu":"3.69600,4.19400,4649.00000,81.13000,0.02242", - "Zn":"4.21000,4.75000,6953.00000,295.20001,0.00681", - "Ga":"5.04100,5.69700,7137.00000,202.60001,0.00673", - "Ge":"5.55400,6.30000,6496.00000,110.00000,0.00969", - "As":"5.32300,6.01200,7611.00000,292.50000,0.00645", - "Se":"5.87400,6.65600,7395.00000,117.50000,0.00768", - "Br":"6.65800,7.53600,7694.00000,222.30000,0.00651", - "Kr":"6.41300,7.24000,11850.00000,153.70000,0.00288", - "Rb":"5.69400,6.42900,8478.00000,292.89999,0.00609", - "Sr":"6.33900,7.15900,8693.00000,330.29999,0.00600", - "Y":"6.40700,7.23400,8907.00000,367.79999,0.00589", - "Zr":"6.73400,7.60300,9120.00000,405.20001,0.00576", - "Nb":"6.90100,7.79100,9333.00000,442.70001,0.00559", - "Mo":"6.42400,7.24800,9545.00000,480.20001,0.00538", - "Tc":"6.79900,7.67100,9756.00000,517.59998,0.00532", - "Ru":"6.10900,6.88700,9966.00000,555.09998,0.00515", - "Rh":"5.92400,6.67700,10180.00000,592.50000,0.00492", - "Pd":"5.23800,5.90000,10380.00000,630.00000,0.00476", - "Ag":"5.34500,6.03800,6790.00000,397.79999,0.01676", - "Cd":"5.81400,6.55400,10800.00000,355.50000,0.00463", - "In":"6.22900,7.02400,11010.00000,370.89999,0.00454", - "Sn":"6.40900,7.22700,11210.00000,386.39999,0.00447", - "Sb":"7.50000,8.48000,8608.00000,348.00000,0.00907", - "Te":"6.97900,7.87100,11620.00000,392.39999,0.00440", - "I":"7.72500,8.71600,11830.00000,394.79999,0.00438", - "Xe":"8.33700,9.42500,10510.00000,269.60001,0.00621", - "Cs":"7.28700,8.21800,12230.00000,399.70001,0.00445", - "Ba":"7.89900,8.91100,12430.00000,402.10001,0.00451", - "La":"8.04100,9.07100,12630.00000,404.50000,0.00454", - "Ce":"7.48800,8.44400,12830.00000,406.89999,0.00442", - "Pr":"7.29100,8.21900,13030.00000,409.29999,0.00430", - "Nd":"7.09800,8.00000,13230.00000,411.79999,0.00418", - "Pm":"6.90900,7.78600,13430.00000,414.20001,0.00406", - "Sm":"6.72800,7.58000,13620.00000,416.60001,0.00398", - "Eu":"6.55100,7.38000,13820.00000,419.00000,0.00388", - "Gd":"6.73900,7.59200,14020.00000,421.39999,0.00386", - "Tb":"6.21200,6.99600,14210.00000,423.89999,0.00372", - "Dy":"5.51700,6.21000,14400.00000,426.29999,0.00363", - "Ho":"5.22000,5.87400,14600.00000,428.70001,0.00350", - "Er":"5.07100,5.70600,14790.00000,433.00000,0.00341", - "Tm":"4.92600,5.54200,14980.00000,433.50000,0.00334", - "Yb":"4.78800,5.38600,15170.00000,435.89999,0.00329", - "Lu":"4.89300,5.50500,15360.00000,438.29999,0.00324", - "Hf":"5.02800,5.65700,15550.00000,440.79999,0.00320", - "Ta":"4.73800,5.32900,15740.00000,443.20001,0.00319", - "W":"4.58700,5.16000,15410.00000,415.29999,0.00341", - "Re":"5.20100,5.85100,16120.00000,441.60001,0.00312", - "Os":"5.07100,5.70400,16300.00000,440.89999,0.00308", - "Ir":"4.94600,5.56300,16490.00000,440.10001,0.00296", - "Pt":"4.47700,5.03400,16670.00000,439.29999,0.00287", - "Au":"4.84400,5.45800,7852.00000,975.79999,0.02077", - "Hg":"4.30700,4.84300,17040.00000,487.79999,0.00288", - "Tl":"4.72300,5.31100,17220.00000,537.00000,0.00291", - "Pb":"5.31900,5.98200,17400.00000,586.29999,0.00287", - "Bi":"5.95600,6.70000,17800.00000,677.00000,0.00266", - "Po":"6.15800,6.92800,17770.00000,586.29999,0.00281", - "At":"6.20300,6.97900,17950.00000,586.29999,0.00278", - "Rn":"6.18100,6.95400,18120.00000,586.29999,0.00275", - "Fr":"6.94900,7.82000,18300.00000,586.29999,0.00274", - "Ra":"7.50600,8.44800,18480.00000,586.29999,0.00273", - "Ac":"7.64800,8.60900,18660.00000,586.29999,0.00270", - "Th":"7.71100,8.67900,18830.00000,586.29999,0.00264", - "Pa":"7.40700,8.33600,19010.00000,586.29999,0.00260", - "U":"7.29000,8.20400,19180.00000,586.29999,0.00267", - "":"0.00000,0.00000,0.00000,0.00000,0.00000" - }; + // flag = 1 prefer ICRU otherwise prefer IAEA // Updated Anderson-Ziegler table values for hydrogen projectiles using // up-to-date stopping data from the IAEA database (https://www-nds.iaea.org/stopping/). // For further details on their determination, see e.g.: // R. M. L. McFadden at al., arXiv:2212.11081 [cond-mat.supr-con] // https://doi.org/10.48550/arXiv.2212.11081 - var StoppingCoefficientsIAEA = { - "H": "1.21941306,1.39705253,316.72610292,3622.08960714,0.03609996", - "Li": "2.55867734,2.98398784,672.22623329,223.63937274,0.05756479", - "Be": "2.13846776,2.43024550,1353.80005691,500.78353377,0.01143076", - "B": "2.92598306,3.33271910,1523.83401267,574.31712932,0.01671298", - "C": "2.51057212,2.84874359,1325.63086028,2111.57332043,0.03815981", - "N": "3.03231463,3.44621744,1287.27189959,3445.25706665,0.06909550", - "O": "2.58218404,2.91913321,2066.69556610,1937.28839450,0.01708201", - "Mg": "4.32219620,4.95332934,2711.05757349,99.32422512,0.01692829", - "Al": "4.16266645,4.73942640,3007.21967155,192.15430476,0.01478852", - "Si": "4.56277193,5.17964542,3812.93366288,249.45105835,0.00951865", - "Cl": "5.18954121,5.87010049,5726.20198003,338.90592713,0.00527894", - "Ca": "7.38419020,8.41800474,4257.94547049,311.84732092,0.01482602", - "Sc": "6.27366940,7.11486087,5202.32117316,349.64931132,0.00808596", - "Ti": "4.89215322,5.52996090,4733.05002706,821.54929980,0.01141794", - "V": "4.39418898,4.95984106,5216.28902299,873.00768319,0.00982301", - "Cr": "4.22355616,4.76724205,4805.40719904,1062.25237873,0.01508696", - "Mn": "3.45870888,3.89580224,5452.18588822,1778.16054656,0.01057380", - "Fe": "3.69846643,4.16916938,5392.90710239,1040.38447053,0.01152298", - "Co": "3.55890909,4.00775461,6796.04145497,933.86447935,0.00558368", - "Ni": "3.42262695,3.86234880,4759.65515188,520.18934465,0.02026669", - "Cu": "3.54912421,4.02142201,4344.22605325,128.32905834,0.02886218", - "Zn": "4.31895518,4.91763977,5346.03925560,46.16548699,0.01518164", - "Ga": "4.11015447,4.63998531,7681.41419449,149.38563152,0.00628772", - "Ge": "5.80984815,6.60667983,6039.04808738,87.19744473,0.01158192", - "Se": "5.58734301,6.31119973,8423.01872583,221.61559131,0.00530434", - "Br": "6.28480648,7.09489448,11732.76411988,150.96205589,0.00281298", - "Kr": "6.47378266,7.31581518,9199.06183849,216.98680923,0.00437111", - "Rb": "8.48759187,9.62951209,7271.11124671,272.67996745,0.00818815", - "Sr": "8.66447838,9.84912713,5979.31960977,334.15705556,0.01184544", - "Y": "7.54854264,8.54789357,6885.34110669,429.53252110,0.00930644", - "Zr": "6.24168401,7.04236496,10674.06252597,269.66181445,0.00339805", - "Nb": "5.96194954,6.72632300,10250.57513827,275.25886405,0.00386599", - "Mo": "5.58867862,6.29983727,9573.16605660,523.57577519,0.00473082", - "Pd": "4.74762031,5.34871025,8086.17802763,942.05721488,0.00842671", - "Ag": "5.42052240,6.17824432,4642.18214950,90.75350922,0.06061521", - "Cd": "4.89128643,5.50754704,11831.77188508,396.06905848,0.00412049", - "In": "5.98978289,6.77050040,6343.54720062,564.65410792,0.02270520", - "Sn": "6.73191335,7.61854414,6946.18830598,347.19391310,0.01677246", - "Sb": "7.92400389,8.99628409,5736.29881090,403.11722206,0.02973016", - "Xe": "8.96826400,10.16224223,8543.27304860,283.90067433,0.01019984", - "La": "8.16949326,9.21144395,13933.96869212,429.99442382,0.00347440", - "Nd": "8.60801371,10.26060598,6798.65217629,7.06731816,0.02713704", - "Gd": "8.38379061,9.50012183,10804.38767518,110.71066098,0.00761735", - "Tb": "8.69907359,10.36476708,5985.09307671,7.76175759,0.04237031", - "Dy": "6.69350026,7.81543484,5289.65107666,12.11560717,0.05746489", - "Er": "4.31497049,4.85346547,12995.54504003,691.00380321,0.00499022", - "Yb": "6.38304258,7.21491284,12327.74719685,82.30064162,0.00516845", - "Lu": "7.00205766,8.09268611,4589.67801229,31.06321362,0.11142124", - "Hf": "5.32763157,6.00140558,13853.49562768,206.93150053,0.00411522", - "Ta": "5.15280708,5.80545310,12417.25115167,231.48549646,0.00530723", - "W": "4.81261962,5.41579909,15245.84079976,286.09077182,0.00344862", - "Re": "4.26021967,4.80273372,3191.05524918,76051.48730893,0.00003161", - "Ir": "4.16543126,4.68849191,6887.94139926,4263.90641919,0.00000004", - "Pt": "4.62228847,5.20033612,16308.49878855,266.02263275,0.00309560", - "Au": "4.84253074,5.44769072,15602.21662947,412.25485588,0.00331383", - "Pb": "9.42473604,17.46235676,11946.86905435,0.00000001,0.00652912", - "Bi": "10.25823796,12.26670424,7765.05387481,7.37274504,0.02310050" - }; - if (flag) { + if (flag || elemPars[Element].IAEA.length < 5) { // Using stopping coefficients derived from ICRU Report 49 - return StoppingCoefficientsICRU[Element]; + //return StoppingCoefficientsICRU[Element]; + return elemPars[Element].ICRU; } else { // Using stopping coefficients derived from data in the IAEA database; // however, if they are unavailable, return those from ICRU Report 49 - return (Element in StoppingCoefficientsIAEA) ? StoppingCoefficientsIAEA[Element] : StoppingCoefficientsICRU[Element]; + //return (Element in StoppingCoefficientsIAEA) ? StoppingCoefficientsIAEA[Element] : StoppingCoefficientsICRU[Element]; + return elemPars[Element].IAEA; } } @@ -533,135 +888,21 @@ function rho_fun() var chem = document.getElementById(caller).value; var rhoLi = "L"+irow+"rho"; - var rhos = { - "NbN":8.47, - "Bi2Se3":7.51, - "La2CuO4": 7.08, - "La1.84Sr0.16CuO4": 6.94, - "N2":1.145, - "ZnO":5.61, - "ZnSe":5.26, - "ZnS":4.09, - "ZrO":6.0, - "Gd3Ga5O12":7.08, - "MgAl2O4":3.60, - "NdGaO3":7.57, - "YAlO3":4.88, - "Y3Al5O12":4.55, - "LiF":2.60, - "CaF2":3.18, - "BaFe":4.83, - "MgF2":3.18, - "SiO2":2.65, - "TiO2":4.26, - "KTaO3":6.967, - "LaAlO3":6.70, - "Al2O3":3.98, - "SrTiO3":5.12, - "SrLaGaO4":6.389, - "SrLaAlO4":5.924, - "NbSe2":6.30, - "MgO":3.58, - "YBa2Cu3O7":6.54, - "GaAs":5.32, - "C60":1.65, - "H":0.08, - "He":0.12, - "Li":0.53, - "Be":1.85, - "B":2.34, - "C":2.26, - "N":1.03, - "O":2.00, - "F":1.11, - "Ne":1.50, - "Na":0.97, - "Mg":1.74, - "Al":2.7, - "Si":2.33, - "P":1.00, - "S":2.07, - "Cl":2.03, - "Ar":1.77, - "K":0.86, - "Ca":1.55, - "Sc":2.99, - "Ti":4.54, - "V":6.11, - "Cr":7.19, - "Mn":7.43, - "Fe":7.87, - "Co":8.9, - "Ni":8.9, - "Cu":8.96, - "Zn":7.13, - "Ga":5.91, - "Ge":5.32, - "As":5.72, - "Se":4.79, - "Br":3.14, - "Kr":3.10, - "Rb":1.53, - "Sr":2.54, - "Y":4.47, - "Zr":6.51, - "Nb":8.57, - "Mo":10.22, - "Tc":11.5, - "Ru":12.37, - "Rh":12.41, - "Pd":12.02, - "Ag":10.5, - "Cd":8.65, - "In":7.31, - "Sn":7.31, - "Sb":6.68, - "Te":6.24, - "I":4.93, - "Xe":3.80, - "Cs":1.90, - "Ba":3.59, - "La":6.15, - "Ce":6.77, - "Pr":6.77, - "Nd":7.01, - "Pm":7.22, - "Sm":7.52, - "Eu":5.24, - "Gd":7.9, - "Tb":8.23, - "Dy":8.55, - "Ho":8.8, - "Er":9.07, - "Tm":9.32, - "Yb":6.9, - "Lu":9.84, - "Hf":13.31, - "Ta":16.65, - "W":19.35, - "Re":21.04, - "Os":22.6, - "Ir":22.4, - "Pt":21.45, - "Au":19.32, - "Hg":13.55, - "Tl":11.85, - "Pb":11.35, - "Bi":9.75, - "Po":9.3, - "Th":11.72, - "Pa":15.4, - "U":18.95, - "":"" - } - document.getElementById(rhoLi).value = rhos[chem]; + var rho = 0; + + if (elemPars[chem]) { + rho = elemPars[chem].rho; + } else { + // Did not find density in elements list + if (isFinite(rhos[chem])) { + // Found in densities list of compositions + rho = rhos[chem]; + } else { + // suggest a material density based on composition (when it's undefined) + let layer_formula = parse_formula(chem); - // suggest a material density based on composition (when it's undefined) - if (!isFinite(document.getElementById(rhoLi).value)) { - let layer_formula = parse_formula(chem); - - // determine the stoichiometry sum (for normalization) - let stoichiometry_sum = 0; + // determine the stoichiometry sum (for normalization) + let stoichiometry_sum = 0; for (key of Object.keys(layer_formula)) { stoichiometry_sum = stoichiometry_sum + layer_formula[key]; } @@ -670,13 +911,16 @@ function rho_fun() let density_estimate = 0; for (key of Object.keys(layer_formula)) { if (layer_formula[key] != null) { - density_estimate = density_estimate + (layer_formula[key] / stoichiometry_sum) * rhos[key]; + density_estimate = density_estimate + (layer_formula[key] / stoichiometry_sum) * elemPars[key].rho; } } - document.getElementById(rhoLi).value = density_estimate; - alert("Warning: The density for this layer is only an estimate!") + rho = density_estimate; + alert("Warning: The density for this layer is only an estimate!") + } } + // Set value in appropriate cell + document.getElementById(rhoLi).value = rho; } function openTab(event, tabName) { @@ -915,11 +1159,26 @@ function CreateInpFile(All) { TemplateFile=TemplateFile+"\n"+"N_Layers=numLayer"; // Then loop over the layers and for each give the following structure - var TemplateLayer= "L1d L1rho L1CK L1Comp\n L1ELZ1 L1ELZ2 L1ELZ3 L1ELZ4 L1ELZ5\n L1ELW1 L1ELW2 L1ELW3 L1ELW4 L1ELW5\n L1ELC1 L1ELC2 L1ELC3 L1ELC4 L1ELC5\n L1ELE1 L1ELE2 L1ELE3 L1ELE4 L1ELE5\n L10301 L10302 L10303 L10304 L10305\n 0.0000 0.0000 0.0000 0.0000 0.0000\n L1ELST11 L1ELST21 L1ELST31 L1ELST41 L1ELST51\n L1ELST12 L1ELST22 L1ELST32 L1ELST42 L1ELST52\n L1ELST13 L1ELST23 L1ELST33 L1ELST43 L1ELST53\n L1ELST14 L1ELST24 L1ELST34 L1ELST44 L1ELST54\n L1ELST15 L1ELST25 L1ELST35 L1ELST45 L1ELST55"; + // thickness, density, correction factor, chemical formula + var TemplateLayer = "L1d L1rho L1CK L1Comp\n"; + // Z number of elements + TemplateLayer += "L1ELZ1 L1ELZ2 L1ELZ3 L1ELZ4 L1ELZ5\n"; + // A number of elements + TemplateLayer += "L1ELW1 L1ELW2 L1ELW3 L1ELW4 L1ELW5\n"; + // Weigth of element in composition + TemplateLayer += "L1ELC1 L1ELC2 L1ELC3 L1ELC4 L1ELC5\n"; + TemplateLayer += "L1ELE1 L1ELE2 L1ELE3 L1ELE4 L1ELE5\n"; + TemplateLayer += "L10301 L10302 L10303 L10304 L10305\n"; + TemplateLayer += "0.0000 0.0000 0.0000 0.0000 0.0000\n"; + TemplateLayer += "L1ELST11 L1ELST21 L1ELST31 L1ELST41 L1ELST51\n"; + TemplateLayer += "L1ELST12 L1ELST22 L1ELST32 L1ELST42 L1ELST52\n"; + TemplateLayer += "L1ELST13 L1ELST23 L1ELST33 L1ELST43 L1ELST53\n"; + TemplateLayer += "L1ELST14 L1ELST24 L1ELST34 L1ELST44 L1ELST54\n"; + TemplateLayer += "L1ELST15 L1ELST25 L1ELST35 L1ELST45 L1ELST55"; let projectile = All['ProjType']; - All['ProjZ']=Zof(projectile); - All['ProjAM']=Massof(projectile); + All['ProjZ'] = elemPars[projectile].Z; + All['ProjAM'] = elemPars[projectile].A; // This is the flag for checking layers let Check=0; @@ -942,7 +1201,7 @@ function CreateInpFile(All) { let LElComp=parse_formula(Comp); for (key of Object.keys(LElComp)) { // Check if composition is understood - if (key=="" || Zof(key)=="") { + if (key=="" || elemPars[key].Z =="") { Check++; } } @@ -953,13 +1212,11 @@ function CreateInpFile(All) { let Lrho="layer"+i+"rho"; let rho = 1*All[Lrho]; - // How to do this? All[Lrho]=sprintf("%6.2f",rho); if (rho=="") {Check++;} // Thickness of layers let Ld ="L"+i+"d"; let d = All[Ld]; - // How to do this? All[Ld]=sprintf("%8.2f",d); if (d=="") {Check++;} // Sanity check, is the layer supposed to have value? are they all there? @@ -970,7 +1227,7 @@ function CreateInpFile(All) { } let tmp = "L"+i+"CK"; - All[tmp]=1.0; // sprintf("%6.2f",1.0); + All[tmp]=1.0; let Sum = 0; for (key of Object.keys(LElComp)) { @@ -986,27 +1243,27 @@ function CreateInpFile(All) { El = Els[NEl-1]; } let LEkey = "L"+i+"EL"; - let ElZ = Zof(El); - let ElW = Massof(El); + let ElZ = elemPars[El].Z; + let ElW = elemPars[El].A; let ElC = 0; if (LElComp[El] != null){ElC=LElComp[El]/Sum;} - let ElE = Elastof(El); + let ElE = elemPars[El].Elast; let El030 = 30; if (El=="") { El030 = 0.0;} - All[LEkey+"Z"+NEl]=ElZ; // sprintf("%8.4f",$ElZ); - All[LEkey+"W"+NEl]=ElW; // sprintf("%8.4f",$ElW); - All[LEkey+"C"+NEl]=ElC; // sprintf("%8.4f",$ElC); - All[LEkey+"E"+NEl]=ElE; // sprintf("%8.4f",$ElE); - All["L"+i+"030"+NEl]=El030; // sprintf("%8.4f",$El030); + All[LEkey+"Z"+NEl]=ElZ; + All[LEkey+"W"+NEl]=ElW; + All[LEkey+"C"+NEl]=ElC; + All[LEkey+"E"+NEl]=ElE; + All["L"+i+"030"+NEl]=El030; - let ElST = StoppingCoefficients(El,All["flagICRU"]); - let ElSTs = ElST.split(','); + let ElSTs = StoppingCoefficients(El,All["flagICRU"]); + let j=1; for (let iElST of ElSTs) { LEkey = "L"+i+"ELST"+NEl+j; j++; - All[LEkey]=iElST; // sprintf("%11.6f",$_); + All[LEkey]=iElST; } } } @@ -1180,29 +1437,12 @@ function startSequence(All) { } iScan++; } - //},1000); - // An easy way to keep track of chemical formula is to replace impL_i by the corresponding chemical formula of layer i - let data = readAsciiFile(All["workPath"]+"/"+"fort.33"); - let LComp = ""; - let chem_formula = ""; - let place_holder = ""; - let re = new RegExp(place_holder,"g"); - // This is not needed if the chem formula is in the input file, handeled by the fortran code. - /* - for (let i=1;i<=All["numLayer"];i++) { - LComp = "L"+i+"Comp"; - chem_formula = All[LComp]; - place_holder = "impL"+i; - re = new RegExp(place_holder,"g"); - data = data.replace(re, chem_formula); - } - */ - let seq_file = All["workPath"]+"/"+All["fileNamePrefix"]+"_Seq_Results.dat"; - writeAsciiFile(seq_file, data); - // Remove the fort.33 and other redundant files + let seq_file = All["fileNamePrefix"]+"_Seq_Results.dat"; + + // Remove redundant files and change the name fort.33 if (!webOrApp) { - cmd="cd " + All["workPath"] + ";rm -f eingabe1.inp; rm -f fort.33"; + cmd="cd " + All["workPath"] + ";rm -f eingabe1.inp; mv -f fort.33 " + seq_file; execute(cmd); } Progress=100; diff --git a/package.json b/package.json index 918e9c5..d13b8c2 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,10 @@ "package": "electron-forge package", "make": "electron-forge make" }, - "keywords": ["TRIM","SRIM"], + "keywords": [ + "TRIM", + "SRIM" + ], "author": "Zaher Salman", "license": "GPL2", "devDependencies": { @@ -20,17 +23,21 @@ "electron": "^11.2.1" }, "dependencies": { + "child_process": "^1.0.2", "electron-squirrel-startup": "^1.0.0", + "fs": "^0.0.1-security", "plotly.js-dist": "^1.58.4" }, "config": { "forge": { "packagerConfig": { - "icon": "appicons/icons/png/1024x1024.png", - "ignore" : ["Readme.md", - "ToDo.txt", - "TrimSP.cfg", - "fortran/*"] + "icon": "appicons/icons/png/1024x1024.png", + "ignore": [ + "Readme.md", + "ToDo.txt", + "TrimSP.cfg", + "fortran/*" + ] }, "makers": [ {