From 6d779de119b855247031374edf61c6454b890c54 Mon Sep 17 00:00:00 2001 From: Edgar Date: Mon, 1 Jul 2024 12:41:42 -0500 Subject: [PATCH 1/4] streamline mixPureFusionMaterials.py --- pureMaterials/PureFusionMaterials_libv1.json | 118 ++-- pureMaterials/mixPureFusionMaterials.py | 511 +++++++----------- .../mixedPureFusionMaterials_libv1.h5 | Bin 25371 -> 0 bytes 3 files changed, 259 insertions(+), 370 deletions(-) delete mode 100644 pureMaterials/mixedPureFusionMaterials_libv1.h5 diff --git a/pureMaterials/PureFusionMaterials_libv1.json b/pureMaterials/PureFusionMaterials_libv1.json index 4c92f60..3182f91 100644 --- a/pureMaterials/PureFusionMaterials_libv1.json +++ b/pureMaterials/PureFusionMaterials_libv1.json @@ -17,7 +17,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 22, + "mat_number" : 21, "name" : "AirSTP" } }, @@ -57,7 +57,7 @@ "mass" : 100.0010, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 47, + "mat_number" : 46, "name" : "Aluminum6061" } }, @@ -73,7 +73,7 @@ "mass" : 101.9612915890446, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 50, + "mat_number" : 49, "name" : "AluminumOxide" } }, @@ -119,7 +119,7 @@ "mass" : 1.0, "metadata" : { "citation" : "HernandezFusEngDes_2018", - "mat_number" : 33, + "mat_number" : 32, "name" : "Be" } }, @@ -137,7 +137,7 @@ "mass" : 156.0129407222201, "metadata" : { "citation" : "HernandezFusEngDes_2018", - "mat_number" : 34, + "mat_number" : 33, "name" : "Be12Ti" } }, @@ -152,7 +152,7 @@ "mass" : 159.0876616564450, "metadata" : { "citation" : "HernandezFusEngDes_2018", - "mat_number" : 35, + "mat_number" : 34, "name" : "Be12V" } }, @@ -166,7 +166,7 @@ "mass" : 1.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 27, + "mat_number" : 26, "name" : "C" } }, @@ -208,7 +208,7 @@ "mass" : 99.99990000000001, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 23, + "mat_number" : 22, "name" : "Concrete" } }, @@ -241,7 +241,7 @@ "mass" : 100.0, "metadata" : { "citation" : "JawadORNL_2005 and ???", - "mat_number" : 16, + "mat_number" : 15, "name" : "Cr3FS" } }, @@ -255,7 +255,7 @@ "mass" : 1.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 29, + "mat_number" : 28, "name" : "Cu" } }, @@ -271,7 +271,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 18, + "mat_number" : 17, "name" : "D2O" } }, @@ -331,7 +331,7 @@ "mass" : 100.0, "metadata" : { "citation" : "FESS-FNSF and ARIES GFFpolyimide", - "mat_number" : 12, + "mat_number" : 10, "name" : "Eins" } }, @@ -350,7 +350,7 @@ "mass" : 62.06792616656458, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 49, + "mat_number" : 48, "name" : "EthyleneGlycol" } }, @@ -366,11 +366,11 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 25, + "mat_number" : 24, "name" : "Fe" } }, - "FlibeLi60" : { + "FlibeLi60.0" : { "atoms_per_molecule" : 7.0, "comp" : { "Be9" : 0.09218298421965840, @@ -382,8 +382,8 @@ "mass" : 97.76406288307290, "metadata" : { "citation" : "SohalINLEXT-10-18297_2013", - "mat_number" : 41, - "name" : "FlibeLi60" + "mat_number" : 40, + "name" : "FlibeLi60.0" } }, "FlibeNat" : { @@ -398,7 +398,7 @@ "mass" : 98.88586892346537, "metadata" : { "citation" : "SohalINLEXT-10-18297_2013", - "mat_number" : 40, + "mat_number" : 39, "name" : "FlibeNat" } }, @@ -453,7 +453,7 @@ "mass" : 100.0, "metadata" : { "citation" : "WidodoJoPCS_2018 and pnnl-15870rev1", - "mat_number" : 19, + "mat_number" : 18, "name" : "HeNIST" } }, @@ -467,7 +467,7 @@ "mass" : 100.0, "metadata" : { "citation" : "WidodoJoPCS_2018", - "mat_number" : 20, + "mat_number" : 19, "name" : "HeT410P1" } }, @@ -481,7 +481,7 @@ "mass" : 100.0, "metadata" : { "citation" : "WidodoJoPCS_2018", - "mat_number" : 21, + "mat_number" : 20, "name" : "HeT410P80" } }, @@ -536,7 +536,7 @@ "mass" : 99.99999999999999, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 53, + "mat_number" : 52, "name" : "Inconel718" } }, @@ -583,7 +583,7 @@ "mass" : 100.0, "metadata" : { "citation" : "ElGuebalyARIESCSFTI_2006", - "mat_number" : 13, + "mat_number" : 12, "name" : "JK2LBSteel" } }, @@ -597,11 +597,11 @@ "mass" : 100.0, "metadata" : { "citation" : "CRChandbook64B117", - "mat_number" : 15, + "mat_number" : 14, "name" : "LHe" } }, - "Li2TiO3Li60" : { + "Li2TiO3Li60.0" : { "atoms_per_molecule" : 6.0, "comp" : { "Li6" : 0.07047259219291184, @@ -619,8 +619,8 @@ "mass" : 108.6232258688177, "metadata" : { "citation" : "HernandezFusEngDes_2018", - "mat_number" : 39, - "name" : "Li2TiO3Li60" + "mat_number" : 38, + "name" : "Li2TiO3Li60.0" } }, "Li2TiO3nat" : { @@ -641,11 +641,11 @@ "mass" : 109.7450319092101, "metadata" : { "citation" : "HernandezFusEngDes_2018", - "mat_number" : 37, + "mat_number" : 36, "name" : "Li2TiO3nat" } }, - "Li4SiO4Li60" : { + "Li4SiO4Li60.0" : { "atoms_per_molecule" : 9.0, "comp" : { "Li6" : 0.1301867840819527, @@ -661,8 +661,8 @@ "mass" : 117.5996527345346, "metadata" : { "citation" : "HernandezFusEngDes_2018", - "mat_number" : 38, - "name" : "Li4SiO4Li60" + "mat_number" : 37, + "name" : "Li4SiO4Li60.0" } }, "Li4SiO4nat" : { @@ -681,11 +681,11 @@ "mass" : 119.8432648153195, "metadata" : { "citation" : "HernandezFusEngDes_2018", - "mat_number" : 36, + "mat_number" : 35, "name" : "Li4SiO4nat" } }, - "Li60" : { + "Li60.0" : { "atoms_per_molecule" : 1.0, "comp" : { "Li6" : 0.60, @@ -695,11 +695,11 @@ "mass" : 6.379133582776449, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 44, - "name" : "Li60" + "mat_number" : 43, + "name" : "Li60.0" } }, - "Li60T500" : { + "Li60.0T500" : { "atoms_per_molecule" : 1.0, "comp" : { "Li6" : 0.60, @@ -709,8 +709,8 @@ "mass" : 6.379133582776449, "metadata" : { "citation" : "BohmFusSciTec_2019", - "mat_number" : 45, - "name" : "Li60T500" + "mat_number" : 44, + "name" : "Li60.0T500" } }, "LiNat" : { @@ -723,7 +723,7 @@ "mass" : 1.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 42, + "mat_number" : 41, "name" : "LiNat" } }, @@ -737,7 +737,7 @@ "mass" : 1.0, "metadata" : { "citation" : "BohmFusSciTec_2019", - "mat_number" : 43, + "mat_number" : 42, "name" : "LiNatT500" } }, @@ -787,7 +787,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 46, + "mat_number" : 45, "name" : "Mo" } }, @@ -800,7 +800,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 26, + "mat_number" : 25, "name" : "Na" } }, @@ -846,7 +846,7 @@ "mass" : 100.0, "metadata" : { "citation" : "PintDOE_ER_0313_57_2014 and KluehJNM_2000 ", - "mat_number" : 17, + "mat_number" : 16, "name" : "ODS125Y" } }, @@ -868,7 +868,7 @@ "mass" : 99.99990000000001, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 48, + "mat_number" : 47, "name" : "OilTexasCrude" } }, @@ -884,7 +884,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 32, + "mat_number" : 31, "name" : "Pb" } }, @@ -902,7 +902,7 @@ "mass" : 100.0, "metadata" : { "citation" : "BohmFusSciTec_2019", - "mat_number" : 7, + "mat_number" : 11, "name" : "Pb157Li90" } }, @@ -947,7 +947,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 11, + "mat_number" : 9, "name" : "SS316L" } }, @@ -996,7 +996,7 @@ "mass" : 99.99999999999999, "metadata" : { "citation" : "GilbertHandbookITERCCFE_2016", - "mat_number" : 9, + "mat_number" : 7, "name" : "SS316LN" } }, @@ -1054,7 +1054,7 @@ "mass" : 100.0, "metadata" : { "citation" : "GilbertHandbookITERCCFE_2016", - "mat_number" : 10, + "mat_number" : 8, "name" : "SS316LNIG" } }, @@ -1069,7 +1069,7 @@ "mass" : 1.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 28, + "mat_number" : 27, "name" : "Si" } }, @@ -1086,7 +1086,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 8, + "mat_number" : 6, "name" : "SiC" } }, @@ -1108,7 +1108,7 @@ "mass" : 1.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 30, + "mat_number" : 29, "name" : "Sn" } }, @@ -1122,7 +1122,7 @@ "mass" : 1.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 31, + "mat_number" : 30, "name" : "Ta" } }, @@ -1150,7 +1150,7 @@ "mass" : 100.0, "metadata" : { "citation" : "FESS-FNSF and ???", - "mat_number" : 14, + "mat_number" : 13, "name" : "TernaryNb3Sn" } }, @@ -1173,7 +1173,7 @@ "mass" : 100.0, "metadata" : { "citation" : "GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979", - "mat_number" : 51, + "mat_number" : 50, "name" : "V4Cr4Ti" } }, @@ -1190,7 +1190,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 24, + "mat_number" : 23, "name" : "W" } }, @@ -1209,7 +1209,7 @@ "mass" : 195.8525155763622, "metadata" : { "citation" : "CRChandbook64B152", - "mat_number" : 5, + "mat_number" : 53, "name" : "WC" } }, @@ -1226,7 +1226,7 @@ "mass" : 100.0, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 6, + "mat_number" : 5, "name" : "Water" } }, @@ -1245,7 +1245,7 @@ "mass" : 93.23952429992536, "metadata" : { "citation" : "pnnl-15870rev1", - "mat_number" : 52, + "mat_number" : 51, "name" : "ZrH2" } } diff --git a/pureMaterials/mixPureFusionMaterials.py b/pureMaterials/mixPureFusionMaterials.py index f86b145..77c44f8 100755 --- a/pureMaterials/mixPureFusionMaterials.py +++ b/pureMaterials/mixPureFusionMaterials.py @@ -3,342 +3,231 @@ # -updated for python3 (print) and updated for changes in python modules # # -# mixes pure fusion materials based on FESS-FNSF, ARIES, EUDEMO and other designs +# mixes pure fusion materials based on FESS-FNSF, ARIES, EUDEMO and other +# designs # -can be used for mixing homogenized regions # -# Improvements to make: -# -should use a function to create the constituent citation list for each mixture # # import os from pyne import material from pyne.material import Material, MultiMaterial from pyne.material_library import MaterialLibrary -# -# Load material library (created using pyne) -def load_matlib(): - mat_lib=MaterialLibrary() - mat_lib.from_hdf5("PureFusionMaterials_libv1.h5", datapath='/materials') # don't set datapath,nucpath...will be pyne default values *** need to indicate datapath in new pyne now - return mat_lib - -# Mix Materials by Volume -""" -FNSFFW (34% FS MF82H, 66% He) -""" -# fullreference: DavisFusEngDes_2018 https://doi.org/10.1016/j.fusengdes.2017.06.008 -def mix_FNSFFW(material_library): - mix=MultiMaterial({material_library['MF82H']:0.34,material_library['HeT410P80']:0.66}) - FNSFFW_mat=mix.mix_by_volume() - FNSFFW_mat.metadata['mat_number']=9 - FNSFFW_mat.metadata['mixturecitation']='DavisFusEngDes_2018' - constituentCitationList=[str(material_library['MF82H'].metadata['citation']),str(material_library['HeT410P80'].metadata['citation'])] - constituentCitation=" ".join(constituentCitationList) - FNSFFW_mat.metadata['constituentcitation']=constituentCitation - print('FNSFFW_mat ', FNSFFW_mat.metadata['mat_number'], FNSFFW_mat.density) - print(" Constituent Citations: ", constituentCitation) - FNSFFW_mat=FNSFFW_mat.expand_elements() - return FNSFFW_mat - -""" -FNSFFWstruct (100% FS MF82H) -""" -def mix_FNSFFWstruct(material_library): - mix=MultiMaterial({material_library['MF82H']:1.00}) - FNSFFWstruct_mat=mix.mix_by_volume() - FNSFFWstruct_mat.metadata['mat_number']=26 - FNSFFWstruct_mat.metadata['mixturecitation']='DavisFusEngDes_2018' - print('FNSFFWstruct_mat ', FNSFFWstruct_mat.metadata['mat_number'], FNSFFWstruct_mat.density) - FNSFFWstruct_mat=FNSFFWstruct_mat.expand_elements() - return FNSFFWstruct_mat - -""" -response function material reIron (100% Iron) -""" -def mix_reIron(material_library): - mix=MultiMaterial({material_library['Fe']:1.00}) - reIron_mat=mix.mix_by_volume() - reIron_mat.metadata['mat_number']=312 - reIron_mat.metadata['mixturecitation']=str(material_library['Fe'].metadata['citation']) - print('reIron_mat ', reIron_mat.metadata['mat_number'], reIron_mat.density) - reIron_mat=reIron_mat.expand_elements() - return reIron_mat +def get_consituent_citations(materials): + citation_str = "" + for mat in materials: + citation_str = " ".join([citation_str, mat.metadata["citation"]]) + return citation_str + + +# Mix Materials by Volume +def mix_by_volume(material_library, vol_fracs, citation): + """ + Mixes materials by volume, adds list of constituent citations to the + metadata + + Arguments: + material_library (PyNE material library): library containing constituent + materials. + vol_fracs (dict): dictionary where the keys are names of materials (str) + and values are the volume fraction (float) + citation (str): citation for the mixture + """ + mix_dict = {} + + for name, volume_fraction in vol_fracs.items(): + mix_dict[material_library[name]] = volume_fraction + + mix = MultiMaterial(mix_dict) + mat = mix.mix_by_volume() + mat.metadata["mixture_citation"] = citation + mat.metadata["constituent_citation"] = get_consituent_citations( + list(mix_dict.keys()) + ) + return mat + + +mat_data = {} + + +# fullreference: DavisFusEngDes_2018 +# https://doi.org/10.1016/j.fusengdes.2017.06.008 +mat_data["FNSFFW"] = { + "vol_fracs": {"MF82H": 0.34, "HeT410P80": 0.66}, + "mixture_citation": "DavisFusEngDes_2018", +} + +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 +# DOI:10.1016/S0022-3115(00)00060-X +mat_data["FNSFFWstruct"] = { + "vol_fracs": {"MF82H": 1.0}, + "mixture_citation": "DavisFusEngDes_2018", +} + +# fullreference: pnnl-15870rev1 +mat_data["reIron"] = { + "vol_fracs": {"Fe": 1.0}, + "mixture_citation": "pnnl-15870rev1", +} # # blanket materials -#FNSF OB DCLL Blanket (73.7% LiPb (90% Li-6), 14.9% He/void, 7.5% FS, 3.9% SiC) -# fullreference: EliasUWFMD1424_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1424.pdf -#FNSF IB DCLL Blanket (80% LiPb (90% Li-6), 12% He/void, 5% FS, 3% SiC) -# fullreference: MadaniUWFDM1423_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1423.pdf - +# FNSF OB DCLL Blanket (73.7% LiPb (90% Li-6), 14.9% He/void, 7.5% FS, 3.9% SiC) +# fullreference: EliasUWFMD1424_2015 +# https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1424.pdf +# FNSF IB DCLL Blanket (80% LiPb (90% Li-6), 12% He/void, 5% FS, 3% SiC) +# fullreference: MadaniUWFDM1423_2015 +# https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1423.pdf # FNSF DCLL approximate average 77% 13.5% 6% 3.5% - -""" -FNSFDCLL 77% LiPb (90% Li-6), 13.5% He/void, 6% FS, 3.5% SiC -""" -def mix_FNSFDCLL(material_library): - mix=MultiMaterial({material_library['MF82H']:0.06, material_library['Pb157Li90']:0.77, material_library['HeT410P80']: 0.135, material_library['SiC']: 0.035}) - FNSFDCLL_mat=mix.mix_by_volume() - FNSFDCLL_mat.metadata['mat_number']=220 - FNSFDCLL_mat.metadata['mixturecitation']='EliasUWFMD1424_2015 and MadaniUWFDM1423_2015' - constituentCitationList=[str(material_library['MF82H'].metadata['citation']), str(material_library['Pb157Li90'].metadata['citation']), str(material_library['HeT410P80'].metadata['citation']), str(material_library['SiC'].metadata['citation'])] - constituentCitation=" ".join(constituentCitationList) - FNSFDCLL_mat.metadata['constituentcitation']=constituentCitation - print('FNSFDCLL_mat ', FNSFDCLL_mat.metadata['mat_number'], FNSFDCLL_mat.density) - print(" Constituent Citations: ", constituentCitation) - FNSFDCLL_mat=FNSFDCLL_mat.expand_elements() - return FNSFDCLL_mat +mat_data["FNSFDCLL"] = { + "vol_fracs": { + "MF82H": 0.06, + "Pb157Li90": 0.77, + "HeT410P80": 0.135, + "SiC": 0.035, + }, + "mixture_citation": "EliasUWFMD1424_2015 and MadaniUWFDM1423_2015", +} # EUDEMO -# fullreference: EadeFusEngDes_2017 T. Eade et al., Fusion Engineering and Design 124 (2017) page 1241-1245 http://dx.doi.org/10.1016/j.fusengdes.2017.02.100 -# fullreference: GilbertNucFus_2017 M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 https://doi.org/10.1088/1741-4326/aa5bd7 +# fullreference: EadeFusEngDes_2017 T. Eade et al., +# Fusion Engineering and Design 124 (2017) +# page 1241-1245 http://dx.doi.org/10.1016/j.fusengdes.2017.02.100 +# fullreference: GilbertNucFus_2017 M. Gilbert et al., +# Nucl. Fusion 57 (2017) 046015 https://doi.org/10.1088/1741-4326/aa5bd7 # -# fullreference: ZhouEnergies_2023 G. Zhou et al., Energies 2023, 16, 5377 https://doi.org/10.3390/en16145377 -#note: latest design uses mixed pebbles Li4SiO4+35 mole% Li2TiO3 and Be12Ti blocks - -""" -EUDEMOHCPB 11.8% Eurofer,37.9% Be,13% Li4SiO4 (60% Li-6),8.7% He80bar,28.6% He1bar -""" -def mix_EUDEMOHCPB(material_library): - mix=MultiMaterial({material_library['EUROFER97']:0.118, material_library['Be']:0.379, material_library['Li4SiO4Li60']:0.13, material_library['HeT410P80']: 0.087, material_library['HeT410P1']: 0.286}) - EUDEMOHCPB_mat=mix.mix_by_volume() - EUDEMOHCPB_mat.metadata['mat_number']=221 - EUDEMOHCPB_mat.metadata['mixturecitation']='EadeFusEngDes_2017' - constituentCitationList=[str(material_library['EUROFER97'].metadata['citation']), str(material_library['Be'].metadata['citation']), str(material_library['Li4SiO4Li60'].metadata['citation']), str(material_library['HeT410P80'].metadata['citation']), str(material_library['HeT410P1'].metadata['citation'])] - constituentCitation=" ".join(constituentCitationList) - EUDEMOHCPB_mat.metadata['constituentcitation']=constituentCitation - print('EUDEMOHCPB_mat ', EUDEMOHCPB_mat.metadata['mat_number'], EUDEMOHCPB_mat.density) - print(" Constituent Citations: ", constituentCitation) - EUDEMOHCPB_mat=EUDEMOHCPB_mat.expand_elements() - return EUDEMOHCPB_mat - -""" -EUDEMOHCPBacb 11.8% Eurofer,37.9% Be,8.45% Li4SiO4 (60% Li-6),4.55% Li2TiO3 (60% Li-6),8.7% He80bar,28.6% He1bar -""" -def mix_EUDEMOHCPBacb(material_library): - mix=MultiMaterial({material_library['EUROFER97']:0.118, material_library['Be12Ti']:0.379, material_library['Li4SiO4Li60']:0.0845, material_library['Li2TiO3Li60']:0.0455, material_library['HeT410P80']: 0.087, material_library['HeT410P1']: 0.286}) - EUDEMOHCPBacb_mat=mix.mix_by_volume() - EUDEMOHCPBacb_mat.metadata['mat_number']=222 - EUDEMOHCPBacb_mat.metadata['mixturecitation']='ZhouEnergies_2023 and ???' - constituentCitationList=[str(material_library['EUROFER97'].metadata['citation']), str(material_library['Be12Ti'].metadata['citation']), str(material_library['Li4SiO4Li60'].metadata['citation']), str(material_library['Li2TiO3Li60'].metadata['citation']), str(material_library['HeT410P80'].metadata['citation']), str(material_library['HeT410P1'].metadata['citation'])] - constituentCitation=" ".join(constituentCitationList) - EUDEMOHCPBacb_mat.metadata['constituentcitation']=constituentCitation - print('EUDEMOHCPBacb_mat ', EUDEMOHCPBacb_mat.metadata['mat_number'], EUDEMOHCPBacb_mat.density) - print(" Constituent Citations: ", constituentCitation) - EUDEMOHCPBacb_mat=EUDEMOHCPBacb_mat.expand_elements() - return EUDEMOHCPBacb_mat +mat_data["EUDEMOHCPB"] = { + "vol_fracs": { + "EUROFER97": 0.118, + "Be": 0.379, + "Li4SiO4Li60.0": 0.13, + "HeT410P80": 0.087, + "HeT410P1": 0.286, + }, + "mixture_citation": "EadeFusEngDes_2017", +} + +# fullreference: ZhouEnergies_2023 G. Zhou et al., Energies 2023, 16, +# 5377 https://doi.org/10.3390/en16145377 +# note: latest design uses mixed pebbles Li4SiO4+35 mole% Li2TiO3 and Be12Ti blocks +mat_data["EUDEMOHCPBacb"] = { + "vol_fracs": { + "EUROFER97": 0.118, + "Be12Ti": 0.379, + "Li4SiO4Li60.0": 0.0845, + "Li2TiO3Li60.0": 0.0455, + "HeT410P80": 0.087, + "HeT410P1": 0.286, + }, + "mixture_citation": "ZhouEnergies_2023 and ???", +} + +# fullreference: BohmFusSciTec_2019 +# https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 +# https://doi.org/10.1016/j.fusengdes.2018.11.028 # generic breeder materials - -""" -PbLi90BZ 100% LiPb (90% Li-6) -""" -def mix_PbLi90BZ(material_library): - mix=MultiMaterial({material_library['Pb157Li90']:1.00}) - PbLi90BZ_mat=mix.mix_by_volume() - PbLi90BZ_mat.metadata['mat_number']=223 - PbLi90BZ_mat.metadata['mixturecitation']='ARIES and MELCOR TMAP' - print('PbLi90BZ_mat ', PbLi90BZ_mat.metadata['mat_number'], PbLi90BZ_mat.density) - PbLi90BZ_mat=PbLi90BZ_mat.expand_elements() - return PbLi90BZ_mat - -""" -FlibeLi60BZ 100% Flibe (60% Li-6) -""" -# fullreference: SohalINLEXT-10-18297_2013 M. Sohal et al., "Engineering Database of Liquid Salt Thermophysical and Thermochemical Properties", INL/EXT-10-18297, June 2013. https://inldigitallibrary.inl.gov/sites/STI/STI/5698704.pdf -def mix_FlibeLi60BZ(material_library): - mix=MultiMaterial({material_library['FlibeLi60']:1.00}) - FlibeLi60BZ_mat=mix.mix_by_volume() - FlibeLi60BZ_mat.metadata['mat_number']=224 - FlibeLi60BZ_mat.metadata['mixturecitation']='SohalINLEXT-10-18297_2013 and density ???' - print('FlibeLi60BZ_mat ', FlibeLi60BZ_mat.metadata['mat_number'], FlibeLi60BZ_mat.density) - FlibeLi60BZ_mat=FlibeLi60BZ_mat.expand_elements() - return FlibeLi60BZ_mat - -# shielding - -""" -FNSFIBSR (28% MF82H, 20% He, 52% WC filler) -""" -# fullreference: ElGuebalyFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333865 -def mix_FNSFIBSR(material_library): - mix=MultiMaterial({material_library['MF82H']:0.28, material_library['WC']:0.52, material_library['HeT410P80']: 0.20}) - FNSFIBSR_mat=mix.mix_by_volume() - FNSFIBSR_mat.metadata['mat_number']=2 - FNSFIBSR_mat.metadata['mixturecitation']='ElGuebalyFusSciTec_2017 and Others' - print('FNSFIBSR_mat ', FNSFIBSR_mat.metadata['mat_number'], FNSFIBSR_mat.density) - FNSFIBSR_mat=FNSFIBSR_mat.expand_elements() - return FNSFIBSR_mat - -""" -FNSFIBSRstruct (100% FS MF82H) -""" -# fullreference: SchnabelNDS_2024 G. Schnabel et al., "FENDL: A Library for Fusion Research and Applications, Nuclear Data Sheets, vol. 193, pages 1-78, 2024. https://doi.org/10.1016/j.nds.2024.01.001 -def mix_FNSFIBSRstruct(material_library): - mix=MultiMaterial({material_library['MF82H']:1.00}) - FNSFIBSRstruct_mat=mix.mix_by_volume() - FNSFIBSRstruct_mat.metadata['mat_number']=400 - FNSFIBSRstruct_mat.metadata['mixturecitation']='SchnabelNDS2024' - print('FNSFIBSRstruct_mat ', FNSFIBSRstruct_mat.metadata['mat_number'], FNSFIBSRstruct_mat.density) - FNSFIBSRstruct_mat=FNSFIBSRstruct_mat.expand_elements() - return FNSFIBSRstruct_mat - -""" -FNSFIBSRfill -""" -def mix_FNSFIBSRfill(material_library): - mix=MultiMaterial({material_library['MF82H']:0.05, material_library['WC']:0.686, material_library['HeT410P80']: 0.264}) - FNSFIBSRfill_mat=mix.mix_by_volume() - FNSFIBSRfill_mat.metadata['mat_number']=401 - FNSFIBSRfill_mat.metadata['mixturecitation']='SchnabelNDS2024' - print('FNSFIBSRfill_mat ', FNSFIBSRfill_mat.metadata['mat_number'], FNSFIBSRfill_mat.density) - FNSFIBSRfill_mat=FNSFIBSRfill_mat.expand_elements() - return FNSFIBSRfill_mat - -""" -FNSFCC (100% SS316LN closest to SS316LNIG) -""" -def mix_FNSFCC(material_library): - mix=MultiMaterial({material_library['SS316LNIG']:1.00}) - FNSFCC_mat=mix.mix_by_volume() - FNSFCC_mat.metadata['mat_number']=17 - FNSFCC_mat.metadata['mixturecitation']='DavisFusEngDes_2018' - print('FNSFCC_mat ', FNSFCC_mat.metadata['mat_number'], FNSFCC_mat.density) - FNSFCC_mat=FNSFCC_mat.expand_elements() - return FNSFCC_mat - -""" -FNSFIBWP (29% JK2LB Steel, 43% Cu, 6% Ternary Nb3Sn, 8% Hybrid Electric Insulator, 14% Liquid He) -""" -def mix_FNSFIBWP(material_library): - mix=MultiMaterial({material_library['JK2LBSteel']:0.29, material_library['Cu']:0.43, material_library['TernaryNb3Sn']:0.06, material_library['Eins']:0.08, material_library['LHe']:0.14}) - FNSFIBWP_mat=mix.mix_by_volume() - FNSFIBWP_mat.metadata['mat_number']=19 - FNSFIBWP_mat.metadata['mixturecitation']='SchnabelNDS2024' - print('FNSFIBWP_mat ', FNSFIBWP_mat.metadata['mat_number'], FNSFIBWP_mat.density) - FNSFIBWP_mat=FNSFIBWP_mat.expand_elements() - return FNSFIBWP_mat - -""" -IFMIFDONESspecimenstack (75% EUROFER97, 25% Na) -""" -# fullreference: QiuNucMatEnergy_2018 https://doi.org/10.1016/j.nme.2018.04.009 -def mix_IFMIFDONESspecimenstack(material_library): - mix=MultiMaterial({material_library['EUROFER97']:0.75,material_library['Na']:0.25}) - IFMIFDONESspecimenstack_mat=mix.mix_by_volume() - IFMIFDONESspecimenstack_mat.metadata['mat_number']=29 - IFMIFDONESspecimenstack_mat.metadata['mixturecitation']='QiuNucMatEnergy_2018' - constituentCitationList=[str(material_library['EUROFER97'].metadata['citation']),str(material_library['Na'].metadata['citation'])] - constituentCitation=" ".join(constituentCitationList) - IFMIFDONESspecimenstack_mat.metadata['constituentcitation']=constituentCitation - print('IFMIFDONESspecimenstack_mat ', IFMIFDONESspecimenstack_mat.metadata['mat_number'], IFMIFDONESspecimenstack_mat.density) - print (' Constituent Citations: ', constituentCitation) - IFMIFDONESspecimenstack_mat=IFMIFDONESspecimenstack_mat.expand_elements() - return IFMIFDONESspecimenstack_mat - -def mix_Pb(material_library): - mix=MultiMaterial({material_library['Pb']:1.00}) - Pb_mat=mix.mix_by_volume() - Pb_mat.metadata['mat_number']=30 - Pb_mat.metadata['mixturecitation']=str(material_library['Pb'].metadata['citation']) - print('Pb_mat ', Pb_mat.metadata['mat_number'], Pb_mat.density) - Pb_mat=Pb_mat.expand_elements() - return Pb_mat - -def mix_SS316LN(material_library): - mix=MultiMaterial({material_library['SS316LN']:1.00}) - SS316LN_mat=mix.mix_by_volume() - SS316LN_mat.metadata['mat_number']=32 - SS316LN_mat.metadata['mixturecitation']=str(material_library['SS316LN'].metadata['citation']) - print('SS316LN_mat ', SS316LN_mat.metadata['mat_number'], SS316LN_mat.density) - SS316LN_mat=SS316LN_mat.expand_elements() - return SS316LN_mat - -def mix_Concrete(material_library): - mix=MultiMaterial({material_library['Concrete']:1.00}) - Concrete_mat=mix.mix_by_volume() - Concrete_mat.metadata['mat_number']=31 - Concrete_mat.metadata['mixturecitation']=str(material_library['Concrete'].metadata['citation']) - print('Concrete_mat ', Concrete_mat.metadata['mat_number'], Concrete_mat.density) - Concrete_mat=Concrete_mat.expand_elements() - return Concrete_mat - -######################################################################## +mat_data["Pbli90BZ"] = { + "vol_fracs": {"Pb157Li90": 1.00}, + "mixture_citation": "ARIES and MELCOR TMAP", +} + + +# fullreference: SohalINLEXT-10-18297_2013 M. Sohal et al., +# "Engineering Database of Liquid Salt Thermophysical and Thermochemical +# Properties", INL/EXT-10-18297, June 2013. +# https://inldigitallibrary.inl.gov/sites/STI/STI/5698704.pdf +mat_data["FlibeLi60BZ"] = { + "vol_fracs": {"FlibeLi60.0": 1.0}, + "mixture_citation": "SohalINLEXT-10-18297_2013 and density ???", +} + + +# shielding +# fullreference: ElGuebalyFusSciTec_2017 +# https://doi.org/10.1080/15361055.2017.1333865 +mat_data["FNSFIBSR"] = { + "vol_fracs": {"MF82H": 0.28, "WC": 0.52, "HeT410P80": 0.20}, + "mixture_citation": "ElGuebalyFusSciTec_2017 and Others", +} + + +# fullreference: SchnabelNDS_2024 G. Schnabel et al., +# "FENDL: A Library for Fusion Research and Applications, Nuclear Data Sheets, +# vol. 193, pages 1-78, 2024. https://doi.org/10.1016/j.nds.2024.01.001 +mat_data["FNSFIBSRstruct"] = { + "vol_fracs": {"MF82H": 1.0}, + "mixture_citation": "SchnabelNDS2024", +} + +mat_data["FNSFIBSRfill"] = { + "vol_fracs": {"MF82H": 0.05, "WC": 0.686, "HeT410P80": 0.264}, + "mixture_citation": "SchnabelNDS2024", +} + +mat_data["FNSFCC"] = { + "vol_fracs": {"SS316LNIG": 1.0}, + "mixture_citation": "DavisFusEngDes_2018", +} + +mat_data["FNSFIBWP"] = { + "vol_fracs": { + "JK2LBSteel": 0.29, + "Cu": 0.43, + "TernaryNb3Sn": 0.06, + "Eins": 0.08, + "LHe": 0.14, + }, + "mixture_citation": "SchnabelNDS2024", +} + +mat_data["IFMIFDONESspecimenstack"] = { + "vol_fracs": {"EUROFER97": 0.75, "Na": 0.25}, + "mixture_citation": "QiuNucMatEnergy_2018", +} + +mat_data["Pb"] = { + "vol_fracs": {"Pb": 1.0}, + "mixture_citation": "pnnl-15870rev1", +} + +mat_data["SS316LN"] = { + "vol_fracs": {"SS316LN": 1.0}, + "mixture_citation": "GilbertHandbookITERCCFE_2016", +} + +mat_data["Concrete"] = { + "vol_fracs": {"Concrete": 1.0}, + "mixture_citation": "pnnl-15870rev1", +} + + +######################################################################## def main(): # # remove old mixmat_lib - try: - os.remove("mixedPureFusionMaterials_libv1.h5") - except: - pass + try: + os.remove("mixedPureFusionMaterials_libv1.json") + except: + pass + + # Load material library + mat_lib = MaterialLibrary() + mat_lib.from_json("PureFusionMaterials_libv1.json") + # create material library object mixmat_lib = MaterialLibrary() - - # Load material library - mat_lib=load_matlib() - - # mix FNSFFW - FNSFFW_mat = mix_FNSFFW(mat_lib) - mixmat_lib['FNSFFW']= FNSFFW_mat - - FNSFFWstruct_mat = mix_FNSFFWstruct(mat_lib) - mixmat_lib['FNSFFWstruct']= FNSFFWstruct_mat - - # mix reIron - reIron_mat = mix_reIron(mat_lib) - mixmat_lib['reIron']= reIron_mat - - # blanket materials - FNSFDCLL_mat = mix_FNSFDCLL(mat_lib) - mixmat_lib['FNSFDCLL']= FNSFDCLL_mat - - EUDEMOHCPB_mat = mix_EUDEMOHCPB(mat_lib) - mixmat_lib['EUDEMOHCPB']= EUDEMOHCPB_mat - - EUDEMOHCPBacb_mat = mix_EUDEMOHCPBacb(mat_lib) - mixmat_lib['EUDEMOHCPBacb']= EUDEMOHCPBacb_mat - - PbLi90BZ_mat = mix_PbLi90BZ(mat_lib) - mixmat_lib['PbLi90BZ']= PbLi90BZ_mat - FlibeLi60BZ_mat = mix_FlibeLi60BZ(mat_lib) - mixmat_lib['FlibeLi60BZ']= FlibeLi60BZ_mat - - # homogenized shields - FNSFIBSR_mat = mix_FNSFIBSR(mat_lib) - mixmat_lib['FNSFIBSR']= FNSFIBSR_mat - - # shield fillers - FNSFIBSRfill_mat = mix_FNSFIBSRfill(mat_lib) - mixmat_lib['FNSFIBSRfill']= FNSFIBSRfill_mat - - # shield structure or shell - FNSFIBSRstruct_mat = mix_FNSFIBSRstruct(mat_lib) - mixmat_lib['FNSFIBSRstruct']= FNSFIBSRstruct_mat - - # magnets - FNSFCC_mat = mix_FNSFCC(mat_lib) - mixmat_lib['FNSFCC']= FNSFCC_mat - FNSFIBWP_mat = mix_FNSFIBWP(mat_lib) - mixmat_lib['FNSFIBWP']= FNSFIBWP_mat - - # other - IFMIFDONESspecimenstack_mat = mix_IFMIFDONESspecimenstack(mat_lib) - mixmat_lib['IFMIFDONESspecimenstack']= IFMIFDONESspecimenstack_mat - - Pb_mat = mix_Pb(mat_lib) - mixmat_lib['Pb']= Pb_mat - - Concrete_mat = mix_Concrete(mat_lib) - mixmat_lib['Concrete']= Concrete_mat - - SS316LN_mat = mix_SS316LN(mat_lib) - mixmat_lib['SS316LN']= SS316LN_mat - + for mat_name, mat_input in mat_data.items(): + mixmat_lib[mat_name] = mix_by_volume( + mat_lib, mat_input["vol_fracs"], mat_input["mixture_citation"] + ) + # write fnsf material library - mixmat_lib.write_hdf5("mixedPureFusionMaterials_libv1.h5") # don't set datapath,nucpath...will be pyne default values - # change datapath to be able to read with older version of uwuw_preproc - #mixmat_lib.write_hdf5("mixedPureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mixmat_lib.write_json("mixedPureFusionMats_libv1.json") + if __name__ == "__main__": main() diff --git a/pureMaterials/mixedPureFusionMaterials_libv1.h5 b/pureMaterials/mixedPureFusionMaterials_libv1.h5 deleted file mode 100644 index d84a3ebbe90fad7b4dc2536982a79dc7948559db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25371 zcmeHt2UJu`)^3xN&pdyk%vSd&}q96j2QBZOgkk|yF zCI5|f-#a??+_`VP^}qFIILfJ0U+vme_0_I@>eTM28?y4)m=u_R^9vmvfDFL<{s_CB zK`%;+9|$ZDD>sEcAVAYdXj+8$;{gG1{to~kgW~v5{lCg-X~@X|Ad)csuoPMiFpKiz z2^|Jpr2kb6+>nz}KOe9jbkwxa^c~dBpjm)}nY)!M(9GV%9%$}r=IR5(VfHBu1OCkv zp8eiH`k}xEYL|ayzh5wZ$Y0p+ze)UmnAorO3-gDOQ2T)m7iPb1PylAPk}!e4nQE%4 z$)4LV%({s~!JM_5U^E@ce)}+7Akxq3ipv{D9=8AM&vI_^%=GVxZp{_|*?c zLU~Dm+7FB-M-K~oprw^P(9QijWZ~rC?BoV?2Rb?anm2K^p#I<(N*n@oXN!RF12BS$!%`&3e)qft53=Bqzn9T| zzoS4r@;Q!(i1@uCI#dr5LL~Ng0f6%lg+DR?0;mT+2YnLB?*IV7(31bR$q&0i`eT3p z4d-9?hZ$PD$ojA4VE&OC>tD1cn~DJco1gGx)HX9yAcxVED&kE zjuE*tj}co8A0rLkeT-x($%*W2&4~

