Skip to content

Latest commit

 

History

40 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Aethermor

Reduced-order thermal analysis and inverse design for chip/package architecture.

Aethermor turns a physical power map, material model, package boundary, and junction limit into an auditable steady-state result. It is designed for early architecture decisions: feasibility screening, maximum-power estimation, cooling tradeoffs, sensitivity analysis, and deciding where higher-fidelity FEA/CFD or hardware characterization is warranted.

Release: 2.0.0rc1 — external engineering-review candidate. Aethermor is not a package, reliability, or product sign-off tool.

Quick start

Python 3.10–3.12 is supported.

git clone https://github.com/Yoder23/aethermor.git
cd aethermor
python -m pip install -e ".[dev]"
aethermor validate
aethermor demo --samples 30

For a non-editable installation from a release checkout:

python -m pip install .
aethermor validate --json

The validation command exits nonzero when a critical numerical gate fails. The demo writes its inputs, assumptions, solver metadata, uncertainty seed, results, and limitations to generated_results/architecture_tradeoff.json.

Power-map-first API

import numpy as np

from aethermor import FourierThermalTransport, ThermalBoundaryCondition

shape = (20, 20, 2)
model = FourierThermalTransport(
    grid_shape=shape,
    element_size_m=(1e-3, 1e-3, 0.2e-3),
    boundary=ThermalBoundaryCondition.package_cooled(
        face="z_max",
        h_W_m2K=20_000.0,
        coolant_temperature_K=303.15,
    ),
)
model.set_power_map(np.full(shape[:2], 1e6), units="W/m2", z_index=0)
result = model.solve_steady()

if not result.converged:
    raise RuntimeError(result.warnings)

print(f"peak: {result.max_temperature_K:.2f} K")
print(f"solved power: {result.total_power_W:.3f} W")
relative_energy_error = abs(result.energy_balance_error_W) / max(
    abs(result.total_power_W), np.finfo(float).tiny
)
print(f"relative energy-balance error: {relative_energy_error:.3e}")

The canonical path is:

physical power map
  -> FourierThermalTransport.solve_steady()
  -> SteadyStateResult
  -> package tradeoff / inverse design / CLI / demo

The core solves div(k grad(T)) + q''' = 0 on a cell-centred Cartesian finite-volume mesh. Public power inputs accept W/cell, W/m², or W/m³ and always report integrated solved power. Boundary conditions are face-specific Dirichlet, flux/adiabatic, or Robin conditions. Package coupling applies only external face impedance when the die is already meshed, avoiding double-counted die resistance.

See the physics and equations, API reference, and architecture assumptions.

Runnable engineer-facing examples are deliberately limited to the canonical surface:

python -m examples.steady_power_map
python -m examples.maximum_power
python -m examples.architecture_tradeoff

Older optimizer, roadmap, material-ranking, and dashboard paths are retained only as compatibility/experimental surfaces; they are not part of this engineering-review release surface.

Evidence and validation status

The release separates numerical verification, cross-code comparison, and hardware validation:

Evidence layer Current status What it supports
Analytical and manufactured solutions Executed locally and in CI Discretization, conservation, boundary implementation
Mesh studies Executed at multiple lateral and through-plane resolutions Stated mesh-independence tolerances
UVA HotSpot v7.0 cross-code suite Pinned independent implementation, shared canonical inputs Class-A synthetic model comparison and Class-B trend evidence
Grade-A matched hardware holdout Not available; hardware_validated=false No hardware accuracy claim

In the current release evidence, the four synthetic Class-A primary-grid peak-rise differences are 0.092–0.226%, and the three inverse allowable-power differences are 0.129–0.200%. These results are cross-code evidence under the disclosed amended protocol, not experimental validation. The Class-B native EV6 and accelerator package cases remain informative disagreements: 156.3% and 20.0% primary-grid peak-rise difference, respectively.

For the declared 240-sample synthetic uncertainty study, exact 50% spatial flattening ranks first in 240/240 samples and the nominal top-two ordering is unchanged. Those ranges are engineering assumptions, not measured probability distributions, and the study is repository-authored.

Every public claim maps to the claim/evidence matrix. Review the generated external report, discrepancy log, and trust page before relying on a result. The Ubuntu installed-wheel holdout reproduces all primary forward metrics exactly and the inverse comparisons to within 1.12e-13 absolute relative-difference delta.

Reproduce the external comparison

The full comparison is intentionally expensive. On Ubuntu 24.04:

sudo apt-get update
sudo apt-get install -y build-essential libblas-dev libsuperlu-dev
run_root="$(mktemp -d /tmp/aethermor-external-XXXXXX)"
aethermor validate --external \
  --hotspot-source "$run_root/hotspot-v7" \
  --external-output-dir "$run_root/evidence"

The command obtains and verifies UVA HotSpot v7.0 commit 9f92256f7a45db6057c809e94fcd224ddad9157a, performs a clean SuperLU build, generates both tools' inputs from one canonical benchmark schema, runs all forward, inverse, intervention, and robustness cases, and verifies aggregate claims against retained raw artifacts before writing a report.

See installation and verification and reproducibility for clean-wheel workflows.

Engineering data policy

The stable material set is deliberately small: one near-300 K silicon profile with three property-level records, each carrying source and condition metadata. Seventeen legacy profiles are opt-in provisional data and warn on lookup. Three records requiring different physical models were removed from the bulk-material default. See material provenance.

Appropriate use

Use Aethermor for architecture-stage screening and comparative decisions within the documented model envelope. Do not use it as the sole basis for package or reliability sign-off, absolute hardware junction-temperature claims, detailed bump/TSV/interconnect analysis, fluid resolution, boiling, radiation, or thermo-mechanical stress.

Read LIMITATIONS.md, then use the challenge bundle to reproduce or falsify a result.

Project guide

Apache-2.0 licensed. Citation metadata is in CITATION.cff.

About

Python toolkit for chip thermal analysis, cooling tradeoffs, and compute-density limits in advanced hardware systems.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages