Insulation
Overview
Thermal insulation is the practice of reducing heat flow through walls, equipment, and process components by selecting materials with appropriate thermophysical properties. In engineering calculations, insulation performance depends not only on conductivity but also on density and heat capacity, especially when systems operate across wide temperature ranges. This category focuses on property lookup and interpolation workflows that support practical heat-transfer modeling for buildings, piping, furnaces, and industrial thermal equipment. These tools help analysts move from material names to consistent numerical inputs for conduction and transient energy-balance calculations.
Core Concepts: Insulation modeling is anchored in Fourier’s law and the coupling between material properties and temperature. For steady conduction, the key quantity is thermal conductivity k in equations like q = -k\nabla T; for transient heating and cooling, density \rho and specific heat C_p determine thermal inertia through volumetric heat capacity \rho C_p. Many tabulated datasets are discrete in temperature, so interpolation is required to estimate values at operating conditions between known points. Reliable property selection also depends on consistent material identifiers, making fuzzy name matching an important preprocessing step.
Implementation: The functions are implemented with the ht library, specifically the ht.insulation module. This module aggregates reference data from ASHRAE, DIN EN 12524, and VDI Heat Atlas tables and exposes convenience functions for property retrieval and material matching. The result is a practical bridge between handbook data and reproducible engineering computation in Python and spreadsheet-driven workflows.
For conductivity-focused work, ASHRAE_K, K_MATERIAL, and REFRACTORY_VDI_K cover complementary use cases. ASHRAE_K provides direct ASHRAE table conductivity values for insulation and building materials, typically treated as fixed entries for the selected ID. K_MATERIAL broadens this to multiple source tables and supports optional temperature input when temperature-dependent data exist. REFRACTORY_VDI_K targets refractory materials with temperature-dependent interpolation over the VDI range, including bounded behavior outside tabulated limits. Together, these functions support both quick screening and higher-temperature refractory design checks.
For thermal storage and mass-property inputs, CP_MATERIAL, REFRACTORY_VDI_CP, and RHO_MATERIAL provide the parameters needed for transient and energy-balance analysis. CP_MATERIAL returns specific heat for building, insulation, or refractory records and can incorporate temperature where available in the source data. REFRACTORY_VDI_CP provides refractory-specific temperature-dependent C_p interpolation from VDI tabulations, which is especially relevant in kiln, furnace, and high-temperature lining studies. RHO_MATERIAL supplies density lookups used to convert between mass- and volume-based quantities and to compute \rho C_p in lumped or distributed thermal models.
Material identification and interpolation utilities are handled by NEAREST_MATERIAL and INTERP. NEAREST_MATERIAL performs fuzzy matching from free-text names to valid table IDs, with an option to restrict results to entries that include a complete set of key properties. INTERP performs one-dimensional linear interpolation and underpins temperature-dependent property estimation when values are known only at discrete nodes. In practice, analysts often use these tools in sequence: map plant or specification terminology to a canonical material ID, retrieve k, C_p, and \rho, and then interpolate as needed for operating-temperature scenarios.
ASHRAE_K
This function returns the thermal conductivity of a material listed in the ASHRAE insulation and building-material tables. The conductivity is treated as a tabulated property for the selected material entry and does not vary with temperature in this lookup.
Thermal conductivity relates conductive heat flux to a temperature gradient through Fourier’s law:
q = -k\nabla T
where k is the thermal conductivity in W/m/K. Choose the material ID that matches the desired tabulated entry.
Excel Usage
=ASHRAE_K(ID)
ID(str, required): Material ID from ASHRAE tables (dimensionless).
Returns (float): Thermal conductivity of the material (W/m/K).
Example 1: Mineral fiber conductivity
Inputs:
| ID |
|---|
| Mineral fiber |
Excel formula:
=ASHRAE_K("Mineral fiber")
Expected output:
0.036
Example 2: Glass fiber batts conductivity
Inputs:
| ID |
|---|
| Glass-fiber batts, 90 mm |
Excel formula:
=ASHRAE_K("Glass-fiber batts, 90 mm")
Expected output:
0.043
Example 3: Expanded polystyrene conductivity
Inputs:
| ID |
|---|
| Expanded polystyrene, extruded |
Excel formula:
=ASHRAE_K("Expanded polystyrene, extruded")
Expected output:
0.026
Example 4: Cellular glass conductivity
Inputs:
| ID |
|---|
| Cellular glass |
Excel formula:
=ASHRAE_K("Cellular glass")
Expected output:
0.048
Python Code
Show Code
from ht.insulation import ASHRAE_k as ht_ASHRAE_k
def ASHRAE_k(ID):
"""
Return thermal conductivity for an ASHRAE material.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
ID (str): Material ID from ASHRAE tables (dimensionless).
Returns:
float: Thermal conductivity of the material (W/m/K).
"""
try:
result = ht_ASHRAE_k(ID)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
CP_MATERIAL
This function returns the specific heat capacity of a building, insulation, or refractory material selected by material ID or a close text match. Depending on the source table, the value may be constant or temperature-dependent.
Specific heat capacity links heat input to temperature rise:
q = m C_p \Delta T
where C_p is in J/kg/K, m is mass, and \Delta T is the temperature change.
Excel Usage
=CP_MATERIAL(ID, T)
ID(str, required): Material ID or search term (dimensionless).T(float, optional, default: 298.15): Temperature of the material (K).
Returns (float): Heat capacity of the material (J/kg/K).
Example 1: Mineral fiber heat capacity
Inputs:
| ID |
|---|
| Mineral fiber |
Excel formula:
=CP_MATERIAL("Mineral fiber")
Expected output:
840
Example 2: Stainless steel heat capacity
Inputs:
| ID |
|---|
| Metals, stainless steel |
Excel formula:
=CP_MATERIAL("Metals, stainless steel")
Expected output:
460
Example 3: Soda lime glass heat capacity
Inputs:
| ID |
|---|
| Glass, soda lime |
Excel formula:
=CP_MATERIAL("Glass, soda lime")
Expected output:
750
Example 4: Fused silica heat capacity at 1000 K
Inputs:
| ID | T |
|---|---|
| Fused silica | 1000 |
Excel formula:
=CP_MATERIAL("Fused silica", 1000)
Expected output:
956.782
Python Code
Show Code
from ht.insulation import Cp_material as ht_Cp_material
def Cp_material(ID, T=298.15):
"""
Return heat capacity for an insulating or building material.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
ID (str): Material ID or search term (dimensionless).
T (float, optional): Temperature of the material (K). Default is 298.15.
Returns:
float: Heat capacity of the material (J/kg/K).
"""
try:
result = ht_Cp_material(ID, T)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
INTERP
This function computes a one-dimensional linear interpolation from paired data points. It estimates a value at coordinate x using the two surrounding points in the input sequences.
For neighboring points (x_0, y_0) and (x_1, y_1) with x_0 \le x \le x_1, linear interpolation is:
y = y_0 + (x-x_0)\frac{y_1-y_0}{x_1-x_0}
Optional left and right values can be supplied for out-of-range inputs, or extrapolation can be enabled.
Excel Usage
=INTERP(x, dx, dy, left, right, extrapolate)
x(float, required): X-coordinate of the interpolated value (dimensionless).dx(list[list], required): X-coordinates of the data points (dimensionless).dy(list[list], required): Y-coordinates of the data points (dimensionless).left(float, optional, default: null): Value to return for x below dx range (dimensionless).right(float, optional, default: null): Value to return for x above dx range (dimensionless).extrapolate(bool, optional, default: false): Whether to extrapolate outside of bounds.
Returns (float): Interpolated value (dimensionless).
Example 1: Midpoint interpolation
Inputs:
| x | dx | dy | ||||
|---|---|---|---|---|---|---|
| 2.5 | 1 | 2 | 3 | 3 | 2 | 0 |
Excel formula:
=INTERP(2.5, {1,2,3}, {3,2,0})
Expected output:
1
Example 2: Left-side value override
Inputs:
| x | dx | dy | left | ||||
|---|---|---|---|---|---|---|---|
| 0.5 | 1 | 2 | 3 | 10 | 20 | 30 | 5 |
Excel formula:
=INTERP(0.5, {1,2,3}, {10,20,30}, 5)
Expected output:
5
Example 3: Right-side value override
Inputs:
| x | dx | dy | right | ||||
|---|---|---|---|---|---|---|---|
| 4 | 1 | 2 | 3 | 3 | 2 | 0 | -1 |
Excel formula:
=INTERP(4, {1,2,3}, {3,2,0}, -1)
Expected output:
-1
Example 4: Extrapolate below range
Inputs:
| x | dx | dy | extrapolate | ||||
|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 3 | 2 | 0 | true |
Excel formula:
=INTERP(0, {1,2,3}, {3,2,0}, TRUE)
Expected output:
4
Python Code
Show Code
from ht.insulation import interp as ht_interp
def interp(x, dx, dy, left=None, right=None, extrapolate=False):
"""
Perform one-dimensional linear interpolation.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
x (float): X-coordinate of the interpolated value (dimensionless).
dx (list[list]): X-coordinates of the data points (dimensionless).
dy (list[list]): Y-coordinates of the data points (dimensionless).
left (float, optional): Value to return for x below dx range (dimensionless). Default is None.
right (float, optional): Value to return for x above dx range (dimensionless). Default is None.
extrapolate (bool, optional): Whether to extrapolate outside of bounds. Default is False.
Returns:
float: Interpolated value (dimensionless).
"""
try:
def to2d(value):
return [[value]] if not isinstance(value, list) else value
def flatten_2d(values, name):
data = to2d(values)
if not isinstance(data, list) or not all(isinstance(row, list) for row in data):
raise ValueError(f"{name} must be a 2D list")
flat = []
for row in data:
for item in row:
try:
flat.append(float(item))
except (TypeError, ValueError):
raise ValueError(f"{name} must contain only numbers")
return flat
dx_flat = flatten_2d(dx, "dx")
dy_flat = flatten_2d(dy, "dy")
if len(dx_flat) != len(dy_flat):
return "Error: dx and dy must have the same length"
x_val = float(x)
left_val = None if left is None else float(left)
right_val = None if right is None else float(right)
result = ht_interp(x_val, dx_flat, dy_flat, left=left_val, right=right_val, extrapolate=extrapolate)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
K_MATERIAL
This function returns thermal conductivity for a selected building, insulation, or refractory material. The material can be provided directly by table ID or by a search term that resolves to the nearest available match.
Thermal conductivity governs conductive heat transfer according to Fourier’s law:
q = -k\nabla T
where k is reported in W/m/K. Some table entries are temperature dependent, so an optional temperature can be supplied.
Excel Usage
=K_MATERIAL(ID, T)
ID(str, required): Material ID or search term (dimensionless).T(float, optional, default: 298.15): Temperature of the material (K).
Returns (float): Thermal conductivity of the material (W/m/K).
Example 1: Mineral fiber conductivity
Inputs:
| ID |
|---|
| Mineral fiber |
Excel formula:
=K_MATERIAL("Mineral fiber")
Expected output:
0.036
Example 2: Stainless steel conductivity
Inputs:
| ID |
|---|
| Metals, stainless steel |
Excel formula:
=K_MATERIAL("Metals, stainless steel")
Expected output:
17
Example 3: Quartz glass conductivity
Inputs:
| ID |
|---|
| Glass, quartz |
Excel formula:
=K_MATERIAL("Glass, quartz")
Expected output:
1.4
Example 4: Fused silica conductivity at 1000 K
Inputs:
| ID | T |
|---|---|
| Fused silica | 1000 |
Excel formula:
=K_MATERIAL("Fused silica", 1000)
Expected output:
1.58074
Python Code
Show Code
from ht.insulation import k_material as ht_k_material
def k_material(ID, T=298.15):
"""
Return thermal conductivity for an insulating or building material.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
ID (str): Material ID or search term (dimensionless).
T (float, optional): Temperature of the material (K). Default is 298.15.
Returns:
float: Thermal conductivity of the material (W/m/K).
"""
try:
result = ht_k_material(ID, T)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
NEAREST_MATERIAL
This function performs fuzzy matching on material names and returns the closest valid material ID from the available insulation, building-material, and refractory tables.
If complete is set to true, the search is restricted to materials that have all key properties available (density, heat capacity, and thermal conductivity). This is useful when subsequent calculations require a complete property set.
The output is a material key string that can be passed directly to related property functions.
Excel Usage
=NEAREST_MATERIAL(name, complete)
name(str, required): Search keywords for material matching (dimensionless).complete(bool, optional, default: false): Whether to return only materials with complete data.
Returns (str): Material ID that best matches the search term.
Example 1: Stainless steel fuzzy match
Inputs:
| name |
|---|
| stainless steel |
Excel formula:
=NEAREST_MATERIAL("stainless steel")
Expected output:
"Metals, stainless steel"
Example 2: Mineral fiber fuzzy match
Inputs:
| name |
|---|
| mineral fiber |
Excel formula:
=NEAREST_MATERIAL("mineral fiber")
Expected output:
"Mineral fiber"
Example 3: Glass fiber board fuzzy match
Inputs:
| name |
|---|
| glass fiber board |
Excel formula:
=NEAREST_MATERIAL("glass fiber board")
Expected output:
"Glass fiber board"
Example 4: Complete data match
Inputs:
| name | complete |
|---|---|
| stainless steel | true |
Excel formula:
=NEAREST_MATERIAL("stainless steel", TRUE)
Expected output:
"Metals, stainless steel"
Python Code
Show Code
from ht.insulation import nearest_material as ht_nearest_material
def nearest_material(name, complete=False):
"""
Return the nearest material match from insulation tables.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
name (str): Search keywords for material matching (dimensionless).
complete (bool, optional): Whether to return only materials with complete data. Default is False.
Returns:
str: Material ID that best matches the search term.
"""
try:
result = ht_nearest_material(name, complete=complete)
return str(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
REFRACTORY_VDI_CP
This function returns refractory specific heat capacity from tabulated VDI data for a selected material. The value is temperature dependent over the supported range and is obtained by interpolation between tabulated points.
Specific heat capacity connects heat input and temperature rise:
q = m C_p \Delta T
If no temperature is provided, the lowest tabulated-temperature value is used. Temperatures outside the supported range are clipped to the nearest limit.
Excel Usage
=REFRACTORY_VDI_CP(ID, T)
ID(str, required): Refractory material ID (dimensionless).T(float, optional, default: null): Temperature of the refractory material (K).
Returns (float): Heat capacity of the refractory material (J/kg/K).
Example 1: Fused silica default temperature
Inputs:
| ID | T |
|---|---|
| Fused silica |
Excel formula:
=REFRACTORY_VDI_CP("Fused silica", )
Expected output:
917
Example 2: Fused silica low temperature
Inputs:
| ID | T |
|---|---|
| Fused silica | 200 |
Excel formula:
=REFRACTORY_VDI_CP("Fused silica", 200)
Expected output:
917
Example 3: Fused silica mid temperature
Inputs:
| ID | T |
|---|---|
| Fused silica | 1000 |
Excel formula:
=REFRACTORY_VDI_CP("Fused silica", 1000)
Expected output:
956.782
Example 4: Fused silica high temperature
Inputs:
| ID | T |
|---|---|
| Fused silica | 1500 |
Excel formula:
=REFRACTORY_VDI_CP("Fused silica", 1500)
Expected output:
982
Python Code
Show Code
from ht.insulation import refractory_VDI_Cp as ht_refractory_VDI_Cp
def refractory_VDI_Cp(ID, T=None):
"""
Return refractory heat capacity from VDI data.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
ID (str): Refractory material ID (dimensionless).
T (float, optional): Temperature of the refractory material (K). Default is None.
Returns:
float: Heat capacity of the refractory material (J/kg/K).
"""
try:
result = ht_refractory_VDI_Cp(ID, T)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
REFRACTORY_VDI_K
This function returns refractory thermal conductivity from tabulated VDI data for a selected material. Conductivity varies with temperature and is obtained by interpolation across the tabulated temperature points.
Conductive heat transfer is governed by Fourier’s law:
q = -k\nabla T
If temperature is not provided, the function uses the lowest tabulated-temperature value. Temperatures outside the supported range are clipped to the nearest bound.
Excel Usage
=REFRACTORY_VDI_K(ID, T)
ID(str, required): Refractory material ID (dimensionless).T(float, optional, default: null): Temperature of the refractory material (K).
Returns (float): Thermal conductivity of the refractory material (W/m/K).
Example 1: Fused silica default temperature
Inputs:
| ID | T |
|---|---|
| Fused silica |
Excel formula:
=REFRACTORY_VDI_K("Fused silica", )
Expected output:
1.44
Example 2: Fused silica low temperature
Inputs:
| ID | T |
|---|---|
| Fused silica | 200 |
Excel formula:
=REFRACTORY_VDI_K("Fused silica", 200)
Expected output:
1.44
Example 3: Fused silica mid temperature
Inputs:
| ID | T |
|---|---|
| Fused silica | 1000 |
Excel formula:
=REFRACTORY_VDI_K("Fused silica", 1000)
Expected output:
1.58074
Example 4: Fused silica high temperature
Inputs:
| ID | T |
|---|---|
| Fused silica | 1500 |
Excel formula:
=REFRACTORY_VDI_K("Fused silica", 1500)
Expected output:
1.73
Python Code
Show Code
from ht.insulation import refractory_VDI_k as ht_refractory_VDI_k
def refractory_VDI_k(ID, T=None):
"""
Return refractory thermal conductivity from VDI data.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
ID (str): Refractory material ID (dimensionless).
T (float, optional): Temperature of the refractory material (K). Default is None.
Returns:
float: Thermal conductivity of the refractory material (W/m/K).
"""
try:
result = ht_refractory_VDI_k(ID, T)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
RHO_MATERIAL
This function returns the tabulated density of a building, insulation, or refractory material. A direct material ID can be provided, or a search string can be used to resolve the nearest matching material entry.
Density is mass per unit volume:
\rho = \frac{m}{V}
The result is reported in kg/m^3 and is taken as a lookup-table property without temperature dependence.
Excel Usage
=RHO_MATERIAL(ID)
ID(str, required): Material ID or search term (dimensionless).
Returns (float): Density of the material (kg/m^3).
Example 1: Asbestos cement board density
Inputs:
| ID |
|---|
| Board, Asbestos/cement |
Excel formula:
=RHO_MATERIAL("Board, Asbestos/cement")
Expected output:
1900
Example 2: Copper density
Inputs:
| ID |
|---|
| Metals, copper |
Excel formula:
=RHO_MATERIAL("Metals, copper")
Expected output:
8900
Example 3: Soda lime glass density
Inputs:
| ID |
|---|
| Glass, soda lime |
Excel formula:
=RHO_MATERIAL("Glass, soda lime")
Expected output:
2500
Example 4: Fused silica density
Inputs:
| ID |
|---|
| Fused silica |
Excel formula:
=RHO_MATERIAL("Fused silica")
Expected output:
1940
Python Code
Show Code
from ht.insulation import rho_material as ht_rho_material
def rho_material(ID):
"""
Return density for an insulating or building material.
See: https://ht.readthedocs.io/en/latest/ht.insulation.html
This example function is provided as-is without any representation of accuracy.
Args:
ID (str): Material ID or search term (dimensionless).
Returns:
float: Density of the material (kg/m^3).
"""
try:
result = ht_rho_material(ID)
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator