armi.materials package
The material package defines compositions and material-specific properties.
Properties in scope include temperature dependent thermo/mechanical properties
(like heat capacity, linear expansion coefficients, viscosity, density),
and material-specific nuclear properties that can’t exist at the nuclide level
alone (like thermal scattering laws
).
As the fundamental macroscopic building blocks of any physical object, these are highly important to reactor analysis.
This module handles the dynamic importing of all the materials defined here at the framework level as well as in all the attached plugins. It is expected that most teams will have special material definitions that they will want to define.
It may also make sense in the future to support user-input materials that are not hard-coded into the app.
The base class for all materials is in armi.materials.material
.
- armi.materials.setMaterialNamespaceOrder(order)[source]
Set the material namespace order at the Python interpreter, global level.
- armi.materials.importMaterialsIntoModuleNamespace(path, name, namespace, updateSource=None)[source]
Import all Material subclasses into the top subpackage.
This allows devs to use
from armi.materials import HT9
This can be used in plugins for similar purposes.
Warning
Do not directly import materials from this namespace in code. Use the full module import instead. This is just for material resolution. This will be replaced with a more formal material registry in the future.
- armi.materials.iterAllMaterialClassesInNamespace(namespace)[source]
Iterate over all Material subclasses found in a namespace.
Notes
Useful for testing.
- armi.materials.resolveMaterialClassByName(name: str, namespaceOrder: Optional[List[str]] = None)[source]
Find the first material class that matches a name in an ordered namespace.
Names can either be fully resolved class paths (e.g.
armi.materials.uZr:UZr
) or simple class names (e.g.UZr
). In the latter case, theCONF_MATERIAL_NAMESPACE_ORDER
setting to allows users to choose which particular material of a common name (like UO2 or HT9) gets used.Input files usually specify a material like UO2. Which particular implementation gets used (Framework’s UO2 vs. a user plugins UO2 vs. the Kentucky Transportation Cabinet’s UO2) is up to the user at runtime.
- Parameters:
name (str) – The material class name to find, e.g.
"UO2"
. Optionally, a module path and class name can be provided with a colon separator asmodule:className
, e.g.armi.materials.uraniumOxide:UO2
for direct specification.namespaceOrder (list of str, optional) – A list of namespaces in order of preference in which to search for the material. If not passed, the value in the global
MATERIAL_NAMESPACE_ORDER
will be used, which is often set by theCONF_MATERIAL_NAMESPACE_ORDER
setting (e.g. during reactor construction). Any value passed into this argument will be ignored if thename
is provided with amodulePath
.
- Returns:
matCls – The material
- Return type:
Material
- Raises:
KeyError – When material of name cannot be found in namespaces.
Examples
>>> resolveMaterialClassByName("UO2", ["something.else.materials", "armi.materials"]) <class 'something.else.materials.UO2'>
See also
armi.reactor.reactors.factory
Applies user settings to default namespace order.
Subpackages
- armi.materials.tests package
- Submodules
- armi.materials.tests.test__init__ module
- armi.materials.tests.test_air module
- armi.materials.tests.test_b4c module
- armi.materials.tests.test_be9 module
- armi.materials.tests.test_graphite module
- armi.materials.tests.test_lithium module
- armi.materials.tests.test_materials module
MaterialConstructionTests
MaterialFindingTests
Californium_TestCase
Cesium_TestCase
Magnesium_TestCase
MagnesiumOxide_TestCase
Molybdenum_TestCase
MOX_TestCase
NaCl_TestCase
NiobiumZirconium_TestCase
Potassium_TestCase
ScandiumOxide_TestCase
Sodium_TestCase
Tantalum_TestCase
ThoriumUraniumMetal_TestCase
Uranium_TestCase
UraniumOxide_TestCase
Thorium_TestCase
ThoriumOxide_TestCase
Void_TestCase
Mixture_TestCase
Lead_TestCase
LeadBismuth_TestCase
Copper_TestCase
Sulfur_TestCase
Zr_TestCase
Inconel_TestCase
Inconel600_TestCase
Inconel625_TestCase
InconelX750_TestCase
Alloy200_TestCase
CaH2_TestCase
Hafnium_TestCase
HastelloyN_TestCase
TZM_TestCase
YttriumOxide_TestCase
ZincOxide_TestCase
FuelMaterial_TestCase
- armi.materials.tests.test_sic module
- armi.materials.tests.test_sulfur module
- armi.materials.tests.test_thoriumOxide module
- armi.materials.tests.test_uZr module
- armi.materials.tests.test_water module
- Submodules
Submodules
- armi.materials.air module
- armi.materials.alloy200 module
- armi.materials.b4c module
- armi.materials.be9 module
- armi.materials.caH2 module
- armi.materials.californium module
- armi.materials.concrete module
- armi.materials.copper module
- armi.materials.cs module
- armi.materials.custom module
- armi.materials.graphite module
- armi.materials.hafnium module
- armi.materials.hastelloyN module
- armi.materials.ht9 module
- armi.materials.inconel module
- armi.materials.inconel600 module
Inconel600
Inconel600.propertyValidTemperature
Inconel600.references
Inconel600.refTempK
Inconel600.setDefaultMassFracs()
Inconel600.polyfitThermalConductivity()
Inconel600.thermalConductivity()
Inconel600.polyfitHeatCapacity()
Inconel600.heatCapacity()
Inconel600.polyfitLinearExpansionPercent()
Inconel600.linearExpansionPercent()
Inconel600.linearExpansion()
- armi.materials.inconel625 module
Inconel625
Inconel625.propertyValidTemperature
Inconel625.references
Inconel625.refTempK
Inconel625.setDefaultMassFracs()
Inconel625.polyfitThermalConductivity()
Inconel625.thermalConductivity()
Inconel625.polyfitHeatCapacity()
Inconel625.heatCapacity()
Inconel625.polyfitLinearExpansionPercent()
Inconel625.linearExpansionPercent()
Inconel625.linearExpansion()
- armi.materials.inconel800 module
- armi.materials.inconelPE16 module
- armi.materials.inconelX750 module
InconelX750
InconelX750.propertyValidTemperature
InconelX750.references
InconelX750.refTempK
InconelX750.setDefaultMassFracs()
InconelX750.polyfitThermalConductivity()
InconelX750.thermalConductivity()
InconelX750.polyfitHeatCapacity()
InconelX750.heatCapacity()
InconelX750.polyfitLinearExpansionPercent()
InconelX750.linearExpansionPercent()
InconelX750.linearExpansion()
- armi.materials.lead module
- armi.materials.leadBismuth module
- armi.materials.lithium module
- armi.materials.magnesium module
- armi.materials.material module
Material
Material.DATA_SOURCE
Material.references
Material.enrichedNuclide
Material.modelConst
Material.propertyValidTemperature
Material.thermalScatteringLaws
Material.name
Material.getName()
Material.getChildren()
Material.getChildrenWithFlags()
Material.backUp()
Material.restoreBackup()
Material.clearCache()
Material.duplicate()
Material.linearExpansion()
Material.linearExpansionPercent()
Material.linearExpansionFactor()
Material.getThermalExpansionDensityReduction()
Material.setDefaultMassFracs()
Material.setMassFrac()
Material.applyInputParams()
Material.adjustMassEnrichment()
Material.adjustMassFrac()
Material.volumetricExpansion()
Material.getTemperatureAtDensity()
Material.liquidPorosity
Material.gasPorosity
Material.pseudoDensity()
Material.pseudoDensityKgM3()
Material.density()
Material.densityKgM3()
Material.getCorrosionRate()
Material.yieldStrength()
Material.thermalConductivity()
Material.getProperty()
Material.getMassFrac()
Material.clearMassFrac()
Material.removeNucMassFrac()
Material.checkPropertyTempRange()
Material.checkTempRange()
Material.densityTimesHeatCapacity()
Material.getNuclides()
Material.getTempChangeForDensityChange()
Material.heatCapacity()
Material.getTD()
Material.adjustTD()
Fluid
SimpleSolid
FuelMaterial
- armi.materials.mgO module
- armi.materials.mixture module
- armi.materials.molybdenum module
- armi.materials.mox module
- armi.materials.nZ module
- armi.materials.potassium module
- armi.materials.scandiumOxide module
- armi.materials.siC module
- armi.materials.sodium module
- armi.materials.sodiumChloride module
- armi.materials.sulfur module
- armi.materials.tZM module
- armi.materials.tantalum module
- armi.materials.thU module
- armi.materials.thorium module
- armi.materials.thoriumOxide module
- armi.materials.uThZr module
- armi.materials.uZr module
- armi.materials.uranium module
Uranium
Uranium.enrichedNuclide
Uranium.materialIntro
Uranium.propertyNotes
Uranium.propertyRawData
Uranium.propertyUnits
Uranium.propertyEquation
Uranium.propertyValidTemperature
Uranium.references
Uranium.refDens
Uranium.thermalConductivity()
Uranium.heatCapacity()
Uranium.setDefaultMassFracs()
Uranium.applyInputParams()
Uranium.meltingPoint()
Uranium.density()
Uranium.pseudoDensity()
Uranium.linearExpansion()
Uranium.linearExpansionPercent()
- armi.materials.uraniumOxide module
HeatCapacityConstants
UraniumOxide
UraniumOxide.enrichedNuclide
UraniumOxide.REFERENCE_TEMPERATURE
UraniumOxide.heatCapacityConstants
UraniumOxide.propertyUnits
UraniumOxide.propertyValidTemperature
UraniumOxide.references
UraniumOxide.thermalScatteringLaws
UraniumOxide.thermalConductivityTableK
UraniumOxide.thermalConductivityTable
UraniumOxide.applyInputParams()
UraniumOxide.setDefaultMassFracs()
UraniumOxide.meltingPoint()
UraniumOxide.density()
UraniumOxide.heatCapacity()
UraniumOxide.linearExpansion()
UraniumOxide.linearExpansionPercent()
UraniumOxide.thermalConductivity()
UO2
- armi.materials.void module
- armi.materials.water module
Water
Water.thermalScatteringLaws
Water.references
Water.TEMPERATURE_CRITICAL_K
Water.DENSITY_CRITICAL_KGPERCUBICMETER
Water.DENSITY_CRITICAL_GPERCUBICCENTIMETER
Water.VAPOR_PRESSURE_CRITICAL_MPA
Water.VAPOR_PRESSURE_CRITICAL_PA
Water.ALPHA_0
Water.PHI_0
Water.d
Water.setDefaultMassFracs()
Water.theta()
Water.tau()
Water.vaporPressure()
Water.vaporPressurePrime()
Water.auxiliaryQuantitySpecificEnthalpy()
Water.auxiliaryQuantitySpecificEntropy()
Water.enthalpy()
Water.entropy()
Water.pseudoDensity()
SaturatedWater
SaturatedSteam
- armi.materials.yttriumOxide module
- armi.materials.zincOxide module
- armi.materials.zr module