From 615fa293471ad4e011a5ad1a2111b41e92e71f9e Mon Sep 17 00:00:00 2001 From: FusionSandwich Date: Mon, 24 Jun 2024 13:53:34 -0500 Subject: [PATCH 1/3] Corrected density for lithium ceramic and added potential solid blanket materials --- pureMaterials/PureFusionMaterials_libv1.h5 | Bin 27236 -> 27937 bytes pureMaterials/createPurematlib.py | 1062 ++++++++++++++------ 2 files changed, 754 insertions(+), 308 deletions(-) diff --git a/pureMaterials/PureFusionMaterials_libv1.h5 b/pureMaterials/PureFusionMaterials_libv1.h5 index 5b1a30ce9c21b84f8ccaad07c7c9e6405fb9047f..844c6305125b5aba8ca76be87092a6102114b534 100644 GIT binary patch delta 12569 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 Date: Fri, 28 Jun 2024 16:24:39 -0500 Subject: [PATCH 2/3] Corrections and Updated references --- Error/1_make_materials.py | 218 ++++ Error/1_materials.py | 175 ++++ Error/Copy of mixPureFusionMaterials3.py | 301 ++++++ Error/Original/1_make_materials.py | 217 ++++ Error/Original/PureFusionMaterials_libv1.h5 | Bin 0 -> 26808 bytes Error/Original/createPurematlib.py | 627 +++++++++++ Error/Original/materials.xml | 2 + Error/Path/1_make_materials.py | 217 ++++ Error/Path/PureFusionMaterials_libv1.h5 | Bin 0 -> 26808 bytes Error/Path/PureFusionMaterials_libv1.xml | 701 +++++++++++++ Error/Path/createPurematlib_xml.py | 627 +++++++++++ Error/Path/materials.xml | 300 ++++++ Error/PureFusionMaterials_libv1.h5 | Bin 0 -> 26808 bytes Error/XML/1_make_materials.py | 217 ++++ Error/XML/1_materials.py | 203 ++++ Error/XML/PureFusionMaterials_libv1.h5 | Bin 0 -> 26808 bytes Error/XML/PureFusionMaterials_libv1.hdf5 | Bin 0 -> 51592 bytes Error/XML/PureFusionMaterials_libv1.xml | 701 +++++++++++++ Error/XML/createPurematlib_xml.py | 627 +++++++++++ Error/XML/import_h5.py | 23 + Error/XML/import_hdf5.py | 34 + Error/XML/materials.xml | 300 ++++++ Error/XML/test.py | 39 + Error/createPurematlib.py | 510 +++++++++ Error/createPurematlib3.py | 513 +++++++++ Error/createPurematlib_xml.py | 628 +++++++++++ Error/g.py | 627 +++++++++++ Error/materials.xml | 2 + Error/mixPureFusionMaterials.py | 297 ++++++ Error/mixedPureFusionMaterials_libv1.h5 | Bin 0 -> 13061 bytes Error/xml.xml | 897 ++++++++++++++++ Test/1_make_materials.py | 217 ++++ Test/1_materials.py | 204 ++++ Test/PureFusionMaterials_libv1.h5 | Bin 0 -> 26740 bytes Test/createPurematlib.py | 627 +++++++++++ Test/createPurematlib3.py | 513 +++++++++ Test/createPurematlib_mine.py | 510 +++++++++ Test/fix.py | 641 ++++++++++++ Test/fix.xml | 680 ++++++++++++ Test/test.py | 672 ++++++++++++ Test/test.xml | 602 +++++++++++ Test/test_og.py | 640 ++++++++++++ Test/test_og.xml | 602 +++++++++++ Test/test_results.xml | 696 +++++++++++++ Test/test_results_named_helium.xml | 696 +++++++++++++ Testing/PureFusionMaterials_libv1.h5 | Bin 0 -> 27259 bytes Testing/test.py | 672 ++++++++++++ Testing/test_results.xml | 646 ++++++++++++ pureMaterials/PureFusionMaterials_libv1.h5 | Bin 27937 -> 28501 bytes pureMaterials/PureFusionMaterials_libv1.xml | 974 ++++++++++++++++++ pureMaterials/createPurematlib.py | 103 +- .../mixedPureFusionMaterials_libv1.h5 | Bin 25371 -> 0 bytes 52 files changed, 18645 insertions(+), 53 deletions(-) create mode 100644 Error/1_make_materials.py create mode 100644 Error/1_materials.py create mode 100644 Error/Copy of mixPureFusionMaterials3.py create mode 100644 Error/Original/1_make_materials.py create mode 100644 Error/Original/PureFusionMaterials_libv1.h5 create mode 100644 Error/Original/createPurematlib.py create mode 100644 Error/Original/materials.xml create mode 100644 Error/Path/1_make_materials.py create mode 100644 Error/Path/PureFusionMaterials_libv1.h5 create mode 100644 Error/Path/PureFusionMaterials_libv1.xml create mode 100644 Error/Path/createPurematlib_xml.py create mode 100644 Error/Path/materials.xml create mode 100644 Error/PureFusionMaterials_libv1.h5 create mode 100644 Error/XML/1_make_materials.py create mode 100644 Error/XML/1_materials.py create mode 100644 Error/XML/PureFusionMaterials_libv1.h5 create mode 100644 Error/XML/PureFusionMaterials_libv1.hdf5 create mode 100644 Error/XML/PureFusionMaterials_libv1.xml create mode 100644 Error/XML/createPurematlib_xml.py create mode 100644 Error/XML/import_h5.py create mode 100644 Error/XML/import_hdf5.py create mode 100644 Error/XML/materials.xml create mode 100644 Error/XML/test.py create mode 100644 Error/createPurematlib.py create mode 100644 Error/createPurematlib3.py create mode 100644 Error/createPurematlib_xml.py create mode 100644 Error/g.py create mode 100644 Error/materials.xml create mode 100644 Error/mixPureFusionMaterials.py create mode 100644 Error/mixedPureFusionMaterials_libv1.h5 create mode 100644 Error/xml.xml create mode 100644 Test/1_make_materials.py create mode 100644 Test/1_materials.py create mode 100644 Test/PureFusionMaterials_libv1.h5 create mode 100644 Test/createPurematlib.py create mode 100644 Test/createPurematlib3.py create mode 100644 Test/createPurematlib_mine.py create mode 100644 Test/fix.py create mode 100644 Test/fix.xml create mode 100644 Test/test.py create mode 100644 Test/test.xml create mode 100644 Test/test_og.py create mode 100644 Test/test_og.xml create mode 100644 Test/test_results.xml create mode 100644 Test/test_results_named_helium.xml create mode 100644 Testing/PureFusionMaterials_libv1.h5 create mode 100644 Testing/test.py create mode 100644 Testing/test_results.xml create mode 100644 pureMaterials/PureFusionMaterials_libv1.xml delete mode 100644 pureMaterials/mixedPureFusionMaterials_libv1.h5 diff --git a/Error/1_make_materials.py b/Error/1_make_materials.py new file mode 100644 index 0000000..908c57f --- /dev/null +++ b/Error/1_make_materials.py @@ -0,0 +1,218 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5( + lib, datapath="/mat_name" + ) # don't set datapath,nucpath...will be pyne default values + return mat_lib + + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_FNSFBW(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} + ) + FNSFBW_mat = mix.mix_by_volume() + FNSFBW_mat.metadata["mat_number"] = 1002 + return FNSFBW_mat + + +def mix_FNSFHeManifolds(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} + ) + FNSFHeManifolds_mat = mix.mix_by_volume() + FNSFHeManifolds_mat.metadata["mat_number"] = 1003 + return FNSFHeManifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial( + {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} + ) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial( + {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} + ) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + +def Pb157Li90_mat(enrichment) : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata["mat_number"] = 1007 + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +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 + + +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"] = 2242 + 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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1008 + return FW_mat + + +def main(): + + # Load Tim's material libraries + # ACTUALLY Pyne doesn't seem to like having two libraries loaded + # at the same time, so I just copied some functions in here. In the + # future if the materials libraries are included in the repo + # I could just import the functions + libPath = "PureFusionMaterials_libv1.h5" + pureLib = load_matlib(libPath) + simulationLib = MaterialLibrary() + + # Extract materials from libraries + FWWArmor = mix_FWWArmor(pureLib) + FNSFDCLL = mix_FNSFDCLL(pureLib) + FNSFBW = mix_FNSFBW(pureLib) + FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) + FNSFIBSR = mix_FNSFIBSR(pureLib) + SS316L = pureLib["SS316L"] # front and back plats of VV + AirSTP = pureLib["AirSTP"] + AirSTP.metadata["mat_number"] = 10098 + VVFill = mix_VVFill(pureLib) + LTS = mix_LTS(pureLib) + coils = mix_coils(pureLib) + FW = mix_FW(pureLib) + + # create new material library + simulationLib["AirSTP"] = AirSTP + simulationLib["FWWArmor"] = FWWArmor + simulationLib["FW"] = FW + simulationLib["FNSFHeManifolds"] = FNSFHeManifolds + simulationLib["VVFill"] = VVFill + simulationLib["LTS"] = LTS + simulationLib["coils"] = coils + simulationLib["FNSFBW"] = FNSFBW + simulationLib["FNSFDCLL"] = FNSFDCLL + simulationLib["FNSFIBSR"] = FNSFIBSR + simulationLib["SS316L"] = SS316L # VV front and back plate + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Error/1_materials.py b/Error/1_materials.py new file mode 100644 index 0000000..b793c87 --- /dev/null +++ b/Error/1_materials.py @@ -0,0 +1,175 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5(lib, datapath="/mat_name") + return mat_lib + + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_PinBW(material_library): + # material library is is PureFusionMaterials + # Based on Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet + mix = MultiMaterial( + { + material_library["Li4SiO4Li60"]: 0.065, + material_library["Li2TiO3Li60"]: 0.035, + material_library["EUROFER97"]: 0.418, + material_library["HeT410P80"]: 0.482, + } + ) + BW_mat = mix.mix_by_volume() + BW_mat.metadata["mat_number"] = 1022 + return BW_mat + + +def mix_HeManifolds(material_library): + # material library is is PureFusionMaterials + # composition homoegenized based on 50 cm breeder to 35 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. Estiamted from Zhou 2023 manifolds + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.714, material_library["EUROFER97"]: 0.286} + ) + HeManifolds_mat = mix.mix_by_volume() + HeManifolds_mat.metadata["mat_number"] = 1003 + return HeManifolds_mat + + +def mix_Manifolds(material_library): + # material library is PureFusionMaterials + # composition homoegenized based on 50 cm breeder to 20 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.5, material_library["EUROFER97"]: 0.5} + ) + Manifolds_mat = mix.mix_by_volume() + Manifolds_mat.metadata["mat_number"] = 100352 + return Manifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial({material_library["Pb"]: 0.4, material_library["Sn"]: 0.6}) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial({material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5}) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + + +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"] = 102 + #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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1007 + return FW_mat + + +def mix_Pin(material_library): + # Material library is PureFusionMaterials + # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet + mix = MultiMaterial( + { + material_library["Li4SiO4Li60"]: 0.065, + material_library["Li2TiO3Li60"]: 0.035, + material_library["Be12Ti"]: 0.613, + material_library["HeT410P80"]: 0.142, + material_library["EUROFER97"]: 0.145, + } + ) + Pin_mat = mix.mix_by_volume() + Pin_mat.metadata["mat_number"] = 1009 + print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) + return Pin_mat + + +def main(): + + libPath = "PureFusionMaterials_libv1.h5" + pureLib = load_matlib(libPath) + simulationLib = MaterialLibrary() + + AirSTP = pureLib["AirSTP"] + + + simulationLib["AirSTP"] = AirSTP + + + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Error/Copy of mixPureFusionMaterials3.py b/Error/Copy of mixPureFusionMaterials3.py new file mode 100644 index 0000000..d5f19b5 --- /dev/null +++ b/Error/Copy of mixPureFusionMaterials3.py @@ -0,0 +1,301 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# +# 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 +# +# references for FNSF compositions +# +# MadaniUWFDM1423_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1423.pdf +# EliasUWFMD1424_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1424.pdf +# HarbFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333846. +# ElGuebalyFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333865 +# DavisFusEngDes_2018 https://doi.org/10.1016/j.fusengdes.2017.06.008 +# BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# SchnabelNDS_2024 preprint https://arxiv.org/pdf/2311.10063.pdf +# +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) +""" +# reference 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 +# +# blanket materials + +#FNSF OB DCLL Blanket (73.7% LiPb (90% Li-6), 14.9% He/void, 7.5% FS, 3.9% SiC) +# reference 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) +# reference 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 + +# EUDEMO +# reference 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 +# reference GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# reference 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 + +# 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) +""" +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']='BoullonFusEngDes_2017 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) +""" +# reference +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) +""" +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 + +######################################################################## +def main(): + # + # remove old mixmat_lib + try: + os.remove("mixedPureFusionMaterials_libv1.h5") + except: + pass + # 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 + + + # 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') + +if __name__ == "__main__": + main() diff --git a/Error/Original/1_make_materials.py b/Error/Original/1_make_materials.py new file mode 100644 index 0000000..a13fa7f --- /dev/null +++ b/Error/Original/1_make_materials.py @@ -0,0 +1,217 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5( + lib, datapath="/mat_name" + ) # don't set datapath,nucpath...will be pyne default values + return mat_lib + + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_FNSFBW(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} + ) + FNSFBW_mat = mix.mix_by_volume() + FNSFBW_mat.metadata["mat_number"] = 1002 + return FNSFBW_mat + + +def mix_FNSFHeManifolds(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} + ) + FNSFHeManifolds_mat = mix.mix_by_volume() + FNSFHeManifolds_mat.metadata["mat_number"] = 1003 + return FNSFHeManifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial( + {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} + ) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial( + {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} + ) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + +def Pb157Li90_mat(enrichment) : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +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 + + +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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1007 + return FW_mat + + +def main(): + + # Load Tim's material libraries + # ACTUALLY Pyne doesn't seem to like having two libraries loaded + # at the same time, so I just copied some functions in here. In the + # future if the materials libraries are included in the repo + # I could just import the functions + libPath = "PureFusionMaterials_libv1.hdf5" + pureLib = load_matlib(libPath) + simulationLib = MaterialLibrary() + + # Extract materials from libraries + FWWArmor = mix_FWWArmor(pureLib) + FNSFDCLL = mix_FNSFDCLL(pureLib) + FNSFBW = mix_FNSFBW(pureLib) + FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) + FNSFIBSR = mix_FNSFIBSR(pureLib) + SS316L = pureLib["SS316L"] # front and back plats of VV + AirSTP = pureLib["AirSTP"] + AirSTP.metadata["mat_number"] = 1008 + VVFill = mix_VVFill(pureLib) + LTS = mix_LTS(pureLib) + coils = mix_coils(pureLib) + FW = mix_FW(pureLib) + + # create new material library + simulationLib["AirSTP"] = AirSTP + simulationLib["FWWArmor"] = FWWArmor + simulationLib["FW"] = FW + simulationLib["FNSFHeManifolds"] = FNSFHeManifolds + simulationLib["VVFill"] = VVFill + simulationLib["LTS"] = LTS + simulationLib["coils"] = coils + simulationLib["FNSFBW"] = FNSFBW + simulationLib["FNSFDCLL"] = FNSFDCLL + simulationLib["FNSFIBSR"] = FNSFIBSR + simulationLib["SS316L"] = SS316L # VV front and back plate + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Error/Original/PureFusionMaterials_libv1.h5 b/Error/Original/PureFusionMaterials_libv1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..b42d6dbb1c9edf1240deb02f2ca683ceb403f311 GIT binary patch literal 26808 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 + diff --git a/Error/Path/1_make_materials.py b/Error/Path/1_make_materials.py new file mode 100644 index 0000000..c244d93 --- /dev/null +++ b/Error/Path/1_make_materials.py @@ -0,0 +1,217 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5( + lib, datapath="/materials" + ) # don't set datapath,nucpath...will be pyne default values + return mat_lib + + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_FNSFBW(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} + ) + FNSFBW_mat = mix.mix_by_volume() + FNSFBW_mat.metadata["mat_number"] = 1002 + return FNSFBW_mat + + +def mix_FNSFHeManifolds(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} + ) + FNSFHeManifolds_mat = mix.mix_by_volume() + FNSFHeManifolds_mat.metadata["mat_number"] = 1003 + return FNSFHeManifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial( + {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} + ) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial( + {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} + ) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + +def Pb157Li90_mat(enrichment) : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +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 + + +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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1007 + return FW_mat + + +def main(): + + # Load Tim's material libraries + # ACTUALLY Pyne doesn't seem to like having two libraries loaded + # at the same time, so I just copied some functions in here. In the + # future if the materials libraries are included in the repo + # I could just import the functions + libPath = "PureFusionMaterials_libv1.h5" + pureLib = load_matlib(libPath) + simulationLib = MaterialLibrary() + + # Extract materials from libraries + FWWArmor = mix_FWWArmor(pureLib) + FNSFDCLL = mix_FNSFDCLL(pureLib) + FNSFBW = mix_FNSFBW(pureLib) + FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) + FNSFIBSR = mix_FNSFIBSR(pureLib) + SS316L = pureLib["SS316L"] # front and back plats of VV + AirSTP = pureLib["AirSTP"] + AirSTP.metadata["mat_number"] = 1008 + VVFill = mix_VVFill(pureLib) + LTS = mix_LTS(pureLib) + coils = mix_coils(pureLib) + FW = mix_FW(pureLib) + + # create new material library + simulationLib["AirSTP"] = AirSTP + simulationLib["FWWArmor"] = FWWArmor + simulationLib["FW"] = FW + simulationLib["FNSFHeManifolds"] = FNSFHeManifolds + simulationLib["VVFill"] = VVFill + simulationLib["LTS"] = LTS + simulationLib["coils"] = coils + simulationLib["FNSFBW"] = FNSFBW + simulationLib["FNSFDCLL"] = FNSFDCLL + simulationLib["FNSFIBSR"] = FNSFIBSR + simulationLib["SS316L"] = SS316L # VV front and back plate + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Error/Path/PureFusionMaterials_libv1.h5 b/Error/Path/PureFusionMaterials_libv1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..0a10792ace70129b6a27db9a6e44630625e4dc62 GIT binary patch literal 26808 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 A4gdfE literal 0 HcmV?d00001 diff --git a/Error/Path/PureFusionMaterials_libv1.xml b/Error/Path/PureFusionMaterials_libv1.xml new file mode 100644 index 0000000..f4760b9 --- /dev/null +++ b/Error/Path/PureFusionMaterials_libv1.xml @@ -0,0 +1,701 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Error/Path/createPurematlib_xml.py b/Error/Path/createPurematlib_xml.py new file mode 100644 index 0000000..b9c73d3 --- /dev/null +++ b/Error/Path/createPurematlib_xml.py @@ -0,0 +1,627 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mat_lib.write_openmc("PureFusionMaterials_libv1.xml") + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Error/Path/materials.xml b/Error/Path/materials.xml new file mode 100644 index 0000000..3f2e4f7 --- /dev/null +++ b/Error/Path/materials.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Error/PureFusionMaterials_libv1.h5 b/Error/PureFusionMaterials_libv1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..4aeb214a9fc5a34d575ad6c3c316f1d94885ae03 GIT binary patch literal 26808 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 A=Kufz literal 0 HcmV?d00001 diff --git a/Error/XML/1_make_materials.py b/Error/XML/1_make_materials.py new file mode 100644 index 0000000..f1a3b11 --- /dev/null +++ b/Error/XML/1_make_materials.py @@ -0,0 +1,217 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5( + lib, datapath="/mat_name" + ) # don't set datapath,nucpath...will be pyne default values + return mat_lib + + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_FNSFBW(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} + ) + FNSFBW_mat = mix.mix_by_volume() + FNSFBW_mat.metadata["mat_number"] = 1002 + return FNSFBW_mat + + +def mix_FNSFHeManifolds(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} + ) + FNSFHeManifolds_mat = mix.mix_by_volume() + FNSFHeManifolds_mat.metadata["mat_number"] = 1003 + return FNSFHeManifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial( + {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} + ) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial( + {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} + ) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + +def Pb157Li90_mat(enrichment) : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +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 + + +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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1007 + return FW_mat + + +def main(): + + # Load Tim's material libraries + # ACTUALLY Pyne doesn't seem to like having two libraries loaded + # at the same time, so I just copied some functions in here. In the + # future if the materials libraries are included in the repo + # I could just import the functions + libPath = "PureFusionMaterials_libv1.h5" + pureLib = load_matlib(libPath) + simulationLib = MaterialLibrary() + + # Extract materials from libraries + FWWArmor = mix_FWWArmor(pureLib) + FNSFDCLL = mix_FNSFDCLL(pureLib) + FNSFBW = mix_FNSFBW(pureLib) + FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) + FNSFIBSR = mix_FNSFIBSR(pureLib) + SS316L = pureLib["SS316L"] # front and back plats of VV + AirSTP = pureLib["AirSTP"] + AirSTP.metadata["mat_number"] = 1008 + VVFill = mix_VVFill(pureLib) + LTS = mix_LTS(pureLib) + coils = mix_coils(pureLib) + FW = mix_FW(pureLib) + + # create new material library + simulationLib["AirSTP"] = AirSTP + simulationLib["FWWArmor"] = FWWArmor + simulationLib["FW"] = FW + simulationLib["FNSFHeManifolds"] = FNSFHeManifolds + simulationLib["VVFill"] = VVFill + simulationLib["LTS"] = LTS + simulationLib["coils"] = coils + simulationLib["FNSFBW"] = FNSFBW + simulationLib["FNSFDCLL"] = FNSFDCLL + simulationLib["FNSFIBSR"] = FNSFIBSR + simulationLib["SS316L"] = SS316L # VV front and back plate + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Error/XML/1_materials.py b/Error/XML/1_materials.py new file mode 100644 index 0000000..2287cee --- /dev/null +++ b/Error/XML/1_materials.py @@ -0,0 +1,203 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(): + mat_lib=MaterialLibrary() + mat_lib.from_hdf5("PureFusionMaterials_libv1.h5") # don't set datapath,nucpath...will be pyne default values + return mat_lib + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_PinBW(material_library): + # material library is is PureFusionMaterials + # Based on Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet + mix = MultiMaterial( + { + material_library["Li4SiO4Li60"]: 0.065, + material_library["Li2TiO3Li60"]: 0.035, + material_library["EUROFER97"]: 0.418, + material_library["HeT410P80"]: 0.482, + } + ) + BW_mat = mix.mix_by_volume() + BW_mat.metadata["mat_number"] = 1022 + return BW_mat + + +def mix_HeManifolds(material_library): + # material library is is PureFusionMaterials + # composition homoegenized based on 50 cm breeder to 35 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. Estiamted from Zhou 2023 manifolds + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.714, material_library["EUROFER97"]: 0.286} + ) + HeManifolds_mat = mix.mix_by_volume() + HeManifolds_mat.metadata["mat_number"] = 1003 + return HeManifolds_mat + + +def mix_Manifolds(material_library): + # material library is PureFusionMaterials + # composition homoegenized based on 50 cm breeder to 20 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.5, material_library["EUROFER97"]: 0.5} + ) + Manifolds_mat = mix.mix_by_volume() + Manifolds_mat.metadata["mat_number"] = 100352 + return Manifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial({material_library["Pb"]: 0.4, material_library["Sn"]: 0.6}) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial({material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5}) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + + +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"] = 1002 + 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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1007 + return FW_mat + + +def mix_Pin(material_library): + # Material library is PureFusionMaterials + # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet + mix = MultiMaterial( + { + material_library["Li4SiO4Li60"]: 0.065, + material_library["Li2TiO3Li60"]: 0.035, + material_library["Be12Ti"]: 0.613, + material_library["HeT410P80"]: 0.142, + material_library["EUROFER97"]: 0.145, + } + ) + Pin_mat = mix.mix_by_volume() + Pin_mat.metadata["mat_number"] = 1009 + print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) + return Pin_mat + + +def main(): + + libPath = "PureFusionMaterials_libv1.hdf5" + pureLib = load_matlib() + simulationLib = MaterialLibrary() + + # Extract materials from libraries + FWWArmor = mix_FWWArmor(pureLib) + BW = mix_PinBW(pureLib) + HeManifolds = mix_HeManifolds(pureLib) + Manifolds = mix_Manifolds(pureLib) + FNSFIBSR = mix_FNSFIBSR(pureLib) + SS316L = pureLib["SS316L"] # front and back plats of VV + AirSTP = pureLib["AirSTP"] + He = pureLib["HeT410P80"] + EUROFER97 = pureLib["EUROFER97"] + VVFill = mix_VVFill(pureLib) + LTS = mix_LTS(pureLib) + coils = mix_coils(pureLib) + FW = mix_FW(pureLib) + HCPB = mix_Pin(pureLib) + + # create new material library + simulationLib["FNSFIBSR"] = FNSFIBSR + simulationLib["FWWArmor"] = FWWArmor + simulationLib["FW"] = FW + simulationLib["HeManifolds"] = HeManifolds + simulationLib["Manifolds"] = Manifolds + simulationLib["VVFill"] = VVFill + simulationLib["LTS"] = LTS + simulationLib["coils"] = coils + simulationLib["HCPB"] = HCPB + simulationLib["BW"] = BW + + # from library + simulationLib["SS316L"] = SS316L # VV front and back plate + simulationLib["He"] = He + simulationLib["EUROFER97"] = EUROFER97 + simulationLib["AirSTP"] = AirSTP + + + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Error/XML/PureFusionMaterials_libv1.h5 b/Error/XML/PureFusionMaterials_libv1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..caf4e60c9dce4573bed379e72147db4c957da6be GIT binary patch literal 26808 zcmeHvbzD`=_Wq#+K}rx%1d$XZ58a*8DIr~l?rtOm5k$I`l5UVjQMv>KX^@g`5UC$= zj=XZkd*An;@8@@~o6kA3_cODfS+i!%n%R5J;faWV5HjK|M8L^`fB=96pq-vVzK+1h z8^bdMat+DX1fM{GQ-5&!8v5)63UKlV0N{XebTI$La`Li*f`H?a5PnDsz6~%AcXoyV z0sf@_QyLHvv`#W0;~L^$ zP75D@UGxL@z;+8Mf6fChCaO!0n7sf<&S(?01$FUcyLagil>9=nMHIoFLCT7?rH3N{b}sFplR&!p=oRY#SFIe12>$y z3ap#s2-r7QX|Qhsl(282xnbWVNX5R%vvGXwGKxpgGKxpLHj2lCGlnP4J%*>LKZa)! zG=}Fx(FwT0qn8K3fCOMT zI?mVCGduR?j;Hvq^0jQtO|3O7^sF>Y%}w-lY)!x`!jq@-UzItvmG zB09tm{pz0MY`_mc1aszxkN^ay_krEn@%f3Lf;yI0-{knw>NM}^SSeT?52uQl3}W? z`%^M&j8<9St|-rry{kCH%kHoA+j7ItK0=q&dVk1ycVUC8-sy-YU!5DtK0h7F{oAx= zK6hMTo0Hnn4OSoYEsiNVOD^CJ_dHya(~-GFWiQh6@;e_j9%mn{(C*O8e`x!1U3clo zBQ{k%po*B9KjC^L(Zaq|)Cy5w7LR1${pVZzE^p)R94ItZB!0@zRf5?#)aI^z?wFwC zMpdYuw_J;Vz^$0)w~O*>)X)rQZMrn8VzgWm zmmQ-7M#j#XiZKpNe1?rjUtJO;w)~^VD*AS*UN^R5%!tx=26QAcbw(MqThBOdcsYJ- zGZ*aFV9JY9YB!#--SBnnsnQ!|TB&nK{%X|?1r3XUM!@3%_`f?A`W@ye-UTBq&(XtIQu0y$0a!DB{2KLW7Q#m4!gd zOqT%sxKF?7AC5IDU<5Vl8r9T-)5-`1oFCRzga` z(}0kzskWXKAsZtdCE-bM=(rk127W6Bc@W`=>oWk$0r5jW$zx$=WQX2&AxISJWX3z``S=viw3Y3W!l5Yw~#g_uDO zB*pL-eh`=+;-`M%|E;`?^gn1t&2-Go^h}tKs|LG&fDxD%;wOIM{SW14`cZ*6=u~bq zEgMJ$#=p~xoVlTviKwKw;6r&TI$A0^79cD0iDu|8Xolgu4~33n)Ovr>iwT$?;$Q!X z{ER>3=hLGDDxQjN3g(6Q=YPU`ZYU?bXNGqci2wlj!TkS(_q;>-^dNdR2lM@Xdu9aw zXugV-2oOwo`eN*u6Ed&=BO%PCgycn!*=d1nSyVwJu zIG>!2o}LLxrw$bA1dQB5vf^u?HLXvVqr#|jfcmiP| zAq#U8N08}pgzKXG=RGJ0GP6FF+!m}C$olIi{@?Z=-MJeQ07^kR(C&A776zFd`&t`_ z8y1xpl;!6a5KT-}SgW_~bgRC!p+3)|>&zyI? zv^E_hvp9$qGQYcn<%K+l{G?ZYS$;$C5`>9?kB*M{q8|R@21L#T^#JqzeLG?}H+Tti zaIXUZp8uGS{#>7DU31Fh^^f_0=kiIO`+x6$&iB`W^P|0w!F<1*N0mUj=DOx$=F!rs%P~5F#G5y>b<6U4uRegi zxAKZ_Zm9%R9tbjB?4o+H*RH>_v95K{iD($>@0XPms+A^&fT~XAx>vuJVYbO)**NfM zux4vSw%72xdujMe^4Q`xBA*ltpiUt5QGVo2$N^Z zHL_xL?-g>n;>nHi+PxNswk*;vDB9#@okb7h5r;%C&){8CtsCjIJS`FfRrEvdra26# zaI=aQhm_CK+-h1=YYa!1r%iT&=3gU*htYLQ-J=VGKLWNl;`I<|IPs(`iF>b6y01}A zyr*9a4aCMlqI?!SNxhV%xS1ju>tyF&BD>!A>gpVgjq&up=%ZIc8Fth1PP^iUg7dBt zOkC=R?e9iXM%z?{yPt@e8TaY+^bPPwe)kiSwTaBIA~$vYyvf`$HXN#5I2TnE>QGn& zj~q4Sq||IoQF*kMGJBxF5}DDI1GHOtsgM$5U&60AFIf?dPhnP4A1NVB_l2UrW%IMC z`faL5L+w$F`jK{os>`qgx}0lT9X2{wg_lJlP^ny4WmjAVtPqDS<{Da~NK$T>5I$6K zrHcO6$wp}1=hNQb&BA4W=&{~^ohE_NwI-w8$<6AG6~Uw2&8kDnL+uws3pv>woH+-k znTusxPxs#6onn+t?=yHU`J#0|8sA;Jvmuayi@-%|r0J8c+jy1H!CPOq?eYWZ!!mM< zd!mL~8OcyRH3Th|E_>fm4-_Ln;zU`A-RqQPHyKE&ChG=A<}qnY7wVUQWU<35+_?tU z>uG@6qyVhQ4a@S+z8(Z{i}6-dMavKA*4uCmXueJw{_vIUI2F$n71v{u@h1*Wu3+v9#1C59gTO_wmHH zO(Lr>B$b?TjqfAx<~#_;D2L?NmkXQ4D^bSB+yjP3ln@ zcE8Di;XUY}v05|bxF%#z8vb#^;j41-%HN;%>|GU(nGhmrC|)tiU?`KiN44S3M9##$ zQZ(ZJ9f*l0r~_S!UO8qbdJsg4mlZls8YV7={Rma^nOJ%b;f8@eRa4SF-kR@vtDTF^ zh9TpwnT&>cnLTX%mhrMnPZZZS|MrF~Wr;!Ie8pSnYb(0k_Z+3dzCighn zi|cI!x4a&9D=XrDtWKF=eO{{sSHe4{VvBVT0ndtbDi?_E{7)x5^mY)DMYUQQnzhjfP?FEO?5<7WJBg*2F(Cy`3uG zUlw@gi!p>haeIU_m6t?U-_B8EsDPJYGQe172n{J_RF0FTpVPCVQMr?a-k6Nj_TiC{ zf`Myyfz<8kI}75LuX4T%EJoKy)MxEj=g7&yT!Gu9CyM8i@_C#y+jYC7y#lMVT~tha z3`lPIKx{A}rZ`XC4|9Q^&F$!Y1h5Kwk9-SzeQ&VkWRMy^=pxL5 zp`RXH=?Cq(8)9%vg;(ukOVCplV>)np(esI-8KRAI_D2)%EPFyZ`c|fE4Kt)nt#H>i z+g`n*5Z@$3O-jY&NX(An8wtYPA7t|DVWur^;{2*uG@BQkoX=QU?A&pm8WuYDI3g$c03Q=f)CnsS(l0Qn2!mT={$A2< zXItUPE2YWOD+br-)2cUay95f1H1%mUlq`CFH(_lLDk^Z9yhEw}<+D_L4jE`OiR7rH zD2;DRkPAkVy~ntuZ&dgW)k~e~M>Dy%%RR)*7s6pvonK6Mq?TrwAq}_$ecI4loE^a) zKQL2{4~;4QXy+ym+)Bt*YV7U1T9at&_MJne)@yWAg)(}X-uDX5J-_(`=A)M3ny1Nr z_YU1W8_Ve_*$)nD$aWl|WPEXXH)e5p%LtZTA}s@~d@!@t<*NKQ+}0_=Fws}6zrI-8 zQeBDWRSLcm@>I87cG5pQaS_`_&0R5}#?~xW3q8-;i>R)_H|U#=A_*{h^Xth zz3^lf`1S7tv|9t zy40h^E{%*@LQSgP%n)$|w`HPIO`W|ar{pdM{q6`Z%My-RB^vf%s2)J&OiR^;T;xcte?r6to_9a8;! zk)6u}%n{25h6>`8t7+)ZT#256qGSd#Jne$@7t^zt<_s{TBAw^NSn+KV-K{Hhd6dga|x z4pRlSBX=r_<_;@VMzEr;%`53 zuY7fM;7V-VHI_4StjY>+Ol_FTnd#+T=xbC>i)38Xx8e4jrjU#(US)t9|$!(I44Pli=vuW}0fNIX`HPNM=D$zhiq=Mb{U+YfkAQG*89M4U87I>VX{p8yUdO7 zH@NWHJNR9NV|TuyTRuxJYG)m-*&vd%s_^$-kiPHP__2GNc(_WbEYLY=!j!w~N=goJ~RtyCO2@u6t%YwW{QUNmEL9nToye*{3kJsHpwXGiHJ> zu1`U?4YA4SruR6f=*7?NV%}j?A~zmn+|Lzw{Ftm<{5}g=ZooougId8IXfzK1ECB!t zfd}yC^q=VA+YZt`YC~sbz-1fMei>l-?TdH1^Vj)jF~!q&;LzYF(7zvGVmJ>tNP$e` z^&GUU`K@dr0j84|-zNvp={ErIHv$CbVP<}FGaV~Eo0CuwESLwfk?JSDzY$oaJC6~7 zBdemqCyIar^Z#;##BcS=a2~4_v@vuv(KFK%HgVK3KMRdt0rNsO?ENJ7?|IL|)u+My zvycTmnD3W?{Qqzx%DKSepyT}(QuKe>C~_9Y004d&5dU4E_1wDt8fOJSetY^$`x4W# z*V2`el@vdT+%ld<@qZB=Jr9)eThR;2o$29tZ_?@U4+2o<(aZDr@^Rqh?0{@U`>CI# zL1s1rQi2+SvKqAXbo3gGr`vBBP6hr+Cj=KGn&)*%3CPg_8I{kZ2LP^t>w|3E`>DQ* zfw|L)erqgr=Y1-oCn+i?52*+Ii%-BWHw;_|$T9*ih<_fBRf4Dr1uXY3H&|Vi`vM*C zeC&Y(ijeIB0088-oqs>jOMgC2q_rW<2LCG<0O0TYN#HpjFUU$xUiy?1{dfKKvkjbV z%9Aq%*%Ct%1AjE|M+1K} z@V}se;{a>CBY{HuULCrO$UGIfa`JUk*_R#GA<~86(}RVNLpU=+UKfWjhM@_5WXSHdg*EU=jh;!$B>-%1Bi?gBgqq%1myrS&{h**)B zQ%iQ*JBiw1+jh}9J`v)Z?(HgFlr?5?kYSOwivSKJVxo>5sX}M6JryR|E}S%uGMrgT zROyN5raG9xC`jP+>C(~2+dJ?*GS3mnAc77fsr&eyR&-3Dtg`y1H%97)-Pn`dqm{g) z2TNDGy$0(jYk@NU{I*?NX{Gd&p@asU-&${Cl4jCeNn4`4KSSAjt2l0G?h{3^l-RgL zO6d(4KW5nMRPX6gXLzdFqat)pe%Kn}q=li>C;f~2_a*y0aLIgeow$P}tuqz2XY{kX zjn|oETotW$8JRX~O2!3%kV2wR6%wb8Xl`u#e<9;Fryv9oO1?stMHXBFkxspz&v5>2CRy zKdhTX; z@r$deU%f&cm^2=r&en;3Cd)To<-i}Cwd%{;$~qhsVl}wOl)cGTQLeM**2Nu5Hfmdw z9v8&GO?=czY;iZ*$+|j-l#h9Ill~T6TLNt@Woq#NJ*k3 zmoOP6dP$r==~ z&dtH8LNGPtvYx)Ye|x@)=V+t9z6axj5Udcq=lw`o8|HhU@zSwdaTzQ!_pi8cWW5|0 z8YTEVy=M05LqH*VtotoI%n+;tbXwFW-#N%9>9Q*ZIUEsfDG)~OSZJIn;GcbrxrY@q z!zcI<+S6F+^PRqDr5>tD#j_FgNS1`PFH4yZJ_;ZD*L9K*Xcg^E$dXWhW8ok5&drK` zw^ae>zX1w{AC~ITQ;Z^VT_H62{0ZxwVt1(;ZMbQ)z(=}<{?h1PypSzO-!&%Kvx2au|pW8IS<>~=-Pdt+PzO6WH>4Sy^ zU^wA;PPoCWx+3yt&1m8;mLE~5Kgz86#;Hq1@Qc}}EZ@ATZe6WE_x8$YSuaDwf>!l= zbVhGG*QhqkB4c3kU1C3d;zk=&57tLe7+BSGernhYu3r0LM=0#F+t2&bw~WlcPY3p; z2gyGpD6d6;h`tphJrpUQ{R|fTFa|!Rqd?uD0Ggr^gJRB zh~)R?(^t#gZ)KsfYySLL;>-A=R)Jz!cgUAH>1XJnj}bP}2yzz0XZ9;JJ&?%0Z}!F} zguv{XCz=Sq(%%rEoqXC_6IBtVhKj||G+ZgD;kC94J7T}-$}qK^RfaX=1Shk=zT+tw zdB6q3Ox|R#Mcb!BA|$zkVxKPOEpTi5`GdYFYi&+N#{?szx0HARsbi{%FDuCIgqSB# zEng9`x?LmeZLKL9_O@!h6ribq>=x=}PBN6-XcgK5vgK@Zq&{Nf=)rc0Pc6>S->EXk z$t@~>L&XgjfB)I;bVt80eQfsda*rvDb(Zb)ha$!%E8k25_ccYXveL3>5(!B%$2qk< z_fj1G)MB43o)|orFq}!N>2OZ9>46H%PHnl@c`|t$?UqpW{_!(6hnQYWZbf!{T_tNr z3aL>oO)(&Lj*X2IgTsg0LaEB}UY~xtW$Iikgy9mS)gC%oaSfJ1(7Shi)1A&NnP?{j zi#xGyq1)CMqjqtJI2Svq{>iOt)zvSH;Ud>bbE4{%uVP0giX@c;!p(|dsR)fCxz6|N z;0umbDph&Jr`o35H6?HzhV?BtuQNP-(Aa@m00`^_v6(9B^DM=oMKF*+d)?`9cur^x ztJnTOXpGp+O9;F25V}5iKyH zX)#K1xupaYtB>v4RWqQ5V&8TZniqXhSS|lhLhfYDkiwquoCci}x*Umt^k_sA5gDCT zl>G&VmRmT7Z4NDyW;rqYVKzHd@QZ^A7=zoA#j#df4Z$OfWf>)yUtr#}3Q(3wbKJ@1 zGJnE!H5blXC|^V_@NwpYnMUFcI601Z?ko-hV|XDCk3HS$*yKt2{WavYe5w7OAk(`0 z$`~%1%XC(|@jaTDbq4!!>j%}IH(BQS@Tm0qDV|Z+d*wX|E@N1jOLTH#ppcraMCi0q zh)G#4uj9k53CRLFby?_aM<^|5Pvj~~D$1(BSQOzZPR(86aeU%5H-ggAIrNlGlVAR| zd`7mB4k;AIwgK0XvS5fB{+9XoMsZ{dkFF{A!i7T4U@r+C+CovHE`d z+OGjm-xMA^?5`x(c~rvC95-4*9%GWIeuG)89edk~=#a)g5KkzE?Gn*glC_;~F%12dr3X9Z)KLy*`o~*Ghn#{Yq&& zo{epFttn6F>u?#=M%T`ZDy5C81B=S5@??@RW)0Qo3DJ%f_E*Wh5nPMEZ@x1$P#sbHXv%YM`u|U*N7==XPirifAt{ z>h$q2a9>K(D;O8J>TWv*Ph*}$$EP0rJX6~R_E}`!lqz$Z=kQjd&i=Z>6%zx87t%@& z)>|I+sPZ(JDCjsWP|)~WdXbyea#bvJl1EDt(_Z6hrJ0trw(kg+(a>0iyRNPhjH!d9wa(%DX4V19e`Gvt;vP|Tp6F!kMBajnmQMGSNrWe84+|Hr z-H|U>YJh7lPe2u^*-Y%^(5sTxyVD2wU5vNx6Fz*(|Dis-CfqzSbm(qP>i3>BpW*jR zx62;n>$>`+&UC4;BH+rX1y2mV_?BNvw0cPWhAb!TRayk{!039*M&<#*oX|ErqdI#b z=LB!Nb$V1k^rOO>^@RJQAu7_&G%G1wy%{tPFSpp1kI2S&L7EDL>5*L3RF9>^**U}OQ3j{g zNN$tj@=tlCi{BNO%(q>tj(z&2wu40?M- z#CMT=$cYqkuXs9LvPFxxF#WDhOu2oqVO*jZ{T$BI&IZ@IRM*@o>R3ooq6s=|M|&M> z&lj3Mc!w!YzhffN2oR4-$$1}9Lr3u_E@|xO37$BDK}rYgH@E(TSZcUV97?IWo^MK2 z#x8+$4e{Rs4PHFe^lpC0n5iSS8Z0sEtd;4Q|HKS*6W;(uTdp8!!&d?4=n%K36`y7< z8C$e=VicRJwlbf|j5Chf)Deqm8=*^y+ur4U5Y!TGR+ljahA`#G#QcGCBiVSEO26ZW zfVn}%K1#{~od=EOQc}&+Jta^4UOs*ai)7r)E);7SxbN~tja4V1Fz)axfRtk!t8y5- zp3sLp7QeNPBr@3A{v4s@lCeLlnY)`p)1cr|V zFG1ejQOUxZ^7+IY`l>g*CwGIz3+L=s z{Rh-5Uk>1Je>Syprq)L6F^AI`bfiW*(!ToQvt3Kx0%Z~?Q{h`a3cFS@3Kj%bVW8q(Frt03Xqlw_Fr=wBarbh#$9Q^tMmw|D7b zMse~&a7nBSd@V2w`VgI8l%?!nJBR3EV>zJT>Vkoo**_Mpkq9%2PNrrTPR#E%jWNWE z8ZbUNx2i()64Q!(%e6VVIUUaF;F++K``}A!*6&1*_uUPk&3EZFIHPld+?6R;^*#WI zB#Xm0_hiP(h8soMM!gM?ab8zge^3=c`Odi}K-cAyzD8#P>eCpUBS4_{PG=zNldY*e za77YoFd+ZrS8vvuTt~j%a2WfXOv?o4hy<(FIVl!%84uy*>UL4klktK{?-@qmAYn#5 zQ5W=kYcqo{0<5nSnK%;eZA)LhH_&XZDQO9>(;UVV6oDtri*3QZ9nWgB#Eug|M}zcc zJ*S-0mfD-|@v_R2s!x(toC>4m;*Bl|83`K$a`-zEI~a_&=rnH&rB{8m9Y&~4yjK>S z#7r~xIkOZfe)C~G1B1#|7Z>#PM7+^iqJ5$k+9dRyNZ@j``yDcSpl8eiVV7DnWdMzp zC$rJg_O&SdE?F7}Dnbja$GL@w>3$4eSgPV#@1lqZ4(z_%u3?!(r@lj+<6d2P^bxog zfC(*Rs~{!eXxho;qlrK z)k>BR6pNXQFPPymoLj0L@Qt5mwpd0fuJ59~2)nu3Mgoh^_HlzO z*VA-RvZcyg;NC`6Cpp_ZXXR8)!hKXwBQLLBw8KqB;eWTkp6{-d62G6yQ>yx>f#v0h zS;|cvyqYe765HMD=@}z|toI+rE80A%Z{Pqv4KJO$d?wlTqhPt-DAl~fLp#c`KTJSd&Q6j zN=mC2c%O1&1!b(PnsK9>L9{)$u*oc~^*p~b5l*M)XNz41oUNKH_j?KF?m zwZ(~ve2lC>obf&FViljwTT8G3Tq!qN*i1>6Uqq;Q*e^V&Kvg|pLLbeHytalG)j*Ye z|9)W0M*b5*sQSAE%pYcQ=L8hGbTL#~-=rfTUVD5U+fvtS3lF!JdP7z-z#wX_vO?Em zI?O{jFNUkurIEN-3Rf~M>5V(i@#CTHRrnP_>+YR|nga%gn%(*USfD-NcuFmE{Mri5 zLT54NL=U)o4}oxX2o3FxK6%fD*i7gV7ko(44&4#v3!Cd%>X*gu)$^c8>?Aonv%e+(#V} z4iky|GzxG%^$*@Y1L@=V`#o7^i&~4z?l+eMgxn<(NvfPbKb!50kmCt`1b?#4ks8LFpYRCO_&0)K< zDm>P6v=Kx)!F%m}f@&IvTn&_!PsXnN95g}r&}iv>U5tCT(S5B8u%y$g!+R2C@V?@U zFwP+qdF0%1uXoBQMWCeeRgt!IEMNCuP)f6O6Xeq;Io_XmT?RY*O5}>=SbAxs zPc=21EUMyl5A&nUg%{MDi-8B0Gxmx783bM!^)k8DyOtGA*y!KNVc#T>a&Fi4@r%Z7 z9Y6Mduo$J2R1oGsqL7HOYK(t_G_g{KrY7-VFQ=BTisG(i-{8m|Cw$G3{vzG;Pu2~U zZza`dZZd`RnX^^Twawa;$(m$)2{0v!p&Sk**|?21qXj>AAKUEn?p}r=>l_Gc5a!d} zs4&#`L9nRFVRLqQc#~4WNTZZ)?w+B(;0W~;JDZ_;SRY1nGOQ<-q3o^`5T5N$%ykCg zqHB&B1s^^j+iEUt>L({i-^{G#Z_BO_sBOO59K*7` z8fLtrdkshJp0~;iuhQHj&EsYd;U=WDfrhQhjVhb3r*7#)y7q_+b7Ks4RYCp{sI$Xc zL|eS#XeN@tS*cQ+Q3=h4$y`#`TzJp?upRLr7=ZxVA3*5wKb`FN!yclx)ll30Kab#c AP5=M^ literal 0 HcmV?d00001 diff --git a/Error/XML/PureFusionMaterials_libv1.hdf5 b/Error/XML/PureFusionMaterials_libv1.hdf5 new file mode 100644 index 0000000000000000000000000000000000000000..b71ebdd102755190654583974f944ba606b8f477 GIT binary patch literal 51592 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 literal 0 HcmV?d00001 diff --git a/Error/XML/PureFusionMaterials_libv1.xml b/Error/XML/PureFusionMaterials_libv1.xml new file mode 100644 index 0000000..f4760b9 --- /dev/null +++ b/Error/XML/PureFusionMaterials_libv1.xml @@ -0,0 +1,701 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Error/XML/createPurematlib_xml.py b/Error/XML/createPurematlib_xml.py new file mode 100644 index 0000000..6d93500 --- /dev/null +++ b/Error/XML/createPurematlib_xml.py @@ -0,0 +1,627 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_libv1.h5",datapath="/mat_name") # don't set datapath,nucpath...will be pyne default values + # change datapath to be able to read with older version of uwuw_preproc + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mat_lib.write_openmc("PureFusionMaterials_libv1.xml") + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Error/XML/import_h5.py b/Error/XML/import_h5.py new file mode 100644 index 0000000..a4afc3c --- /dev/null +++ b/Error/XML/import_h5.py @@ -0,0 +1,23 @@ +import h5py + +def print_hdf5_structure(name, obj): + if isinstance(obj, h5py.Group): + print(f"Group: {name}") + elif isinstance(obj, h5py.Dataset): + print(f"Dataset: {name}, shape: {obj.shape}, dtype: {obj.dtype}") + else: + print(f"Unknown item: {name}") + + # Print attributes if they exist + for key, val in obj.attrs.items(): + print(f" Attribute: {key} = {val}") + +# Replace 'PureFusionMaterials_libv1.hdf5' with the correct path to your HDF5 file +file_path = 'PureFusionMaterials_libv1.h5' + +try: + with h5py.File(file_path, 'r') as f: + # Traverse the entire file structure + f.visititems(print_hdf5_structure) +except OSError as e: + print(f"Error opening file: {e}") diff --git a/Error/XML/import_hdf5.py b/Error/XML/import_hdf5.py new file mode 100644 index 0000000..bd62132 --- /dev/null +++ b/Error/XML/import_hdf5.py @@ -0,0 +1,34 @@ +import h5py + +def print_hdf5_structure(name, obj): + if isinstance(obj, h5py.Group): + print(f"Group: {name}") + elif isinstance(obj, h5py.Dataset): + print(f" Dataset: {name}") + print(f" Shape: {obj.shape}") + print(f" Dtype: {obj.dtype}") + else: + print(f"Unknown item: {name}") + + # Print attributes if they exist + if obj.attrs: + print(f" Attributes of {name}:") + for key, val in obj.attrs.items(): + print(f" {key}: {val}") + +def traverse_hdf5_group(group, prefix=''): + for key in group.keys(): + item = group[key] + item_name = f"{prefix}/{key}" + print_hdf5_structure(item_name, item) + if isinstance(item, h5py.Group): + traverse_hdf5_group(item, prefix=item_name) + +# Replace 'PureFusionMaterials_libv1.hdf5' with the correct path to your HDF5 file +file_path = 'PureFusionMaterials_libv1.hdf5' + +try: + with h5py.File(file_path, 'r') as f: + traverse_hdf5_group(f) +except OSError as e: + print(f"Error opening file: {e}") diff --git a/Error/XML/materials.xml b/Error/XML/materials.xml new file mode 100644 index 0000000..3f2e4f7 --- /dev/null +++ b/Error/XML/materials.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Error/XML/test.py b/Error/XML/test.py new file mode 100644 index 0000000..4eceb2f --- /dev/null +++ b/Error/XML/test.py @@ -0,0 +1,39 @@ +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(): + mat_lib=MaterialLibrary() + mat_lib.from_hdf5("PureFusionMaterials_libv1.h5","HT9") # don't set datapath,nucpath...will be pyne default values + return mat_lib + +print(load_matlib) + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5( + lib, datapath="/mat_name" + ) # don't set datapath,nucpath...will be pyne default values + return mat_lib +libPath = "PureFusionMaterials_libv1.h5" +pureLib = load_matlib(libPath) +print(load_matlib) + +def mix_Pin(material_library): + # Material library is PureFusionMaterials + # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet + mix = MultiMaterial( + { + material_library["Li4SiO4Li60"]: 0.065, + material_library["Li2TiO3Li60"]: 0.035, + material_library["Be12Ti"]: 0.613, + material_library["HeT410P80"]: 0.142, + material_library["EUROFER97"]: 0.145, + } + ) + Pin_mat = mix.mix_by_volume() + Pin_mat.metadata["mat_number"] = 1009 + print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) + return Pin_mat +HCPB = mix_Pin(pureLib) \ No newline at end of file diff --git a/Error/createPurematlib.py b/Error/createPurematlib.py new file mode 100644 index 0000000..cdc99d0 --- /dev/null +++ b/Error/createPurematlib.py @@ -0,0 +1,510 @@ +#! /usr/bin/python +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MaterialLibrary, MultiMaterial +# +# +# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# reference: 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html +# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 +def WC_mat(): + nucvec = {60000000:6.13,740000000:93.87} + WC = Material(nucvec) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of T + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# reference: 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 +# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K +# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# reference: maybe 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# ODS LiPb-corrosion-resistant steel with Present impurities removed +# reference: 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# Li ceramics +# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 +def FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print ("\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + + print ("All done!") + + +if __name__ == "__main__": + main() diff --git a/Error/createPurematlib3.py b/Error/createPurematlib3.py new file mode 100644 index 0000000..801a816 --- /dev/null +++ b/Error/createPurematlib3.py @@ -0,0 +1,513 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# reference: 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html +# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 +def WC_mat(): + nucvec = {60000000:6.13,740000000:93.87} + WC = Material(nucvec) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of T + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# reference: 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 +# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K +# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# reference: maybe 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 # + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# ODS LiPb-corrosion-resistant steel with Present impurities removed +# reference: 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# Li ceramics +# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 +def FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Error/createPurematlib_xml.py b/Error/createPurematlib_xml.py new file mode 100644 index 0000000..5eb5690 --- /dev/null +++ b/Error/createPurematlib_xml.py @@ -0,0 +1,628 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + os.remove("xml.xml") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_libv1_xml.h5") # don't set datapath,nucpath...will be pyne default values + # change datapath to be able to read with older version of uwuw_preproc + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mat_lib.write_openmc("xml.xml") + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Error/g.py b/Error/g.py new file mode 100644 index 0000000..b8c8e17 --- /dev/null +++ b/Error/g.py @@ -0,0 +1,627 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Error/materials.xml b/Error/materials.xml new file mode 100644 index 0000000..140669c --- /dev/null +++ b/Error/materials.xml @@ -0,0 +1,2 @@ + + diff --git a/Error/mixPureFusionMaterials.py b/Error/mixPureFusionMaterials.py new file mode 100644 index 0000000..d4e75cc --- /dev/null +++ b/Error/mixPureFusionMaterials.py @@ -0,0 +1,297 @@ +#! /usr/bin/python +# +# 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 +# +# references for FNSF compositions +# +# MadaniUWFDM1423_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1423.pdf +# EliasUWFMD1424_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1424.pdf +# HarbFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333846. +# ElGuebalyFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333865 +# DavisFusEngDes_2018 https://doi.org/10.1016/j.fusengdes.2017.06.008 +# BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# SchnabelNDS_2024 preprint https://arxiv.org/pdf/2311.10063.pdf +# +import os +from pyne import material +from pyne.material import Material, MaterialLibrary, MultiMaterial +# +# Load material library (created using pyne) + +def load_matlib(): + mat_lib=MaterialLibrary() + mat_lib.from_hdf5("PureFusionMaterials_libv1.h5") # don't set datapath,nucpath...will be pyne default values + return mat_lib + +# Mix Materials by Volume + +""" +FNSFFW (34% FS MF82H, 66% He) +""" +# reference 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 +# +# blanket materials + +#FNSF OB DCLL Blanket (73.7% LiPb (90% Li-6), 14.9% He/void, 7.5% FS, 3.9% SiC) +# reference 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) +# reference 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 + +# EUDEMO +# reference 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 +# reference GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# reference 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 + +# 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) +""" +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']='BoullonFusEngDes_2017 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) +""" +# reference +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) +""" +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 + +######################################################################## +def main(): + # + # remove old mixmat_lib + try: + os.remove("mixedPureFusionMaterials_libv1.h5") + except: + pass + # 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 + + + # 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') + +if __name__ == "__main__": + main() diff --git a/Error/mixedPureFusionMaterials_libv1.h5 b/Error/mixedPureFusionMaterials_libv1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..88953c336c22d2241e8052f2149d1683767b12c1 GIT binary patch literal 13061 zcmeI1ZBQG>8OKi&U>Qunm;{%AQI*uVHZ>q*UL9T~URr@L!X~zH;SdL0E1gum*if1# zP7HQBnI_Y;@rN{VGyT$;x?@i=N!5YYyiBLfXgWAEb#0GLBQbI8nPiNLr$(-my0>?` z0v&q5?w3yOJBC}`Z=Zd3_kYjs?cKiIXsAz4%uJ-vp;l9IRI2ckobKTxzDOkGn&fxm z9}1kF!0E4);tvId{wQiQ<{Pnpsa<=U(Ma)@#6L-KF)9!*{!$Ylr;n5ZjmDZ*)Zu4w zuQfRRGmbNSN!e)+<6>!BmyPXl(XJuFNqm+PaGxm@zl|!r>-!VQ zt2byH&fb^1x*eGx3zAm1dsuQwTy+c4fX1;nf=OHvSxI!LsPjVnJi$NDk)@q>lO@Bd zl5Ese;Yg~c^huQd9$&tf;rN+lD6&R?9KaI*&Q~<>a{Uq>FBq}l^$dH zLROJ+p%TYM5~UIPNro3%$)IO(FVkn^m-<2;Di;|)N@e&l1o&?8|B-1>I)2b|8u=l5 zk`%w@3J#W^-YZ;wB|1kWQbBaKd?hO&D6QIl6p6<_^pOIvq@OU;bjnB)KU233pM|R)C{V6X=l6OZel-3eJD-6AltD!&-iysEhO3dl;9tTwhR-r?s<#9~^T0L5REz*zullu_uUl+@} z(bnK)dT85Fz1MBAvh9quOIJ`>qM^B7joCB6xZEo%L{$mL0In}~e{{N{ST)wPH5n~} z|7N49&fKPHZ?0)ws-(5Y#FiD*9zd0_*#D1lI;^!iIJbxOcp1*KOrjPC$7rAv?|Qk) zI$ca14h%TFMvigyvy7WpKvyKRu&SzRsb$8!24l0iv97h2w)O}bdx_PmUT)#o6s<3pa3Uo{B>LU7n7yBo18SP)E)5ofy*5S3;99&ct;{C)Q2sKf? zs^@pu853KKB^PS6;d-CP>4WONLh`~`4K>oeOmr)kgjmuViDAd>AkTwn9SX~0d0%7L zbhPr0Iqdf*58lreU5q()jW(8c@9n5>HWcc0dNi_jiILB5^l&VnVQA(viiC`%&Z8(W z)R|0?IB?+hk@Z4!|BDJ^Ml>1^OFmsplZ&5D#F6X7{>XDK+Mm84=IvTTP)l1MYqN^YxppV!{a*({i%_v2LbuO>zLAN&!|?=v7*N`6-a<)d}OKK$~HcpT1;mB(jO|HUp! z-!@cG+~`1Vg+scFLQxu=vw8yUw&Y-aq@_P4FM2qGtd}AUkrt4zWd&pfWCdgeWCdge z{_hnSR2=&2#TMnB^pRkbFJo9ScB%FBiJtjGHR)qCyKC#Juh zEc)-Uk`ltampJ-a}EBgxm^F1xqg4iT!#PSxeouEb0z+Bb4UE| z&87H<=gj{7|2TQ=HJ|da>7O|t?@Ycp@xC*=Gv#jog*%zSt){H!5 zHWt`?HFOuv(m9I`&L#01ImK#Xlz1}>@4rac6^h?`~d-`=V z(@7!icwGMUj?nh;gfr7mo;~&4ThAxm-ucm&*@GFkx%1Z->G_?ri#J*8cT(zl8)sH*MP+GxQ|r3N|=CFnUwoldvEG$8sEqnc+%+|7s z*UNU~#MQj>ckb})mGTev-hS!Yc=)4*GvN;x-Uwe_ct8Bdg;&ED7DmH=SvVD*U3eut z?b`PRJJj$6b9r&w%w7BMYCG3=OkQv%cP1SVl$UPc6&=b9)ce+RqXz@(tdWDk;?jiQ zPG>uFuf`vle#V)9b=~5$%9*w0*d}LM3$LMi%V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Test/1_make_materials.py b/Test/1_make_materials.py new file mode 100644 index 0000000..b2e8390 --- /dev/null +++ b/Test/1_make_materials.py @@ -0,0 +1,217 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5( + lib, datapath="/mat_name" + ) # don't set datapath,nucpath...will be pyne default values + return mat_lib + + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_FNSFBW(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} + ) + FNSFBW_mat = mix.mix_by_volume() + FNSFBW_mat.metadata["mat_number"] = 1002 + return FNSFBW_mat + + +def mix_FNSFHeManifolds(material_library): + # material library is PureFusionMaterials + # composition from Tim's 2024 FENDL paper + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} + ) + FNSFHeManifolds_mat = mix.mix_by_volume() + FNSFHeManifolds_mat.metadata["mat_number"] = 1003 + return FNSFHeManifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial( + {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} + ) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial( + {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} + ) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + +def Pb157Li90_mat(enrichment) : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +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 + + +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"] = 2123 + 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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1007 + return FW_mat + + +def main(): + + # Load Tim's material libraries + # ACTUALLY Pyne doesn't seem to like having two libraries loaded + # at the same time, so I just copied some functions in here. In the + # future if the materials libraries are included in the repo + # I could just import the functions + libPath = "PureFusionMaterials_libv1.h5" + pureLib = load_matlib(libPath) + simulationLib = MaterialLibrary() + + # Extract materials from libraries + FWWArmor = mix_FWWArmor(pureLib) + FNSFDCLL = mix_FNSFDCLL(pureLib) + FNSFBW = mix_FNSFBW(pureLib) + FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) + FNSFIBSR = mix_FNSFIBSR(pureLib) + SS316L = pureLib["SS316L"] # front and back plats of VV + AirSTP = pureLib["AirSTP"] + AirSTP.metadata["mat_number"] = 1008 + VVFill = mix_VVFill(pureLib) + LTS = mix_LTS(pureLib) + coils = mix_coils(pureLib) + FW = mix_FW(pureLib) + + # create new material library + simulationLib["AirSTP"] = AirSTP + simulationLib["FWWArmor"] = FWWArmor + simulationLib["FW"] = FW + simulationLib["FNSFHeManifolds"] = FNSFHeManifolds + simulationLib["VVFill"] = VVFill + simulationLib["LTS"] = LTS + simulationLib["coils"] = coils + simulationLib["FNSFBW"] = FNSFBW + simulationLib["FNSFDCLL"] = FNSFDCLL + simulationLib["FNSFIBSR"] = FNSFIBSR + simulationLib["SS316L"] = SS316L # VV front and back plate + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Test/1_materials.py b/Test/1_materials.py new file mode 100644 index 0000000..882744f --- /dev/null +++ b/Test/1_materials.py @@ -0,0 +1,204 @@ +# THIS RUNS IN THE DOCKER IMAGE +from pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary + + +def load_matlib(lib): + mat_lib = MaterialLibrary() + mat_lib.from_hdf5(lib, datapath="/mat_name") + return mat_lib + + +def mix_FWWArmor(material_library): + # material library is is PureFusionMaterials + # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 + mix = MultiMaterial({material_library["W"]: 1.0}) + FWWArmor_mat = mix.mix_by_volume() + FWWArmor_mat.density = FWWArmor_mat.density * 0.913 + FWWArmor_mat.metadata["mat_number"] = 1001 + return FWWArmor_mat + + +def mix_PinBW(material_library): + # material library is is PureFusionMaterials + # Based on Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet + mix = MultiMaterial( + { + material_library["Li4SiO4Li60"]: 0.065, + material_library["Li2TiO3Li60"]: 0.035, + material_library["EUROFER97"]: 0.418, + material_library["HeT410P80"]: 0.482, + } + ) + BW_mat = mix.mix_by_volume() + BW_mat.metadata["mat_number"] = 1022 + return BW_mat + + +def mix_HeManifolds(material_library): + # material library is is PureFusionMaterials + # composition homoegenized based on 50 cm breeder to 35 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. Estiamted from Zhou 2023 manifolds + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.714, material_library["EUROFER97"]: 0.286} + ) + HeManifolds_mat = mix.mix_by_volume() + HeManifolds_mat.metadata["mat_number"] = 1003 + return HeManifolds_mat + + +def mix_Manifolds(material_library): + # material library is PureFusionMaterials + # composition homoegenized based on 50 cm breeder to 20 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.5, material_library["EUROFER97"]: 0.5} + ) + Manifolds_mat = mix.mix_by_volume() + Manifolds_mat.metadata["mat_number"] = 100352 + return Manifolds_mat + + +def mix_VVFill(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} + ) + VVFill_mat = mix.mix_by_volume() + VVFill_mat.metadata["mat_number"] = 1004 + + return VVFill_mat + + +def mix_LTS(material_library): + # material library is PureFusionMaterials + # composition from T1E radial build spreadsheet + mix = MultiMaterial( + { + material_library["SS316L"]: 0.39, + material_library["BMF82H"]: 0.29, + material_library["Water"]: 0.32, + } + ) + LTS_mat = mix.mix_by_volume() + LTS_mat.metadata["mat_number"] = 1005 + return LTS_mat + + +def mix_coils(material_library): + # From T1E radial build spreadsheet + # material library is PureFusionMaterials + # mix solder + mix = MultiMaterial({material_library["Pb"]: 0.4, material_library["Sn"]: 0.6}) + solder_mat = mix.mix_by_volume() + + # mix hts_tape + mix = MultiMaterial({material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5}) + htsTape_mat = mix.mix_by_volume() + + # mix coils + mix = MultiMaterial( + { + material_library["SS316L"]: 0.7435, + htsTape_mat: 0.0622, + material_library["Cu"]: 0.0098 + 0.1209, + solder_mat: 0.0348, + material_library["HeT410P80"]: 0.0228 + 0.006, + } + ) + coil_mat = mix.mix_by_volume() + coil_mat.metadata["mat_number"] = 1006 + return coil_mat + + +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"] = 1002 + 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 + + +def mix_FW(material_library): + # Pure lib + # from spreadsheet (andy davis) + mix = MultiMaterial( + {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} + ) + FW_mat = mix.mix_by_volume() + FW_mat.metadata["mat_number"] = 1007 + return FW_mat + + +def mix_Pin(material_library): + # Material library is PureFusionMaterials + # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet + mix = MultiMaterial( + { + material_library["Li4SiO4Li60"]: 0.065, + material_library["Li2TiO3Li60"]: 0.035, + material_library["Be12Ti"]: 0.613, + material_library["HeT410P80"]: 0.142, + material_library["EUROFER97"]: 0.145, + } + ) + Pin_mat = mix.mix_by_volume() + Pin_mat.metadata["mat_number"] = 1009 + print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) + return Pin_mat + + +def main(): + + libPath = "PureFusionMaterials_libv1.h5" + pureLib = load_matlib(libPath) + simulationLib = MaterialLibrary() + + # Extract materials from libraries + FWWArmor = mix_FWWArmor(pureLib) + BW = mix_PinBW(pureLib) + HeManifolds = mix_HeManifolds(pureLib) + Manifolds = mix_Manifolds(pureLib) + FNSFIBSR = mix_FNSFIBSR(pureLib) + SS316L = pureLib["SS316L"] # front and back plats of VV + AirSTP = pureLib["AirSTP"] + He = pureLib["HeT410P80"] + EUROFER97 = pureLib["EUROFER97"] + VVFill = mix_VVFill(pureLib) + LTS = mix_LTS(pureLib) + coils = mix_coils(pureLib) + FW = mix_FW(pureLib) + HCPB = mix_Pin(pureLib) + + # create new material library + simulationLib["FNSFIBSR"] = FNSFIBSR + simulationLib["FWWArmor"] = FWWArmor + simulationLib["FW"] = FW + simulationLib["HeManifolds"] = HeManifolds + simulationLib["Manifolds"] = Manifolds + simulationLib["VVFill"] = VVFill + simulationLib["LTS"] = LTS + simulationLib["coils"] = coils + simulationLib["HCPB"] = HCPB + simulationLib["BW"] = BW + + # from library + simulationLib["SS316L"] = SS316L # VV front and back plate + simulationLib["He"] = He + simulationLib["EUROFER97"] = EUROFER97 + simulationLib["AirSTP"] = AirSTP + + + simulationLib.write_openmc("materials.xml") + + +if __name__ == "__main__": + main() diff --git a/Test/PureFusionMaterials_libv1.h5 b/Test/PureFusionMaterials_libv1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..0a64e6d87fc6fa7e7fa8681e45bbfe08968f1099 GIT binary patch literal 26740 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 J8l`~N{{vm^Pg?*0 literal 0 HcmV?d00001 diff --git a/Test/createPurematlib.py b/Test/createPurematlib.py new file mode 100644 index 0000000..164fbb8 --- /dev/null +++ b/Test/createPurematlib.py @@ -0,0 +1,627 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + print(Pb157Li90) + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + + mat_lib.write_openmc('materials_test.xml') + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Test/createPurematlib3.py b/Test/createPurematlib3.py new file mode 100644 index 0000000..801a816 --- /dev/null +++ b/Test/createPurematlib3.py @@ -0,0 +1,513 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# reference: 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html +# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 +def WC_mat(): + nucvec = {60000000:6.13,740000000:93.87} + WC = Material(nucvec) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of T + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# reference: 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 +# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K +# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# reference: maybe 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 # + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# ODS LiPb-corrosion-resistant steel with Present impurities removed +# reference: 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# Li ceramics +# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 +def FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Test/createPurematlib_mine.py b/Test/createPurematlib_mine.py new file mode 100644 index 0000000..cdc99d0 --- /dev/null +++ b/Test/createPurematlib_mine.py @@ -0,0 +1,510 @@ +#! /usr/bin/python +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MaterialLibrary, MultiMaterial +# +# +# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + return MF82H + +# reference: 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html +# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 +def WC_mat(): + nucvec = {60000000:6.13,740000000:93.87} + WC = Material(nucvec) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of T + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# reference: 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 +# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K +# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# reference: maybe 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# ODS LiPb-corrosion-resistant steel with Present impurities removed +# reference: 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + return HeT410P1 + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# Li ceramics +# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 +def FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print ("\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['EUROFER97']= EUROFER97_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + + print ("All done!") + + +if __name__ == "__main__": + main() diff --git a/Test/fix.py b/Test/fix.py new file mode 100644 index 0000000..2f19e6f --- /dev/null +++ b/Test/fix.py @@ -0,0 +1,641 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + print(MF82H) + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# 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 +def test_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + test = Material(nucvec) + test.density = 7.75 + test=test.expand_elements() + test.metadata['citation']='MergiaJNM_2008' + print(test) + return test + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + print(Pb157Li90) + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + print(AirSTP) + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['test']= test_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + os.remove("test.xml") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mat_lib.write_openmc("test.xml") + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Test/fix.xml b/Test/fix.xml new file mode 100644 index 0000000..3931489 --- /dev/null +++ b/Test/fix.xml @@ -0,0 +1,680 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Test/test.py b/Test/test.py new file mode 100644 index 0000000..2a4b653 --- /dev/null +++ b/Test/test.py @@ -0,0 +1,672 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + print(MF82H) + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# 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 +def test_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + test = Material(nucvec) + test.density = 7.75 + test=test.expand_elements() + test.metadata['citation']='MergiaJNM_2008' + print(test) + return test + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + print(Pb157Li90) + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + HeT410P1 = Material() + HeT410P1.from_atom_frac({20000000: 1}) + HeT410P1.density = 0.007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + print(AirSTP) + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 1.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Zr_mat() : + nucvec = {400000000:1.0} + Zr = Material(nucvec) + Zr.density = 3.56 + Zr=Zr.expand_elements() + Zr.metadata['citation']='HernandezFusEngDes_2018' + return Zr + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +def Inconel788_mat() : + 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: 15.0000, + 280000000: 54.5000, + 270000000: 0.9100, + 290000000: 0.2730, + 410000000: 5.1250, + 420000000: 3.0500} + Inconel788 = Material(nucvec) + Inconel788.density = 9.19 # room temperature + Inconel788=Inconel788.expand_elements() + Inconel788.metadata['citation']='pnnl-15870rev1' + return Inconel788 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['test']= test_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Zr']=Zr_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + mat_lib['Inconel788']= Inconel788_mat() + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mat_lib.write_openmc("test_results.xml") + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Test/test.xml b/Test/test.xml new file mode 100644 index 0000000..315f754 --- /dev/null +++ b/Test/test.xml @@ -0,0 +1,602 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Test/test_og.py b/Test/test_og.py new file mode 100644 index 0000000..3f766c5 --- /dev/null +++ b/Test/test_og.py @@ -0,0 +1,640 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + print(MF82H) + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# 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 +def test_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + test = Material(nucvec) + test.density = 7.75 + test=test.expand_elements() + test.metadata['citation']='MergiaJNM_2008' + print(test) + return test + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + print(Pb157Li90) + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + nucvec = {20000000: 100} + HeT410P1 = Material(nucvec) + HeT410P1.density = 0.00007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + print(AirSTP) + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 100.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['test']= test_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mat_lib.write_openmc("test.xml") + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Test/test_og.xml b/Test/test_og.xml new file mode 100644 index 0000000..315f754 --- /dev/null +++ b/Test/test_og.xml @@ -0,0 +1,602 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Test/test_results.xml b/Test/test_results.xml new file mode 100644 index 0000000..de0ef62 --- /dev/null +++ b/Test/test_results.xml @@ -0,0 +1,696 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Test/test_results_named_helium.xml b/Test/test_results_named_helium.xml new file mode 100644 index 0000000..de0ef62 --- /dev/null +++ b/Test/test_results_named_helium.xml @@ -0,0 +1,696 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Testing/PureFusionMaterials_libv1.h5 b/Testing/PureFusionMaterials_libv1.h5 new file mode 100644 index 0000000000000000000000000000000000000000..78746617219ee8af65f9ff1e73c02270e8fb7bac GIT binary patch literal 27259 zcmeHv1z1#F*Y^rXlo1{k?` zdWHfQ{3-uOF(4xJQ2MyTk72zgft9r|JA-`%7;9O9Eg)J(8b%Op3oQ$KxEyYu9B{#Z zSe|FUA{R~p^kH`SU)k?8>S_Bw_WK_a|KF_Hul5V~hc96E1Me=}el1}FxZU!>8~n{u z4k#sfY{PK7BZ1j19QRi{{+sasW164m2c(ftDKLZ0@BhjV@Lf4=4JF$DhU=m`VA z`T;%|Fa9w5fzxDS4Kjl0fQ=xQRwp8msj-=#% zN#moBU;V&6nBBtL|7yqZ>;9BKGk^fNbjmS|I0V?v76IW@paW|TFE1SJcaLkZjwU?P zNgc__=fxwBd@M&qL_E0=1%`70;RX6h1AzZ2;OQ5@RhS1q7Fw>^>jD67u$uq7#i?Cg z__4pgiTT(1+=ErWqx$Q1aR11F_SfzHyVUv@hXLZo!vG8kj0k*nj0hvC^$5$I^$7k2 zAVd<|Jw%3>J;XBA;0vu!gD;rr(IElu)F5F=)F6>q)*z)bXkJ|24!Go&M}_P^M1>r8 zks6tyvJ$z>O%0{>gBr?6vlsMGQ^lqd!kCOt(%iO#fXk%sA2)m~m1CSY^=#Sgl_Rutw$zumJZ9 zvCNWXvHhX4*d#e~*bD=6*nAh}u{CApv9X>?;KuPz;HK+N;FkGJ;Ewc9-~y;7aizsw zZk83^z#Boq#apJw#RDke;$gYq;*lic;_uDVptg>;=4IaB+WZaq^Ubh zWacwWI(@aNPEfb^63eD`RQa~$oljI}J`TQ~qV2`_B+@&Q=T z04#?`^*UgaBX4ehBL7{zmX)corG^>ULc`e92n@0|0-xUS`04z2?T^=o;}*w$|9EO0 z@AHmThx?)5U2{|o_~C~xocbX&0LjU9Fn4xze(a|Zj`Y zIKI_!*H4aL{nhcl=okmi7rdodXmG!O^0D z<9RW>E?n6+A{;}x$%n{nUqS0UzF)}P?F{=lJ~e~Sj+j4r+b@6Gr9$I^YB@}eo1MI&S1-x+!a@%y_JRp zWmj7^PNB6G`f-_v9?M!bVq3az-BZnEbM{}fRsDL_>QcWWW-fU3pw$%~uzzZyueg8s zz4efYy?xLAj!qHgqU>ry{%da0wG9`4>ynAbJ*w^m?+z)xEr#-z27Ve#Nsp<)&4t<@ z8e}%-UFvs+I?yUZ$GAG@`1g_f@wOf2zZp1&^ld5{8!GfGCmYkwZjQ*Ot1~Z{+R8*@ z81oK*9)#)IPN0^Rgh^2p3c_{g`B zf|2c!=bF1W*7wEB8_KE6Q_2m?=gJAnBg<9G`?rYS1v>@uxd9Lmkx;Nm{?DHrgqGc4 zTqkdTBp@YmvJHoAG+|qE0DQ0M=zJQ!;)L1#uk!on$hppubDtyUIY<8B969efa=vrq z56_YFpCcDIM=p4dT<9FR@Hz5F=g39Qk&B)q7duBTevVw?9J%B^be_&XLQXBUd;_u6T}I=^XjvbL7hB$W_jftDYlQJ4dd5j{M0va*cE3n&-&1 z&XH@MBL|%$hd(R+I*zbM=zsGYM=#S(4i{MIND6{jX&t|6CB0Aj$imdpQX3316az|X zFmiHokZ76ckiZ__Ngm3I3dw0mTbLd_sarw7mJcmJ`VbrNNgK(d*Rn>IB1g@&O-&7t zu4U&Wr6D~E@MxG=8*76tNbj>U(U6*G8H0~*qsSs)!6FYKJ$7Y!Fg@UY=qG*5OiYYu z8Cf~l87#myjK2V~u>Js)fUq%~paB5-Fg*CY`Uy`2Y+-VwBG^IL+EU0wPY`UW!NkDG z@e43B=f426$U&r7{skWb!-xB+pYZ=uUsjeMu%ad)QxmWe`_Zjo?i^qM!-e~apK$*} zz1e@SUj7*9rsvE;_;r{ub;GP-EG4841okkV_0QkD{PjJr$RK)_$ zvnfp9{~cWBf8ha+d-B5T2>b8P6V@|06$=q27@#>!PxyY}r~dz?9WyijP)}Y9t{%Vw zh6i7Ff5PK8)i*wxa&jPuJQ#FrSid?4mNP0PAV4iEc~%D4goeLZ{Ox=eGJ0eU*48qz zKXFY0a>DYWN9YV}znCrK83SVCOcMNZR$#CZO!L!-6953;NBm8_&rJ4sE}W?iu!ivg zU$1|{6&8|{qZJ0q37`1R6Xi)B2@9K<8regPk0N2e>VG!vgdirCCz{*9@ZtNqpYZ>3 z{1`cYjGrKr6np?}VR*mg`4PnE$cJ0O-Mgr~kgR}!u+Z^H{>t^4@062cW@M89!fs#( z!~ZSMf2l9anZ6H=tc@W@3kn+p8zT%Cp7iqf?f48<4k7@j0pI}B^SAR%+{hZNf4nvx z85zSbgLG!W{F1^POd>EuM;P93=fz+4oAqp-!TT*`cWfLdONP^5@%dlQx3iT(TAPuT zT>`=hUq78;xbS`c->|DQeNTt}L{a!Y;~%V-XKow5UUHnRm##29`C#RLt|!x(HxMv2 z0a<{pjwyA6;rw>}`s;CG_%WY^tn}@Tz$V~FM)n}nQxD?~!~OgA$$W+@XL6+Bsh&^& zF&@*IuL7R=Z4Ve8e1HEFk4g|7Qyo(=Q)vOYDIrnA0^faO^j8KmL!`#G%r-?vAmGq3p&Vj(9leWHpd4Dauc2h&;C1gzoR z0(kv%yfgb2hE3`ttkW3O$;k=we;tdvc@n3>J8FIW%HTNme)`VfG^%{@C`xwx9q}mU zbzFb^obV3+=;P=(mLtLHe^+fBw5?IY&7w5&&UY>UH z-!2aOCB~)$Yw<&of4kz3;12_T82H1$9|ry~@P~o_-x;t&SQv2RR+zy@UVdSqR`^<0 z_nEY4kCs*ZW)>;P>W%7)@xWJNfelduvW$10UteoHJC#aUn-3?Ma%3?(5me9)`&#qcl&6#cQrb zRGNWX`@t^zME7b%cfF7isr8NgUsjjisPPw9>wst}5Xh!6g+B>0mHd*=+>)eo!>%)9 z4L9Oq6=K(>Oo5I(2v~>T7s26@=ldPehR2jkg7=e~`*Zzg)w-0rxnU!{OLt7O7h*jz zpg6Ws3NoEBJ!!8n8eDr76KqhHmH2kFz#qFZtBh+Rhpw;}I`s!}L2X@ayThS9vTPLQ zgLsr<@6ZdmO-yoh?lgra$43vV;3m?@-_BUNB%u_Moz!6N()8ssy;WA&tp#S=d5U5W z{wb7>PNK*n!l|Xc7ho*AP`0C3HPfe28tfN z2XmS!j^yvgZ%wJ&TUl>E2Rs+ zJsYp1yk%hcID%nFYC| zgA4)z@|@hj=cPmRvft?DZFri-oK1=CrV4sHDAaj}SZ=T;O39-oRNVI)jv+tno7i+n zPHt+#E_i7D$`M#(=u0Mb{jG59imIj7rij>&ZE>+AtXclzA zYb*ABSpbXsbync}*R{cqKj4w38t*Gc%!s@dk+ByD=;w|Id;{(1=AgYC#kOS>8ALIf-U-@A_+G=f&R$JjEa|3db|W;COn4J?*n!q=Ka`5HnVK zt!~Nnk@p3e3ns#?iP*ZA5UjPV$U4=m?9%wf^5qJL8}2_-yC7_W*L`)bj?0;5zf{kj z#lI${0g=7iJI5z-Q3H2c`Bv`^==zpHr|#M+q$imMEcI#04^PKNyU5`CGB6pT1_cLv03gsS6V3y>QH4yms8S?plc%? zXhgSwt-@BSZ+|OTh$6Di;gPFF4Z-lBO1~me)K@d8gsmStu}NuyF3MiCn`eh-eVs$* z`kuJD>u9&b1HZXT-=BCLyzQ8RcvnqPLDWUb$(E{XOst8OaFr=VYSw# zKJWIx=KX7+Sjks&X)Q`iIQ+K=KC*E38GhSDxj{gjg!=iectgcjNyk&j(8ZotCGp)X zP_)$ctI%us5jyNk*+Wkp=JQj*Ya}>KD$yTjW2YrVD~iX-FmGm>+ijGjK@=57!uW*5 znF3vDNc8nYJn@TOr$&Af;inl=(+D{xCKJ=yFS`3y&!QJ$m>p<_Mg{c^I-z^AAdMbIz1fTL10hU~* zS;BkR`)Zj6SQp0L7wb$NtaU(ujH$#Tn@p&jFY&16Il>;NI8UezYy0v`KYs4GoMS>< zI@DZIzUmaE{HDXlPif2FO9NGG0+(~(jf0;h1RgMzOzz= zK5U%Pyu8`Tvcy`rzyDriN1A>(Iir)wSxRIG$?|@FXImbBuMZ*NlzItA-!q?%L2j-- zlj;T5xu|P7y$pRGI){HKd>=aW#9i_B9Bc-4<=%xK{f)2N>?u1*2MeTqx{nu`< z(h!r7Q@M`Qm$<$TBX*j3Od^VImp{a9(V@}3#+7DU#hgJs!+hJ~PHN*#-L`3cDa4q% zwq$`#S-Xi)TdC<@S;+o49$7=*E+;*(S`p3TZDsT{yFne6f@J(cADK^(pV2!l)zGNu zwe;e>#khxrTun|9ls01}uUk}P39RMxH$hFnJoXd~kKtF_HI&m)^X>a|yObUKaV8mk zboG(?q~^IcoL!4elIpRAK6ll+uIIDHbj;*`v2jw7W1ielXY;^$0LovO9L`4#Sgk99 zra$xbtPlS9`AHRYe`L#|>i|5OSG$9e$_@VF_xUd8eA^ah)Y68N%05EsLX;aGPSCz! z9cj|k6eOy^WtJXT7_iq!FsfQTueF;dn`)f&ba26MaWBd8!5;l}8Pc5T?+3ELtex&tTC zifm6$*bXMXvRqr*avYcHqPlXCqzu*i8WYIk31;Lx!j-&%k=&W0+}Z8bTI6EZv{z5a zpc=l{KP4+9a94(|+`hO&G}(~CIXRTy9kw$UP1n+oA&0UoRrdO&<3>sjb;jxycHNpO z$OKO1n&*@K*W|md;9LE&o?|G7HkU}9kr4Z*1Jrjq`Pxy`tc(xhNds^8(~q)Q#=MUX zY73#8DArh8a&a#LHZ0or>6tfr(D!*#4(im%0i`FMbG(G+xl8pGX;*D{R;+Mna~Ixz zbP9;itj8;#@T178x&6FOvC>m0X7uL%NYodHR%f8_XaBczcB&;)Z5^BMF|Z^5hsG9c4+m80otZ_j)bw^Y~%MtB<%q zC#wXuVBaNc>7mJ7KcIcsjWh|i#L5(Kg!M)B>24w8Z*OApvdkSKOds_tjTdU@YZF5B z1)sGM+Nwqblj7)i+0s^B;kM?J?F)}6*=REhPJio+lk%0cin|uv9L$_B+i+mGZ5`zL zXwJSTzMy5oUoU@x>%q_$>czcL#_-S1_#BnOwGJpB@_0i9az=ZXH2Q51cRTXt`V;X} zv)(1{7ZCFEs@>FPNcTv( zVbEVD#FM3Dh>Q81TI~A!8VtPa3oUIUIpWId`+WQRfO;{$ce#ovkZAZM&+gRE%bSo%*)WGI6gy z4WCi7h*^lEn%7!sm@inU&t{CpnNnrYM!gCP*WlaLF4eoP)XH8n$HH_(T`6Y*I{rXfGp9+>57|CPBN(wvMY&{avD~9fHMN-s11R!F$ z0gy-l2q=7iPX8$n2XZ6BPlf0C&&!GX`!O|^vv>GX5F>f8otCA5g*7~;h6sE3{cWs4 zKvqB>mfpg~!q3Ra{!9Fi@$7ZJgvjap{Ns1+#|Jz&>!;Yt--xL)o<&DsK~>R5#{meW zQ}}<76L1y^Qab)W1YpsOi!i+3#*`(&7J3jZSn%`TQf7XHz^uTQKXOhk!SMcmtcB$) zKq+bZBi4cp!-MB0{>0~BhNW1}Vtyz21*edw5fT94w=wVkEa!&hY-l7PN2w)J%>R-T z1OJ)pZ~6SISn^pU^`lM z6^8$lp3)E#D?uqC4Ix<#24+TP4c3zkCYBQ-e&U+sS5D6QASEcr$i%7)H#iK~eg3}v zGW~0E0UQnh|GDUIa|?d)FRVHTpGn`wJY?nT^3Bt{m_b008zs z?l<#U%vDTvF~mxrUqDXoAyC4`)QIUQn~;O$SM`5591(d= z_>FL2_xT5Qd}ee?a5Mnm8Vv7$CnxXB5Mch{Uvl!U{}uj!oRfDpkS95LN7++nJvhBV zE!@$;?)Rto!@wT~{xI-|fjn`^^`+iH#)nH!~ z=}>^JqxGwjy2+t!-7CN#x>ka#AXg}Rx{%(}s3eSZs#K91V~PY;rO9*6VrnfN0QXmy zgzE6U-N3m0tKZPFk!h!Zx;|9uRwA)=)1I@mrOdnLc6R=907+JAmpTaI7iEYg> zu8vs4{$gq6%FAcWZ@QOtmAn&Y32ej-~fsED(X{ku_n~9rB>=1&9@;maCuiyjtNYUI-yr z@)Hj5pB^IhvQB4VKm4Nfns7@*(&c)ywR7u2i7Dr!jtkBhTkM#sK#hWXM+Wo8?YShS zX&W*_CpIJQJQeen?s`BrT7S%A=CSLRd3VcFz zm|4cA8=?54)CUn}(`E@zJeJtGx<9Mkx}P?hm*y%ym^EtD;#;f9NH)C$ygX-T&m)0o- zCd#ABlN0kUxG)i+Kpv6PH8pw_w0l=L6Regq>#ddm<7O1?vhhIMj+)7NfeZ$ARP115Obv=W3`N+@&z6xa)llwM9JF zzm|^-%f^OG86$Zh;Br=`)8rP)O!-}R+ia_90eN=!9PkmF9NKf6uWadt%dXSx0=;oK zkh<`DWWrTG@#ZfZ&Mpo9HF`3b7fSF$LK$i__gpeoZuzGau7vF!D380~nQ~5C(xbyD zkY%?WG+@1>L6NbmDbmo36M0#Ca+7#qx>yS_O%~XlN;aI>zr`J33W1QT@u(Q}a?ouR z?ULKy6GTdSSjPU%kPO72}!`RD~;-Hcj z1DKQS^}P8_k6)qgJmF}J9pa|2=#BUJcf~|7?M1{_$VzF0hi|QpN zAB4lN%;TgzWyEy6plBbUYY^{G*Hyoi(jq-Z=oO@*CtBnYK$>@$(aQap5X1m=d4we) zkLDcWxkTRow#MdFHN^Ttqf7GoU8a8Gy=bttzOGC)!TY%=y2S>d0CaT>VSCMLWI$0I z>U9M})1+Y0rH)22Gb(=en?}iX`qcSP&&O*g-qD4Fpmtu2^7Y2HICbgIrId z-Hg_c(ckf5#^!MZLaL>#V13X%l+>6ND#>z`dezWRSfAsvEd!&h=+$$cg?BHb6n2E) z2^@X#W%+I!FSlkyPY7>Mu3S6vuH@I(U^LA;;tPhi*a`fv*$bCWM$fw~G-(@fr5o=n zEEhEuZ8SDB`_I?`ljT?MjkolSZ)LSz!+*OfyZMgL(_TR=+xmO2+eF~}Rxv-~fpKWl z_?9_Go5}1(B!Dh&Z*r4K1m!z*XnOC%4Tto-%(2&^`b0Nb$~UiU=qHJ>@X}e{4w{|V zd$NF_%*B9+G(bPKZ=_y2%KJg99{C;buo=KTI49m~l8_>A_?wUL!>85sj|SJ;%C@9= zyE2&Q76O?k9#6B*tlZGu(E)n#M6yZXenFyNRfq%==a(TGmZztzI<(q>x_x`*zK_Hx zKLLsflP#O$DPA+ec)FX24~7;d9qzx`xp7GN5==FrpqhyqW=AqtMgK8Dr+J6{0_ek~ zZvu9+V|95n5~G;75QT7X(Zl@F+Z}_JzT;NB?R{D^^F_#ND0Yi^CT}V|aXKUy(OrWK zw|XjvUI(OVyCC|8rVV5oM4@jJlzzQ5AiJQXAzK&Fq|FnM%6b7PRqw?w=;nZgV%OLs zXNU} z7(*!!?mR(}Ww#qIXb>G^-PlC?lF0_KVQZ+c+7o}xuggmY{h(Ib*b}%QG|rLJI^SxO zBek23$wuH4j73`>pWyJ^b)x9bxV?zk%Y$r)7JG&yh0z@s~BbG%cbtIP6sj}oMEAOav#5U?wwUKU~`r6V#IMLB6*=Krx&Yxuf`2>mBV zX)`h6S=Px?Nka+u6q(5cFQSCom7*zDj)6DSvPWiQ6Z%oD@2q}duTFk5aYbqPV3oJg zl4kKMt@~PUhNK~pkEQ~XpWlPG=z^JgQPK6rXwk1sm^KNkv3L$S#cz7!%&YB=+|A0a zD}Arwx&yV1&Bl;iZ@BG-(*flj-V<5e2@eS01ofvw_PzkG^iaBRlJ|Y)eqzM74*lTV zz(s`}pPm@`J=Eji=`C_{dO-Mye7R56wNk=7)t38)J}qUWuS?WST^0P)OB2#?`xz}< zIQI%QF20yHMp{wqX>=1)kXCka(3Os(`0BLzdOarn2GSkOEfi&$J$?WAtHB`;`gi&W zRu9LEht$`)mZ}%N6284d5ntCOl+NktJpivlWHNrHMCV@vina{+u zw7DCEUtqIz~y+EqQGk~Y z!~Ym`Y1(C`t>WcQK=Vc(*r5S6zje6r8CK#`n!eCjFYX5v$zLP0QH!6Fgiw4FE8M+J zp`a9dIP>9l1Hru-psgYra|vKtjh5v5hCgu_u8kE+=4W?FkTXvuS*GxpJ@?s{?fdme zC|h#DWbq+yEF5=tp=(Xs^ag>b#-R-8pWpYj$PfGNQ)dYj9{M7Qtf8B`;u8UNT0@ju ztS3We;+?UIqbsSt-Se6q%ep-5V|2Yr$qZyT_@<)vjx=>rbs!DDvL7oah_%WEabjS> z$~v0LJ^wl%m-*$8;peXGv1wxTY8G?4H#=K+3IfybW3fepn{Z+b0E2!s7)sZQ%V~&X zb-1^}(Iil&bXqQMAGXFs(mkgSqXAZ|J?k+x+!JS*<+t+u0ShcKOn0`2xnFpc%o^dTweLfe5 zI^F!4E)Om?_+#*}(jh+%l!m7O(i-!?vGilJ{K(9!+3>eX6f)YjA*h8!LLn9OfpMqhVCjd!dTn91X{y4a9G#ahO^fM_zT=DM8R zL?6cHl^HuClpZ#akkmm!a`$3?mi5T;jzz#@J!A%OP^mqS=c@DMPYIlBjXw?d0X8wdbP&7SM+Uk21Np;!$y~*zInR?ejP8Ls;=V4w1T=Bs}ZH{=?bpG zq~YefC3Dyddz>**Kzk9Jwhn6pvEGT9g-e=FaAcUAZY;%01BOfE_60NsOya~d>Dy#07-Mlv)`yv{Bn1i-B;qqqQxP#`V^&(R! z&z7At^Y%IWWgo^!ad+BDP5DnnhUd<&5k^xzG~W)~c8a82x~&+pAY+oAf{@l@EjxE@ zia$wCK&vUnb&31CpIzMCi?T9QEQkGXD5GDwhtocwtKATLiPGBo<&~&SjA9_Vqk~G- zv&ghE3S3-dg6>G^$5|^e?bY1NKKEz7t3+JRql*33=puh5wpq9v?`7f!SF;~ou5s%W z)Rbwr19N*~+7GMnP~+}0kYjfvOZom*k7Trltqs$dpsHwT(I%*2KWh9c_jZq)djzs+ z#b&U_EsB^_Oq)?ths#_l8=+SH-W83ll&N*rof^a285hYc^-!B?$QB#4%P4oM%Ol%9 zXc|2;BULTC&>MAihTzKR@}hUn%jp#yk4aXhKGNh$verw2hpo)!354rWY}_&Tpwg&G zy;R29l52pmU`Tm{aZ&u!+tXSDj+WD$Bi931*^%u`l~;(mi?7tnME1-M&>?o=WE<3h z(#j@Ta&$0rcSk-9VFL-30=P4 ziaL6}`pCd~(cHYRcmmBZyt=bCGjzk?}3IiPD)&;~} zH@%0n=7fatHLdq%o;e1;DRVApifEi06L#i`kTL`jl$KmB`nWuws>GByD2^*ZqbSFN z&>>c8msJ~qa7f6X4i&9m%Cb(&(6rJvMDX!jvC8Z!FH6;$oV{^aOdLnNvNM=wN~O@@8#oS;n)h~~8-tW1u3#^1R~lN$UA8I z;U}I#Z1pj_JUYtX=c0CnN@RYe`aA`LE%*(vwfO5)%h!>c6QMB_Ct zcaGZZMR0q5-morL&!O2;X-$<0?_d!?mEV_oF*lX}&~N-R`nH4xgUo8Zdq<7VVb)m9 z^HM@`^nGaMgCyb-x#9*SgFp&N_OX6M`bG@L^%uqf)M{q@4)12ZBHOH5vT*6GH8SVW zZ;Rw8kobKa5Zaf$>2(m^#x{jb&-W^d}$H)1Kd*qaS9LF$* zyI+B&X&OPnx70lctvSBvv4SpbJ2qEGs}?+%z}416yT-n@^@U7hDQ#k>@&4AAe1?$5 zM3MRQ$arU>>Tqy%L!Zj?F1nHLcNt16Ih?XD%*<|rn(IUKdWyb+KruI~>%Lva$d5W$ zpLUE*ajM+gwMB z|4_mvw{tctnIwfferO?=LJdcSTD1vuxyr;drQm%Pe_s$Q1i1U;sod(|+|;KFqxGx7 zVhhARwS+sf%mZ6>ET|ahvS;Q{&iMTO?i&)y zyB#f%94tEqAKSG=T*A0wByJz&{!dBr`Rx19HT3(g%)R*hGl#oKeQwjC9vBpTJI~4YK()%<3AgGCgbnV0AVP>$>1zKQ6PUG&Y_*Om|``fl` zj|X!wrWxrkgdn{SKS&Wr=2#4z3@sVOx+b8EL$UQ)?W`r4EBWs8w|7y`-BC`9@AF>W2O^Rkml2~}YxGqgmbA26s%6HUYy9XA?R1tLOP>;_Qv`2G5+#RUWc>l88)YWzC@WU#@>tHOfC=lhpIA z4yX1L!WBQANb9O^W!19z=5OZ-Uj$#ZbQtA2&>+B#d4lez+Vc)!Bjy=}1l?Sjs@t0K z0udtL`a>ZbYN8j~1B*GSLKk%-hV@(*zFfb`%rCY$Jk0QYC)n_bT1=4o%Z#m$!d+e; zD<_bhFd+-qG)u+f=igpO!s5=K-Fe4*??C*ZKz(BoS30EZQ{usP;r_Dfl8zaT#P)KMJb68r+SVY+?%1sR;>U>GlZj=%;nio=7^x$jF?1bAcmJHplGyQaW_qV!V16N2!>W zf&INc@7KhU19l?Ir0T3#X}nym&VriLM~{HcFZsG2Db1##T~Vh9T02A? zNzr#;dZLE(a=f>(%$PRLOzML+t0{_Ao{9M6tl(7lLG1M%Vr)JnECfNo|GdK8m2{a` JtD$P;e*whe+Y|r* literal 0 HcmV?d00001 diff --git a/Testing/test.py b/Testing/test.py new file mode 100644 index 0000000..2a4b653 --- /dev/null +++ b/Testing/test.py @@ -0,0 +1,672 @@ +#! /usr/bin/python +# +# -updated for python3 (print) and updated for changes in python modules +# +# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO +# -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 pyne import material +from pyne.material import Material, MultiMaterial +from pyne.material_library import MaterialLibrary +# +# +# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X +def MF82H_mat() : + nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} + MF82H = Material(nucvec) + MF82H.density = 7.89 + MF82H=MF82H.expand_elements() + MF82H.metadata['citation']='KluehJNM_2000' + print(MF82H) + return MF82H + +# 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) +def HT9_mat() : + nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} + HT9 = Material(nucvec) + HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 + HT9=HT9.expand_elements() + HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' + return HT9 + +# 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 +def EUROFER97_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + EUROFER97 = Material(nucvec) + EUROFER97.density = 7.75 + EUROFER97=EUROFER97.expand_elements() + EUROFER97.metadata['citation']='MergiaJNM_2008' + return EUROFER97 + +# 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 +def test_mat() : + nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} + test = Material(nucvec) + test.density = 7.75 + test=test.expand_elements() + test.metadata['citation']='MergiaJNM_2008' + print(test) + return test + +# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe +def BMF82H_mat() : + nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} + BMF82H = Material(nucvec) + BMF82H.density = 7.89 + BMF82H=BMF82H.expand_elements() + BMF82H.metadata['citation']='KluehJNM_2000' + return BMF82H + +# 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 +def WC_mat(): + WC = Material() + WC.from_atom_frac({60000000:1,740000000:1}) + WC.density = 15.63 + WC=WC.expand_elements() + WC.metadata['citation']='CRChandbook64B152' + return WC + +# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. +def Water_mat() : + nucvec = {10000000: 11.1894, 80000000: 88.8106} + Water = Material(nucvec) + Water.density = 1.0 + Water=Water.expand_elements() + Water.metadata['citation']='pnnl-15870rev1' + return Water + +# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 +# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 +def Pb157Li90_mat() : + nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} + Pb157Li90 = Material(nucvec) + Pb157Li90.density = 9.32 # not sure of Temperature + Pb157Li90.molecular_mass = 175.6273 + Pb157Li90=Pb157Li90.expand_elements() + Pb157Li90.metadata['citation']='BohmFusSciTec_2019' + print(Pb157Li90) + return Pb157Li90 + +# reference: pnnl-15870rev1 +def SiC_mat() : + nucvec = {60000000 : 29.9547, 140000000: 70.0453} + SiC = Material(nucvec) + SiC.density = 3.21 + SiC=SiC.expand_elements() + SiC.metadata['citation']='pnnl-15870rev1' + return SiC + +# note SS-316L(N)-IG and EUROFER composition (but not density) in +# reference: GilbertNucFus_2017 +# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 +# https://doi.org/10.1088/1741-4326/aa5bd7 +# +# more extensive collection of ITER materials composition but not density +# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf + +# reference: GilbertHandbookITERCCFE_2016 +# contains 300 wppm B which is important to assess typical He production level +def SS316LN_mat() : + 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} + SS316LN = Material(nucvec) + SS316LN.density = 7.93 + SS316LN=SS316LN.expand_elements() + SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LN + +# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level +def SS316LNIG_mat() : + 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} + SS316LNIG = Material(nucvec) + SS316LNIG.density = 7.93 + SS316LNIG=SS316LNIG.expand_elements() + SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' + return SS316LNIG + +# reference: pnnl-15870rev1 +# added 10 wppm B which is important to assess typical He production level +def SS316L_mat() : + 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} + SS316L = Material(nucvec) + SS316L.density = 8.00 + SS316L=SS316L.expand_elements() + SS316L.metadata['citation']='pnnl-15870rev1' + return SS316L + +# reference: FESS-FNSF very similar to GFFpolyimide from ARIES +def Eins_mat() : + nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} + Eins = Material(nucvec) + Eins.density = 1.8 + Eins=Eins.expand_elements() + Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' + return Eins + +# 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 +def JK2LBSteel_mat() : + 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} + JK2LBSteel = Material(nucvec) + JK2LBSteel.density = 8.0 + JK2LBSteel=JK2LBSteel.expand_elements() + JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' + return JK2LBSteel + +# reference: FESS-FNSF and ??? +def TernaryNb3Sn_mat() : + nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} + TernaryNb3Sn = Material(nucvec) + TernaryNb3Sn.density = 8.9 + TernaryNb3Sn=TernaryNb3Sn.expand_elements() + TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' + return TernaryNb3Sn + +# 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 +def LHe_mat() : + nucvec = {20000000: 100} + LHe = Material(nucvec) + LHe.density = 0.149 + LHe=LHe.expand_elements() + LHe.metadata['citation']='CRChandbook64B117' + return LHe + +# 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 +def Cr3FS_mat() : + nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} + Cr3FS = Material(nucvec) + Cr3FS.density = 7.89 + Cr3FS=Cr3FS.expand_elements() + Cr3FS.metadata['citation']='JawadORNL_2005 and ???' + return Cr3FS + +# 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 +# +def ODS125Y_mat() : + 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} + ODS125Y = Material(nucvec) + ODS125Y.density = 7.799 + ODS125Y=ODS125Y.expand_elements() + ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' + return ODS125Y + +# reference: pnnl-15870rev1 at T=20C +def D2O_mat() : + nucvec = {10020000:20.1133, 80000000:79.8867} + D2O = Material(nucvec) + D2O.density = 1.10534 + D2O=D2O.expand_elements() + D2O.metadata['citation']='pnnl-15870rev1' + return D2O + +# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +# also reference: pnnl-15870rev1 +def HeNIST_mat() : + nucvec = {20000000: 100} + HeNIST = Material(nucvec) + HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) + HeNIST=HeNIST.expand_elements() + HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' + return HeNIST + +# high pressure He gas ref. +# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 +def HeT410P1_mat() : + HeT410P1 = Material() + HeT410P1.from_atom_frac({20000000: 1}) + HeT410P1.density = 0.007048 # at 410 C, 1 bar + HeT410P1=HeT410P1.expand_elements() + HeT410P1.metadata['citation']='WidodoJoPCS_2018' + +def HeT410P80_mat() : + nucvec = {20000000: 100} + HeT410P80 = Material(nucvec) + HeT410P80.density = 0.00571698 # at 410 C, 80 bar + HeT410P80=HeT410P80.expand_elements() + HeT410P80.metadata['citation']='WidodoJoPCS_2018' + return HeT410P80 + +# air (Dry, Near Sea Level) +# reference: pnnl-15870rev1 +def AirSTP_mat() : + nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} + AirSTP = Material(nucvec) + AirSTP.density = 0.001205 + AirSTP=AirSTP.expand_elements() + AirSTP.metadata['citation']='pnnl-15870rev1' + print(AirSTP) + return AirSTP + +# concrete (Ordinary NBS 04) +# reference: pnnl-15870rev1 +def Concrete_mat() : + 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} + Concrete = Material(nucvec) + Concrete.density = 2.35 + Concrete=Concrete.expand_elements() + Concrete.metadata['citation']='pnnl-15870rev1' + return Concrete + +# reference: pnnl-15870rev1 +def W_mat() : + nucvec = {740000000: 100.0} + W = Material(nucvec=nucvec) + W.density = 19.30 + W=W.expand_elements() + W.metadata['citation']='pnnl-15870rev1' + return W + +# reference: pnnl-15870rev1 +def Fe_mat() : + nucvec = {260000000: 100.0} + Fe = Material(nucvec=nucvec) + Fe.density = 7.874 + Fe=Fe.expand_elements() + Fe.metadata['citation']='pnnl-15870rev1' + return Fe + +# reference: pnnl-15870rev1 +def Na_mat() : + nucvec = {110000000: 100.0} + Na = Material(nucvec=nucvec) + Na.density = 0.971 + Na=Na.expand_elements() + Na.metadata['citation']='pnnl-15870rev1' + return Na + +# reference: pnnl-15870rev1 reactor graphite without boron impurity +def C_mat() : + nucvec = {60000000:1.0} + C = Material(nucvec) + C.density = 1.7 + C=C.expand_elements() + C.metadata['citation']='pnnl-15870rev1' + return C + +# reference: pnnl-15870rev1 +def Si_mat() : + nucvec = {140000000:1.0} + Si = Material(nucvec) + Si.density = 2.33 + Si=Si.expand_elements() + Si.metadata['citation']='pnnl-15870rev1' + return Si + +# reference: pnnl-15870rev1 +def Cu_mat() : + nucvec = {290000000:1.0} + Cu = Material(nucvec) + Cu.density = 8.96 + Cu=Cu.expand_elements() + Cu.metadata['citation']='pnnl-15870rev1' + return Cu + +# reference: pnnl-15870rev1 +def Sn_mat() : + nucvec = {500000000:1.0} + Sn = Material(nucvec) + Sn.density = 7.31 + Sn=Sn.expand_elements() + Sn.metadata['citation']='pnnl-15870rev1' + return Sn + +# reference: pnnl-15870rev1 +def Ta_mat() : + nucvec = {730000000:1.0} + Ta = Material(nucvec) + Ta.density = 16.654 + Ta=Ta.expand_elements() + Ta.metadata['citation']='pnnl-15870rev1' + return Ta + +# reference: pnnl-15870rev1 +def Pb_mat() : + nucvec = {820000000: 1.0} + Pb = Material(nucvec=nucvec) + Pb.density = 11.35 + Pb=Pb.expand_elements() + Pb.metadata['citation']='pnnl-15870rev1' + return Pb + +# 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 +def Be_mat() : + nucvec = {40000000:1.0} + Be = Material(nucvec) + Be.density = 1.85 + Be=Be.expand_elements() + Be.metadata['citation']='HernandezFusEngDes_2018' + return Be + +# 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 +def Zr_mat() : + nucvec = {400000000:1.0} + Zr = Material(nucvec) + Zr.density = 3.56 + Zr=Zr.expand_elements() + Zr.metadata['citation']='HernandezFusEngDes_2018' + return Zr + +# 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 +def Be12Ti_mat(): + Be12Ti = Material() + Be12Ti.from_atom_frac({40000000:12,220000000:1}) + Be12Ti.density = 2.28 + Be12Ti=Be12Ti.expand_elements() + Be12Ti.metadata['citation']='HernandezFusEngDes_2018' + return Be12Ti + +# 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 +def Be12V_mat(): + Be12V = Material() + Be12V.from_atom_frac({40000000:12,230000000:1}) + Be12V.density = 2.39 + Be12V=Be12V.expand_elements() + Be12V.metadata['citation']='HernandezFusEngDes_2018' + return Be12V + +# 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 +# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 +# https://doi.org/10.1016/j.fusengdes.2020.111614 +# 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 + +def Li4SiO4nat_mat(): + Li4SiO4nat= Material() + Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) + Li4SiO4nat.density = 2.40 + Li4SiO4nat=Li4SiO4nat.expand_elements() + Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4nat + +def Li2TiO3nat_mat(): + Li2TiO3nat= Material() + Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) + Li2TiO3nat.density = 3.43 + Li2TiO3nat=Li2TiO3nat.expand_elements() + Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3nat + +def Li4SiO4Li60_mat(): + Li4SiO4Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) + Li4SiO4Li60.density = 2.40 + Li4SiO4Li60=Li4SiO4Li60.expand_elements() + Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li4SiO4Li60 + +def Li2TiO3Li60_mat(): + Li2TiO3Li60= Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) + Li2TiO3Li60.density = 3.42 + Li2TiO3Li60=Li2TiO3Li60.expand_elements() + Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' + return Li2TiO3Li60 + +# 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 FlibeNat_mat(): + FlibeNat=Material() + FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) + FlibeNat.density=1.94 + FlibeNat=FlibeNat.expand_elements() + FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeNat + +# 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 +def FlibeLi60_mat(): + FlibeLi60=Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) + FlibeLi60.density=1.94 + FlibeLi60=FlibeLi60.expand_elements() + FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' + return FlibeLi60 + +# reference: pnnl-15870rev1 at STP +def LiNat_mat() : + nucvec = {30000000:1.0} + LiNat = Material(nucvec) + LiNat.density = 0.534 # at STP + LiNat=LiNat.expand_elements() + LiNat.metadata['citation']='pnnl-15870rev1' + return LiNat + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def LiNatT500_mat() : + nucvec = {30000000:1.0} + LiNatT500 = Material(nucvec) + LiNatT500.density = 0.485 # at T=500 C + LiNatT500=LiNatT500.expand_elements() + LiNatT500.metadata['citation']='BohmFusSciTec_2019' + return LiNatT500 + +# reference: pnnl-15870rev1 +def Li60_mat() : + Li60 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60.from_atom_frac({liXweightfraction:1}) + Li60.density = 0.534 # at STP + Li60=Li60.expand_elements() + Li60.metadata['citation']='pnnl-15870rev1' + return Li60 + +# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C +def Li60T500_mat() : + Li60T500 = Material() + li6enrichment=0.60 # weight fraction enrichment of Li-6 desired + liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) + Li60T500.from_atom_frac({liXweightfraction:1}) + Li60T500.density = 0.485 # at T=500 C + Li60T500=Li60T500.expand_elements() + Li60T500.metadata['citation']='BohmFusSciTec_2019' + return Li60T500 + +# reference: pnnl-15870rev1 +def Mo_mat() : + nucvec = {420000000: 100.0} + Mo = Material(nucvec=nucvec) + Mo.density = 10.22 + Mo=Mo.expand_elements() + Mo.metadata['citation']='pnnl-15870rev1' + return Mo + +# reference: pnnl-15870rev1 +def Aluminum6061_mat() : + 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} + Aluminum6061 = Material(nucvec) + Aluminum6061.density = 2.70 + Aluminum6061=Aluminum6061.expand_elements() + Aluminum6061.metadata['citation']='pnnl-15870rev1' + return Aluminum6061 + +# reference: pnnl-15870rev1 +def OilTexasCrude_mat() : + nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} + OilTexasCrude = Material(nucvec) + OilTexasCrude.density = 0.875 + OilTexasCrude=OilTexasCrude.expand_elements() + OilTexasCrude.metadata['citation']='pnnl-15870rev1' + return OilTexasCrude + +# reference: pnnl-15870rev1 +def EthyleneGlycol_mat(): + EthyleneGlycol = Material() + EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) + EthyleneGlycol.density = 1.114 + EthyleneGlycol=EthyleneGlycol.expand_elements() + EthyleneGlycol.metadata['citation']='pnnl-15870rev1' + return EthyleneGlycol + +# reference: pnnl-15870rev1 +def AluminumOxide_mat(): + AluminumOxide = Material() + AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) + AluminumOxide.density = 3.97 + AluminumOxide=AluminumOxide.expand_elements() + AluminumOxide.metadata['citation']='pnnl-15870rev1' + return AluminumOxide + +# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) +def V4Cr4Ti_mat() : + nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} + V4Cr4Ti = Material(nucvec) + V4Cr4Ti.density = 6.05 # room temperature + V4Cr4Ti=V4Cr4Ti.expand_elements() + V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' + return V4Cr4Ti + +def ZrH2_mat(): + ZrH2 = Material() + ZrH2.from_atom_frac({10000000: 2,400000000: 1}) + ZrH2.density = 5.61 #this is at room temperature + ZrH2=ZrH2.expand_elements() + ZrH2.metadata['citation']='pnnl-15870rev1' + return ZrH2 + +# +def Inconel718_mat() : + 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} + Inconel718 = Material(nucvec) + Inconel718.density = 8.19 # room temperature + Inconel718=Inconel718.expand_elements() + Inconel718.metadata['citation']='pnnl-15870rev1' + return Inconel718 + +def Inconel788_mat() : + 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: 15.0000, + 280000000: 54.5000, + 270000000: 0.9100, + 290000000: 0.2730, + 410000000: 5.1250, + 420000000: 3.0500} + Inconel788 = Material(nucvec) + Inconel788.density = 9.19 # room temperature + Inconel788=Inconel788.expand_elements() + Inconel788.metadata['citation']='pnnl-15870rev1' + return Inconel788 + +# -------------------------------------------------------- +def main(): + # create material library object + mat_lib = MaterialLibrary() + print( "\n Creating Pure Fusion Materials...") + # + # get material definition + mat_lib['MF82H']= MF82H_mat() + mat_lib['HT9']= HT9_mat() + mat_lib['test']= test_mat() + mat_lib['BMF82H']= BMF82H_mat() + mat_lib['WC'] = WC_mat() + mat_lib['Water']= Water_mat() + mat_lib['Pb157Li90']= Pb157Li90_mat() + mat_lib['SiC']= SiC_mat() + mat_lib['SS316LN']= SS316LN_mat() + mat_lib['SS316LNIG']= SS316LNIG_mat() + mat_lib['SS316L']= SS316L_mat() + mat_lib['Eins']=Eins_mat() + mat_lib['JK2LBSteel']=JK2LBSteel_mat() + mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() + mat_lib['LHe']= LHe_mat() + mat_lib['Cr3FS']=Cr3FS_mat() + mat_lib['ODS125Y']= ODS125Y_mat() + mat_lib['D2O']= D2O_mat() + mat_lib['HeNIST']= HeNIST_mat() + mat_lib['HeT410P1']= HeT410P1_mat() + mat_lib['HeT410P80']= HeT410P80_mat() + mat_lib['AirSTP']= AirSTP_mat() + mat_lib['Concrete']= Concrete_mat() + mat_lib['W']= W_mat() + mat_lib['Fe']= Fe_mat() + mat_lib['Na']= Na_mat() + mat_lib['C']= C_mat() + mat_lib['Si']= Si_mat() + mat_lib['Cu']=Cu_mat() + mat_lib['Sn']=Sn_mat() + mat_lib['Ta']=Ta_mat() + mat_lib['Pb']=Pb_mat() + mat_lib['Be']=Be_mat() + mat_lib['Zr']=Zr_mat() + mat_lib['Be12Ti']=Be12Ti_mat() + mat_lib['Be12V']=Be12V_mat() + mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() + mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() + mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() + mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() + mat_lib['FlibeNat']=FlibeNat_mat() + mat_lib['FlibeLi60']=FlibeLi60_mat() + mat_lib['LiNat']=LiNat_mat() + mat_lib['LiNatT500']=LiNatT500_mat() + mat_lib['Li60']=Li60_mat() + mat_lib['Li60T500']=Li60T500_mat() +# + mat_lib['Mo']=Mo_mat() + mat_lib['Aluminum6061']=Aluminum6061_mat() + mat_lib['OilTexasCrude']=OilTexasCrude_mat() + mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() + mat_lib['AluminumOxide'] = AluminumOxide_mat() + mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() + mat_lib['ZrH2']= ZrH2_mat() + mat_lib['Inconel718']= Inconel718_mat() + mat_lib['Inconel788']= Inconel788_mat() + # remove lib + try: + os.remove("PureFusionMaterials_libv1.h5") + except: + pass + + # write fnsf1d material library + mat_lib.write_hdf5("PureFusionMaterials_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 + #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') + mat_lib.write_openmc("test_results.xml") + print("All done!") + + +if __name__ == "__main__": + main() diff --git a/Testing/test_results.xml b/Testing/test_results.xml new file mode 100644 index 0000000..760b657 --- /dev/null +++ b/Testing/test_results.xml @@ -0,0 +1,646 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pureMaterials/PureFusionMaterials_libv1.h5 b/pureMaterials/PureFusionMaterials_libv1.h5 index 844c6305125b5aba8ca76be87092a6102114b534..0b8082226eec9954639cd36355b02fdfc8e3d0e1 100644 GIT binary patch delta 11617 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 delta 10977 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 U6;S_Y0}RXe7|*yl>O + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pureMaterials/createPurematlib.py b/pureMaterials/createPurematlib.py index 329394c..0222308 100755 --- a/pureMaterials/createPurematlib.py +++ b/pureMaterials/createPurematlib.py @@ -48,7 +48,7 @@ def HT9_mat(): HT9 = Material(nucvec) HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 HT9 = HT9.expand_elements() - HT9.metadata["citation"] = "KluehJNM_2000 and SmithBCSSANLvol2_1984" + HT9.metadata["citation"] = "ChenNucEngTech_2013 and SmithBCSSANLvol2_1984" return HT9 @@ -332,7 +332,7 @@ def D2O_mat(): # fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 +# reference: pnnl-15870rev1 def HeNIST_mat(): nucvec = {20000000: 100} HeNIST = Material(nucvec) @@ -507,17 +507,16 @@ def Be12Ti_mat(): return Be12Ti -# reference: HernandezFusEngDes_2018 # Looks like Be17Ti can be found in different lattice phases- hexagonal seems more common this has a slight impact on density less than 0.1 g/cm3 # There does seem to be some dipscrepancy on the density depedning on source but it is less than .1 g/cm3 -# Zalkin A., Sands D.E., Bedford R.G.: The beryllides of Ti, V, Cr, Zr, Nb, Mo, Hf, and Ta. Acta Crystallographica 14 (1961) 63-65 -# https://materials.springer.com/isp/crystallographic/docs/sd_0451341 or https://journals.iucr.org/paper?S0365110X64001906 +# fullreference: VillarsSpringerMaterials_2022 "Ti2Be17 (Be17Ti2 hex) Crystal Structure: Datasheet from ``PAULING FILE Multinaries Edition -- 2022'' in SpringerMaterials https://materials.springer.com/isp/crystallographic/docs/sd_0451341 +# fullreference: ZalkinActaCryst_1964 Zalkin A., Sands D.E., Bedford R.G.: The beryllides of Ti, V, Cr, Zr, Nb, Mo, Hf, and Ta. Acta Crystallographica 14 (1961) 63-65 https://journals.iucr.org/paper?S0365110X64001906 def Be17Ti2_mat(): Be17Ti2 = Material() Be17Ti2.from_atom_frac({40000000: 17, 220000000: 2}) Be17Ti2.density = 2.41 Be17Ti2 = Be17Ti2.expand_elements() - Be17Ti2.metadata["citation"] = "SpringerMaterials" + Be17Ti2.metadata["citation"] = "VillarsSpringerMaterials_2022" return Be17Ti2 @@ -569,26 +568,23 @@ def Be12Cr_mat(): return Be12Cr -# reference: -# Gaisin, Ramil, et al. “Beryllium Intermetallics: Industrial experience on development and manufacture.” Nuclear Materials and Energy, vol. 35, June 2023, p. 101444, -# https://doi.org/10.1016/j.nme.2023.101444. +# fullreference: GaisinNuclearMaterialsEnergy_2023 Gaisin, Ramil, et al. “Beryllium Intermetallics: Industrial experience on development and manufacture.” Nuclear Materials and Energy, vol. 35, June 2023, p. 101444, https://doi.org/10.1016/j.nme.2023.101444. def Be17Ta2_mat(): Be17Ta2 = Material() Be17Ta2.from_atom_frac({40000000: 17, 730000000: 2}) Be17Ta2.density = 5.05 Be17Ta2 = Be17Ta2.expand_elements() - Be17Ta2.metadata["citation"] = "BerylliumIntermetallics_2023" + Be17Ta2.metadata["citation"] = "GaisinNuclearMaterialsEnergy_2023" return Be17Ta2 -# reference: -# F.W. von Batchelder and R.F. Raeuchle. The structure of a new series of m be12 compounds. Acta Crystallographica (1,1948-23,1967), 10:648–649, 1957. +# fullreference: vonBatchelderActaCryst_1957 F.W. von Batchelder and R.F. Raeuchle. The structure of a new series of m be12 compounds. Acta Crystallographica (1,1948-23,1967), 10:648–649, 1957. https://journals.iucr.org/paper?S0365110X5700225X def Be12Ta_mat(): Be12Ta = Material() - Be12Ta.from_atom_frac({40000000: 13, 730000000: 1}) + Be12Ta.from_atom_frac({40000000: 12, 730000000: 1}) Be12Ta.density = 4.27 Be12Ta = Be12Ta.expand_elements() - Be12Ta.metadata["citation"] = "SeriesofMBe12_1957" + Be12Ta.metadata["citation"] = "vonBatchelderActaCryst_1957" return Be12Ta @@ -596,74 +592,73 @@ def Be12Ta_mat(): # F.W. von Batchelder and R.F. Raeuchle. The structure of a new series of m be12 compounds. Acta Crystallographica (1,1948-23,1967), 10:648–649, 1957. def Be12Fe_mat(): Be12Fe = Material() - Be12Fe.from_atom_frac({40000000: 13, 260000000: 1}) + Be12Fe.from_atom_frac({40000000: 12, 260000000: 1}) Be12Fe.density = 2.45 Be12Fe = Be12Fe.expand_elements() - Be12Fe.metadata["citation"] = "SeriesofMBe12_1957" + Be12Fe.metadata["citation"] = "vonBatchelderActaCryst_1957" return Be12Fe # Pb solid neutron multipliers - # reference: # F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 # https://doi.org/10.1016/j.fusengdes.2018.09.014 def LaPb3_mat(): - Be12Fe = Material() - Be12Fe.from_atom_frac({570000000: 1, 820000000: 3}) - Be12Fe.density = 10.72 - Be12Fe = Be12Fe.expand_elements() - Be12Fe.metadata["citation"] = "HernandezFusEngDes_2018" - return Be12Fe + LaPb3 = Material() + LaPb3.from_atom_frac({570000000: 1, 820000000: 3}) + LaPb3.density = 10.72 + LaPb3 = LaPb3.expand_elements() + LaPb3.metadata["citation"] = "HernandezFusEngDes_2018" + return LaPb3 # reference: # F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 # https://doi.org/10.1016/j.fusengdes.2018.09.014 def YPb3_mat(): - Be12Fe = Material() - Be12Fe.from_atom_frac({390000000: 1, 820000000: 3}) - Be12Fe.density = 10.58 - Be12Fe = Be12Fe.expand_elements() - Be12Fe.metadata["citation"] = "HernandezFusEngDes_2018" - return Be12Fe + YPb3 = Material() + YPb3.from_atom_frac({390000000: 1, 820000000: 3}) + YPb3.density = 10.58 + YPb3 = YPb3.expand_elements() + YPb3.metadata["citation"] = "HernandezFusEngDes_2018" + return YPb3 # reference: # F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 # https://doi.org/10.1016/j.fusengdes.2018.09.014 def YPb2_mat(): - Be12Fe = Material() - Be12Fe.from_atom_frac({390000000: 1, 820000000: 2}) - Be12Fe.density = 10.03 - Be12Fe = Be12Fe.expand_elements() - Be12Fe.metadata["citation"] = "HernandezFusEngDes_2018" - return Be12Fe + YPb2 = Material() + YPb2.from_atom_frac({390000000: 1, 820000000: 2}) + YPb2.density = 10.03 + YPb2 = YPb2.expand_elements() + YPb2.metadata["citation"] = "HernandezFusEngDes_2018" + return YPb2 # reference: # F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 # https://doi.org/10.1016/j.fusengdes.2018.09.014 def Zr5Pb4_mat(): - Be12Fe = Material() - Be12Fe.from_atom_frac({400000000: 5, 820000000: 4}) - Be12Fe.density = 10.33 - Be12Fe = Be12Fe.expand_elements() - Be12Fe.metadata["citation"] = "HernandezFusEngDes_2018" - return Be12Fe + Zr5Pb4 = Material() + Zr5Pb4.from_atom_frac({400000000: 5, 820000000: 4}) + Zr5Pb4.density = 10.33 + Zr5Pb4 = Zr5Pb4.expand_elements() + Zr5Pb4.metadata["citation"] = "HernandezFusEngDes_2018" + return Zr5Pb4 # reference: # F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 # https://doi.org/10.1016/j.fusengdes.2018.09.014 def Zr5Pb3_mat(): - Be12Fe = Material() - Be12Fe.from_atom_frac({400000000: 5, 260000000: 4}) - Be12Fe.density = 9.69 - Be12Fe = Be12Fe.expand_elements() - Be12Fe.metadata["citation"] = "HernandezFusEngDes_2018" - return Be12Fe + Zr5Pb3 = Material() + Zr5Pb3.from_atom_frac({400000000: 5, 820000000: 3}) + Zr5Pb3.density = 9.69 + Zr5Pb3 = Zr5Pb3.expand_elements() + Zr5Pb3.metadata["citation"] = "HernandezFusEngDes_2018" + return Zr5Pb3 # Li ceramics @@ -686,7 +681,7 @@ def Li4SiO4nat_mat(): def Li2TiO3nat_mat(): Li2TiO3nat = Material() Li2TiO3nat.from_atom_frac({30000000: 2, 80000000: 3, 220000000: 1}) - Li2TiO3nat.density = 3.43 # This migh of been always wrong need to check- it was :( + Li2TiO3nat.density = 3.43 Li2TiO3nat = Li2TiO3nat.expand_elements() Li2TiO3nat.metadata["citation"] = "HernandezFusEngDes_2018" return Li2TiO3nat @@ -774,8 +769,8 @@ def Li8ZrO6Li60_mat(): return Li8ZrO6Li60 -# reference: Van Der Laan, J., Reimann, J., & Fedorov, A. (2016). Ceramic Breeder Materials. In Elsevier eBooks (pp. 114–175) -# https://doi.org/10.1016/b978-0-12-803581-8.00733-5 +# fullreference: VanderLaanCeramicBreederMaterials_2016 Van Der Laan, J., Reimann, J., & Fedorov, A. (2016). Ceramic Breeder Materials. +# In Elsevier eBooks (pp. 114–175) https://doi.org/10.1016/b978-0-12-803581-8.00733-5 def Li2Onat_mat(): Li2Onat = Material() Li2Onat.from_atom_frac({30000000: 2, 80000000: 1}) @@ -796,7 +791,8 @@ def Li2OLi60_mat(): return Li2OLi60 -# 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 +# 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 FlibeNat_mat(): FlibeNat = Material() FlibeNat.from_atom_frac({30000000: 2, 40000000: 1, 90000000: 4}) @@ -1019,7 +1015,7 @@ def main(): mat_lib["Be12Cr"] = Be12Cr_mat() mat_lib["Be17Ta2"] = Be17Ta2_mat() mat_lib["Be12Ta"] = Be12Ta_mat() - mat_lib["Be12Fe"] = Be12Ta_mat() + mat_lib["Be12Fe"] = Be12Fe_mat() mat_lib["LaPb3"] = LaPb3_mat() mat_lib["YPb3"] = YPb3_mat() mat_lib["YPb2"] = YPb2_mat() @@ -1056,6 +1052,7 @@ def main(): # remove lib try: os.remove("PureFusionMaterials_libv1.h5") + os.remove("PureFusionMaterials_libv1.xml") except: pass @@ -1064,8 +1061,8 @@ def main(): "PureFusionMaterials_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 + mat_lib.write_openmc("PureFusionMaterials_libv1.xml") # mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - print("All done!") 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 d34e3e7886111b94684de00e5291aaf8d9fe7fe7 Mon Sep 17 00:00:00 2001 From: FusionSandwich Date: Fri, 28 Jun 2024 16:34:14 -0500 Subject: [PATCH 3/3] Updated references --- Error/1_make_materials.py | 218 ----- Error/1_materials.py | 175 ---- Error/Copy of mixPureFusionMaterials3.py | 301 ------- Error/Original/1_make_materials.py | 217 ----- Error/Original/PureFusionMaterials_libv1.h5 | Bin 26808 -> 0 bytes Error/Original/createPurematlib.py | 627 -------------- Error/Original/materials.xml | 2 - Error/Path/1_make_materials.py | 217 ----- Error/Path/PureFusionMaterials_libv1.h5 | Bin 26808 -> 0 bytes Error/Path/PureFusionMaterials_libv1.xml | 701 --------------- Error/Path/createPurematlib_xml.py | 627 -------------- Error/Path/materials.xml | 300 ------- Error/PureFusionMaterials_libv1.h5 | Bin 26808 -> 0 bytes Error/XML/1_make_materials.py | 217 ----- Error/XML/1_materials.py | 203 ----- Error/XML/PureFusionMaterials_libv1.h5 | Bin 26808 -> 0 bytes Error/XML/PureFusionMaterials_libv1.hdf5 | Bin 51592 -> 0 bytes Error/XML/PureFusionMaterials_libv1.xml | 701 --------------- Error/XML/createPurematlib_xml.py | 627 -------------- Error/XML/import_h5.py | 23 - Error/XML/import_hdf5.py | 34 - Error/XML/materials.xml | 300 ------- Error/XML/test.py | 39 - Error/createPurematlib.py | 510 ----------- Error/createPurematlib3.py | 513 ----------- Error/createPurematlib_xml.py | 628 -------------- Error/g.py | 627 -------------- Error/materials.xml | 2 - Error/mixPureFusionMaterials.py | 297 ------- Error/mixedPureFusionMaterials_libv1.h5 | Bin 13061 -> 0 bytes Error/xml.xml | 897 -------------------- Test/1_make_materials.py | 217 ----- Test/1_materials.py | 204 ----- Test/PureFusionMaterials_libv1.h5 | Bin 26740 -> 0 bytes Test/createPurematlib.py | 627 -------------- Test/createPurematlib3.py | 513 ----------- Test/createPurematlib_mine.py | 510 ----------- Test/fix.py | 641 -------------- Test/fix.xml | 680 --------------- Test/test.py | 672 --------------- Test/test.xml | 602 ------------- Test/test_og.py | 640 -------------- Test/test_og.xml | 602 ------------- Test/test_results.xml | 696 --------------- Test/test_results_named_helium.xml | 696 --------------- Testing/PureFusionMaterials_libv1.h5 | Bin 27259 -> 0 bytes Testing/test.py | 672 --------------- Testing/test_results.xml | 646 -------------- 48 files changed, 17621 deletions(-) delete mode 100644 Error/1_make_materials.py delete mode 100644 Error/1_materials.py delete mode 100644 Error/Copy of mixPureFusionMaterials3.py delete mode 100644 Error/Original/1_make_materials.py delete mode 100644 Error/Original/PureFusionMaterials_libv1.h5 delete mode 100644 Error/Original/createPurematlib.py delete mode 100644 Error/Original/materials.xml delete mode 100644 Error/Path/1_make_materials.py delete mode 100644 Error/Path/PureFusionMaterials_libv1.h5 delete mode 100644 Error/Path/PureFusionMaterials_libv1.xml delete mode 100644 Error/Path/createPurematlib_xml.py delete mode 100644 Error/Path/materials.xml delete mode 100644 Error/PureFusionMaterials_libv1.h5 delete mode 100644 Error/XML/1_make_materials.py delete mode 100644 Error/XML/1_materials.py delete mode 100644 Error/XML/PureFusionMaterials_libv1.h5 delete mode 100644 Error/XML/PureFusionMaterials_libv1.hdf5 delete mode 100644 Error/XML/PureFusionMaterials_libv1.xml delete mode 100644 Error/XML/createPurematlib_xml.py delete mode 100644 Error/XML/import_h5.py delete mode 100644 Error/XML/import_hdf5.py delete mode 100644 Error/XML/materials.xml delete mode 100644 Error/XML/test.py delete mode 100644 Error/createPurematlib.py delete mode 100644 Error/createPurematlib3.py delete mode 100644 Error/createPurematlib_xml.py delete mode 100644 Error/g.py delete mode 100644 Error/materials.xml delete mode 100644 Error/mixPureFusionMaterials.py delete mode 100644 Error/mixedPureFusionMaterials_libv1.h5 delete mode 100644 Error/xml.xml delete mode 100644 Test/1_make_materials.py delete mode 100644 Test/1_materials.py delete mode 100644 Test/PureFusionMaterials_libv1.h5 delete mode 100644 Test/createPurematlib.py delete mode 100644 Test/createPurematlib3.py delete mode 100644 Test/createPurematlib_mine.py delete mode 100644 Test/fix.py delete mode 100644 Test/fix.xml delete mode 100644 Test/test.py delete mode 100644 Test/test.xml delete mode 100644 Test/test_og.py delete mode 100644 Test/test_og.xml delete mode 100644 Test/test_results.xml delete mode 100644 Test/test_results_named_helium.xml delete mode 100644 Testing/PureFusionMaterials_libv1.h5 delete mode 100644 Testing/test.py delete mode 100644 Testing/test_results.xml diff --git a/Error/1_make_materials.py b/Error/1_make_materials.py deleted file mode 100644 index 908c57f..0000000 --- a/Error/1_make_materials.py +++ /dev/null @@ -1,218 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5( - lib, datapath="/mat_name" - ) # don't set datapath,nucpath...will be pyne default values - return mat_lib - - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_FNSFBW(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} - ) - FNSFBW_mat = mix.mix_by_volume() - FNSFBW_mat.metadata["mat_number"] = 1002 - return FNSFBW_mat - - -def mix_FNSFHeManifolds(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} - ) - FNSFHeManifolds_mat = mix.mix_by_volume() - FNSFHeManifolds_mat.metadata["mat_number"] = 1003 - return FNSFHeManifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial( - {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} - ) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial( - {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} - ) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - -def Pb157Li90_mat(enrichment) : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata["mat_number"] = 1007 - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -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 - - -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"] = 2242 - 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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1008 - return FW_mat - - -def main(): - - # Load Tim's material libraries - # ACTUALLY Pyne doesn't seem to like having two libraries loaded - # at the same time, so I just copied some functions in here. In the - # future if the materials libraries are included in the repo - # I could just import the functions - libPath = "PureFusionMaterials_libv1.h5" - pureLib = load_matlib(libPath) - simulationLib = MaterialLibrary() - - # Extract materials from libraries - FWWArmor = mix_FWWArmor(pureLib) - FNSFDCLL = mix_FNSFDCLL(pureLib) - FNSFBW = mix_FNSFBW(pureLib) - FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) - FNSFIBSR = mix_FNSFIBSR(pureLib) - SS316L = pureLib["SS316L"] # front and back plats of VV - AirSTP = pureLib["AirSTP"] - AirSTP.metadata["mat_number"] = 10098 - VVFill = mix_VVFill(pureLib) - LTS = mix_LTS(pureLib) - coils = mix_coils(pureLib) - FW = mix_FW(pureLib) - - # create new material library - simulationLib["AirSTP"] = AirSTP - simulationLib["FWWArmor"] = FWWArmor - simulationLib["FW"] = FW - simulationLib["FNSFHeManifolds"] = FNSFHeManifolds - simulationLib["VVFill"] = VVFill - simulationLib["LTS"] = LTS - simulationLib["coils"] = coils - simulationLib["FNSFBW"] = FNSFBW - simulationLib["FNSFDCLL"] = FNSFDCLL - simulationLib["FNSFIBSR"] = FNSFIBSR - simulationLib["SS316L"] = SS316L # VV front and back plate - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Error/1_materials.py b/Error/1_materials.py deleted file mode 100644 index b793c87..0000000 --- a/Error/1_materials.py +++ /dev/null @@ -1,175 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5(lib, datapath="/mat_name") - return mat_lib - - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_PinBW(material_library): - # material library is is PureFusionMaterials - # Based on Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet - mix = MultiMaterial( - { - material_library["Li4SiO4Li60"]: 0.065, - material_library["Li2TiO3Li60"]: 0.035, - material_library["EUROFER97"]: 0.418, - material_library["HeT410P80"]: 0.482, - } - ) - BW_mat = mix.mix_by_volume() - BW_mat.metadata["mat_number"] = 1022 - return BW_mat - - -def mix_HeManifolds(material_library): - # material library is is PureFusionMaterials - # composition homoegenized based on 50 cm breeder to 35 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. Estiamted from Zhou 2023 manifolds - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.714, material_library["EUROFER97"]: 0.286} - ) - HeManifolds_mat = mix.mix_by_volume() - HeManifolds_mat.metadata["mat_number"] = 1003 - return HeManifolds_mat - - -def mix_Manifolds(material_library): - # material library is PureFusionMaterials - # composition homoegenized based on 50 cm breeder to 20 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.5, material_library["EUROFER97"]: 0.5} - ) - Manifolds_mat = mix.mix_by_volume() - Manifolds_mat.metadata["mat_number"] = 100352 - return Manifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial({material_library["Pb"]: 0.4, material_library["Sn"]: 0.6}) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial({material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5}) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - - -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"] = 102 - #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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1007 - return FW_mat - - -def mix_Pin(material_library): - # Material library is PureFusionMaterials - # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet - mix = MultiMaterial( - { - material_library["Li4SiO4Li60"]: 0.065, - material_library["Li2TiO3Li60"]: 0.035, - material_library["Be12Ti"]: 0.613, - material_library["HeT410P80"]: 0.142, - material_library["EUROFER97"]: 0.145, - } - ) - Pin_mat = mix.mix_by_volume() - Pin_mat.metadata["mat_number"] = 1009 - print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) - return Pin_mat - - -def main(): - - libPath = "PureFusionMaterials_libv1.h5" - pureLib = load_matlib(libPath) - simulationLib = MaterialLibrary() - - AirSTP = pureLib["AirSTP"] - - - simulationLib["AirSTP"] = AirSTP - - - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Error/Copy of mixPureFusionMaterials3.py b/Error/Copy of mixPureFusionMaterials3.py deleted file mode 100644 index d5f19b5..0000000 --- a/Error/Copy of mixPureFusionMaterials3.py +++ /dev/null @@ -1,301 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# -# 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 -# -# references for FNSF compositions -# -# MadaniUWFDM1423_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1423.pdf -# EliasUWFMD1424_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1424.pdf -# HarbFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333846. -# ElGuebalyFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333865 -# DavisFusEngDes_2018 https://doi.org/10.1016/j.fusengdes.2017.06.008 -# BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# SchnabelNDS_2024 preprint https://arxiv.org/pdf/2311.10063.pdf -# -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) -""" -# reference 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 -# -# blanket materials - -#FNSF OB DCLL Blanket (73.7% LiPb (90% Li-6), 14.9% He/void, 7.5% FS, 3.9% SiC) -# reference 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) -# reference 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 - -# EUDEMO -# reference 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 -# reference GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# reference 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 - -# 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) -""" -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']='BoullonFusEngDes_2017 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) -""" -# reference -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) -""" -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 - -######################################################################## -def main(): - # - # remove old mixmat_lib - try: - os.remove("mixedPureFusionMaterials_libv1.h5") - except: - pass - # 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 - - - # 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') - -if __name__ == "__main__": - main() diff --git a/Error/Original/1_make_materials.py b/Error/Original/1_make_materials.py deleted file mode 100644 index a13fa7f..0000000 --- a/Error/Original/1_make_materials.py +++ /dev/null @@ -1,217 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5( - lib, datapath="/mat_name" - ) # don't set datapath,nucpath...will be pyne default values - return mat_lib - - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_FNSFBW(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} - ) - FNSFBW_mat = mix.mix_by_volume() - FNSFBW_mat.metadata["mat_number"] = 1002 - return FNSFBW_mat - - -def mix_FNSFHeManifolds(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} - ) - FNSFHeManifolds_mat = mix.mix_by_volume() - FNSFHeManifolds_mat.metadata["mat_number"] = 1003 - return FNSFHeManifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial( - {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} - ) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial( - {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} - ) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - -def Pb157Li90_mat(enrichment) : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -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 - - -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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1007 - return FW_mat - - -def main(): - - # Load Tim's material libraries - # ACTUALLY Pyne doesn't seem to like having two libraries loaded - # at the same time, so I just copied some functions in here. In the - # future if the materials libraries are included in the repo - # I could just import the functions - libPath = "PureFusionMaterials_libv1.hdf5" - pureLib = load_matlib(libPath) - simulationLib = MaterialLibrary() - - # Extract materials from libraries - FWWArmor = mix_FWWArmor(pureLib) - FNSFDCLL = mix_FNSFDCLL(pureLib) - FNSFBW = mix_FNSFBW(pureLib) - FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) - FNSFIBSR = mix_FNSFIBSR(pureLib) - SS316L = pureLib["SS316L"] # front and back plats of VV - AirSTP = pureLib["AirSTP"] - AirSTP.metadata["mat_number"] = 1008 - VVFill = mix_VVFill(pureLib) - LTS = mix_LTS(pureLib) - coils = mix_coils(pureLib) - FW = mix_FW(pureLib) - - # create new material library - simulationLib["AirSTP"] = AirSTP - simulationLib["FWWArmor"] = FWWArmor - simulationLib["FW"] = FW - simulationLib["FNSFHeManifolds"] = FNSFHeManifolds - simulationLib["VVFill"] = VVFill - simulationLib["LTS"] = LTS - simulationLib["coils"] = coils - simulationLib["FNSFBW"] = FNSFBW - simulationLib["FNSFDCLL"] = FNSFDCLL - simulationLib["FNSFIBSR"] = FNSFIBSR - simulationLib["SS316L"] = SS316L # VV front and back plate - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Error/Original/PureFusionMaterials_libv1.h5 b/Error/Original/PureFusionMaterials_libv1.h5 deleted file mode 100644 index b42d6dbb1c9edf1240deb02f2ca683ceb403f311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26808 zcmeHubzGFs_Wx3XASDPWf=CLIOLwQRG$Ktfbd?x?|cp{*u?rVUU#gMI~=>DU@rgLO=`Ou@R=I@S;v4zo`V81Nsa z=h?3W!U=&f)Gq&>{eHc8QvQ$q{)dYHFDrJ|eqsL5A8J3a=ECgP1`5FJRsdGuZ>EYM zS&<_fhS?nn)NWzCXYKfJ(*MsCKhF=yA)lzg5<0&BogWambW$GHAOAB7{L|254V?7@ z0#Ln#K?XM7?k2d9QayMQ zhh2EagkAU=^>Bm^uW$rQBYH#tMLi;xbUh-8O+8{Bqc+m=_R|Xul*T~TULgeUJU~+Vl5OVY+%1ZP+nM!n$ zN@WZIG!+avpbCcey~BTBKTMBqKg^IFKg=Xjf6OG=QmmTzQml^mrC6hLrC0#2GAzq< z1?-S51#FU{Ic&zkIcx!hd2DU@d2B2%Y5XMqN&Gy+N&K3iN&L})Nqhj!6u#UYH-efn zysM)q_*a)1@UH??@vmaJ;a??5!M`f7cKF?8n24lln22#@m`H$Ngh-Bmgh<svXv`JssX={`Z7)M_oFfKP8 zFalN&7-8dF06GfKj&oM1;lcK)2!Oof@l1I*$T<$zSY|pluq7M-n}i=adIbP1XaJUj z!+d=M^FwbAImUmLuVZUrW}{_kV6A0lVQQdfXKHX#;nD8=SLKi9hocfle*b7_9j)_@ zM2GpIUp;e}4fx@Q5KjCM8i3^ZIjB23yg%|&aEJ05njUVgj`NP5`{A$P;ft4o5+hJW-(Sbe7vy7$ zg=nu9TW*wUtI3qznlGfQ!eE$fsm2}st92(FJR%AfiGT;-|LSHxvIdW7oxD?ASXTOY z84g`&LYL$K*jm%s^(1`74z>HUIP9JOS)B8n@?7WO+~?pt=it2O;C$!c{O8~T=iq|p z;6mr%!sp;3=is8};9}?C;^*KJ=irj(;8N${ch143&%tHR!9nNXvghD(=ism{%2~To zIH$bgIk?g}xbiu;$~m~|Ir!ak@O$UrYUkkU=inOW;P=nLHP6Ad&cU_M!FA5TbluUX4UWsm9KOaiwUIb1u4`doa`-GeCn+uI zVL(XB+|Eqbz?zhcm5G+rT*u7duo@K>VQUs8FzJ!&GlI$i^Fu$$V`*+~O2@>?!Om!H zV9#`hkcH(3p){C{@t6$&FoyEM#??=J5(d`hhaws{iP_nRnj482*k}P6nK;f6Gjsff zm_-pR%kmd~Fq9wWr+(u9t-P$vKWHV*^(@Q{OxX{shPr>i11K-dPyEFDAIi=4qXKF0 zvE1f5wy+9Jey0~j3u7HqNszSYT_rjuMmi=AASe5gW|+@thUK&m#SUZC27l3uDU=`P zU;l~xtUu%zGGGF#9E)xS<%Rj@f5LleC`Y^}hIbN)003a~%0J;f?NA{Dn4T@5^8S5$ zW(EFezM8cJ5K4IbV(gF;Hn0CA=Wp$e`Lwf?bYS8Etf2D2=EtA-ge;8B4u^)K9$3jh z@5lho4q}$mCQE}sI<`uzjL?B+4dwmixDz!Mw=>YyF@+qv5Mf0zCCNi}Mz%BN#dOLp zbq6Rdq-bkkU<#ES_CgXi-~UayPfhE{W>3WioJ6Pq0NA|x6R()4q9UCbNKx$A#~lk# zA}%IoX<-Thn;k~D&dPtU~s?&apuG9HD%_?6=>x zpN0L0h=QheX5hn#gpHAn3CasQ9P{_b#i?2q!NM@L0-S!=?mMP-2F6Eo;-S$pp6T?z zI2Rc)4xj{-(HY7o08M}DcNqg~Bd`vX@L#5%AI%n3R*)4FRp4Ylw0D$K|=3_q9=SkNbGkN`EKH#Z*pi}?v{m=RSI&glp_aT(;m-DD9Sl>e5Ldrr; zSnr2#$+hJ$&TomBCT${p8V;s4~)FlpOH0Srpd9gI_ zlScl_!%;AWLUZ(?=?_8v<%vJQ9}WD`z#k3#(ZC-K{L#Sw?;3D~TNr?7$jsb8woLIS z6%kSFduA6UVO8z7PUZ|ADMU$80278k%onAgd9D*`CXs?7pKKf=rMAp`FF-*G<=%Jn zUfw;;7U_~QLxRLL@id$E0++-sNWxB>%_3*ETBZ7>X!)f`;+CCOl~2@ztov-r0{r%N zo_EF7QEj_FZ{9V&iH^~&%58p4lD<4K5u3p;v-u9XXFIKiTWhO2d+n&kvHpIU*`YeAQYe_3bgnzKE9vIz99H#x z_xr0hh7`Juzq=QQzaoP7x)PFI8g0xsvR>=b6*CqwJY5@8z9H_;u6)fwNfnri5i^eC z+wg!LGC1fQevMr*CyY(zb%Rs~q2y)a&~aRG0@l*FK1h`~W@{bKj%{NRs(&9!&~R0dumSu67HOSJAQ zv}5m?S3(2v3D9Vt1dr1%WU8zugJPZR{fiVDJU{uAkT0n??phb@OMU3PK(8 z3y{&HCY)3oO=!vwR+6XplsO{P8?u4+OV5>)V;qWvRc1kD(Zn?7MYWMK;!Iy?dYjfi zn`vIByFbtx#cCL7PpZC%*r(6CqSI!pcTs#%A_9}ng;Qb4rOz65&~m1(If^3rdJ*Ye zHCMXmZ|z*9Ha$MAy`3C<4*MRfy_XphSY4~qTbM&bV=uduwBlSt$0zzmSvo=YX&m~N z9q?`xxy<*mvfRh9io}E8YN@$-v2yk@g z-){9A?;G5K4;ra9zZchl?#UoLYCL#RG5+57$6Y%Y#bd_ADC!EAOw(CPWN*=}xwBET z@h=q&xqk=ZVu|X(7h{)?*h}sOQ4(c_&QgX+OX1(g1U->T%O+hjGNfxr+9g`?U2V2^ z(OWZS-8PrkvM6yttlcnKbm@xX+Y}yMx*}(z;byZ=3vn8{)1_5dB~>$C7V~DS%WZsz zr?s%wR&>MbZs$D}!jF~7W1LT`RgsDWM-y=w_1_eg>^jIknt3oMM6|~7-A62yjr&30 zT6qodAdbi?Iu1^JDrco%{+-)!r;0_pR?Pi$`| zN_Q7Up7`Pn5RY9S;!P2x&^NS)Xbrp;WEl@IksrW9iy2nrW$5MgEUUlQ&cSR##cOx> z;DNG{Yv*g(>ytO;q^(|Le;1jLu8pY8+_K45R7ALdw9ZTx&nN5iFnhY=dQoc`UVE#g zl7bSCTKI}pYm8T44XE%ozcSt2D(FN-^U-~T%+l~;FXQHds$5J@ zoMn(QLZ8*u@s0(hEf(L-x`efcEVUZ9wgP7z>h5AUt;^`I?Oeym@}F=unIy=x4lYZU zaXO6S)=h|XzHU{eZSFVQ*5}XV$+}6x0Vh1=b?=jUaBVREdWr82e1U4Wx>i4n?C4$x zX(j^mWdBkxc*orshhH|lVi#YAnXVAmk=Kh^ND|8!Ym~P)ntW@~6At2Ao~AR%l031* zU)^YT@q%)EgBU#}9UFw48^bpejJw;<=GVo}SlGb(Ri$7$H~3{9Yk8q_+iiYey4Dw? zG47|p$`4sVltBh_m08P81=0&F(?z@bCZ(X1xOd*!$qXCJ*mw7C)OQVn?+%}{vhmqe;PoVm zgQ9{|p$$WrtqV^n-Xv%AxE{oyXRt6qMh4!9<^$(;dM3I=tXAV3k0|PW)s*Cng**L zzx2Dc@8(%w%1q0>w_ioI1%Z?IB@|qnCKN0oS#*iC3b6LU&0JNi@LzLVr3u5uUb6Z6 zY-K}zDOyl9_(I5I{Z@r>|M0|ld|M57m4qrg^H?41Kx27p%x7xIgqK$XMxK5)qw*P= z-&lUHf4eF38gG@mTkUSmZ7N9iqs_6U>oZ)HQg}DQ1qfNb&)p(Y6Xfk_t7Obhy}1`r z({_FC(KOiW{erkPA1Ik;^hrZ^8qT)4MaJEtk$2Jcx0Y46As^{KhJC40Wfq4p8(iv* zER!qtXtGbGqLIZti8^0;G9hJ!9!F zGB;Ib!WYeFva>_~qk&ztOJ zkDGDJumF|HCtfV6?YY$7w5jz0m>E*lgNf)~Rj-9m{YGi56e!mB5fYa-p0TiCcCAge zcPFxav5!4s(a2a?nszxA`-v;r6L6G#U%ID#u;F}KCfke=j%?&pug3=akS?sUh?kMh zMWE#^vnq}}!wX^Dx0mV$nSJA)$8ueF$xL~_DZXYCyD91SrgJm-z`nImOTe!}xu{#o zEqOmhR5x;~tYBupOl^2Wrn$bgej^N{$cBxsH}!HW^CIPxm-EQlxKmZ}!sk5k2Vc_G zIEd9>WMewBJ|@hp1yN((@&xfGcFM1QL(LBx%B!1LIEYV6F=(`Jb(c`{E|=ZN9+rOl ziGS%U#E~zte%nOx0i+@`ygsFFB73Tvf3BylzQM!JNrl^{N*t4rWkv`>1zcKTy9|jQYWy!s)(cnBbgCC zaO?4#4d*p9@=sSZntbUdKenqC>|!QVT~V!VzQ04xVB4!zF~gJ?fK#?!C?9oa%d98& z)eT^*SW!^VT=W$g);XFB8mee7(HKN$P2C=+bx1w$1z}*n-)2(cQ6J}!c|D}bth0W> z8fe1%~!uqYtP4bQ5j;Do><8hE5G_eWY3d=l**%!)2Lg5Bx+<-*s}3HFkJt^C&MrWHsNjd zdgLp7M6GSYuHvyiUC4=}Nu1{`F; zrb-5mIyS=AcCY}`(Tne+OW^nu0QegLg3~awu!XsvwSnzXCnI-a?l7F9$_V!WaO+F9YJg3$&hE*I(nT0N8I&e`#M* zIu1JevI-#SqsT4maTNa-(b3aDnXompnBs{Z4$meXU;iKgbsD`qjV~VtUQRC9LA0Ox zNe*moD`FhUHk`pL9ZUHllf2m#l~)6Oi@ZiSz)#C1`!HgL^;K zcQ!D0T+wfhh3T|UB@954ib}A0puhM8{PMuSnSd-S@QnDU@mN)usxY8(|MGy9 z0Z+#sG@uAOE&u?)e%tx?1HH_r<3vsu*6icp+>xk%-%kQh`2@k%ib`_FoY=qXub*w; z=un=b8Q9iXNLW!(5F~AHVG2Ava>v1PRvkYA^b$&(Fu^ZF>-l9M^gkTmr$z@I-+wu1 zh6CmQ`+5eRnwYR1Ok4o&Kj%BOE-~n-1Sr>0f(3INf5HCT{?Wi64gAr-9}WD`z#k3# z(ZK(L1`Y$P@emT_)}0z`d5Kv%>U%FQn<+eRvk8&Q51;JMe;C4>9`dR%gf$FH^rO(D zP<`~=P`c!GJRed~nt-OOZMY9lo^Y!a|-i<6GPFYEzmETNukdo}X@S3g>kKuTO`bR_@N8?}0_ONIDsO7)8y;?~IZoA|>UOSG{pk*6c?f*H?d>Vr?rVi{12dm!3T356 zWs-}pAo#H(W~F#f4m%^$O&=6s^9mzYi6_ksq&(`K-@Og$@gSt~C3NBs0@-9JZ%!Fz zb(*ZQ$-AmpZ?m$8R*$OoKXjE1e#;j;*l*{q*lnKgvMIalZ!<2`5jaFKn?WJqM*Oj6 z?``AMg*x)*V8^y}j5{?rce7-Qs8hu)D(AMz7prIFd}dnkgAng42>_=n)d#LN*rTZ8!N_Gh~b_wM+(M@x+2-SiE3#Bd*HZoG!}a zY2wdTbl*InYKVGJLWHQo$#cb4Q+U(8G9%ud(;j)z!WpvC;!{bYX&+h2NCrlnlE!| z$ZgzgBNmY@-H{3BL*XKpitH;W4jo5V4SxD$>C?BTGkfK4OW4hP7JBjhzt_Y^f-nz% z;7VLrN&n&nYTvlY=wy~&^b-Z4(F#Z5*vw^L!Di0Es1WP^9k#4>uCh|S6}JxlSgK*W zsaTz6DEtOb1A{DT2=QJ_Qu(`=2F?0 zuVO8_y!)M>?;zV2ASmO(HZGmPjn#V>Z$Wny8N=@zru5wU-Z*Da z#40}zuNuk3fXiyy;_mg?3W0;Q-r6pl4`PU7$ey<&6>QmWfk%r+uEnKu$lt!;!jt)Y zRBV{!^W=*8rw;-7*s<={h;T#j_OKZ-AARSc9%srb>*s->+R>m4+jB5D(;z?j7;_6R zW=cr(F1)9S>gO9hPl`R%lM1IJn9;0AtDhIM?|l^C_pfQEAkit<8B?I3|HdIa?46St z{cfWS$$t$Tj65jYWuOv8=DI{``uP*yJC)u7(8RQYVERq?0}42JkhJT!5#DHAatx%t zFr91RYGsBxW)u7Ivfkp7pHp06++C!cYvsk~Xq#2$ zZkf7St@^dp&@ywDsGi`ZA>LGVd)<_cN`i6!O|jSOewqB#ZuvKvTiFosC8})aOyAtY zYw5q2eT%OLGtQnr{GGmO<7P+LtN5I)Yy{p)Zl-nJs=SlznN3+9?rZrX2KWj&mf3fgIGR z-($0S+q*`!;1-wwU*075GbFFKHS^%S4~K(S$>gVjKj-ST8+L%ft+4sDCvD?_#rMg; zp0psPCnTlS7;x}zX`^!+ugj|nlex3!{Y@VGBg=r-rW{Hc{C3^&Y}rS144p7+(Ce12 zTwB8EqnQhCnva*siL_EtG|w{_523TSads=9-sXHX{uk4ioY;i6JZ>G+*}n^7NvoS$I>uZE~@3VvW+<8uBFhzc^J zvEyD$Ae>U@lPM5G!t1;PEX4S5%_$pUEcdgY5uGT+(>goX7v+<3{wy(=n zt!N=t>cz=M;`k0sTc|@#9>9SP{4cLXmfl@ zYJzCcdPj9tb-fUioHHHSPHEhzzXsu}v;nTYc9KH^}E6fp1 z2$HEWs&P5RBs9wp?OWB;;Ra&gcH~!89|>y5hLA=Z-gBHS+sZ<-apv6>^wd1r-L4?B zn%nnqT(lRNtheL4v~g>UcH>s}Dm|}q%nA|F8T8UTp|ADIeH2{6GB=ax_ zZmk@XyjWTzL|7G)33TeP)Z2_uozor5xd&2FP(!dRAXJ%{xgY>}6KD?)&o6CIGjx*zJq(BAsWOR7T@co(JehXCfxU%N?3f*=)cfhZgv2;@45PN8(nW4 zbBm(|yD;xMb#cc#jnUbc1!c%lCCaiqpD4x>m7gS$nGW&bjF5bxxQ@c!GEE z2$5PLLOHU1d^5Qs>S>QqKoo6gA(R+#~K_y>^@Q?qlH(wc%Ca7LlO?H>*;4(H2^5Q9|3B zlic>f4U@Ej)NRQIJ!mM}PGQu!1^D@)cIyyg_v`r;`>TNyBa3yW;JO9mg-i$%#_%*; zov4|aON)ti?OluDj=aa%vWdyaWe07DDBtu_YTv3n%P$`hcijOS@n;6qm1w;0?jtne zlXp32UuwbY+vL7XQpEm#ql1OxV_n2L*XCE3E(B+iPThRF7xH)?M%twY*@58`nl(W( zMZu`=B8AWsX%t@ww7XX4+XN1Csa19DJ472t!x#b<&!zGQq(1;We@6B-!p&I1Djdoyz3@zau^{HoH~#4CpCSG~u#gQfFl z?3exfG|Qj&5pRArvv#J}MeVXc((8xNV;$&TeD>MCDR+)G37nz)Ef0fRr;v5ZQ9oF- za)UT4_PgtJ{GCfuZzc=cKKG_1yCN1W^D30M^r?jk`l@q$b~M@vY3`FQf3!vvPa|ml zp%ZDajCWkUu`?cZWAl^cvU2uku2Klrypon&<>4ww{5mZaE;07kJ02ab39YnoUwa)~ zy4W$Cyii;cYXV=1OoKl}=M`k$^RJ#kb+NVTGi-LjLCxqL3D-(Q7{;d3un#8}cALZ* z;KU3V9iLfNBYTc(&As8;__8q#$!YJ2xRZPTa~sa@WDj@Ujo>Y|nYDPMvxD64(JmW& z0FZ$S!`FA@M@k0kCAo&ZjnD~RmDzkym%#YWyCTBW;ghz)WD4%l>YpJ&VfIdAq3Thn zs@`)&6RR_#{^VC{-u$wLdbMsp_9>N)DZv2+UbS;lEbbx^%Jb#Tf}lsEugAToSb_bd z>9u4X@b7KRjlPI*zDi`{Nw~EsckxzVqlGre3R$l)Odu$NNKO#nl7BOv({_QIAcBbj z?agX-DX$&9x6s2ywFPybBb7#!(HE%6@au^w#71r`@-oJKeX}Kdc*Mg-V@CE zr>!9cK)TL_{(ZQf@sEN?U{93YC;*&MnsOpZMbzpJ@6fekM|M?OKTdPP zeCAA7!(P#bI{Rz)7P=bHbmNS*QzZre!Rsm|CC!2@emWZeo4vI{H)U0Y{nQ@Q)jkd^ zEk(_|*U%=Y?Gh-n*}0mQJ`~7#`)<67?W5W{9^m8f;&DPtuDzL$1BsQ=5J89vt05yr ziPF-{ONMDpB6lq}ZD7l66hnr#8>U{YJbjMxki&>iL*Lznj)G0B@M!Ad@3ue*YUx)t zm6LG2hS}jx4PaE!9N)~ov=0JJVXV|3=LB!XFY$9mrn_TJsFK?~m}2@El^a)cc0>YD z9HRT`u%Gd3>|G$_Pn%%Un|h`g#mepH6Gw>|r{<_s{MzL*xk$I^DqAv|~#cBPErBb6m)=!nbypWRsBmcY2I1Uu3(^wHh0Y)*EiM8;nP4gX8Qb z1)MI;kB#NwWCjw9?&ub(`K(`CKn&nZzS6{HM!EPbLe0Zr?oJt|`W_qha7N^%6|AT_ zx|g?a2R5zcJtBpxy-C9UVJc@vM7cvBN3Hoy8Vc&AhnMlK^u0ES2&?JW6tn}3qGrm= z^gSlSJj8Qj_^Ms%$-89g5a>R)laPt-l>GA*;)*F%7w{%lTYs~Z9iq&z=uZ^n6s$b~CeWP!Z?B4Ayya zlQAwsw&4C;qcZ*KvuB?k!=5fvH@$DoF0=T6sOnF`$r4viocZ=?`iIPU)psWRw%@EzY~L&I~+N*RGZ4$P>--pac_W^t`>PSxm)RauM)! zXOdFQL>RI1!`oJdaP3sc_IuT~*ii*FIV(u%s{fp7s+F6lkRiq4`NYfe_*oYsm#jw8 ziX(k0>5&vLRW5s29AwNrqhFs7+_Rc;NbF4~@xrN<&#BzDDr>;U{#J_kCV`T7v!+K_ zGH&B=+xx+Cm%p&ef2ssqD$rl+55 z>dN1OG^ehzh4ff(RnD|b+mW6iK0oW_@ko_NLz+fG1at{X9z zS;Px2LDFA;_<(Mwy|8ZhGC}TYMzwHDR+&h3 - diff --git a/Error/Path/1_make_materials.py b/Error/Path/1_make_materials.py deleted file mode 100644 index c244d93..0000000 --- a/Error/Path/1_make_materials.py +++ /dev/null @@ -1,217 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5( - lib, datapath="/materials" - ) # don't set datapath,nucpath...will be pyne default values - return mat_lib - - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_FNSFBW(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} - ) - FNSFBW_mat = mix.mix_by_volume() - FNSFBW_mat.metadata["mat_number"] = 1002 - return FNSFBW_mat - - -def mix_FNSFHeManifolds(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} - ) - FNSFHeManifolds_mat = mix.mix_by_volume() - FNSFHeManifolds_mat.metadata["mat_number"] = 1003 - return FNSFHeManifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial( - {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} - ) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial( - {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} - ) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - -def Pb157Li90_mat(enrichment) : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -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 - - -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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1007 - return FW_mat - - -def main(): - - # Load Tim's material libraries - # ACTUALLY Pyne doesn't seem to like having two libraries loaded - # at the same time, so I just copied some functions in here. In the - # future if the materials libraries are included in the repo - # I could just import the functions - libPath = "PureFusionMaterials_libv1.h5" - pureLib = load_matlib(libPath) - simulationLib = MaterialLibrary() - - # Extract materials from libraries - FWWArmor = mix_FWWArmor(pureLib) - FNSFDCLL = mix_FNSFDCLL(pureLib) - FNSFBW = mix_FNSFBW(pureLib) - FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) - FNSFIBSR = mix_FNSFIBSR(pureLib) - SS316L = pureLib["SS316L"] # front and back plats of VV - AirSTP = pureLib["AirSTP"] - AirSTP.metadata["mat_number"] = 1008 - VVFill = mix_VVFill(pureLib) - LTS = mix_LTS(pureLib) - coils = mix_coils(pureLib) - FW = mix_FW(pureLib) - - # create new material library - simulationLib["AirSTP"] = AirSTP - simulationLib["FWWArmor"] = FWWArmor - simulationLib["FW"] = FW - simulationLib["FNSFHeManifolds"] = FNSFHeManifolds - simulationLib["VVFill"] = VVFill - simulationLib["LTS"] = LTS - simulationLib["coils"] = coils - simulationLib["FNSFBW"] = FNSFBW - simulationLib["FNSFDCLL"] = FNSFDCLL - simulationLib["FNSFIBSR"] = FNSFIBSR - simulationLib["SS316L"] = SS316L # VV front and back plate - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Error/Path/PureFusionMaterials_libv1.h5 b/Error/Path/PureFusionMaterials_libv1.h5 deleted file mode 100644 index 0a10792ace70129b6a27db9a6e44630625e4dc62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26808 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 A4gdfE diff --git a/Error/Path/PureFusionMaterials_libv1.xml b/Error/Path/PureFusionMaterials_libv1.xml deleted file mode 100644 index f4760b9..0000000 --- a/Error/Path/PureFusionMaterials_libv1.xml +++ /dev/null @@ -1,701 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Error/Path/createPurematlib_xml.py b/Error/Path/createPurematlib_xml.py deleted file mode 100644 index b9c73d3..0000000 --- a/Error/Path/createPurematlib_xml.py +++ /dev/null @@ -1,627 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - mat_lib.write_openmc("PureFusionMaterials_libv1.xml") - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Error/Path/materials.xml b/Error/Path/materials.xml deleted file mode 100644 index 3f2e4f7..0000000 --- a/Error/Path/materials.xml +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Error/PureFusionMaterials_libv1.h5 b/Error/PureFusionMaterials_libv1.h5 deleted file mode 100644 index 4aeb214a9fc5a34d575ad6c3c316f1d94885ae03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26808 zcmeHuby$_n_V%U(K}rx%1d$XZH{G4mDIr~(?rtOm5k$I`l5UVjQMv>KX^@g`5UG#Y zTV6ThIq&<=@A}U1;bPCT@0sVGHEY(anR(XiCn5qu$cVQP0Vfv%0st0(c6tl>I09d9 z49^hAcSyb__y!7``h(Ng&}TPLfRjG}00)etgZVF(lb00~1RR%y@IzAYV}NnEvpWO` z@F)GB(twB{uk=ZSAA(y=08X30b_V_mFx9frvjSRI_e_WK_y{=cl)Mf-*LLw~USK$;7&Uu!S`v0ENUfxnr`NlFQv z*f7NI2*7p=;k{_bf0O=yrub!kKpOr`1s34({qOt$&$YAikpB3eQQ)73o@(HtAK(G& zB?N3g5H*?E>X?9Z^-Mt4Hm8t|xv7P@HOK~JZg%mzhN+&7madkK)=36rTtocJY2o9K zi+^Inyy%aZuouEfmxlpbIVzNnwuHyC*ql#{(YrG>_o) z6Ykg}pWx8Y(5DX~fO%k`{E<%!07A|P&%OYzgFW~ONC$Az2LL?4IsdoGnO(vBSl{EI z{$8GY;OrEN-l0!SKR(Zm~J39K7o^Jz8VR(GFY@hGE!4;iI^PlCG-Pg`FP zU+1BQ(3P%+Fy5ht01$h270vS5Rf4EzS9xZR|1s(iHMQyxJ@V=hSMimR07A-0Xr{_Y zNfhfy`7-NBbq?!D;|=RbfEyb~;~PZCtG9@e0er;BXdq%_f)HZlB+_c+e2Hpgf@%d6 z9wbE+X`mvCrtuOF&MuODj2o*!xwp+9PpR5@B*d^uXz`*O7Lg>p0iTLqd$hAeu> zjx0Js$pSj<@B%sy%p$s`%py9PmpFD3_cV6C{xo)7&@}e=&@?uHVg_6Kfg4U;1=h`R z1niruG}t!*O4v8i+^}yFq+;LX**O00GKxpgGKxpLHj2lCGlnP4J%*>LKZa)!G=}F< zJcgG9J&so=ef+PLaKFnx;XcndCQ3~qW=acFW=fARX3C^5%#?KsN3`R~N3^RgN3?+T zBU;Ef=K+txi{qRTYCt%1AjE|M+5%_8gPJm z)H5v!%Zmm({$XVIL*Tf@@Wk@*WyK=(&RaITOEi@_`hn|QLj1_UfJrEEE%LW|bL?bf zqAEWQ%28p-K-3Vw_kK--?yx&z2RP+YE?#lyiG&N^4J-nCJD)qh$8M?^B^jpLx<4he z#%PuG?TYg3*t?2DyzKr;zb!ZX>?3qZt@nqVcNaFe>Ya{g^3}PK?DNx++`mn0=5xmd zwmGRC-C*@W-{P2}v*ZHqaL>avIUSi>RQ4i0FTe9q<8k)E3hfTf{D-zL*L9bUJYrMT z1FDFr`4g^35-sdYMXeC^W${P`-haNe@A5Y8&VfQxMdGLYTqT%|Lv8Nb=Z*|R zU}Ws9sTkwX#An!e^wlLnV#_~ztfFt1>UCo~#*8R^XFx|HQ)iSxyY-CYhL_{VHgmy# z4W_&(rFP>P+YMjGo+`ajrjUV@8Vf_UV@6?$BY4aGFMj6u<=g4y22Py`bwD;+C$DA+*$9QL%&o1p^>mEIBqcQHSXo&Jw9Iq~ zz}tNSURhB=ISpwm^W&Yp4M@+L*Gk6_WT$spM&kH2u8FnCadB;PbK~P@nOO-b36BFp z8fLbp+Im)mY>af2gl1Z%ddJl$GVoh5$b$$^T%Q404u~K6NgfL`GZQL0MiypTD?K~9 z3xo^|KM2J^OthzL0DvKw4>GQP;uF!cGCLMg&q>JETF}fuK+jqONK40Zfta4&(a}=Tu>e__Pc%b+K{E{JeJFGsqt^S2UQEFJ5dZp5 zYKmQZnb3-}dJu|$sNCW@?nOFV^?|Fyv=|S{t4wm=t+cP8Z zNAp#zM1Wwz(-&jMoRE3_Cpmv>Z}jJ#C9ee$4`2zF4>CXg#K&iDXnH&}V( zX>B@2W^oWJWPW!C%M00u{G?ZYS$;$C5`>9?kB*M{q8|R@21L#T^#JqzeLG?}H+Tti zaIXUZp8uGS{#>7DU31Fh^^f_0=kiIO`+x6$&iB`W^P|0w!F<1*N0mUj=DOx$=F1A0V7_0jum0op&v_S} zu78ea!1Ef;DmaN@om>$7ECzK9fH(gCJ{E^_TJ+}eBPXv6PGaw8kDf)9;f|wZC*Pru zV_qluC+q%{TgM;A*9i^_&i_^3Ntu5TBP+gt^59uG?u7RAx)>t^00_W2zfUfUrFow< z@?Rc~f+!T6qYF-d2=Xsa`~m)G;Ex9WXyA_q{%GKj2L6B7fCJRhkfWN!+#Ps}RDVJN z0l9$}woxLMwSJpK&Y-bkgj87&ZusLuK@y6WTA`*QsR%MDh9P1qtMtkNvSJ9z-;w({ z57gVl%PRD75;ug?tvicc5_cRE_TsFUS#wmXRj)pL$0ySdY7J^RE%Z!|1xD?$L$89|7AN@p_0foOn`}#J$%j-Pb55 z-qWvz24dqNQ9cWvq+ZHW+)R;-b+Yp>kzMb5b#;!$#&~*P^wBG!47+K0r(JPF!Fg8+ zCNA~E_ID#Gqiw3f-A}~KjQjL@`UdzTzxxTv+C*kpk(;`H-ehhW8xGYjoQo<7bto)? zM~<3uQffA)s61LrnLSWoiOguq0otv+R7i=jFX305m#m1!r!Xt2kCYIm`$Ey*viaFm z{WjI3q4p?7{YX1P)n(WLUCuSF4jY}T!pkBNs8lYjvMVkFR*1tEa}BLgBq_H`2p_7r zQbm93WFxfh^J(wzX5q3w^jPn|PLsgsT9eW4;r+e@3PBF@+_ZhsFe9<}}jqk4A*$~LUMc|?}()3B!ZM@3p;H|IQcKLzyVHvr_ zJyAogjAW>u8iE!}m%Z<(2Z|9OaiXlm?sdwtn+&8>lXZh5^O&@y3-wDtve@Aj?py=w z^)x_jQUF%uhGqF@Uk?Jf#dxc!qUDEl>u#tep;He1%wpnl3r$_0sGFszc-?0)sN42H z`%%Oa-zO^ap2o`I4}Y`SlMUVK9-}d-91gg7+olZSXye6hjYyC`*`Bp zCXrPbl1k3FMtND+Qitv~d>JdL5T~1V{5XpBcB&%xC%CiSR{@|jV9gFE+b zyWix%@E&x~Sgo0ITobY<4ga{|@Kw2Z_O1%YObC%Q6t9?MFqBE%quOw1B4^@W zDH?JA4#Y$g)PXKVuN<=zJqRMj%L<(*4HFl`euOIdOe{TzaKk{Kswrt7Z_RhT)y_p{ z!;o>;Oh&`J%pSIW%XrzPCyHyEe|+VJw6&U>^(LjG)5wD!jp7=yy2*-|H#3Xn_xJgXO!AP#P1v(ZEJ! z9q=d)&oVj=N_ZxBZBXW&+i16W9RwDDTX$M#C_77Cc2_i+asLYvP}n-cFV8 zFAF^L#Tde$xIMy|%1ffFZ|A5nRKUwH8DK0kgoYF|D#uCF&*@pwsNBgyZ%oE%`|!v} z!N9ea%vNbL8Y;uE1^56UB2$`8>{`|KY?dxdUcR_cS%V)rZ3JS zNC9TR^5$gMlKc*XZ+An&MpL#*om)qdvle-8shh@i=?4KcW-!mIYNCFrS&F&#L)==ns^4AI6p`=g0>mOY^yeJj(oh8a?(R=8`M zZLeNYh;I_2CZ%F>BxXnPjRaxt4>I}nFw+({aeh@Sn#~JN&S$JFcJ8>(4b0H^Vlct} z99aD!JBTz$Z=pJSwWUaWiD9;6U)Q)?GBxg}Fvn-<39sug@wb9FdcJfR70#>V%aE=@*z(gu$&be=ljb zv#s#tmC|JC6@zQ^Y1JFIT>=G0n)wcAhYYltL~>M8 zl*YFu$OR+G-eX+SH!6IG>ZMNgqnX^>P@ zADAh}hsG3tv~!aOZYAU@HTL#htx2?X`_7?K>ovNmLK(eG?|TL3p5J@|^HIxi&C_JR zdxvhGjpg)|><5Q6WIK*fGQPOH8?(5)WdzGEk(L2gKA2hSa#j8tZtE0bnCL6kUtg?k zsjfuxDg|E&d8*qkJLw;uxQK0|=B}7fV`~!K|RBSnwfoAUq%oO%W#K*T>R1ctXrlsmau5#>&efO{(vs<|4ypdV z$j;>f=7?njLj`fl)im^Hu0+p3Q8EJ=o_4|di|JWRa|RevkK!`vpjAX9M>>~C zuI`xDu;lAs31h#%(lAW#8}~An?Y2u+>iccs4eQu#QNK6c+bKtO?Zp~AepL!3z4C4; zhpB?vkvkPdbB7fwqgxWKjqQzFVJIcmOjP}8*W2lrNoTyA$2KONYD$+r=L;KsN#9_> zSACU(>dg2QH>+Nf9QB^3BzI!B%=$OP!myG2hN-2a`1Dl0X1jKG5f$%BsjZw*@wcD2 zSH3zra3wbG8p|0uR%L}ZrZ!CF%=B_E^ffd#dDuEBvRl^(qvBF5hUJq4(2?e#g+JP{ zUCIzj{w(D7iI8bTL%445AdR_Rg6z#kac%C-SlN!QM)1(}HU=Ph0^{qdNKz1-DXx)Q zpWl2qr@n!IhMd84vYX7rzDBT%DPL_>t)|)G9x;tgzed#@U19)6#b&Wg)Po(f;N_nz>PhI{JU8%(<0qw#6+;ks`~Y!33xoE-OO{2hj!z96ruPPt7P&U^t1 zwnS~%X;`FTjV(RR#*w|Ftk7of~)Z~W5#A^Q2W#+-> zHjOJm$?DUS6+Z4JDf@`9eLWZpFDRf=urzIqXAUVtZ&6}xc$5q1NHv3+X4Y!*9Q&E6 z+;cZxPVOVp#L7RjlrB|x{RPjCBNZ-wRFjuF)s`Fj*%4UFJsk z8(etp9sI7su{&SUEuSS9wX=@aY!FFWRrq@^NZ9~S8R)_g=+r{f#&L*LST@jgc*F7_yT2=DFq$#DlOvPUK>{A$9RMh_H88g8b z*QcP{hS+3u(|ep#^y24sG4C)cksA*(?&k_TeoR&_exHRbH(;T-L9O5pG@1thmH+^S zzytVm`%m=nZ3k%|wV|^z;Iad1zYMVa_QgBh`Rn|%nBwU>aA@!j^zR3l7|sI@QXms~ zJqImoek)r@fa&DL_sPX``UwF1jR3)Un3><)Ovg&k<|GsZ3+90wr22{PZv@{J%UP@mswzoX2VfZ44bv^vv{xO&oR1&qCu@z`T$Hdq2tjd*1VK^=UBw zEMx%>=KEzJ|35s4axSnq==i*a6#ZWgikyWp0DxZx#D5oPJ-4pE##sT7-=6-`zQnZb zwRELqCB;u7w~VJz{9i;z&jV%rR`f!0XL>k3n{;~pg8nW=yC4VAe(EP_ zkeQ8ul%R&7tOhMT9lZwQ>G2zeQ-Ocd3BkpP=6PLG0&;XfM&&c<0f1}Z`XC4QeyZ?ud7p~tNs7wJL+Szl;uG-80|OTVvW&nB;-AN3l_07@0n7c%16CL1zCZ^& zAA8_{BILLL008-I=id+X(w~nLX>CZePlIzOqW*n92|VZH1zE|-OP_M0|E|A&wt*5f`Ff_rBd{07k zk@G^SQZ})C2n8tuTJkEEx7>Eam*y4PckAg4^b;HtI@{uuJKEGJGV`#Zuy^ew>T6ju zRJxzoZ`$X>GEgtqHqySm?P8+)tTt`*+J*}QaqgUNec$VCaW-^*H22JcSG1h~5i1gN zYROJ}Cs8|W+b&wiCqjJFyODQ`3{N$CRD{mS4_hOgv@n$VqQmg*flYCu)BP8>gBs^~TAL|a@ zHqTsXAbtsQ=*U2MP>1m_TcU(KP1wA8VV8Khc23%7t_?c~_K`dfaJE_nHyvJtz67y! zNg3wOs7$2+#|yFr;Q;r?`YlsZu_$kQiQk&Squi*c)0>FL=bb>~1R)!+Ro`cIQJ72@ zezB(g#)zyb%BTzvR*{wChK)M^wtIDEygREM{Ia>T<64_fHG#TaWH~JnH2w@M-7TN; z=k>g|C)d}n*cQg7G+L~v_K{Ns%1aQohEIto7{r;wD{SM;PV*^!-q$K{Qm;2#WmS{j zy4!&-AXUC65zd9chA$R5P*fT^iL4a-{MpKMr~`- zndH&AYXDkSP1`B{U8 zZy*n~Vt7Y#RwT2wpKB~lt96bFyBr-#?0SAN)dYo$_G9ZM=a->vqPNBnzIaOzDM^&% z5+8tv_K@J%*yvoE+6w%;PhF-I->do(sv31L(dZ19z zN^o`mJ2%%+j*X;WAqOj>y(2=VpZXPE2@j@8@l1BK{)bpg+T-vje&0~V7d8(jS%V_h zxj8sh2&RTy*3*~wZ_iip9BuU1_h5Vwf)#@IydNoR!+Z}kUOILwE`vqp{uLLFte4|L zqXeI)*UUbB2q;94b-#s&8G?0yPK)~FI|unBU3SGFha;jb1;VHu3ym`c{IicS_poAS z_yiw9dm1Z!zSH-t)I&9?cs7C_$&#@4WhwK)N8v;Nx=s=Tt)jgNSrY1REc~P1xmnTg zwkqKKH$cJg!%{tZicv(aD}*MWKViL7>@Sj>nw90vxC?zm0tGE8?)q(vGa8c^1#Tcr z>sGi*g}#>Q)M31ox3K8vR2T8_^#+&@E!(Nt`VzL{ckICZHAelh!$<(oIvt*iCt-d-6k>t$$I(5ilq z&ggCD8r6nbWDHEcOYEml+-PI!!TJaa1FM?OPYrv))oVZO2!&mC`*~mbmXZ1Q>A=49 zAo*tm<+UhK&~EAD3tI)1HN`3HIg9?rPyOK~KpQjmrVf zpbStf1h*{4OXNmcD$1GV>rIAG*;zZg6_M|Kn65Yk8Hes-0CHh0c+do=2ns zk^J6#`f9oRtt?b_&7U7jd>LQVDo`xz4*4=C{R}6NBdxhBIk39nPsXJy2oUsV(<9PbP1p-4d$aKYr%s5Yvmvt;mkAt7Pp+ zAvLO{DF(#Ov9WPtaQJXrC{;P$>(fuSOr48`FkE7^+CwKRuE8=0diSnxy3?5@6YYdx zaVOR-bldu3)GqE2=VB+-Ke=_Sy82}?T;w`wPE@_}RqV(_k))D9xLGkQ6`@fi*ZF=O ze8I6wr7Dm3RNHjBrUb6Tu)YQ7b%v)88aq%60D-+AHd94?o~1an2nG^puR9$M&k2oT z_1YgOtt)L7qY|@bz}w1C8VuIKd==Nj6n$I|+{cBbc~f8PjeDd%G>E~~<#&TVq6J1Y zEk-FWx0HZl^|4*MY6jF$?AxwF^P(>btK}a`$eoNCQrHuo)1Y%gmm@Kd9*t-sBBQg4 zvcKTaatr6M&7oz|EGK3^%w~rQesNF%V{lutIM!;bA$WwbETaVT3(T8V0m?FIjyu_0 z=1-We=E8Xk<%`G#KF)kF(@5L_C&v-boy9?53@_y2v8P)dn>M0Wef{*iB3)o6jHO52%T06 zF)7RCb$qxrAz47DE(@LQ2&Dz>iCkq#MOhUXiy~absktjWj!&HCMo?Nhhn})&^2@)L z&&W2?A%()&HsCr^77S6t-!lK+D2{C5(KY3M*iy#egGBv>;(Dt+!2Q70m)+oY^MqR* zCCG(-->HW^-f4o$t|BN?nk;edb+T0XK|*!U?x$gFZw*n}v~aBbnJUxo z)*_FK?aHrG_7A@enOud6?>w4M*Tc5jS6G9VpDD<(G-ic%qav$MYmB`{o9NCcR^M-5 z`!(R{o5F*K{gvc8k4hMt<3>x!V@wkDuY_Y@z(`FDCSA|xSdWe&DQ=OEwOlG8@Y^f6 zlCr|g!9sU?`a6hQa%X3wx}&Vx_o@aG+b1z=T!SX>fE7!v14^Z@*GF>WS_zP|Unyay;|C5TWa!e}}LZHyuGsHWj+PB$3*2?<+zu^65$)wg zojx80?n`NU1>*u&-EGIK5gVW7q5ds8$# zbr_>K8XC)R*VR>mF?Eo%);WCN%sN2%kBo;++#{;a6P=8m$XjsH(&?TuiSPvNVd28H zJM!g94RFon38*49n~A*~dR5YTclrRoi}BWd!iP`!Kh%fUgquf(4&ALu{oa%2GyIb zoZxM@PLJw`epFbqo^XFOL`B+}W+jEIH-pCEMRy3S5>Xo*XPF>h%nSV|f?lL?WmAhG z=>v!*AAoAi4H?g;uPKckei`euq%>;G@mTu$5!o0oNK=6@J(8=M>amnKJ7;)3%HXsb z$!$_x{wc3?@w?)Z`L;{du}{C$cCbifyqB7_jwF?w;$cHgCOHUU$U|Ccw?PQ)Y)x`I z1T{@l@{)I?==C8XXgYjWjt@3*=bSUxsHY_e^Cb?Jd|Cg|2Kw0$Lm^Y6)69SbQ+G(m^$Xs=`K z`9kvt?=Z#bcT6N20pd|9IqxHC=qMh=C5;_D!4pR?Na=w6=GLDOOAXhFLn&3)^G%7$ z*d>szA^uyS!HcJw-pvmgGj+sPgC%C2wK5&^pO}Ge;v1l7%M~PT_$uHW9pd)1;?v9} zV~f^KjAC=uR^~IAamG=bI$|+xBXlWo+q=9Ef?C4O>N2Ll5T+cNm_KlCBpVM?>394P zFgK{!M@c!L^PsU@N~(Ffr{sy>%f~Nak&K(!g<>rO_g&tovFaog#vOhIkaBEeRSsj< z6Z(+H;*Vk%ym2Ca2}zx?+_7h7+hxoV>mG46%NNX5#3!DDX-p0j5m(={ zn8V09MaT9hJN4O)22q=6MbmxTc;Y-XG;}a09Uea`Dp^=lKA(6)U-hQ<~VoN>?%RIvfAsn%JA^qK?n~sVT0oMXQ{$WiA6Mp}fATET0_=_Ci_*#4Dd{;Kft$ntkYo z8?NA-RBi5#N8H-}WU;D{^O>#O5p7XkL%RBS6(oF{k_;0c{p$mdF4u&1%DAun_AWil zC{A7oE{S!4uLWj7AENV%vXuR6=MY_NEC=*kT`&+c`^UmH5@ANs$<*w^iTT~8F@{)C z1I8!kR#k{zVp_3pxi%*^r^7iNJQH?uAAD)e`kmE;*XT?@eHw#v1PJur=?r9jvNg2_ zu1G=+2IQao>djh{>&Vv|4r8B_X_??0kzmz2C&gke;~~6U-7X4xGF~w0J;MkbB+RHM z>Vkf6ZD#OAfc14E6Gy_mZRxA`2Aa(^B`x7~n!|X4BJiYnu`Rf_<5_K%*l{B0Xpr8l z=ah5WQhW0~URGIB^+~ddQ(?4RywN2gBVl7e4u3~t2ZQkzo#t(!^s2A6!w9vB_sW8k zm}$m7XO;rRZ$6A?U{KlW;)1@Oh&MV*v`^GRn}og-30#hLze8pZ^o&^`>{4r{44|>{ zWHwsbz7~bwB}?N#MQDNbIJXcn-H*WwOI1AUT@(?)f!&weH7t|p)OUz;+^Z{(J_6SQ zFrkHP6{I8_O*^@~oC^Hkch#eeyQpvL`ecwJAjz#zs}{p_bG_!M!ed=^g$)~Y?}=SZ zxZ=13^FW?wOF_Q>?JM8Aovm9D53K0t90w_xWZ@Tdg2{$+;$Y40oAjq>++m(?{RnNO zTFLT(Vli{^1v5N`b4#@YzVY+S7RxBb^+EA396elDLFM!h;3!u-Bg%bK+^`z5b6u7SNzD!ig+Xv537oWF> z6alHamj(}^`X)c}!ht*y_M-q$2I&fk1XWS%dz>S;N*$P$DE$cCBo}&{WEVS_I^(nE zdYTSOwp5u5+}o(?BxjrFtemPzxQ_~I%?fu)G{G zOS!3oSJNd>V!L}iJ!2%0_5Q%;=7dn`E#aLd;wA60{PuNcxm zNon;0?^8~!pp2DO^DeN#$MWCXUy(|J^WW<;w0M={y3lT@H{Phf)2TNZsR@d+o#t`6 zwm317kC7FKGrp%?tm3nIYY8@hE9FKDnZ7m-X7{+g7>z*;&B>c>yfG8H7aSTvDBMA5_jqvHIY!sTebgc0 zFp^CM}})u`TWOG=l-OJ8l{w}cHB?b9JV{F z!ec#08$qNKyw~0*sHSnq)j(PKWbDe%K@)@zjh5cm#khAH-PgJROFF$eyeClx?<>9t z;~YYfN6roRdZ&zXG$PWe%{J$KDQ6mvnp?Ljb7k=6IS_(z)cW4uRWBuDEV~MLzBf&( zV$2U){o!ppO}J*71WBePWiIp-mHHim%IkkLM6n8EA21oWd;cJfc7wMjVvTmq+ zE2%znlPRRnoUMAUZPunt)+F0YfGJT7?n*k+%1_c9Dw=RjD4FrV&5 zg`vI=f<;XZo3qQqo0JMh8l`k|_YCy~N2sUR*$mag`Y@W4VLh=7Wp|x`@N9Qtt}_T1 zU31JR`0xSQR&!}nKRH4AW@asaTXuy&ZS&RU7?!o2l*$TLtMP*;&Tj^|*)uI@-jhz$ zFyj^7YdC86yj5O!mF6C49yfakHzBPJG;CFFRM~tzbxSAGwMS%_8)LAm3i6LYogLmH z+Ts;QGm!+&N|oA-N@zAr=90SR!h7b2?T81#2n5jn078%d>14kj_7JtLhT87`0W0-& A=Kufz diff --git a/Error/XML/1_make_materials.py b/Error/XML/1_make_materials.py deleted file mode 100644 index f1a3b11..0000000 --- a/Error/XML/1_make_materials.py +++ /dev/null @@ -1,217 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5( - lib, datapath="/mat_name" - ) # don't set datapath,nucpath...will be pyne default values - return mat_lib - - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_FNSFBW(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} - ) - FNSFBW_mat = mix.mix_by_volume() - FNSFBW_mat.metadata["mat_number"] = 1002 - return FNSFBW_mat - - -def mix_FNSFHeManifolds(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} - ) - FNSFHeManifolds_mat = mix.mix_by_volume() - FNSFHeManifolds_mat.metadata["mat_number"] = 1003 - return FNSFHeManifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial( - {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} - ) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial( - {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} - ) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - -def Pb157Li90_mat(enrichment) : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -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 - - -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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1007 - return FW_mat - - -def main(): - - # Load Tim's material libraries - # ACTUALLY Pyne doesn't seem to like having two libraries loaded - # at the same time, so I just copied some functions in here. In the - # future if the materials libraries are included in the repo - # I could just import the functions - libPath = "PureFusionMaterials_libv1.h5" - pureLib = load_matlib(libPath) - simulationLib = MaterialLibrary() - - # Extract materials from libraries - FWWArmor = mix_FWWArmor(pureLib) - FNSFDCLL = mix_FNSFDCLL(pureLib) - FNSFBW = mix_FNSFBW(pureLib) - FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) - FNSFIBSR = mix_FNSFIBSR(pureLib) - SS316L = pureLib["SS316L"] # front and back plats of VV - AirSTP = pureLib["AirSTP"] - AirSTP.metadata["mat_number"] = 1008 - VVFill = mix_VVFill(pureLib) - LTS = mix_LTS(pureLib) - coils = mix_coils(pureLib) - FW = mix_FW(pureLib) - - # create new material library - simulationLib["AirSTP"] = AirSTP - simulationLib["FWWArmor"] = FWWArmor - simulationLib["FW"] = FW - simulationLib["FNSFHeManifolds"] = FNSFHeManifolds - simulationLib["VVFill"] = VVFill - simulationLib["LTS"] = LTS - simulationLib["coils"] = coils - simulationLib["FNSFBW"] = FNSFBW - simulationLib["FNSFDCLL"] = FNSFDCLL - simulationLib["FNSFIBSR"] = FNSFIBSR - simulationLib["SS316L"] = SS316L # VV front and back plate - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Error/XML/1_materials.py b/Error/XML/1_materials.py deleted file mode 100644 index 2287cee..0000000 --- a/Error/XML/1_materials.py +++ /dev/null @@ -1,203 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(): - mat_lib=MaterialLibrary() - mat_lib.from_hdf5("PureFusionMaterials_libv1.h5") # don't set datapath,nucpath...will be pyne default values - return mat_lib - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_PinBW(material_library): - # material library is is PureFusionMaterials - # Based on Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet - mix = MultiMaterial( - { - material_library["Li4SiO4Li60"]: 0.065, - material_library["Li2TiO3Li60"]: 0.035, - material_library["EUROFER97"]: 0.418, - material_library["HeT410P80"]: 0.482, - } - ) - BW_mat = mix.mix_by_volume() - BW_mat.metadata["mat_number"] = 1022 - return BW_mat - - -def mix_HeManifolds(material_library): - # material library is is PureFusionMaterials - # composition homoegenized based on 50 cm breeder to 35 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. Estiamted from Zhou 2023 manifolds - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.714, material_library["EUROFER97"]: 0.286} - ) - HeManifolds_mat = mix.mix_by_volume() - HeManifolds_mat.metadata["mat_number"] = 1003 - return HeManifolds_mat - - -def mix_Manifolds(material_library): - # material library is PureFusionMaterials - # composition homoegenized based on 50 cm breeder to 20 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.5, material_library["EUROFER97"]: 0.5} - ) - Manifolds_mat = mix.mix_by_volume() - Manifolds_mat.metadata["mat_number"] = 100352 - return Manifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial({material_library["Pb"]: 0.4, material_library["Sn"]: 0.6}) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial({material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5}) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - - -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"] = 1002 - 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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1007 - return FW_mat - - -def mix_Pin(material_library): - # Material library is PureFusionMaterials - # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet - mix = MultiMaterial( - { - material_library["Li4SiO4Li60"]: 0.065, - material_library["Li2TiO3Li60"]: 0.035, - material_library["Be12Ti"]: 0.613, - material_library["HeT410P80"]: 0.142, - material_library["EUROFER97"]: 0.145, - } - ) - Pin_mat = mix.mix_by_volume() - Pin_mat.metadata["mat_number"] = 1009 - print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) - return Pin_mat - - -def main(): - - libPath = "PureFusionMaterials_libv1.hdf5" - pureLib = load_matlib() - simulationLib = MaterialLibrary() - - # Extract materials from libraries - FWWArmor = mix_FWWArmor(pureLib) - BW = mix_PinBW(pureLib) - HeManifolds = mix_HeManifolds(pureLib) - Manifolds = mix_Manifolds(pureLib) - FNSFIBSR = mix_FNSFIBSR(pureLib) - SS316L = pureLib["SS316L"] # front and back plats of VV - AirSTP = pureLib["AirSTP"] - He = pureLib["HeT410P80"] - EUROFER97 = pureLib["EUROFER97"] - VVFill = mix_VVFill(pureLib) - LTS = mix_LTS(pureLib) - coils = mix_coils(pureLib) - FW = mix_FW(pureLib) - HCPB = mix_Pin(pureLib) - - # create new material library - simulationLib["FNSFIBSR"] = FNSFIBSR - simulationLib["FWWArmor"] = FWWArmor - simulationLib["FW"] = FW - simulationLib["HeManifolds"] = HeManifolds - simulationLib["Manifolds"] = Manifolds - simulationLib["VVFill"] = VVFill - simulationLib["LTS"] = LTS - simulationLib["coils"] = coils - simulationLib["HCPB"] = HCPB - simulationLib["BW"] = BW - - # from library - simulationLib["SS316L"] = SS316L # VV front and back plate - simulationLib["He"] = He - simulationLib["EUROFER97"] = EUROFER97 - simulationLib["AirSTP"] = AirSTP - - - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Error/XML/PureFusionMaterials_libv1.h5 b/Error/XML/PureFusionMaterials_libv1.h5 deleted file mode 100644 index caf4e60c9dce4573bed379e72147db4c957da6be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26808 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 AP5=M^ diff --git a/Error/XML/PureFusionMaterials_libv1.hdf5 b/Error/XML/PureFusionMaterials_libv1.hdf5 deleted file mode 100644 index b71ebdd102755190654583974f944ba606b8f477..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51592 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 diff --git a/Error/XML/PureFusionMaterials_libv1.xml b/Error/XML/PureFusionMaterials_libv1.xml deleted file mode 100644 index f4760b9..0000000 --- a/Error/XML/PureFusionMaterials_libv1.xml +++ /dev/null @@ -1,701 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Error/XML/createPurematlib_xml.py b/Error/XML/createPurematlib_xml.py deleted file mode 100644 index 6d93500..0000000 --- a/Error/XML/createPurematlib_xml.py +++ /dev/null @@ -1,627 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_libv1.h5",datapath="/mat_name") # don't set datapath,nucpath...will be pyne default values - # change datapath to be able to read with older version of uwuw_preproc - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - mat_lib.write_openmc("PureFusionMaterials_libv1.xml") - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Error/XML/import_h5.py b/Error/XML/import_h5.py deleted file mode 100644 index a4afc3c..0000000 --- a/Error/XML/import_h5.py +++ /dev/null @@ -1,23 +0,0 @@ -import h5py - -def print_hdf5_structure(name, obj): - if isinstance(obj, h5py.Group): - print(f"Group: {name}") - elif isinstance(obj, h5py.Dataset): - print(f"Dataset: {name}, shape: {obj.shape}, dtype: {obj.dtype}") - else: - print(f"Unknown item: {name}") - - # Print attributes if they exist - for key, val in obj.attrs.items(): - print(f" Attribute: {key} = {val}") - -# Replace 'PureFusionMaterials_libv1.hdf5' with the correct path to your HDF5 file -file_path = 'PureFusionMaterials_libv1.h5' - -try: - with h5py.File(file_path, 'r') as f: - # Traverse the entire file structure - f.visititems(print_hdf5_structure) -except OSError as e: - print(f"Error opening file: {e}") diff --git a/Error/XML/import_hdf5.py b/Error/XML/import_hdf5.py deleted file mode 100644 index bd62132..0000000 --- a/Error/XML/import_hdf5.py +++ /dev/null @@ -1,34 +0,0 @@ -import h5py - -def print_hdf5_structure(name, obj): - if isinstance(obj, h5py.Group): - print(f"Group: {name}") - elif isinstance(obj, h5py.Dataset): - print(f" Dataset: {name}") - print(f" Shape: {obj.shape}") - print(f" Dtype: {obj.dtype}") - else: - print(f"Unknown item: {name}") - - # Print attributes if they exist - if obj.attrs: - print(f" Attributes of {name}:") - for key, val in obj.attrs.items(): - print(f" {key}: {val}") - -def traverse_hdf5_group(group, prefix=''): - for key in group.keys(): - item = group[key] - item_name = f"{prefix}/{key}" - print_hdf5_structure(item_name, item) - if isinstance(item, h5py.Group): - traverse_hdf5_group(item, prefix=item_name) - -# Replace 'PureFusionMaterials_libv1.hdf5' with the correct path to your HDF5 file -file_path = 'PureFusionMaterials_libv1.hdf5' - -try: - with h5py.File(file_path, 'r') as f: - traverse_hdf5_group(f) -except OSError as e: - print(f"Error opening file: {e}") diff --git a/Error/XML/materials.xml b/Error/XML/materials.xml deleted file mode 100644 index 3f2e4f7..0000000 --- a/Error/XML/materials.xml +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Error/XML/test.py b/Error/XML/test.py deleted file mode 100644 index 4eceb2f..0000000 --- a/Error/XML/test.py +++ /dev/null @@ -1,39 +0,0 @@ -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(): - mat_lib=MaterialLibrary() - mat_lib.from_hdf5("PureFusionMaterials_libv1.h5","HT9") # don't set datapath,nucpath...will be pyne default values - return mat_lib - -print(load_matlib) - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5( - lib, datapath="/mat_name" - ) # don't set datapath,nucpath...will be pyne default values - return mat_lib -libPath = "PureFusionMaterials_libv1.h5" -pureLib = load_matlib(libPath) -print(load_matlib) - -def mix_Pin(material_library): - # Material library is PureFusionMaterials - # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet - mix = MultiMaterial( - { - material_library["Li4SiO4Li60"]: 0.065, - material_library["Li2TiO3Li60"]: 0.035, - material_library["Be12Ti"]: 0.613, - material_library["HeT410P80"]: 0.142, - material_library["EUROFER97"]: 0.145, - } - ) - Pin_mat = mix.mix_by_volume() - Pin_mat.metadata["mat_number"] = 1009 - print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) - return Pin_mat -HCPB = mix_Pin(pureLib) \ No newline at end of file diff --git a/Error/createPurematlib.py b/Error/createPurematlib.py deleted file mode 100644 index cdc99d0..0000000 --- a/Error/createPurematlib.py +++ /dev/null @@ -1,510 +0,0 @@ -#! /usr/bin/python -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MaterialLibrary, MultiMaterial -# -# -# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# reference: 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html -# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 -def WC_mat(): - nucvec = {60000000:6.13,740000000:93.87} - WC = Material(nucvec) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of T - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# reference: 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 -# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K -# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# reference: maybe 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# ODS LiPb-corrosion-resistant steel with Present impurities removed -# reference: 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# Li ceramics -# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 -def FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print ("\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - - print ("All done!") - - -if __name__ == "__main__": - main() diff --git a/Error/createPurematlib3.py b/Error/createPurematlib3.py deleted file mode 100644 index 801a816..0000000 --- a/Error/createPurematlib3.py +++ /dev/null @@ -1,513 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# reference: 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html -# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 -def WC_mat(): - nucvec = {60000000:6.13,740000000:93.87} - WC = Material(nucvec) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of T - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# reference: 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 -# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K -# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# reference: maybe 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 # - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# ODS LiPb-corrosion-resistant steel with Present impurities removed -# reference: 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# Li ceramics -# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 -def FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Error/createPurematlib_xml.py b/Error/createPurematlib_xml.py deleted file mode 100644 index 5eb5690..0000000 --- a/Error/createPurematlib_xml.py +++ /dev/null @@ -1,628 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - os.remove("xml.xml") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_libv1_xml.h5") # don't set datapath,nucpath...will be pyne default values - # change datapath to be able to read with older version of uwuw_preproc - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - mat_lib.write_openmc("xml.xml") - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Error/g.py b/Error/g.py deleted file mode 100644 index b8c8e17..0000000 --- a/Error/g.py +++ /dev/null @@ -1,627 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Error/materials.xml b/Error/materials.xml deleted file mode 100644 index 140669c..0000000 --- a/Error/materials.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Error/mixPureFusionMaterials.py b/Error/mixPureFusionMaterials.py deleted file mode 100644 index d4e75cc..0000000 --- a/Error/mixPureFusionMaterials.py +++ /dev/null @@ -1,297 +0,0 @@ -#! /usr/bin/python -# -# 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 -# -# references for FNSF compositions -# -# MadaniUWFDM1423_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1423.pdf -# EliasUWFMD1424_2015 https://fti.neep.wisc.edu/fti.neep.wisc.edu/pdf/fdm1424.pdf -# HarbFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333846. -# ElGuebalyFusSciTec_2017 https://doi.org/10.1080/15361055.2017.1333865 -# DavisFusEngDes_2018 https://doi.org/10.1016/j.fusengdes.2017.06.008 -# BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# SchnabelNDS_2024 preprint https://arxiv.org/pdf/2311.10063.pdf -# -import os -from pyne import material -from pyne.material import Material, MaterialLibrary, MultiMaterial -# -# Load material library (created using pyne) - -def load_matlib(): - mat_lib=MaterialLibrary() - mat_lib.from_hdf5("PureFusionMaterials_libv1.h5") # don't set datapath,nucpath...will be pyne default values - return mat_lib - -# Mix Materials by Volume - -""" -FNSFFW (34% FS MF82H, 66% He) -""" -# reference 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 -# -# blanket materials - -#FNSF OB DCLL Blanket (73.7% LiPb (90% Li-6), 14.9% He/void, 7.5% FS, 3.9% SiC) -# reference 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) -# reference 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 - -# EUDEMO -# reference 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 -# reference GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# reference 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 - -# 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) -""" -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']='BoullonFusEngDes_2017 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) -""" -# reference -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) -""" -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 - -######################################################################## -def main(): - # - # remove old mixmat_lib - try: - os.remove("mixedPureFusionMaterials_libv1.h5") - except: - pass - # 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 - - - # 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') - -if __name__ == "__main__": - main() diff --git a/Error/mixedPureFusionMaterials_libv1.h5 b/Error/mixedPureFusionMaterials_libv1.h5 deleted file mode 100644 index 88953c336c22d2241e8052f2149d1683767b12c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13061 zcmeI1ZBQG>8OKi&U>Qunm;{%AQI*uVHZ>q*UL9T~URr@L!X~zH;SdL0E1gum*if1# zP7HQBnI_Y;@rN{VGyT$;x?@i=N!5YYyiBLfXgWAEb#0GLBQbI8nPiNLr$(-my0>?` z0v&q5?w3yOJBC}`Z=Zd3_kYjs?cKiIXsAz4%uJ-vp;l9IRI2ckobKTxzDOkGn&fxm z9}1kF!0E4);tvId{wQiQ<{Pnpsa<=U(Ma)@#6L-KF)9!*{!$Ylr;n5ZjmDZ*)Zu4w zuQfRRGmbNSN!e)+<6>!BmyPXl(XJuFNqm+PaGxm@zl|!r>-!VQ zt2byH&fb^1x*eGx3zAm1dsuQwTy+c4fX1;nf=OHvSxI!LsPjVnJi$NDk)@q>lO@Bd zl5Ese;Yg~c^huQd9$&tf;rN+lD6&R?9KaI*&Q~<>a{Uq>FBq}l^$dH zLROJ+p%TYM5~UIPNro3%$)IO(FVkn^m-<2;Di;|)N@e&l1o&?8|B-1>I)2b|8u=l5 zk`%w@3J#W^-YZ;wB|1kWQbBaKd?hO&D6QIl6p6<_^pOIvq@OU;bjnB)KU233pM|R)C{V6X=l6OZel-3eJD-6AltD!&-iysEhO3dl;9tTwhR-r?s<#9~^T0L5REz*zullu_uUl+@} z(bnK)dT85Fz1MBAvh9quOIJ`>qM^B7joCB6xZEo%L{$mL0In}~e{{N{ST)wPH5n~} z|7N49&fKPHZ?0)ws-(5Y#FiD*9zd0_*#D1lI;^!iIJbxOcp1*KOrjPC$7rAv?|Qk) zI$ca14h%TFMvigyvy7WpKvyKRu&SzRsb$8!24l0iv97h2w)O}bdx_PmUT)#o6s<3pa3Uo{B>LU7n7yBo18SP)E)5ofy*5S3;99&ct;{C)Q2sKf? zs^@pu853KKB^PS6;d-CP>4WONLh`~`4K>oeOmr)kgjmuViDAd>AkTwn9SX~0d0%7L zbhPr0Iqdf*58lreU5q()jW(8c@9n5>HWcc0dNi_jiILB5^l&VnVQA(viiC`%&Z8(W z)R|0?IB?+hk@Z4!|BDJ^Ml>1^OFmsplZ&5D#F6X7{>XDK+Mm84=IvTTP)l1MYqN^YxppV!{a*({i%_v2LbuO>zLAN&!|?=v7*N`6-a<)d}OKK$~HcpT1;mB(jO|HUp! z-!@cG+~`1Vg+scFLQxu=vw8yUw&Y-aq@_P4FM2qGtd}AUkrt4zWd&pfWCdgeWCdge z{_hnSR2=&2#TMnB^pRkbFJo9ScB%FBiJtjGHR)qCyKC#Juh zEc)-Uk`ltampJ-a}EBgxm^F1xqg4iT!#PSxeouEb0z+Bb4UE| z&87H<=gj{7|2TQ=HJ|da>7O|t?@Ycp@xC*=Gv#jog*%zSt){H!5 zHWt`?HFOuv(m9I`&L#01ImK#Xlz1}>@4rac6^h?`~d-`=V z(@7!icwGMUj?nh;gfr7mo;~&4ThAxm-ucm&*@GFkx%1Z->G_?ri#J*8cT(zl8)sH*MP+GxQ|r3N|=CFnUwoldvEG$8sEqnc+%+|7s z*UNU~#MQj>ckb})mGTev-hS!Yc=)4*GvN;x-Uwe_ct8Bdg;&ED7DmH=SvVD*U3eut z?b`PRJJj$6b9r&w%w7BMYCG3=OkQv%cP1SVl$UPc6&=b9)ce+RqXz@(tdWDk;?jiQ zPG>uFuf`vle#V)9b=~5$%9*w0*d}LM3$LMi%V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Test/1_make_materials.py b/Test/1_make_materials.py deleted file mode 100644 index b2e8390..0000000 --- a/Test/1_make_materials.py +++ /dev/null @@ -1,217 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5( - lib, datapath="/mat_name" - ) # don't set datapath,nucpath...will be pyne default values - return mat_lib - - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_FNSFBW(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["MF82H"]: 0.80, material_library["HeT410P80"]: 0.20} - ) - FNSFBW_mat = mix.mix_by_volume() - FNSFBW_mat.metadata["mat_number"] = 1002 - return FNSFBW_mat - - -def mix_FNSFHeManifolds(material_library): - # material library is PureFusionMaterials - # composition from Tim's 2024 FENDL paper - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.70, material_library["MF82H"]: 0.30} - ) - FNSFHeManifolds_mat = mix.mix_by_volume() - FNSFHeManifolds_mat.metadata["mat_number"] = 1003 - return FNSFHeManifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial( - {material_library["Pb"]: 0.4, material_library["Sn"]: 0.6} - ) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial( - {material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5} - ) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - -def Pb157Li90_mat(enrichment) : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -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 - - -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"] = 2123 - 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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1007 - return FW_mat - - -def main(): - - # Load Tim's material libraries - # ACTUALLY Pyne doesn't seem to like having two libraries loaded - # at the same time, so I just copied some functions in here. In the - # future if the materials libraries are included in the repo - # I could just import the functions - libPath = "PureFusionMaterials_libv1.h5" - pureLib = load_matlib(libPath) - simulationLib = MaterialLibrary() - - # Extract materials from libraries - FWWArmor = mix_FWWArmor(pureLib) - FNSFDCLL = mix_FNSFDCLL(pureLib) - FNSFBW = mix_FNSFBW(pureLib) - FNSFHeManifolds = mix_FNSFHeManifolds(pureLib) - FNSFIBSR = mix_FNSFIBSR(pureLib) - SS316L = pureLib["SS316L"] # front and back plats of VV - AirSTP = pureLib["AirSTP"] - AirSTP.metadata["mat_number"] = 1008 - VVFill = mix_VVFill(pureLib) - LTS = mix_LTS(pureLib) - coils = mix_coils(pureLib) - FW = mix_FW(pureLib) - - # create new material library - simulationLib["AirSTP"] = AirSTP - simulationLib["FWWArmor"] = FWWArmor - simulationLib["FW"] = FW - simulationLib["FNSFHeManifolds"] = FNSFHeManifolds - simulationLib["VVFill"] = VVFill - simulationLib["LTS"] = LTS - simulationLib["coils"] = coils - simulationLib["FNSFBW"] = FNSFBW - simulationLib["FNSFDCLL"] = FNSFDCLL - simulationLib["FNSFIBSR"] = FNSFIBSR - simulationLib["SS316L"] = SS316L # VV front and back plate - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Test/1_materials.py b/Test/1_materials.py deleted file mode 100644 index 882744f..0000000 --- a/Test/1_materials.py +++ /dev/null @@ -1,204 +0,0 @@ -# THIS RUNS IN THE DOCKER IMAGE -from pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary - - -def load_matlib(lib): - mat_lib = MaterialLibrary() - mat_lib.from_hdf5(lib, datapath="/mat_name") - return mat_lib - - -def mix_FWWArmor(material_library): - # material library is is PureFusionMaterials - # composition from 2018 Davis https://doi.org/10.1016/j.fusengdes.2017.06.008 - mix = MultiMaterial({material_library["W"]: 1.0}) - FWWArmor_mat = mix.mix_by_volume() - FWWArmor_mat.density = FWWArmor_mat.density * 0.913 - FWWArmor_mat.metadata["mat_number"] = 1001 - return FWWArmor_mat - - -def mix_PinBW(material_library): - # material library is is PureFusionMaterials - # Based on Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet - mix = MultiMaterial( - { - material_library["Li4SiO4Li60"]: 0.065, - material_library["Li2TiO3Li60"]: 0.035, - material_library["EUROFER97"]: 0.418, - material_library["HeT410P80"]: 0.482, - } - ) - BW_mat = mix.mix_by_volume() - BW_mat.metadata["mat_number"] = 1022 - return BW_mat - - -def mix_HeManifolds(material_library): - # material library is is PureFusionMaterials - # composition homoegenized based on 50 cm breeder to 35 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. Estiamted from Zhou 2023 manifolds - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.714, material_library["EUROFER97"]: 0.286} - ) - HeManifolds_mat = mix.mix_by_volume() - HeManifolds_mat.metadata["mat_number"] = 1003 - return HeManifolds_mat - - -def mix_Manifolds(material_library): - # material library is PureFusionMaterials - # composition homoegenized based on 50 cm breeder to 20 cm manifold. Manifolds have 5cm Eurofer97 front and back plate with helium inbetween. - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.5, material_library["EUROFER97"]: 0.5} - ) - Manifolds_mat = mix.mix_by_volume() - Manifolds_mat.metadata["mat_number"] = 100352 - return Manifolds_mat - - -def mix_VVFill(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - {material_library["HeT410P80"]: 0.40, material_library["SS316L"]: 0.60} - ) - VVFill_mat = mix.mix_by_volume() - VVFill_mat.metadata["mat_number"] = 1004 - - return VVFill_mat - - -def mix_LTS(material_library): - # material library is PureFusionMaterials - # composition from T1E radial build spreadsheet - mix = MultiMaterial( - { - material_library["SS316L"]: 0.39, - material_library["BMF82H"]: 0.29, - material_library["Water"]: 0.32, - } - ) - LTS_mat = mix.mix_by_volume() - LTS_mat.metadata["mat_number"] = 1005 - return LTS_mat - - -def mix_coils(material_library): - # From T1E radial build spreadsheet - # material library is PureFusionMaterials - # mix solder - mix = MultiMaterial({material_library["Pb"]: 0.4, material_library["Sn"]: 0.6}) - solder_mat = mix.mix_by_volume() - - # mix hts_tape - mix = MultiMaterial({material_library["SS316L"]: 0.5, material_library["Cu"]: 0.5}) - htsTape_mat = mix.mix_by_volume() - - # mix coils - mix = MultiMaterial( - { - material_library["SS316L"]: 0.7435, - htsTape_mat: 0.0622, - material_library["Cu"]: 0.0098 + 0.1209, - solder_mat: 0.0348, - material_library["HeT410P80"]: 0.0228 + 0.006, - } - ) - coil_mat = mix.mix_by_volume() - coil_mat.metadata["mat_number"] = 1006 - return coil_mat - - -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"] = 1002 - 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 - - -def mix_FW(material_library): - # Pure lib - # from spreadsheet (andy davis) - mix = MultiMaterial( - {material_library["MF82H"]: 0.34, material_library["HeT410P80"]: 0.66} - ) - FW_mat = mix.mix_by_volume() - FW_mat.metadata["mat_number"] = 1007 - return FW_mat - - -def mix_Pin(material_library): - # Material library is PureFusionMaterials - # Base Pin HCPB design from Zhou 2023 paper calculated using Pin Specs spreadsheet - mix = MultiMaterial( - { - material_library["Li4SiO4Li60"]: 0.065, - material_library["Li2TiO3Li60"]: 0.035, - material_library["Be12Ti"]: 0.613, - material_library["HeT410P80"]: 0.142, - material_library["EUROFER97"]: 0.145, - } - ) - Pin_mat = mix.mix_by_volume() - Pin_mat.metadata["mat_number"] = 1009 - print("Pin_mat ", Pin_mat.metadata["mat_number"], Pin_mat.density) - return Pin_mat - - -def main(): - - libPath = "PureFusionMaterials_libv1.h5" - pureLib = load_matlib(libPath) - simulationLib = MaterialLibrary() - - # Extract materials from libraries - FWWArmor = mix_FWWArmor(pureLib) - BW = mix_PinBW(pureLib) - HeManifolds = mix_HeManifolds(pureLib) - Manifolds = mix_Manifolds(pureLib) - FNSFIBSR = mix_FNSFIBSR(pureLib) - SS316L = pureLib["SS316L"] # front and back plats of VV - AirSTP = pureLib["AirSTP"] - He = pureLib["HeT410P80"] - EUROFER97 = pureLib["EUROFER97"] - VVFill = mix_VVFill(pureLib) - LTS = mix_LTS(pureLib) - coils = mix_coils(pureLib) - FW = mix_FW(pureLib) - HCPB = mix_Pin(pureLib) - - # create new material library - simulationLib["FNSFIBSR"] = FNSFIBSR - simulationLib["FWWArmor"] = FWWArmor - simulationLib["FW"] = FW - simulationLib["HeManifolds"] = HeManifolds - simulationLib["Manifolds"] = Manifolds - simulationLib["VVFill"] = VVFill - simulationLib["LTS"] = LTS - simulationLib["coils"] = coils - simulationLib["HCPB"] = HCPB - simulationLib["BW"] = BW - - # from library - simulationLib["SS316L"] = SS316L # VV front and back plate - simulationLib["He"] = He - simulationLib["EUROFER97"] = EUROFER97 - simulationLib["AirSTP"] = AirSTP - - - simulationLib.write_openmc("materials.xml") - - -if __name__ == "__main__": - main() diff --git a/Test/PureFusionMaterials_libv1.h5 b/Test/PureFusionMaterials_libv1.h5 deleted file mode 100644 index 0a64e6d87fc6fa7e7fa8681e45bbfe08968f1099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26740 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 J8l`~N{{vm^Pg?*0 diff --git a/Test/createPurematlib.py b/Test/createPurematlib.py deleted file mode 100644 index 164fbb8..0000000 --- a/Test/createPurematlib.py +++ /dev/null @@ -1,627 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - print(Pb157Li90) - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - - mat_lib.write_openmc('materials_test.xml') - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Test/createPurematlib3.py b/Test/createPurematlib3.py deleted file mode 100644 index 801a816..0000000 --- a/Test/createPurematlib3.py +++ /dev/null @@ -1,513 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# reference: 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html -# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 -def WC_mat(): - nucvec = {60000000:6.13,740000000:93.87} - WC = Material(nucvec) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of T - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# reference: 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 -# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K -# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# reference: maybe 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 # - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# ODS LiPb-corrosion-resistant steel with Present impurities removed -# reference: 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# Li ceramics -# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 -def FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Test/createPurematlib_mine.py b/Test/createPurematlib_mine.py deleted file mode 100644 index cdc99d0..0000000 --- a/Test/createPurematlib_mine.py +++ /dev/null @@ -1,510 +0,0 @@ -#! /usr/bin/python -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MaterialLibrary, MultiMaterial -# -# -# reference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - return MF82H - -# reference: 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# reference: aries.ucsd.edu/PROPS/ITER/AM01/AM01-1100.html -# reference: CRChandbook64 bulk density of WC: 64th CRC Handbook of Chemistry and Physics, B-152 -def WC_mat(): - nucvec = {60000000:6.13,740000000:93.87} - WC = Material(nucvec) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# reference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# reference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# reference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of T - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# reference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF??? very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# reference: 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 -# reference: P. Heizenroeder and R. Reed "Comments on Selection of U.S. ITER CS Coil Jacket Material" -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# reference: ITER and CRC Handbook of Chemistry and Physics density at 4 K -# reference: CRChandbook64 64th CRC Handbook of Chemistry and Physics page B-117, density at 4 K -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# reference: maybe 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# ODS LiPb-corrosion-resistant steel with Present impurities removed -# reference: 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# reference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - return HeT410P1 - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# Li ceramics -# reference: HernandezFusEngDes_2018F.A. Hernandez, P. Pereslavtsev, Fusion Engineering and Design vol. 137, 2018 https://doi.org/10.1016/j.fusengdes.2018.09.014 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 -def FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print ("\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['EUROFER97']= EUROFER97_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - - print ("All done!") - - -if __name__ == "__main__": - main() diff --git a/Test/fix.py b/Test/fix.py deleted file mode 100644 index 2f19e6f..0000000 --- a/Test/fix.py +++ /dev/null @@ -1,641 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - print(MF82H) - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# 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 -def test_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - test = Material(nucvec) - test.density = 7.75 - test=test.expand_elements() - test.metadata['citation']='MergiaJNM_2008' - print(test) - return test - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - print(Pb157Li90) - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - print(AirSTP) - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['test']= test_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - os.remove("test.xml") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - mat_lib.write_openmc("test.xml") - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Test/fix.xml b/Test/fix.xml deleted file mode 100644 index 3931489..0000000 --- a/Test/fix.xml +++ /dev/null @@ -1,680 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Test/test.py b/Test/test.py deleted file mode 100644 index 2a4b653..0000000 --- a/Test/test.py +++ /dev/null @@ -1,672 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - print(MF82H) - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# 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 -def test_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - test = Material(nucvec) - test.density = 7.75 - test=test.expand_elements() - test.metadata['citation']='MergiaJNM_2008' - print(test) - return test - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - print(Pb157Li90) - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - HeT410P1 = Material() - HeT410P1.from_atom_frac({20000000: 1}) - HeT410P1.density = 0.007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - print(AirSTP) - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 1.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Zr_mat() : - nucvec = {400000000:1.0} - Zr = Material(nucvec) - Zr.density = 3.56 - Zr=Zr.expand_elements() - Zr.metadata['citation']='HernandezFusEngDes_2018' - return Zr - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -def Inconel788_mat() : - 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: 15.0000, - 280000000: 54.5000, - 270000000: 0.9100, - 290000000: 0.2730, - 410000000: 5.1250, - 420000000: 3.0500} - Inconel788 = Material(nucvec) - Inconel788.density = 9.19 # room temperature - Inconel788=Inconel788.expand_elements() - Inconel788.metadata['citation']='pnnl-15870rev1' - return Inconel788 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['test']= test_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Zr']=Zr_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - mat_lib['Inconel788']= Inconel788_mat() - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - mat_lib.write_openmc("test_results.xml") - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Test/test.xml b/Test/test.xml deleted file mode 100644 index 315f754..0000000 --- a/Test/test.xml +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Test/test_og.py b/Test/test_og.py deleted file mode 100644 index 3f766c5..0000000 --- a/Test/test_og.py +++ /dev/null @@ -1,640 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - print(MF82H) - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# 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 -def test_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - test = Material(nucvec) - test.density = 7.75 - test=test.expand_elements() - test.metadata['citation']='MergiaJNM_2008' - print(test) - return test - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - print(Pb157Li90) - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - nucvec = {20000000: 100} - HeT410P1 = Material(nucvec) - HeT410P1.density = 0.00007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - print(AirSTP) - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 100.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['test']= test_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - mat_lib.write_openmc("test.xml") - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Test/test_og.xml b/Test/test_og.xml deleted file mode 100644 index 315f754..0000000 --- a/Test/test_og.xml +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Test/test_results.xml b/Test/test_results.xml deleted file mode 100644 index de0ef62..0000000 --- a/Test/test_results.xml +++ /dev/null @@ -1,696 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Test/test_results_named_helium.xml b/Test/test_results_named_helium.xml deleted file mode 100644 index de0ef62..0000000 --- a/Test/test_results_named_helium.xml +++ /dev/null @@ -1,696 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Testing/PureFusionMaterials_libv1.h5 b/Testing/PureFusionMaterials_libv1.h5 deleted file mode 100644 index 78746617219ee8af65f9ff1e73c02270e8fb7bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27259 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 JtD$P;e*whe+Y|r* diff --git a/Testing/test.py b/Testing/test.py deleted file mode 100644 index 2a4b653..0000000 --- a/Testing/test.py +++ /dev/null @@ -1,672 +0,0 @@ -#! /usr/bin/python -# -# -updated for python3 (print) and updated for changes in python modules -# -# pure fusion materials based on FESS-FNSF, ARIES, EU-DEMO -# -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 pyne import material -from pyne.material import Material, MultiMaterial -from pyne.material_library import MaterialLibrary -# -# -# fullreference: KluehJNM_2000 R.L. Klueh et al. jnm 2000 DOI:10.1016/S0022-3115(00)00060-X -def MF82H_mat() : - nucvec = {60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 90.18, 730000000: 0.02, 740000000: 2.0} - MF82H = Material(nucvec) - MF82H.density = 7.89 - MF82H=MF82H.expand_elements() - MF82H.metadata['citation']='KluehJNM_2000' - print(MF82H) - return MF82H - -# 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) -def HT9_mat() : - nucvec = {60000000: 0.2, 230000000: 0.25, 240000000: 12.0, 260000000: 85.55, 280000000: 0.5, 420000000: 1.0, 740000000: 0.5} - HT9 = Material(nucvec) - HT9.density = 7.8 # density BCSSvol2 pdf page 32 and page 49 - HT9=HT9.expand_elements() - HT9.metadata['citation']='KluehJNM_2000 and SmithBCSSANLvol2_1984' - return HT9 - -# 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 -def EUROFER97_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - EUROFER97 = Material(nucvec) - EUROFER97.density = 7.75 - EUROFER97=EUROFER97.expand_elements() - EUROFER97.metadata['citation']='MergiaJNM_2008' - return EUROFER97 - -# 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 -def test_mat() : - nucvec = {60000000: 0.11, 230000000: 0.19, 240000000: 8.9, 250000000: 0.42, 260000000: 89.14, 730000000: 0.14, 740000000: 1.10} - test = Material(nucvec) - test.density = 7.75 - test=test.expand_elements() - test.metadata['citation']='MergiaJNM_2008' - print(test) - return test - -# reference: KluehJNM_2000 MF82H with 3 wt. percent B replacing some Fe -def BMF82H_mat() : - nucvec = {50000000: 3.0, 60000000: 0.1, 230000000: 0.2, 240000000: 7.5, 260000000: 87.18, 730000000: 0.02, 740000000: 2.0} - BMF82H = Material(nucvec) - BMF82H.density = 7.89 - BMF82H=BMF82H.expand_elements() - BMF82H.metadata['citation']='KluehJNM_2000' - return BMF82H - -# 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 -def WC_mat(): - WC = Material() - WC.from_atom_frac({60000000:1,740000000:1}) - WC.density = 15.63 - WC=WC.expand_elements() - WC.metadata['citation']='CRChandbook64B152' - return WC - -# fullreference: pnnl-15870rev1 R.J. McConn, et al. "Compendium of Material Composition Data for Radiation Transport Modeling", PNNL-15870 Rev. 1, 2011. -def Water_mat() : - nucvec = {10000000: 11.1894, 80000000: 88.8106} - Water = Material(nucvec) - Water.density = 1.0 - Water=Water.expand_elements() - Water.metadata['citation']='pnnl-15870rev1' - return Water - -# fullreference: BohmFusSciTec_2019 https://doi.org/10.1080/15361055.2019.1600930 -# fullreference: MartelliFusEngDes_2019 https://doi.org/10.1016/j.fusengdes.2018.11.028 -def Pb157Li90_mat() : - nucvec = {30060000: 0.4905, 30070000: 0.0545,820000000: 99.455} - Pb157Li90 = Material(nucvec) - Pb157Li90.density = 9.32 # not sure of Temperature - Pb157Li90.molecular_mass = 175.6273 - Pb157Li90=Pb157Li90.expand_elements() - Pb157Li90.metadata['citation']='BohmFusSciTec_2019' - print(Pb157Li90) - return Pb157Li90 - -# reference: pnnl-15870rev1 -def SiC_mat() : - nucvec = {60000000 : 29.9547, 140000000: 70.0453} - SiC = Material(nucvec) - SiC.density = 3.21 - SiC=SiC.expand_elements() - SiC.metadata['citation']='pnnl-15870rev1' - return SiC - -# note SS-316L(N)-IG and EUROFER composition (but not density) in -# reference: GilbertNucFus_2017 -# M. Gilbert et al., Nucl. Fusion 57 (2017) 046015 -# https://doi.org/10.1088/1741-4326/aa5bd7 -# -# more extensive collection of ITER materials composition but not density -# fullreference: GilbertHandbookITERCCFE_2016 M. Gilbert, et al., "Handbook of activation, transmutation, and radiation damage properties of the elements and of ITER materials simulated using FISPACT-II & TENDL-2015; ITER FW armour focus", CCFE-R(16)37, September 2016. https://fispact.ukaea.uk/wp-content/uploads/2016/10/CCFE-R1637.pdf - -# reference: GilbertHandbookITERCCFE_2016 -# contains 300 wppm B which is important to assess typical He production level -def SS316LN_mat() : - 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} - SS316LN = Material(nucvec) - SS316LN.density = 7.93 - SS316LN=SS316LN.expand_elements() - SS316LN.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LN - -# reference: GilbertHandbookITERCCFE_2016 10 wppm B which is important to assess typical He production level -def SS316LNIG_mat() : - 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} - SS316LNIG = Material(nucvec) - SS316LNIG.density = 7.93 - SS316LNIG=SS316LNIG.expand_elements() - SS316LNIG.metadata['citation']='GilbertHandbookITERCCFE_2016' - return SS316LNIG - -# reference: pnnl-15870rev1 -# added 10 wppm B which is important to assess typical He production level -def SS316L_mat() : - 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} - SS316L = Material(nucvec) - SS316L.density = 8.00 - SS316L=SS316L.expand_elements() - SS316L.metadata['citation']='pnnl-15870rev1' - return SS316L - -# reference: FESS-FNSF very similar to GFFpolyimide from ARIES -def Eins_mat() : - nucvec = {10000000:1.96, 60000000:24.12, 70000000:1.46, 80000000:40.19, 120000000:3.92, 130000000: 8.6, 140000000:19.75} - Eins = Material(nucvec) - Eins.density = 1.8 - Eins=Eins.expand_elements() - Eins.metadata['citation']='FESS-FNSF and ARIES GFFpolyimide' - return Eins - -# 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 -def JK2LBSteel_mat() : - 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} - JK2LBSteel = Material(nucvec) - JK2LBSteel.density = 8.0 - JK2LBSteel=JK2LBSteel.expand_elements() - JK2LBSteel.metadata['citation']='ElGuebalyARIESCSFTI_2006' - return JK2LBSteel - -# reference: FESS-FNSF and ??? -def TernaryNb3Sn_mat() : - nucvec = {410000000:68.95, 500000000:30, 220000000:1.05} - TernaryNb3Sn = Material(nucvec) - TernaryNb3Sn.density = 8.9 - TernaryNb3Sn=TernaryNb3Sn.expand_elements() - TernaryNb3Sn.metadata['citation']='FESS-FNSF and ???' - return TernaryNb3Sn - -# 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 -def LHe_mat() : - nucvec = {20000000: 100} - LHe = Material(nucvec) - LHe.density = 0.149 - LHe=LHe.expand_elements() - LHe.metadata['citation']='CRChandbook64B117' - return LHe - -# 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 -def Cr3FS_mat() : - nucvec = {60000:0.1, 140000:0.14, 230000:0.25, 240000:3.0, 250000:0.5, 260000:93.01, 740000:3.0} - Cr3FS = Material(nucvec) - Cr3FS.density = 7.89 - Cr3FS=Cr3FS.expand_elements() - Cr3FS.metadata['citation']='JawadORNL_2005 and ???' - return Cr3FS - -# 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 -# -def ODS125Y_mat() : - 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} - ODS125Y = Material(nucvec) - ODS125Y.density = 7.799 - ODS125Y=ODS125Y.expand_elements() - ODS125Y.metadata['citation']='PintDOE_ER_0313_57_2014 and KluehJNM_2000 ' - return ODS125Y - -# reference: pnnl-15870rev1 at T=20C -def D2O_mat() : - nucvec = {10020000:20.1133, 80000000:79.8867} - D2O = Material(nucvec) - D2O.density = 1.10534 - D2O=D2O.expand_elements() - D2O.metadata['citation']='pnnl-15870rev1' - return D2O - -# fullreference: WidodoJoPCS_2018 Journal of Physics Conference Series doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -# also reference: pnnl-15870rev1 -def HeNIST_mat() : - nucvec = {20000000: 100} - HeNIST = Material(nucvec) - HeNIST.density = 0.00016647 # at 20 C (293.15 K), 1 atm (1.01325 bar) - HeNIST=HeNIST.expand_elements() - HeNIST.metadata['citation']='WidodoJoPCS_2018 and pnnl-15870rev1' - return HeNIST - -# high pressure He gas ref. -# reference: WidodoJoPCS_2018 doi:10.1088/1742-6596/962/1/012039 and KTA Standards 1986 -def HeT410P1_mat() : - HeT410P1 = Material() - HeT410P1.from_atom_frac({20000000: 1}) - HeT410P1.density = 0.007048 # at 410 C, 1 bar - HeT410P1=HeT410P1.expand_elements() - HeT410P1.metadata['citation']='WidodoJoPCS_2018' - -def HeT410P80_mat() : - nucvec = {20000000: 100} - HeT410P80 = Material(nucvec) - HeT410P80.density = 0.00571698 # at 410 C, 80 bar - HeT410P80=HeT410P80.expand_elements() - HeT410P80.metadata['citation']='WidodoJoPCS_2018' - return HeT410P80 - -# air (Dry, Near Sea Level) -# reference: pnnl-15870rev1 -def AirSTP_mat() : - nucvec = {60000000 : 0.0124, 70000000 : 75.5268, 80000000 : 23.1781, 180000000: 1.2827} - AirSTP = Material(nucvec) - AirSTP.density = 0.001205 - AirSTP=AirSTP.expand_elements() - AirSTP.metadata['citation']='pnnl-15870rev1' - print(AirSTP) - return AirSTP - -# concrete (Ordinary NBS 04) -# reference: pnnl-15870rev1 -def Concrete_mat() : - 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} - Concrete = Material(nucvec) - Concrete.density = 2.35 - Concrete=Concrete.expand_elements() - Concrete.metadata['citation']='pnnl-15870rev1' - return Concrete - -# reference: pnnl-15870rev1 -def W_mat() : - nucvec = {740000000: 100.0} - W = Material(nucvec=nucvec) - W.density = 19.30 - W=W.expand_elements() - W.metadata['citation']='pnnl-15870rev1' - return W - -# reference: pnnl-15870rev1 -def Fe_mat() : - nucvec = {260000000: 100.0} - Fe = Material(nucvec=nucvec) - Fe.density = 7.874 - Fe=Fe.expand_elements() - Fe.metadata['citation']='pnnl-15870rev1' - return Fe - -# reference: pnnl-15870rev1 -def Na_mat() : - nucvec = {110000000: 100.0} - Na = Material(nucvec=nucvec) - Na.density = 0.971 - Na=Na.expand_elements() - Na.metadata['citation']='pnnl-15870rev1' - return Na - -# reference: pnnl-15870rev1 reactor graphite without boron impurity -def C_mat() : - nucvec = {60000000:1.0} - C = Material(nucvec) - C.density = 1.7 - C=C.expand_elements() - C.metadata['citation']='pnnl-15870rev1' - return C - -# reference: pnnl-15870rev1 -def Si_mat() : - nucvec = {140000000:1.0} - Si = Material(nucvec) - Si.density = 2.33 - Si=Si.expand_elements() - Si.metadata['citation']='pnnl-15870rev1' - return Si - -# reference: pnnl-15870rev1 -def Cu_mat() : - nucvec = {290000000:1.0} - Cu = Material(nucvec) - Cu.density = 8.96 - Cu=Cu.expand_elements() - Cu.metadata['citation']='pnnl-15870rev1' - return Cu - -# reference: pnnl-15870rev1 -def Sn_mat() : - nucvec = {500000000:1.0} - Sn = Material(nucvec) - Sn.density = 7.31 - Sn=Sn.expand_elements() - Sn.metadata['citation']='pnnl-15870rev1' - return Sn - -# reference: pnnl-15870rev1 -def Ta_mat() : - nucvec = {730000000:1.0} - Ta = Material(nucvec) - Ta.density = 16.654 - Ta=Ta.expand_elements() - Ta.metadata['citation']='pnnl-15870rev1' - return Ta - -# reference: pnnl-15870rev1 -def Pb_mat() : - nucvec = {820000000: 1.0} - Pb = Material(nucvec=nucvec) - Pb.density = 11.35 - Pb=Pb.expand_elements() - Pb.metadata['citation']='pnnl-15870rev1' - return Pb - -# 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 -def Be_mat() : - nucvec = {40000000:1.0} - Be = Material(nucvec) - Be.density = 1.85 - Be=Be.expand_elements() - Be.metadata['citation']='HernandezFusEngDes_2018' - return Be - -# 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 -def Zr_mat() : - nucvec = {400000000:1.0} - Zr = Material(nucvec) - Zr.density = 3.56 - Zr=Zr.expand_elements() - Zr.metadata['citation']='HernandezFusEngDes_2018' - return Zr - -# 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 -def Be12Ti_mat(): - Be12Ti = Material() - Be12Ti.from_atom_frac({40000000:12,220000000:1}) - Be12Ti.density = 2.28 - Be12Ti=Be12Ti.expand_elements() - Be12Ti.metadata['citation']='HernandezFusEngDes_2018' - return Be12Ti - -# 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 -def Be12V_mat(): - Be12V = Material() - Be12V.from_atom_frac({40000000:12,230000000:1}) - Be12V.density = 2.39 - Be12V=Be12V.expand_elements() - Be12V.metadata['citation']='HernandezFusEngDes_2018' - return Be12V - -# 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 -# F.A. Hernandez, et al., Fusion Engineering and Design, Volume 157, 2020, 111614 -# https://doi.org/10.1016/j.fusengdes.2020.111614 -# 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 - -def Li4SiO4nat_mat(): - Li4SiO4nat= Material() - Li4SiO4nat.from_atom_frac({30000000:4, 80000000:4, 140000000:1}) - Li4SiO4nat.density = 2.40 - Li4SiO4nat=Li4SiO4nat.expand_elements() - Li4SiO4nat.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4nat - -def Li2TiO3nat_mat(): - Li2TiO3nat= Material() - Li2TiO3nat.from_atom_frac({30000000:2, 80000000:3, 220000000:1}) - Li2TiO3nat.density = 3.43 - Li2TiO3nat=Li2TiO3nat.expand_elements() - Li2TiO3nat.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3nat - -def Li4SiO4Li60_mat(): - Li4SiO4Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li4SiO4Li60.from_atom_frac({liXweightfraction:4, 80000000:4, 140000000:1}) - Li4SiO4Li60.density = 2.40 - Li4SiO4Li60=Li4SiO4Li60.expand_elements() - Li4SiO4Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li4SiO4Li60 - -def Li2TiO3Li60_mat(): - Li2TiO3Li60= Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li2TiO3Li60.from_atom_frac({liXweightfraction:2, 80000000:3, 220000000:1}) - Li2TiO3Li60.density = 3.42 - Li2TiO3Li60=Li2TiO3Li60.expand_elements() - Li2TiO3Li60.metadata['citation']='HernandezFusEngDes_2018' - return Li2TiO3Li60 - -# 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 FlibeNat_mat(): - FlibeNat=Material() - FlibeNat.from_atom_frac({30000000:2,40000000:1,90000000:4}) - FlibeNat.density=1.94 - FlibeNat=FlibeNat.expand_elements() - FlibeNat.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeNat - -# 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 -def FlibeLi60_mat(): - FlibeLi60=Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - FlibeLi60.from_atom_frac({liXweightfraction:2,40000000:1,90000000:4}) - FlibeLi60.density=1.94 - FlibeLi60=FlibeLi60.expand_elements() - FlibeLi60.metadata['citation']='SohalINLEXT-10-18297_2013' - return FlibeLi60 - -# reference: pnnl-15870rev1 at STP -def LiNat_mat() : - nucvec = {30000000:1.0} - LiNat = Material(nucvec) - LiNat.density = 0.534 # at STP - LiNat=LiNat.expand_elements() - LiNat.metadata['citation']='pnnl-15870rev1' - return LiNat - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def LiNatT500_mat() : - nucvec = {30000000:1.0} - LiNatT500 = Material(nucvec) - LiNatT500.density = 0.485 # at T=500 C - LiNatT500=LiNatT500.expand_elements() - LiNatT500.metadata['citation']='BohmFusSciTec_2019' - return LiNatT500 - -# reference: pnnl-15870rev1 -def Li60_mat() : - Li60 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60.from_atom_frac({liXweightfraction:1}) - Li60.density = 0.534 # at STP - Li60=Li60.expand_elements() - Li60.metadata['citation']='pnnl-15870rev1' - return Li60 - -# reference: BohmFusSciTec_2019 rho=0.485 g/cm3 at T=500 C -def Li60T500_mat() : - Li60T500 = Material() - li6enrichment=0.60 # weight fraction enrichment of Li-6 desired - liXweightfraction = Material({'Li6': li6enrichment, 'Li7': (1.0-li6enrichment)}) - Li60T500.from_atom_frac({liXweightfraction:1}) - Li60T500.density = 0.485 # at T=500 C - Li60T500=Li60T500.expand_elements() - Li60T500.metadata['citation']='BohmFusSciTec_2019' - return Li60T500 - -# reference: pnnl-15870rev1 -def Mo_mat() : - nucvec = {420000000: 100.0} - Mo = Material(nucvec=nucvec) - Mo.density = 10.22 - Mo=Mo.expand_elements() - Mo.metadata['citation']='pnnl-15870rev1' - return Mo - -# reference: pnnl-15870rev1 -def Aluminum6061_mat() : - 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} - Aluminum6061 = Material(nucvec) - Aluminum6061.density = 2.70 - Aluminum6061=Aluminum6061.expand_elements() - Aluminum6061.metadata['citation']='pnnl-15870rev1' - return Aluminum6061 - -# reference: pnnl-15870rev1 -def OilTexasCrude_mat() : - nucvec = {10000000:12.3246, 60000000:85.2204, 70000000:0.7014, 160000000:1.7535} - OilTexasCrude = Material(nucvec) - OilTexasCrude.density = 0.875 - OilTexasCrude=OilTexasCrude.expand_elements() - OilTexasCrude.metadata['citation']='pnnl-15870rev1' - return OilTexasCrude - -# reference: pnnl-15870rev1 -def EthyleneGlycol_mat(): - EthyleneGlycol = Material() - EthyleneGlycol.from_atom_frac({10000000:6, 60000000:2, 80000000:2}) - EthyleneGlycol.density = 1.114 - EthyleneGlycol=EthyleneGlycol.expand_elements() - EthyleneGlycol.metadata['citation']='pnnl-15870rev1' - return EthyleneGlycol - -# reference: pnnl-15870rev1 -def AluminumOxide_mat(): - AluminumOxide = Material() - AluminumOxide.from_atom_frac({80000000:3, 130000000:2}) - AluminumOxide.density = 3.97 - AluminumOxide=AluminumOxide.expand_elements() - AluminumOxide.metadata['citation']='pnnl-15870rev1' - return AluminumOxide - -# 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: MetalsHandbook_1979 Metals Handbook, Ninth Edition, Vol. 2: "Properties and SelectionNonferrous Alloys and Pure Metals," ASM, Metals Park OH (1979) -def V4Cr4Ti_mat() : - nucvec = {220000000: 4.0,230000000: 92.0, 240000000: 4.0} - V4Cr4Ti = Material(nucvec) - V4Cr4Ti.density = 6.05 # room temperature - V4Cr4Ti=V4Cr4Ti.expand_elements() - V4Cr4Ti.metadata['citation']='GrossbeckJNM_1998 and density ARIES_PropertiesArchive and MetalsHandbook_1979' - return V4Cr4Ti - -def ZrH2_mat(): - ZrH2 = Material() - ZrH2.from_atom_frac({10000000: 2,400000000: 1}) - ZrH2.density = 5.61 #this is at room temperature - ZrH2=ZrH2.expand_elements() - ZrH2.metadata['citation']='pnnl-15870rev1' - return ZrH2 - -# -def Inconel718_mat() : - 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} - Inconel718 = Material(nucvec) - Inconel718.density = 8.19 # room temperature - Inconel718=Inconel718.expand_elements() - Inconel718.metadata['citation']='pnnl-15870rev1' - return Inconel718 - -def Inconel788_mat() : - 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: 15.0000, - 280000000: 54.5000, - 270000000: 0.9100, - 290000000: 0.2730, - 410000000: 5.1250, - 420000000: 3.0500} - Inconel788 = Material(nucvec) - Inconel788.density = 9.19 # room temperature - Inconel788=Inconel788.expand_elements() - Inconel788.metadata['citation']='pnnl-15870rev1' - return Inconel788 - -# -------------------------------------------------------- -def main(): - # create material library object - mat_lib = MaterialLibrary() - print( "\n Creating Pure Fusion Materials...") - # - # get material definition - mat_lib['MF82H']= MF82H_mat() - mat_lib['HT9']= HT9_mat() - mat_lib['test']= test_mat() - mat_lib['BMF82H']= BMF82H_mat() - mat_lib['WC'] = WC_mat() - mat_lib['Water']= Water_mat() - mat_lib['Pb157Li90']= Pb157Li90_mat() - mat_lib['SiC']= SiC_mat() - mat_lib['SS316LN']= SS316LN_mat() - mat_lib['SS316LNIG']= SS316LNIG_mat() - mat_lib['SS316L']= SS316L_mat() - mat_lib['Eins']=Eins_mat() - mat_lib['JK2LBSteel']=JK2LBSteel_mat() - mat_lib['TernaryNb3Sn']=TernaryNb3Sn_mat() - mat_lib['LHe']= LHe_mat() - mat_lib['Cr3FS']=Cr3FS_mat() - mat_lib['ODS125Y']= ODS125Y_mat() - mat_lib['D2O']= D2O_mat() - mat_lib['HeNIST']= HeNIST_mat() - mat_lib['HeT410P1']= HeT410P1_mat() - mat_lib['HeT410P80']= HeT410P80_mat() - mat_lib['AirSTP']= AirSTP_mat() - mat_lib['Concrete']= Concrete_mat() - mat_lib['W']= W_mat() - mat_lib['Fe']= Fe_mat() - mat_lib['Na']= Na_mat() - mat_lib['C']= C_mat() - mat_lib['Si']= Si_mat() - mat_lib['Cu']=Cu_mat() - mat_lib['Sn']=Sn_mat() - mat_lib['Ta']=Ta_mat() - mat_lib['Pb']=Pb_mat() - mat_lib['Be']=Be_mat() - mat_lib['Zr']=Zr_mat() - mat_lib['Be12Ti']=Be12Ti_mat() - mat_lib['Be12V']=Be12V_mat() - mat_lib['Li4SiO4nat']=Li4SiO4nat_mat() - mat_lib['Li2TiO3nat']=Li2TiO3nat_mat() - mat_lib['Li4SiO4Li60']=Li4SiO4Li60_mat() - mat_lib['Li2TiO3Li60']=Li2TiO3Li60_mat() - mat_lib['FlibeNat']=FlibeNat_mat() - mat_lib['FlibeLi60']=FlibeLi60_mat() - mat_lib['LiNat']=LiNat_mat() - mat_lib['LiNatT500']=LiNatT500_mat() - mat_lib['Li60']=Li60_mat() - mat_lib['Li60T500']=Li60T500_mat() -# - mat_lib['Mo']=Mo_mat() - mat_lib['Aluminum6061']=Aluminum6061_mat() - mat_lib['OilTexasCrude']=OilTexasCrude_mat() - mat_lib['EthyleneGlycol'] = EthyleneGlycol_mat() - mat_lib['AluminumOxide'] = AluminumOxide_mat() - mat_lib['V4Cr4Ti']= V4Cr4Ti_mat() - mat_lib['ZrH2']= ZrH2_mat() - mat_lib['Inconel718']= Inconel718_mat() - mat_lib['Inconel788']= Inconel788_mat() - # remove lib - try: - os.remove("PureFusionMaterials_libv1.h5") - except: - pass - - # write fnsf1d material library - mat_lib.write_hdf5("PureFusionMaterials_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 - #mat_lib.write_hdf5("PureFusionMaterials_libv1_old.h5",datapath='/materials', nucpath='/nucid') - mat_lib.write_openmc("test_results.xml") - print("All done!") - - -if __name__ == "__main__": - main() diff --git a/Testing/test_results.xml b/Testing/test_results.xml deleted file mode 100644 index 760b657..0000000 --- a/Testing/test_results.xml +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -