Source code for piel.materials.thermal_conductivity.aluminum

from typing import Literal
import jax.numpy as jnp
from piel.types import ArrayTypes
from .types import MaterialReferenceType, MaterialReferencesTypes
from ...models.physical.types import TemperatureRangeTypes

__all__ = ["aluminum", "material_references"]

supported_specifications = ["1100",]
material_references: MaterialReferencesTypes = [
    ("aluminum", specification_i) for specification_i in supported_specifications
]


[docs]def aluminum( temperature_range_K: TemperatureRangeTypes, material_reference: MaterialReferenceType, *args, **kwargs ) -> float: specification = material_reference[1] if specification == "1100": thermal_conductivity_fit = jnp.power(10, 23.39172 - 148.5733 * (jnp.log10(temperature_range_K)) + 422.1917 * (jnp.log10(temperature_range_K) ** 2) - 653.6664 * (jnp.log10(temperature_range_K) ** 3) + 607.0402 * (jnp.log10(temperature_range_K) ** 4) - 346.152 * (jnp.log10(temperature_range_K) ** 5) + 118.4276 * (jnp.log10(temperature_range_K) ** 6) - 22.2781 * (jnp.log10(temperature_range_K) ** 7) + 1.770187 * (jnp.log10(temperature_range_K) ** 8)) else: raise ValueError("Invalid specification: " + specification) return thermal_conductivity_fit