_o;>?nI__>qM^PHbvPwcz_yQ%ZipT&5D+d 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 Jc7-{B{|6+oCt&~p From 4f2462b3ee1924d0912695492128fedc5fb037ba Mon Sep 17 00:00:00 2001 From: FusionSandwich Date: Sun, 14 Jul 2024 22:34:38 -0500 Subject: [PATCH 2/4] added mixed script --- pureMaterials/mixPureFusionMaterials.py | 64 +- .../mixedPureFusionMaterials_libv1.json | 638 ++++++++++++++++++ 2 files changed, 684 insertions(+), 18 deletions(-) create mode 100644 pureMaterials/mixedPureFusionMaterials_libv1.json diff --git a/pureMaterials/mixPureFusionMaterials.py b/pureMaterials/mixPureFusionMaterials.py index 77c44f8..184aa69 100755 --- a/pureMaterials/mixPureFusionMaterials.py +++ b/pureMaterials/mixPureFusionMaterials.py @@ -13,32 +13,56 @@ from pyne import material from pyne.material import Material, MultiMaterial from pyne.material_library import MaterialLibrary +from working_multi_createPurematlib import ( + make_mat, + make_mat_from_atom, + update_nucvec, + update_atom_frac, +) +from pyne import nucname def get_consituent_citations(materials): - citation_str = "" + citation_list = [] for mat in materials: - citation_str = " ".join([citation_str, mat.metadata["citation"]]) - return citation_str + citation_list.append(mat.metadata["citation"]) + + return ", ".join(citation_list) # Mix Materials by Volume -def mix_by_volume(material_library, vol_fracs, citation): - """ - Mixes materials by volume, adds list of constituent citations to the - metadata - - Arguments: - material_library (PyNE material library): library containing constituent - materials. - vol_fracs (dict): dictionary where the keys are names of materials (str) - and values are the volume fraction (float) - citation (str): citation for the mixture - """ +def mix_by_volume(material_library, vol_fracs, citation, mass_enrichment=None): mix_dict = {} for name, volume_fraction in vol_fracs.items(): - mix_dict[material_library[name]] = volume_fraction + material = material_library[name] + + if mass_enrichment and name in mass_enrichment: + material = material.collapse_elements({69}) # Collapse material elements + nucvec = dict(material.to_atom_frac()) # Default to atom fraction + + # Check if enrichment type is specified and apply accordingly + enrichment_info = mass_enrichment[name] + if enrichment_info["type"] == "mass": + nucvec = dict(material) + # Apply enrichment + enriched_material = make_mat( + nucvec=nucvec, + density=material.density, + citation=material.metadata.get("citation", ""), + mass_enrichment=enrichment_info["data"], # Pass enrichment data + ) + else: + enriched_material = make_mat_from_atom( + atom_frac=nucvec, + density=material.density, + citation=material.metadata.get("citation", ""), + mass_enrichment=enrichment_info["data"], # Pass enrichment data + ) + mix_dict[enriched_material.expand_elements()] = volume_fraction + else: + mix_dict[material.expand_elements()] = volume_fraction + mix = MultiMaterial(mix_dict) mat = mix.mix_by_volume() @@ -46,7 +70,8 @@ def mix_by_volume(material_library, vol_fracs, citation): mat.metadata["constituent_citation"] = get_consituent_citations( list(mix_dict.keys()) ) - return mat + print("meta") + return mat.expand_elements() mat_data = {} @@ -222,7 +247,10 @@ def main(): mixmat_lib = MaterialLibrary() for mat_name, mat_input in mat_data.items(): mixmat_lib[mat_name] = mix_by_volume( - mat_lib, mat_input["vol_fracs"], mat_input["mixture_citation"] + mat_lib, + mat_input["vol_fracs"], + mat_input["mixture_citation"], + mat_input.get("mass_enrichment"), ) # write fnsf material library diff --git a/pureMaterials/mixedPureFusionMaterials_libv1.json b/pureMaterials/mixedPureFusionMaterials_libv1.json new file mode 100644 index 0000000..a6e40e0 --- /dev/null +++ b/pureMaterials/mixedPureFusionMaterials_libv1.json @@ -0,0 +1,638 @@ +{ + "Concrete" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Al27" : 0.04574604574604575, + "Ca40" : 0.08017233800922423, + "Ca42" : 0.0005618092311226245, + "Ca43" : 0.0001200187190201692, + "Ca44" : 0.001897539228386041, + "Ca46" : 3.804028650010023e-06, + "Ca48" : 0.0001855737246798946, + "Fe54" : 0.0006999370088460896, + "Fe56" : 0.01139396293108826, + "Fe57" : 0.0002678427690259882, + "Fe58" : 3.626968905206154e-05, + "H1" : 0.005556728345316543, + "H2" : 1.277212689016125e-06, + "K39" : 0.01788017933728963, + "K40" : 2.300805126230926e-06, + "K41" : 0.001356539096603378, + "Mg24" : 0.001999419151102834, + "Mg25" : 0.0002636848376465977, + "Mg26" : 0.0003018985762531342, + "Na23" : 0.01710101710101710, + "O16" : 0.4967267244665386, + "O17" : 0.0002010955945658463, + "O18" : 0.001148678015393714, + "S32" : 0.001215198947223511, + "S33" : 9.894597977716469e-06, + "S34" : 5.776382351146933e-05, + "S36" : 1.439142885858669e-07, + "Si28" : 0.2894642400169712, + "Si29" : 0.01523039312435839, + "Si30" : 0.01039768195098547 + }, + "density" : 2.350, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "pnnl-15870rev1", + "mat_number" : 17, + "mixture_citation" : "pnnl-15870rev1", + "name" : "Concrete" + } + }, + "EUDEMOHCPB" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Be9" : 0.3636354141639836, + "C12" : 0.0005156692878392044, + "C13" : 6.043676402768576e-06, + "Cr50" : 0.001761768248652430, + "Cr52" : 0.03533060706358631, + "Cr53" : 0.004083348876227028, + "Cr54" : 0.001035597463839321, + "Fe54" : 0.02386813383181116, + "Fe56" : 0.3885387237377958, + "Fe57" : 0.009133546270877238, + "Fe58" : 0.001236811000692690, + "He3" : 2.710145020912407e-10, + "He4" : 0.0002684071835915975, + "Li6" : 0.02106574034981845, + "Li7" : 0.01404382689987898, + "Mn55" : 0.001991994954378441, + "O16" : 0.08781912106269121, + "O17" : 3.555282511388526e-05, + "O18" : 0.0002030812692919804, + "Si28" : 0.03550120028187565, + "Si29" : 0.001867924123020682, + "Si30" : 0.001275218622471421, + "Ta180" : 7.930530333530631e-08, + "Ta181" : 0.0006639190128228121, + "V50" : 2.208878800283691e-06, + "V51" : 0.0008989316957994877, + "W180" : 6.127912823866933e-06, + "W182" : 0.001368299172599274, + "W183" : 0.0007429506957864264, + "W184" : 0.001599477627215758, + "W186" : 0.001500274233994403 + }, + "density" : 1.928167534540, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "MergiaJNM_2008, HernandezFusEngDes_2018, HernandezFusEngDes_2018, WidodoJoPCS_2018, WidodoJoPCS_2018", + "mat_number" : 5, + "mixture_citation" : "EadeFusEngDes_2017", + "name" : "EUDEMOHCPB" + } + }, + "EUDEMOHCPBacb" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Be9" : 0.2802263071842230, + "C12" : 0.0004651577395610474, + "C13" : 5.451677888226066e-06, + "Cr50" : 0.001589197098798572, + "Cr52" : 0.03186985478208645, + "Cr53" : 0.003683371063388164, + "Cr54" : 0.0009341571948043968, + "Fe54" : 0.02153016951478367, + "Fe56" : 0.3504800435626545, + "Fe57" : 0.008238884567549168, + "Fe58" : 0.001115661186178383, + "He3" : 2.444677163328246e-10, + "He4" : 0.0002421157934857383, + "Li6" : 0.01748177258242850, + "Li7" : 0.01165451505495234, + "Mn55" : 0.001796872321169953, + "O16" : 0.08357184130224581, + "O17" : 3.383334998471533e-05, + "O18" : 0.0001932594565210048, + "Si28" : 0.02081542958203257, + "Si29" : 0.001095220520393704, + "Si30" : 0.0007476993236001096, + "Ta180" : 7.153708104128383e-08, + "Ta181" : 0.0005988859033089432, + "Ti46" : 0.01236416069427285, + "Ti47" : 0.01139266011548455, + "Ti48" : 0.1152804433045910, + "Ti49" : 0.008636372483824361, + "Ti50" : 0.008437625871788921, + "V50" : 1.992511661901934e-06, + "V51" : 0.0008108783002959341, + "W180" : 5.527663067391986e-06, + "W182" : 0.001234269647580787, + "W183" : 0.0006701761660180215, + "W184" : 0.001442803391824541, + "W186" : 0.001353317306001993 + }, + "density" : 2.137547534539999, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "MergiaJNM_2008, HernandezFusEngDes_2018, HernandezFusEngDes_2018, HernandezFusEngDes_2018, WidodoJoPCS_2018, WidodoJoPCS_2018", + "mat_number" : 6, + "mixture_citation" : "ZhouEnergies_2023 and ???", + "name" : "EUDEMOHCPBacb" + } + }, + "FNSFCC" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "B10" : 1.843094346673052e-06, + "B11" : 8.156905653326953e-06, + "C12" : 0.0002965247117762065, + "C13" : 3.475288223793587e-06, + "Co59" : 0.0005000000000000002, + "Cr50" : 0.007303951438756696, + "Cr52" : 0.1464738841170582, + "Cr53" : 0.01692877705241688, + "Cr54" : 0.004293387391768260, + "Cu63" : 0.002054375857251412, + "Cu65" : 0.0009456241427485895, + "Fe54" : 0.03660805776326861, + "Fe56" : 0.5959262731677325, + "Fe57" : 0.01400869426256224, + "Fe58" : 0.001896974806436652, + "Mn55" : 0.01800000000000001, + "Mo100" : 0.002555996020206574, + "Mo92" : 0.003479076883588471, + "Mo94" : 0.002238519751335798, + "Mo95" : 0.003916506358541127, + "Mo96" : 0.004165106491740433, + "Mo97" : 0.002423665658707869, + "Mo98" : 0.006221128835879741, + "N14" : 0.0006972712866905625, + "N15" : 2.728713309437776e-06, + "Nb93" : 0.00010, + "Ni58" : 0.08231731551372470, + "Ni60" : 0.03280043169915597, + "Ni61" : 0.001449614977981168, + "Ni62" : 0.004697786892012999, + "Ni64" : 0.001234850917125208, + "P31" : 0.0002500000000000002, + "S32" : 9.471533375094034e-05, + "S33" : 7.712071771721352e-07, + "S34" : 4.502242069185177e-06, + "S36" : 1.121700270238335e-08, + "Si28" : 0.004593324339442629, + "Si29" : 0.0002416814437365161, + "Si30" : 0.0001649942168208575, + "Ta180" : 1.194360003186632e-08, + "Ta181" : 9.998805639996817e-05, + "Ti46" : 7.920095256837683e-05, + "Ti47" : 7.297782322192599e-05, + "Ti48" : 0.0007384505222790883, + "Ti49" : 5.532190533329482e-05, + "Ti50" : 5.404879659731443e-05 + }, + "density" : 7.930, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "GilbertHandbookITERCCFE_2016", + "mat_number" : 12, + "mixture_citation" : "DavisFusEngDes_2018", + "name" : "FNSFCC" + } + }, + "FNSFDCLL" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "C12" : 0.004345292055387268, + "C13" : 5.092709548075828e-05, + "Cr50" : 0.0001908904204381112, + "Cr52" : 0.003828128042300889, + "Cr53" : 0.0004424374116031898, + "Cr54" : 0.0001122086491388062, + "Fe54" : 0.003104703738489954, + "Fe56" : 0.05054008983849047, + "Fe57" : 0.001188067548669001, + "Fe58" : 0.0001608811046860430, + "He3" : 1.003860088203332e-10, + "He4" : 9.942023652444888e-05, + "Li6" : 0.004534406366803146, + "Li7" : 0.0005038229296447939, + "Pb204" : 0.01267020588385373, + "Pb206" : 0.2202486660280086, + "Pb207" : 0.2029527343856481, + "Pb208" : 0.4835359068735532, + "Si28" : 0.009312879287519582, + "Si29" : 0.0004900046121769719, + "Si30" : 0.0003345226922464468, + "Ta180" : 1.456693859957158e-09, + "Ta181" : 1.219498203542270e-05, + "V50" : 2.989595153901113e-07, + "V51" : 0.0001216654277774364, + "W180" : 1.432563850570029e-06, + "W182" : 0.0003198766019967073, + "W183" : 0.0001736846362099288, + "W184" : 0.0003739207613431573, + "W186" : 0.0003507293095279017 + }, + "density" : 7.76292179230, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "KluehJNM_2000, BohmFusSciTec_2019, WidodoJoPCS_2018, pnnl-15870rev1", + "mat_number" : 4, + "mixture_citation" : "EliasUWFMD1424_2015 and MadaniUWFDM1423_2015", + "name" : "FNSFDCLL" + } + }, + "FNSFFW" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "C12" : 0.0009870274040818497, + "C13" : 1.156802309466893e-05, + "Cr50" : 0.003125868217312195, + "Cr52" : 0.06268635037717614, + "Cr53" : 0.007244999722386118, + "Cr54" : 0.001837438721364473, + "Fe54" : 0.05084013497399434, + "Fe56" : 0.8276039214731565, + "Fe57" : 0.01945484001701635, + "Fe58" : 0.002634459763617219, + "He3" : 1.418215470078317e-09, + "He4" : 0.001404571405265982, + "Ta180" : 2.385364875169405e-08, + "Ta181" : 0.0001996952317865520, + "V50" : 4.895520923869424e-06, + "V51" : 0.001992295333429167, + "W180" : 2.345851509724686e-05, + "W182" : 0.005238042335222926, + "W183" : 0.002844120113088999, + "W184" : 0.006123026084772550, + "W186" : 0.005743261495348651 + }, + "density" : 2.68637320680, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "KluehJNM_2000, WidodoJoPCS_2018", + "mat_number" : 1, + "mixture_citation" : "DavisFusEngDes_2018", + "name" : "FNSFFW" + } + }, + "FNSFFWstruct" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "C12" : 0.0009884157059206881, + "C13" : 1.158429407931195e-05, + "Cr50" : 0.003130264902324298, + "Cr52" : 0.06277452176445353, + "Cr53" : 0.007255190165321519, + "Cr54" : 0.001840023167900683, + "Fe54" : 0.05091164408567585, + "Fe56" : 0.8287679864639153, + "Fe57" : 0.01948220419156534, + "Fe58" : 0.002638165258843644, + "Ta180" : 2.388720006373263e-08, + "Ta181" : 0.0001999761127999363, + "V50" : 4.902406711105497e-06, + "V51" : 0.001995097593288895, + "W180" : 2.349151063466684e-05, + "W182" : 0.005245409895410041, + "W183" : 0.002848120505749375, + "W184" : 0.006131638417457125, + "W186" : 0.005751339670748797 + }, + "density" : 7.890, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "KluehJNM_2000", + "mat_number" : 2, + "mixture_citation" : "DavisFusEngDes_2018", + "name" : "FNSFFWstruct" + } + }, + "FNSFIBSR" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "C12" : 0.04786620059801987, + "C13" : 0.0005609948737816731, + "Cr50" : 0.0006689320068139051, + "Cr52" : 0.01341480294191686, + "Cr53" : 0.001550421152376399, + "Cr54" : 0.0003932096575513295, + "Fe54" : 0.01087972721514358, + "Fe56" : 0.1771062353083212, + "Fe57" : 0.004163312164841160, + "Fe58" : 0.000563771193803640, + "He3" : 1.116761609312839e-10, + "He4" : 0.0001106017707487716, + "Ta180" : 5.104651898289241e-09, + "Ta181" : 4.273453737119100e-05, + "V50" : 1.047635539421197e-06, + "V51" : 0.0004263487846914717, + "W180" : 0.0008718306322843353, + "W182" : 0.1946707087860594, + "W183" : 0.1057011079434430, + "W184" : 0.2275609381434052, + "W186" : 0.2134470694375596 + }, + "density" : 10.3379433960, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "KluehJNM_2000, CRChandbook64B152, WidodoJoPCS_2018", + "mat_number" : 9, + "mixture_citation" : "ElGuebalyFusSciTec_2017 and Others", + "name" : "FNSFIBSR" + } + }, + "FNSFIBSRfill" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "C12" : 0.05849107633237927, + "C13" : 0.0006855190839148143, + "Cr50" : 0.0001110693002759193, + "Cr52" : 0.002227390468569034, + "Cr53" : 0.0002574315338080955, + "Cr54" : 6.528843153129291e-05, + "Fe54" : 0.001806467139664088, + "Fe56" : 0.02940667426558044, + "Fe57" : 0.0006912752929577985, + "Fe58" : 9.360842563018521e-05, + "He3" : 1.370675005941470e-10, + "He4" : 0.0001357488308283547, + "Ta180" : 8.475751028801622e-10, + "Ta181" : 7.095631716055363e-06, + "V50" : 1.739491385109767e-07, + "V51" : 7.079084377307144e-05, + "W180" : 0.001064107160454065, + "W182" : 0.2376040568879148, + "W183" : 0.1290127940742771, + "W184" : 0.2777480106240046, + "W186" : 0.2605214207389399 + }, + "density" : 11.118189282720, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "KluehJNM_2000, CRChandbook64B152, WidodoJoPCS_2018", + "mat_number" : 11, + "mixture_citation" : "SchnabelNDS2024", + "name" : "FNSFIBSRfill" + } + }, + "FNSFIBSRstruct" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "C12" : 0.0009884157059206881, + "C13" : 1.158429407931195e-05, + "Cr50" : 0.003130264902324298, + "Cr52" : 0.06277452176445353, + "Cr53" : 0.007255190165321519, + "Cr54" : 0.001840023167900683, + "Fe54" : 0.05091164408567585, + "Fe56" : 0.8287679864639153, + "Fe57" : 0.01948220419156534, + "Fe58" : 0.002638165258843644, + "Ta180" : 2.388720006373263e-08, + "Ta181" : 0.0001999761127999363, + "V50" : 4.902406711105497e-06, + "V51" : 0.001995097593288895, + "W180" : 2.349151063466684e-05, + "W182" : 0.005245409895410041, + "W183" : 0.002848120505749375, + "W184" : 0.006131638417457125, + "W186" : 0.005751339670748797 + }, + "density" : 7.890, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "KluehJNM_2000", + "mat_number" : 10, + "mixture_citation" : "SchnabelNDS2024", + "name" : "FNSFIBSRstruct" + } + }, + "FNSFIBWP" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Al27" : 0.001802184624966893, + "B10" : 1.244525743206584e-06, + "B11" : 5.507845590648699e-06, + "C12" : 0.005062687897560310, + "C13" : 5.933501975515769e-05, + "Cr50" : 0.001831848286131750, + "Cr52" : 0.03673599637576008, + "Cr53" : 0.004245777301478766, + "Cr54" : 0.001076791706688720, + "Cu63" : 0.3839489198058031, + "Cu65" : 0.1767307412950080, + "Fe54" : 0.01057283314917669, + "Fe56" : 0.1721104434481903, + "Fe57" : 0.004045873944848013, + "Fe58" : 0.0005478684022611666, + "H1" : 0.0004106360648091948, + "H2" : 9.438460186451223e-08, + "He3" : 3.065141994345955e-09, + "He4" : 0.00303565353020760, + "Mg24" : 0.0006403286590808726, + "Mg25" : 8.444700472988487e-05, + "Mg26" : 9.668523501136130e-05, + "Mn55" : 0.07089989900548044, + "Mo100" : 0.0003451806851258209, + "Mo92" : 0.0004698403803404267, + "Mo94" : 0.0003023063319837737, + "Mo95" : 0.0005289141052855006, + "Mo96" : 0.0005624869135456525, + "Mo97" : 0.0003273098103341697, + "Mo98" : 0.0008401474403122965, + "N14" : 0.0009773645717924774, + "N15" : 3.824835133942109e-06, + "Nb93" : 0.05358137626134005, + "Ni58" : 0.02041850503670676, + "Ni60" : 0.008136025521188282, + "Ni61" : 0.0003595716228654108, + "Ni62" : 0.001165268628080436, + "Ni64" : 0.0003063001935078794, + "O16" : 0.008399246199002936, + "O17" : 3.400363469687244e-06, + "O18" : 1.942321397149595e-05, + "P31" : 1.350474266771057e-05, + "S32" : 1.279106208992770e-05, + "S33" : 1.041495447120115e-07, + "S34" : 6.080162057208650e-07, + "S36" : 1.514827349987011e-09, + "Si28" : 0.004732588097090627, + "Si29" : 0.0002490089180277449, + "Si30" : 0.0001699966318315619, + "Sn112" : 0.0002131737266894566, + "Sn114" : 0.0001476357012935156, + "Sn115" : 7.672284858913254e-05, + "Sn116" : 0.003309539009175586, + "Sn117" : 0.001763192934589018, + "Sn118" : 0.005607986936813580, + "Sn119" : 0.002005858273892215, + "Sn120" : 0.007671695731399557, + "Sn122" : 0.001108434661035889, + "Sn124" : 0.001408904307634472, + "Ti46" : 6.462481278917883e-05, + "Ti47" : 5.954698789016612e-05, + "Ti48" : 0.0006025461210855667, + "Ti49" : 4.514046434250006e-05, + "Ti50" : 4.410165848152293e-05 + }, + "density" : 6.871660, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "ElGuebalyARIESCSFTI_2006, pnnl-15870rev1, FESS-FNSF and ???, FESS-FNSF and ARIES GFFpolyimide, CRChandbook64B117", + "mat_number" : 13, + "mixture_citation" : "SchnabelNDS2024", + "name" : "FNSFIBWP" + } + }, + "FlibeLi60BZ" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Be9" : 0.09218298421965840, + "F19" : 0.7773164331602028, + "Li6" : 0.07830034957208326, + "Li7" : 0.05220023304805553 + }, + "density" : 1.940, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "SohalINLEXT-10-18297_2013", + "mat_number" : 8, + "mixture_citation" : "SohalINLEXT-10-18297_2013 and density ???", + "name" : "FlibeLi60BZ" + } + }, + "IFMIFDONESspecimenstack" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "C12" : 0.001043670025140234, + "C13" : 1.223187816681406e-05, + "Cr50" : 0.003565666514806464, + "Cr52" : 0.07150609204744943, + "Cr53" : 0.008264344852038344, + "Cr54" : 0.002095959671457820, + "Fe54" : 0.04830703790927410, + "Fe56" : 0.7863687621781043, + "Fe57" : 0.01848550745786964, + "Fe58" : 0.002503198461935862, + "Mn55" : 0.004031625448990546, + "Na23" : 0.04008917881177491, + "Ta180" : 1.605070728034551e-07, + "Ta181" : 0.001343714642590712, + "V50" : 4.470579589263146e-06, + "V51" : 0.001819359980668365, + "W180" : 1.240236539535123e-05, + "W182" : 0.002769319146094542, + "W183" : 0.001503667931434298, + "W184" : 0.003237204337691795, + "W186" : 0.003036425252454491 + }, + "density" : 6.055250, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "MergiaJNM_2008, pnnl-15870rev1", + "mat_number" : 14, + "mixture_citation" : "QiuNucMatEnergy_2018", + "name" : "IFMIFDONESspecimenstack" + } + }, + "Pb" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Pb204" : 0.01378083787911828, + "Pb206" : 0.2395549991410930, + "Pb207" : 0.2207429583489678, + "Pb208" : 0.5259212046308210 + }, + "density" : 11.350, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "pnnl-15870rev1", + "mat_number" : 15, + "mixture_citation" : "pnnl-15870rev1", + "name" : "Pb" + } + }, + "Pbli90BZ" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Li6" : 0.004905000000000001, + "Li7" : 0.0005450000000000001, + "Pb204" : 0.01370573231267708, + "Pb206" : 0.2382494243957740, + "Pb207" : 0.2195399092259659, + "Pb208" : 0.5230549340655830 + }, + "density" : 9.320, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "BohmFusSciTec_2019", + "mat_number" : 7, + "mixture_citation" : "ARIES and MELCOR TMAP", + "name" : "Pbli90BZ" + } + }, + "SS316LN" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "B10" : 5.529283040019153e-05, + "B11" : 0.0002447071695998085, + "C12" : 0.0002965247117762064, + "C13" : 3.475288223793585e-06, + "Co59" : 0.0010, + "Cr50" : 0.007199609275345884, + "Cr52" : 0.1443814000582430, + "Cr53" : 0.01668693738023949, + "Cr54" : 0.004232053286171569, + "Fe54" : 0.03660015398175166, + "Fe56" : 0.5957976110274520, + "Fe57" : 0.01400566974649790, + "Fe58" : 0.001896565244298441, + "Mn55" : 0.020, + "Mo100" : 0.002555996020206573, + "Mo92" : 0.003479076883588469, + "Mo94" : 0.002238519751335797, + "Mo95" : 0.003916506358541126, + "Mo96" : 0.004165106491740431, + "Mo97" : 0.002423665658707869, + "Mo98" : 0.006221128835879737, + "N14" : 0.001593762941006999, + "N15" : 6.237058993000627e-06, + "Nb93" : 0.00050, + "Ni58" : 0.08063737029915888, + "Ni60" : 0.03213103513386706, + "Ni61" : 0.001420030998838695, + "Ni62" : 0.004601913690135183, + "Ni64" : 0.001209649878000204, + "P31" : 0.00030, + "S32" : 0.0001894306675018806, + "S33" : 1.542414354344270e-06, + "S34" : 9.004484138370348e-06, + "S36" : 2.243400540476669e-08, + "Si28" : 0.009186648678885252, + "Si29" : 0.0004833628874730321, + "Si30" : 0.0003299884336417149 + }, + "density" : 7.930, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "GilbertHandbookITERCCFE_2016", + "mat_number" : 16, + "mixture_citation" : "GilbertHandbookITERCCFE_2016", + "name" : "SS316LN" + } + }, + "reIron" : { + "atoms_per_molecule" : -1.0, + "comp" : { + "Fe54" : 0.05645558226400071, + "Fe56" : 0.9190152877178035, + "Fe57" : 0.02160368617383604, + "Fe58" : 0.002925443844359774 + }, + "density" : 7.8740, + "mass" : 1.0, + "metadata" : { + "constituent_citation" : "pnnl-15870rev1", + "mat_number" : 3, + "mixture_citation" : "pnnl-15870rev1", + "name" : "reIron" + } + } +} + From 079e0cc134bb9c8ca33281616822831b86243277 Mon Sep 17 00:00:00 2001 From: FusionSandwich <145234893+FusionSandwich@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:07:56 -0500 Subject: [PATCH 3/4] Update mixPureFusionMaterials.py Adjusted dependency for enrichment function import --- pureMaterials/mixPureFusionMaterials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pureMaterials/mixPureFusionMaterials.py b/pureMaterials/mixPureFusionMaterials.py index 184aa69..960ea70 100755 --- a/pureMaterials/mixPureFusionMaterials.py +++ b/pureMaterials/mixPureFusionMaterials.py @@ -13,7 +13,7 @@ from pyne import material from pyne.material import Material, MultiMaterial from pyne.material_library import MaterialLibrary -from working_multi_createPurematlib import ( +from createPurematlib import ( make_mat, make_mat_from_atom, update_nucvec, From 3fca2fb70e06a19e8325391dd7ac5d090d812f0e Mon Sep 17 00:00:00 2001 From: FusionSandwich <145234893+FusionSandwich@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:12:02 -0500 Subject: [PATCH 4/4] Included updated createPurematlib.py Need the enrichment function from createPurematlib.py --- pureMaterials/createPurematlib.py | 835 +++++++++++++++++++----------- 1 file changed, 522 insertions(+), 313 deletions(-) diff --git a/pureMaterials/createPurematlib.py b/pureMaterials/createPurematlib.py index 0630670..f5257d7 100755 --- a/pureMaterials/createPurematlib.py +++ b/pureMaterials/createPurematlib.py @@ -6,73 +6,158 @@ # -can be used for mixing homogenized regions # -generally impurities at <~1e-3 wt. percent (10 wppm) are removed from materials # (except SS-316 steels may contain boron impurity) -# +# # import os +from typing import Dict, Union, Optional from pyne import material from pyne.material import Material, MultiMaterial from pyne.material_library import MaterialLibrary +from pyne import nucname # # -def make_mat(nucvec, density, citation, molecular_mass = None): - mat = Material(nucvec, density = density, metadata = {'citation' : citation}) + +def enrich( + nucvec: Dict[int, float], old_key: int, new_values: Dict[int, float] +) -> Dict[int, float]: + """Update nuclear vector by replacing an old key with new key-value pairs.""" + + if old_key in nucvec: + fract = nucvec.pop(old_key) + for key, value in new_values.items(): + nucvec[key] = value * fract + else: + found_key = None + for key in list(nucvec.keys()): + if nucname.id(old_key) == nucname.id(key): + found_key = key + break + + if found_key is not None: + fract = nucvec.pop(found_key) + for new_key, value in new_values.items(): + nucvec[new_key] = value * fract # check if percent works also + + return nucvec + + +def make_mat( + nucvec: Dict[int, float], + density: float, + citation: str, + molecular_mass: Optional[float] = None, + mass_enrichment: Optional[Dict[int, Dict[int, float]]] = None, +) -> Material: + """Create a Material object from nuclear vector data.""" + if mass_enrichment is not None: + for isotope, enrichment_vector in mass_enrichment.items(): + enriched_mat = Material( + {key: value for key, value in enrichment_vector.items()} + ) + nucvec = enrich(nucvec, isotope, enriched_mat.comp) + mat = Material(nucvec, density=density, metadata={"citation": citation}) if molecular_mass: mat.molecular_mass = molecular_mass return mat.expand_elements() -def make_mat_from_atom(atom_frac, density, citation): + +def make_mat_from_atom( + atom_frac: Dict[Union[int, str], float], + density: float, + citation: str, + mass_enrichment: Optional[Dict[int, Dict[int, float]]] = None, +) -> Material: + """Create a Material object from atom fraction data.""" + if mass_enrichment is not None: + for isotope, enrichment_vector in mass_enrichment.items(): + enriched_mat = Material( + {key: value for key, value in enrichment_vector.items()} + ) + atom_frac = enrich(atom_frac, isotope, enriched_mat.to_atom_frac()) + mat = Material() mat.from_atom_frac(atom_frac) mat.density = density - mat.metadata['citation'] = citation + mat.metadata["citation"] = citation return mat.expand_elements() mat_data = {} # fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -mat_data['MF82H'] = { - 'nucvec' : {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0}, - 'density' : 7.89, - 'citation' : 'KluehJNM_2000' - } +mat_data["MF82H"] = { + "nucvec": { + 60000000: 0.1, + 230000000: 0.2, + 240000000: 7.5, + 260000000: 90.18, + 730000000: 0.02, + 740000000: 2.0, + }, + "density": 7.89, + "citation": "KluehJNM_2000", +} # fullreference: ChenNucEngTech_2013 Y. Chen Nuclear and Engineering Technology, vol. 45, 2013. https://doi.org/10.5516/NET.07.2013.706 # fullreference: SmithBCSSANLvol2_1984, D.L. Smith et al., "Blanket Comparison and Selection Study Final Report", ANL/FPP-84-1, volume 2, Chapter 6, 1984. (HT-9 density pdf page 32 and 49) -mat_data['HT9'] = { - 'nucvec' : {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5}, - 'density' : 7.8, # density BCSSvol2 pdf page 32 and page 49 - 'citation' : 'KluehJNM_2000 and SmithBCSSANLvol2_1984' - } +mat_data["HT9"] = { + "nucvec": { + 60000000: 0.2, + 230000000: 0.25, + 240000000: 12.0, + 260000000: 85.55, + 280000000: 0.5, + 420000000: 1.0, + 740000000: 0.5, + }, + "density": 7.8, # density BCSSvol2 pdf page 32 and page 49 + "citation": "KluehJNM_2000 and SmithBCSSANLvol2_1984", +} # fullreference: MergiaJNM_2008 K. Mergia, N. Boukos jnm 2008 https://doi.org/10.1016/j.jnucmat.2007.03.267 # wt percent 0.11C, 8.9Cr, 0.42Mn, 0.19V, 1.10W, 0.14Ta, balance Fe -mat_data['EUROFER97'] = { - 'nucvec' : {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10}, - 'density' : 7.75, - 'citation' : 'MergiaJNM_2008' - } +mat_data["EUROFER97"] = { + "nucvec": { + 60000000: 0.11, + 230000000: 0.19, + 240000000: 8.9, + 250000000: 0.42, + 260000000: 89.14, + 730000000: 0.14, + 740000000: 1.10, + }, + "density": 7.75, + "citation": "MergiaJNM_2008", +} # reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -mat_data['BMF82H'] = { - 'nucvec' : {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0}, - 'density' : 7.89, - 'citation' : 'KluehJNM_2000' - } +mat_data["BMF82H"] = { + "nucvec": { + 50000000: 3.0, + 60000000: 0.1, + 230000000: 0.2, + 240000000: 7.5, + 260000000: 87.18, + 730000000: 0.02, + 740000000: 2.0, + }, + "density": 7.89, + "citation": "KluehJNM_2000", +} # fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -mat_data['Water'] = { - 'nucvec' : {10000000: 11.1894, 80000000: 88.8106}, - 'density' : 1.0, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Water"] = { + "nucvec": {10000000: 11.1894, 80000000: 88.8106}, + "density": 1.0, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['SiC'] = { - 'nucvec' : {60000000 : 29.9547, 140000000: 70.0453}, - 'density' : 3.21, - 'citation' : 'pnnl-15870rev1' - } +mat_data["SiC"] = { + "nucvec": {60000000: 29.9547, 140000000: 70.0453}, + "density": 3.21, + "citation": "pnnl-15870rev1", +} # note SS-316L(N)-IG and EUROFER composition (but not density) in # reference: GilbertNucFus_2017 @@ -84,221 +169,319 @@ def make_mat_from_atom(atom_frac, density, citation): # reference: GilbertHandbookITERCCFE_2016 # contains 300 wppm B which is important to assess typical He production level -mat_data['SS316LN'] = { - 'nucvec' : {50000000:0.030, 60000000:0.030, 70000000:0.160, 140000000:1.0, 150000000:0.030, 160000000:0.020, 240000000:17.250, 250000000:2.00 , 260000000:64.830, 270000000:0.100, 280000000:12.00, 410000000:0.050, 420000000:2.5}, - 'density' : 7.93, - 'citation' : 'GilbertHandbookITERCCFE_2016' - } +mat_data["SS316LN"] = { + "nucvec": { + 50000000: 0.030, + 60000000: 0.030, + 70000000: 0.160, + 140000000: 1.0, + 150000000: 0.030, + 160000000: 0.020, + 240000000: 17.250, + 250000000: 2.00, + 260000000: 64.830, + 270000000: 0.100, + 280000000: 12.00, + 410000000: 0.050, + 420000000: 2.5, + }, + "density": 7.93, + "citation": "GilbertHandbookITERCCFE_2016", +} # reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -mat_data['SS316LNIG'] = { - 'nucvec' : {50000000:0.001, 60000000:0.03, 70000000:0.070, 140000000:0.50, 150000000:0.025, 160000000:0.010, 220000000:0.10, 240000000:17.50, 250000000:1.80, 260000000:64.844, 270000000:0.05, 280000000:12.25, 290000000:0.30, 410000000:0.010, 420000000:2.5, 730000000:0.01}, - 'density' : 7.93, - 'citation' : 'GilbertHandbookITERCCFE_2016' - } +mat_data["SS316LNIG"] = { + "nucvec": { + 50000000: 0.001, + 60000000: 0.03, + 70000000: 0.070, + 140000000: 0.50, + 150000000: 0.025, + 160000000: 0.010, + 220000000: 0.10, + 240000000: 17.50, + 250000000: 1.80, + 260000000: 64.844, + 270000000: 0.05, + 280000000: 12.25, + 290000000: 0.30, + 410000000: 0.010, + 420000000: 2.5, + 730000000: 0.01, + }, + "density": 7.93, + "citation": "GilbertHandbookITERCCFE_2016", +} # reference: pnnl-15870rev1 # added 10 wppm B which is important to assess typical He production level -mat_data['SS316L'] = { - 'nucvec' : {50000000:0.001, 60000000:0.03, 140000000:1.0, 150000000:0.045, 160000000:0.03, 240000000:17, 250000000:2, 260000000:65.394, 280000000:12, 420000000:2.5}, - 'density' : 8.00, - 'citation' : 'pnnl-15870rev1' - } +mat_data["SS316L"] = { + "nucvec": { + 50000000: 0.001, + 60000000: 0.03, + 140000000: 1.0, + 150000000: 0.045, + 160000000: 0.03, + 240000000: 17, + 250000000: 2, + 260000000: 65.394, + 280000000: 12, + 420000000: 2.5, + }, + "density": 8.00, + "citation": "pnnl-15870rev1", +} # reference: FESS-FNSF very similar to GFFpolyimide from ARIES -mat_data['Eins'] = { - 'nucvec' : {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75}, - 'density' : 1.8, - 'citation' : 'FESS-FNSF and ARIES GFFpolyimide' - } +mat_data["Eins"] = { + "nucvec": { + 10000000: 1.96, + 60000000: 24.12, + 70000000: 1.46, + 80000000: 40.19, + 120000000: 3.92, + 130000000: 8.6, + 140000000: 19.75, + }, + "density": 1.8, + "citation": "FESS-FNSF and ARIES GFFpolyimide", +} # fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 # fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -mat_data['Pb157Li90'] = { - 'nucvec' : {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455}, - 'density' : 9.32, # not sure of Temperature - 'molecular_mass': 175.6273, - 'citation' : 'BohmFusSciTec_2019' - } +mat_data["Pb157Li90"] = { + "nucvec": {30060000: 0.4905, 30070000: 0.0545, 820000000: 99.455}, + "density": 9.32, # not sure of Temperature + "molecular_mass": 175.6273, + "citation": "BohmFusSciTec_2019", +} # fullreference: ElGuebalyARIESCSFTI_2006 L. El-Guebaly, "Final Radial Build and Composition for LiPb/FS/He System", Sep. 2006. https://fti.neep.wisc.edu/fti.neep.wisc.edu/aries/BUILD-CS/build092606.pdf # fullreference: HeizenroederComments2005 P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material", Sep. 12, 2005 -mat_data['JK2LBSteel'] = { - 'nucvec' : {50000000:0.002, 60000000:0.02, 70000000:0.2, 140000000:0.3, 150000000:0.004, 160000000:0.004, 240000000:13, 250000000:21, 260000000:55.47, 280000000:9, 420000000:1}, - 'density' : 8.0, - 'citation' : 'ElGuebalyARIESCSFTI_2006' - } +mat_data["JK2LBSteel"] = { + "nucvec": { + 50000000: 0.002, + 60000000: 0.02, + 70000000: 0.2, + 140000000: 0.3, + 150000000: 0.004, + 160000000: 0.004, + 240000000: 13, + 250000000: 21, + 260000000: 55.47, + 280000000: 9, + 420000000: 1, + }, + "density": 8.0, + "citation": "ElGuebalyARIESCSFTI_2006", +} # reference: FESS-FNSF and ??? -mat_data['TernaryNb3Sn'] = { - 'nucvec' : {410000000:68.95, 500000000:30, 220000000:1.05}, - 'density' : 8.9, - 'citation' : 'FESS-FNSF and ???' - } - +mat_data["TernaryNb3Sn"] = { + "nucvec": {410000000: 68.95, 500000000: 30, 220000000: 1.05}, + "density": 8.9, + "citation": "FESS-FNSF and ???", +} + # reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K # fullreference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K -mat_data['LHe'] = { - 'nucvec' : {20000000: 100}, - 'density' : 0.149, - 'citation' : 'CRChandbook64B117' - } +mat_data["LHe"] = { + "nucvec": {20000000: 100}, + "density": 0.149, + "citation": "CRChandbook64B117", +} # fullreference: JawadORNL_2005 M. Jawad et al. , "Development of a New Class of Fe-3Cr-W(V) Ferritic Steels for Industrial Process Applications", ORNL/TM-2005/82, 2005. https://doi.org/10.2172/838517 -mat_data['Cr3FS'] = { - 'nucvec' : {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0}, - 'density' : 7.89, - 'citation' : 'JawadORNL_2005 and ???' - } +mat_data["Cr3FS"] = { + "nucvec": { + 60000: 0.1, + 140000: 0.14, + 230000: 0.25, + 240000: 3.0, + 250000: 0.5, + 260000: 93.01, + 740000: 3.0, + }, + "density": 7.89, + "citation": "JawadORNL_2005 and ???", +} # ODS LiPb-corrosion-resistant steel with Present impurities removed # fullreference: PintDOE_ER_0313_57_2014 B. Pint et al., DEVELOPMENT OF ODS FeCrAl FOR FUSION REACTOR APPLICATIONS, Fusion Reactor Materials Program Semi-annual Report, Dec. 2014, DOE/ER- 0313/57 Section 2.1, https://fmp.ornl.gov/semiannual-progress-reports/fusion-materials-semiannual-progress-report-57.pdf # reference: KluehJNM_2000 (for some impurities) # Density = 7.799 g/cm3, as determined for 14YWT alloy, per David Hoelzer # -mat_data['ODS125Y'] = { - 'nucvec' : {60000000: 0.0380, 70000000:0.0455, 80000000:0.8420, 130000000:4.8, 140000000:0.02, 160000000:0.0020, 220000000:0.01, 240000000:11.4, 260000000:82.6025, 390000000:0.19, 740000000:0.05}, - 'density' : 7.799, - 'citation' : 'PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - } +mat_data["ODS125Y"] = { + "nucvec": { + 60000000: 0.0380, + 70000000: 0.0455, + 80000000: 0.8420, + 130000000: 4.8, + 140000000: 0.02, + 160000000: 0.0020, + 220000000: 0.01, + 240000000: 11.4, + 260000000: 82.6025, + 390000000: 0.19, + 740000000: 0.05, + }, + "density": 7.799, + "citation": "PintDOE_ER_0313_57_2014 and KluehJNM_2000 ", +} # reference: pnnl-15870rev1 at T=20C -mat_data['D2O'] = { - 'nucvec' : {10020000:20.1133, 80000000:79.8867}, - 'density' : 1.10534, - 'citation' : 'pnnl-15870rev1' - } +mat_data["D2O"] = { + "nucvec": {10020000: 20.1133, 80000000: 79.8867}, + "density": 1.10534, + "citation": "pnnl-15870rev1", +} # fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 # also reference: pnnl-15870rev1 -mat_data['HeNIST'] = { - 'nucvec' : {20000000: 100}, - 'density' : 0.00016647, # at 20 C (293.15 K), 1 atm (1.01325 bar) - 'citation' : 'WidodoJoPCS_2018 and pnnl-15870rev1' - } +mat_data["HeNIST"] = { + "nucvec": {20000000: 100}, + "density": 0.00016647, # at 20 C (293.15 K), 1 atm (1.01325 bar) + "citation": "WidodoJoPCS_2018 and pnnl-15870rev1", +} # high pressure He gas ref. # reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -mat_data['HeT410P1'] = { - 'nucvec' : {20000000: 100}, - 'density' : 0.00007048, # at 410 C, 1 bar - 'citation' : 'WidodoJoPCS_2018' - } - -mat_data['HeT410P80'] = { - 'nucvec' : {20000000: 100}, - 'density' : 0.00571698, # at 410 C, 80 bar - 'citation' : 'WidodoJoPCS_2018' - } +mat_data["HeT410P1"] = { + "nucvec": {20000000: 100}, + "density": 0.00007048, # at 410 C, 1 bar + "citation": "WidodoJoPCS_2018", +} + +mat_data["HeT410P80"] = { + "nucvec": {20000000: 100}, + "density": 0.00571698, # at 410 C, 80 bar + "citation": "WidodoJoPCS_2018", +} # air (Dry, Near Sea Level) # reference: pnnl-15870rev1 -mat_data['AirSTP'] = { - 'nucvec' : {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827}, - 'density' : 0.001205, - 'citation' : 'pnnl-15870rev1' - } +mat_data["AirSTP"] = { + "nucvec": { + 60000000: 0.0124, + 70000000: 75.5268, + 80000000: 23.1781, + 180000000: 1.2827, + }, + "density": 0.001205, + "citation": "pnnl-15870rev1", +} # concrete (Ordinary NBS 04) # reference: pnnl-15870rev1 -mat_data['Concrete'] = { - 'nucvec' : {10000000 : 0.5558, 80000000 : 49.8076, 110000000: 1.7101, 120000000: 0.2565, 130000000: 4.5746, 140000000: 31.5092, 160000000: 0.1283, 190000000: 1.9239, 200000000: 8.2941, 260000000: 1.2398}, - 'density' : 2.35, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Concrete"] = { + "nucvec": { + 10000000: 0.5558, + 80000000: 49.8076, + 110000000: 1.7101, + 120000000: 0.2565, + 130000000: 4.5746, + 140000000: 31.5092, + 160000000: 0.1283, + 190000000: 1.9239, + 200000000: 8.2941, + 260000000: 1.2398, + }, + "density": 2.35, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['W'] = { - 'nucvec' : {740000000: 100.0}, - 'density' : 19.30, - 'citation' : 'pnnl-15870rev1' - } +mat_data["W"] = { + "nucvec": {740000000: 100.0}, + "density": 19.30, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['Fe'] = { - 'nucvec' : {260000000: 100.0}, - 'density' : 7.874, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Fe"] = { + "nucvec": {260000000: 100.0}, + "density": 7.874, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['Na'] = { - 'nucvec' : {110000000: 100.0}, - 'density' : 0.971, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Na"] = { + "nucvec": {110000000: 100.0}, + "density": 0.971, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 reactor graphite without boron impurity -mat_data['C'] = { - 'nucvec' : {60000000:1.0}, - 'density' : 1.7, - 'citation' : 'pnnl-15870rev1' - } +mat_data["C"] = { + "nucvec": {60000000: 1.0}, + "density": 1.7, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['Si'] = { - 'nucvec' : {140000000:1.0}, - 'density' : 2.33, - 'citation' : 'pnnl-15870rev1' - } - +mat_data["Si"] = { + "nucvec": {140000000: 1.0}, + "density": 2.33, + "citation": "pnnl-15870rev1", +} + # reference: pnnl-15870rev1 -mat_data['Cu'] = { - 'nucvec' : {290000000:1.0}, - 'density' : 8.96, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Cu"] = { + "nucvec": {290000000: 1.0}, + "density": 8.96, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['Sn'] = { - 'nucvec' : {500000000:1.0}, - 'density' : 7.31, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Sn"] = { + "nucvec": {500000000: 1.0}, + "density": 7.31, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['Ta'] = { - 'nucvec' : {730000000:1.0}, - 'density' : 16.654, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Ta"] = { + "nucvec": {730000000: 1.0}, + "density": 16.654, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['Pb'] = { - 'nucvec' : {820000000: 100.0}, - 'density' : 11.35, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Pb"] = { + "nucvec": {820000000: 100.0}, + "density": 11.35, + "citation": "pnnl-15870rev1", +} # fullreference: HernandezFusEngDes_2018 F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 -mat_data['Be'] = { - 'nucvec' : {40000000:1.0}, - 'density' : 1.85, - 'citation' : 'HernandezFusEngDes_2018' - } +mat_data["Be"] = { + "nucvec": {40000000: 1.0}, + "density": 1.85, + "citation": "HernandezFusEngDes_2018", +} # reference: HernandezFusEngDes_2018 # F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 # https://doi.org/10.1016/j.fusengdes.2018.09.014 -mat_data['Be12Ti'] = { - 'atom_frac' : {40000000:12,220000000:1}, - 'density' : 2.28, - 'citation' : 'HernandezFusEngDes_2018' - } +mat_data["Be12Ti"] = { + "atom_frac": {40000000: 12, 220000000: 1}, + "density": 2.28, + "citation": "HernandezFusEngDes_2018", +} # reference: HernandezFusEngDes_2018 # F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 # https://doi.org/10.1016/j.fusengdes.2018.09.014 -mat_data['Be12V'] = { - 'atom_frac' : {40000000:12,230000000:1}, - 'density' : 2.39, - 'citation' : 'HernandezFusEngDes_2018' - } +mat_data["Be12V"] = { + "atom_frac": {40000000: 12, 230000000: 1}, + "density": 2.39, + "citation": "HernandezFusEngDes_2018", +} -li6enrichment = 0.60 # weight fraction enrichment of Li-6 desired -li6enrichStr = f'Li{li6enrichment * 100}' -liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) +li6enrichment = 0.60 # weight fraction enrichment of Li-6 desired +li6enrichStr = f"Li{li6enrichment * 100}" +liXweightfraction = Material({"Li6": li6enrichment, "Li7": (1.0 - li6enrichment)}) # Li ceramics # reference: HernandezFusEngDes_2018 F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 @@ -307,176 +490,202 @@ def make_mat_from_atom(atom_frac, density, citation): # ceramic breeders Li4SiO4 and Li2TiO3 at 60 wt. percent Li-6 EU-DEMO # note manufacturing may result in lower density of 80-90% of theoretical -mat_data['Li4SiO4nat'] = { - 'atom_frac' : {30000000:4, 80000000:4, 140000000:1}, - 'density' : 2.40, - 'citation' : 'HernandezFusEngDes_2018' - } - -mat_data['Li2TiO3nat'] = { - 'atom_frac' : {30000000:2, 80000000:3, 220000000:1}, - 'density' : 3.43, - 'citation' : 'HernandezFusEngDes_2018' - } - -mat_data['Li4SiO4' + li6enrichStr] = { - 'atom_frac' : {liXweightfraction:4, 80000000:4, 140000000:1}, - 'density' : 2.40, - 'citation' : 'HernandezFusEngDes_2018' - } - -mat_data['Li2TiO3' + li6enrichStr] = { - 'atom_frac' : {liXweightfraction:2, 80000000:3, 220000000:1}, - 'density' : 3.42, - 'citation' : 'HernandezFusEngDes_2018' - } +mat_data["Li4SiO4nat"] = { + "atom_frac": {30000000: 4, 80000000: 4, 140000000: 1}, + "density": 2.40, + "citation": "HernandezFusEngDes_2018", +} + +mat_data["Li2TiO3nat"] = { + "atom_frac": {30000000: 2, 80000000: 3, 220000000: 1}, + "density": 3.43, + "citation": "HernandezFusEngDes_2018", +} + +mat_data["Li4SiO4" + li6enrichStr] = { + "atom_frac": {liXweightfraction: 4, 80000000: 4, 140000000: 1}, + "density": 2.40, + "citation": "HernandezFusEngDes_2018", +} + +mat_data["Li2TiO3" + li6enrichStr] = { + "atom_frac": {liXweightfraction: 2, 80000000: 3, 220000000: 1}, + "density": 3.42, + "citation": "HernandezFusEngDes_2018", +} # fullreference: SohalINLEXT-10-18297_2013 M. Sohal et al., "Engineering Database of Liquid Salt Thermophysical and Thermochemical Properties", INL/EXT-10-18297, June 2013. https://inldigitallibrary.inl.gov/sites/STI/STI/5698704.pdf -mat_data['FlibeNat'] = { - 'atom_frac' : {30000000:2,40000000:1,90000000:4}, - 'density' : 1.94, - 'citation' : 'SohalINLEXT-10-18297_2013' - } +mat_data["FlibeNat"] = { + "atom_frac": {30000000: 2, 40000000: 1, 90000000: 4}, + "density": 1.94, + "citation": "SohalINLEXT-10-18297_2013", +} # reference: SohalINLEXT-10-18297_2013 M. Sohal et al., "Engineering Database of Liquid Salt Thermophysical and Thermochemical Properties", INL/EXT-10-18297, June 2013. https://inldigitallibrary.inl.gov/sites/STI/STI/5698704.pdf -mat_data['Flibe' + li6enrichStr] = { - 'atom_frac' : {liXweightfraction:2,40000000:1,90000000:4}, - 'density' : 1.94, - 'citation' : 'SohalINLEXT-10-18297_2013' - } +mat_data["Flibe" + li6enrichStr] = { + "atom_frac": {liXweightfraction: 2, 40000000: 1, 90000000: 4}, + "density": 1.94, + "citation": "SohalINLEXT-10-18297_2013", +} # reference: pnnl-15870rev1 at STP -mat_data['LiNat'] = { - 'nucvec' : {30000000:1.0}, - 'density' : 0.534, # at STP - 'citation' : 'pnnl-15870rev1' - } +mat_data["LiNat"] = { + "nucvec": {30000000: 1.0}, + "density": 0.534, # at STP + "citation": "pnnl-15870rev1", +} # reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -mat_data['LiNatT500'] = { - 'nucvec' : {30000000:1.0}, - 'density' : 0.485, # at T=500 C - 'citation' : 'BohmFusSciTec_2019' - } +mat_data["LiNatT500"] = { + "nucvec": {30000000: 1.0}, + "density": 0.485, # at T=500 C + "citation": "BohmFusSciTec_2019", +} # reference: pnnl-15870rev1 mat_data[li6enrichStr] = { - 'atom_frac' : {liXweightfraction:1}, - 'density' : 0.534, # at STP - 'citation' : 'pnnl-15870rev1' - } + "atom_frac": {liXweightfraction: 1}, + "density": 0.534, # at STP + "citation": "pnnl-15870rev1", +} # reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -mat_data[li6enrichStr + 'T500'] = { - 'atom_frac' : {liXweightfraction:1}, - 'density' : 0.485, # at T=500 C - 'citation' : 'BohmFusSciTec_2019' - } +mat_data[li6enrichStr + "T500"] = { + "atom_frac": {liXweightfraction: 1}, + "density": 0.485, # at T=500 C + "citation": "BohmFusSciTec_2019", +} # reference: pnnl-15870rev1 -mat_data['Mo'] = { - 'nucvec' : {420000000: 100.0}, - 'density' : 10.22, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Mo"] = { + "nucvec": {420000000: 100.0}, + "density": 10.22, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['Aluminum6061'] = { - 'nucvec' : {120000000:1.0, 130000000:97.2, 140000000:0.6, 220000000:0.088, 240000000:0.195, 250000000:0.088, 260000000:0.4090, 290000000:0.275, 300000000:0.146}, - 'density' : 2.70, - 'citation' : 'pnnl-15870rev1' - } +mat_data["Aluminum6061"] = { + "nucvec": { + 120000000: 1.0, + 130000000: 97.2, + 140000000: 0.6, + 220000000: 0.088, + 240000000: 0.195, + 250000000: 0.088, + 260000000: 0.4090, + 290000000: 0.275, + 300000000: 0.146, + }, + "density": 2.70, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['OilTexasCrude'] = { - 'nucvec' : {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535}, - 'density' : 0.875, - 'citation' : 'pnnl-15870rev1' - } +mat_data["OilTexasCrude"] = { + "nucvec": { + 10000000: 12.3246, + 60000000: 85.2204, + 70000000: 0.7014, + 160000000: 1.7535, + }, + "density": 0.875, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['EthyleneGlycol'] = { - 'atom_frac' : {10000000:6, 60000000:2, 80000000:2}, - 'density' : 1.114, - 'citation' : 'pnnl-15870rev1' - } +mat_data["EthyleneGlycol"] = { + "atom_frac": {10000000: 6, 60000000: 2, 80000000: 2}, + "density": 1.114, + "citation": "pnnl-15870rev1", +} # reference: pnnl-15870rev1 -mat_data['AluminumOxide'] = { - 'atom_frac' : {80000000:3, 130000000:2}, - 'density' : 3.97, - 'citation' : 'pnnl-15870rev1' - } +mat_data["AluminumOxide"] = { + "atom_frac": {80000000: 3, 130000000: 2}, + "density": 3.97, + "citation": "pnnl-15870rev1", +} # fullreference: GrossbeckJNM_1998 M.L. Grossbeck et al.,"Analysis of V-Cr-Ti alloys in terms of activation of impurities", Journal of Nuclear Materials, vol. 258-263, page 1778-1783 1998. https://doi.org/10.1016/S0022-3115(98)00228-1 -# fullreference: ARIES_PropertiesArchive http://qedfusion.org/LIB/PROPS/ +# fullreference: ARIES_PropertiesArchive http://qedfusion.org/LIB/PROPS/ # fullreference: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -mat_data['V4Cr4Ti'] = { - 'nucvec' : {220000000: 4.0,230000000: 92.0, 240000000: 4.0}, - 'density' : 6.05, # room temperature - 'citation' : 'GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - } - -mat_data['ZrH2'] = { - 'atom_frac' : {10000000: 2,400000000: 1}, - 'density' : 5.61, #this is at room temperature - 'citation' : 'pnnl-15870rev1' - } - -# -mat_data['Inconel718'] = { - 'nucvec' : { 50000000: 0.0050, - 60000000: 0.0730, - 130000000: 0.5000, - 140000000: 0.3180, - 150000000: 0.0140, - 160000000: 0.0140, - 220000000: 0.9000, - 240000000: 19.0000, - 250000000: 0.3180, - 260000000: 17.0000, - 280000000: 52.5000, - 270000000: 0.9100, - 290000000: 0.2730, - 410000000: 5.1250, - 420000000: 3.0500}, - 'density' : 8.19, # room temperature - 'citation' : 'pnnl-15870rev1' - } +mat_data["V4Cr4Ti"] = { + "nucvec": {220000000: 4.0, 230000000: 92.0, 240000000: 4.0}, + "density": 6.05, # room temperature + "citation": "GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979", +} + +mat_data["ZrH2"] = { + "atom_frac": {10000000: 2, 400000000: 1}, + "density": 5.61, # this is at room temperature + "citation": "pnnl-15870rev1", +} + +# +mat_data["Inconel718"] = { + "nucvec": { + 50000000: 0.0050, + 60000000: 0.0730, + 130000000: 0.5000, + 140000000: 0.3180, + 150000000: 0.0140, + 160000000: 0.0140, + 220000000: 0.9000, + 240000000: 19.0000, + 250000000: 0.3180, + 260000000: 17.0000, + 280000000: 52.5000, + 270000000: 0.9100, + 290000000: 0.2730, + 410000000: 5.1250, + 420000000: 3.0500, + }, + "density": 8.19, # room temperature + "citation": "pnnl-15870rev1", +} # reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html # fullreference: CRChandbook64 Bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 -mat_data['WC'] = { - 'atom_frac' : {60000000:1,740000000:1}, - 'density' : 15.63, - 'citation' : 'CRChandbook64B152' - } +mat_data["WC"] = { + "atom_frac": {60000000: 1, 740000000: 1}, + "density": 15.63, + "citation": "CRChandbook64B152", +} + # -------------------------------------------------------- def main(): - # create material library object + """Main function to create and write Pure Fusion Materials.""" mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition + print("\nCreating Pure Fusion Materials...") + for mat_name, mat_input in mat_data.items(): - if 'nucvec' in mat_input: - mat_lib[mat_name] = make_mat(mat_input['nucvec'], mat_input['density'], mat_input['citation'], - mat_input.get('molecular_mass')) - if 'atom_frac' in mat_input: - mat_lib[mat_name] = make_mat_from_atom(mat_input['atom_frac'], mat_input['density'], mat_input['citation']) - + if "nucvec" in mat_input: + mat_lib[mat_name] = make_mat( + mat_input["nucvec"], + mat_input["density"], + mat_input["citation"], + mat_input.get("molecular_mass"), + mat_input.get("mass_enrichment"), + ) + elif "atom_frac" in mat_input: + mat_lib[mat_name] = make_mat_from_atom( + mat_input["atom_frac"], + mat_input["density"], + mat_input["citation"], + mat_input.get("mass_enrichment"), + ) # remove lib - try: + try: os.remove("PureFusionMaterials_libv1.json") - except: - pass - + except: + pass + # write fnsf1d material library mat_lib.write_json("PureFusionMaterials_libv1.json") print("All done!") - - + + if __name__ == "__main__": main()