/** * MaterialDatabase — Queryable material property library for simulation solvers. * * Every property value includes a literature citation, uncertainty bound, * and valid temperature range. Temperature-dependent lookup is available * via MaterialProperties.ts for materials with tabulated data. * * Default values sourced from: * - Incropera, DeWitt et al., "Fundamentals of Heat and Mass Transfer", 7th ed. * - ASM Handbook, Vol. 1 (Properties and Selection: Irons, Steels) * - NIST Standard Reference Data (SRD) * - Engineering Toolbox (cross-referenced with primary sources) */ import { type Temperature, type ThermalConductivity, type SpecificHeat, type Density, type YoungsModulus, type PoissonRatio, type YieldStrength, type Roughness } from './units/PhysicalQuantity'; /** Provenance metadata for a material property value. */ export interface PropertyProvenance { /** Literature source (e.g., "Incropera 7th ed., Table A.1") */ source: string; /** Relative uncertainty (e.g., 0.05 = +/-5%) */ uncertainty: number; /** Valid temperature range in Kelvin [min, max] */ temperatureRange: [Temperature, Temperature]; /** Additional notes (e.g., "Grade A36, room temperature") */ notes?: string; } export interface ThermalMaterial { conductivity: ThermalConductivity; specific_heat: SpecificHeat; density: Density; } export interface StructuralMaterial { youngs_modulus: YoungsModulus; poisson_ratio: PoissonRatio; yield_strength: YieldStrength; density: Density; } export interface HydraulicMaterial { roughness: Roughness; } export type SimulationMaterial = ThermalMaterial & Partial & Partial & { simulation_origin?: string; uncertainty_margin?: number; }; /** Material entry with provenance tracking. */ export interface CitedMaterial { properties: SimulationMaterial; provenance: PropertyProvenance; } /** * Get a material by name. Checks custom registry first, then built-in DB. * Supports uncertainty sampling via sigma standard deviations. * Throws if material not found. */ export declare function getMaterial(name: string, sigma?: number): SimulationMaterial; /** * Get a material by name, returning undefined if not found. */ export declare function findMaterial(name: string, sigma?: number): SimulationMaterial | undefined; /** * Register a custom material (overrides built-in if same name). */ export declare function registerMaterial(name: string, props: SimulationMaterial): void; /** * List all available material names. */ export declare function listMaterials(): string[]; /** * Get a material with full provenance. Returns undefined if not found. */ export declare function getCitedMaterial(name: string): CitedMaterial | undefined; /** * Get provenance for a built-in material. Returns undefined for custom materials. */ export declare function getMaterialProvenance(name: string): PropertyProvenance | undefined; /** * List all materials that have provenance citations. */ export declare function listCitedMaterials(): string[]; /** * Thermal diffusivity α = k / (ρ·cₚ) in m²/s. * Used for CFL stability checks in thermal solver. */ export declare function thermalDiffusivity(mat: ThermalMaterial): number; //# sourceMappingURL=MaterialDatabase.d.ts.map