Aluminum-bottle LCA — peer-review prototype¶
This site is a minimal working example of the documentation stack we intend to use for the ACAP aerospace-processes peer review. It exercises the features the reviewers will rely on:
- Filter/sort-able tables — try clicking column headers on the Impact assessment page.
- LaTeX equations — rendered via MathJax 3, configured globally.
- matplotlib / seaborn figures — pre-rendered PNGs committed to the repository, shown on the Figures page.
- In-page annotations — Hypothes.is is embedded on every page. The sidebar opens from the tab on the right; sign-in (or a one-line group config) lets reviewers leave notes on highlighted text.
What is being modelled¶
A fictional process: production of one finished 15 g aluminum bottle. Foreground inputs are:
| Input | Symbol | Notes |
|---|---|---|
| Primary Al ingot | \( m_\mathrm{Al} \) | Scaled up by an internal trim-loss factor |
| Epoxy lacquer | \( m_\mathrm{coat} \) | Inner liner, mass fraction of bottle mass |
| Electricity | \( E_\mathrm{elec} \) | Impact extrusion + trimming |
| Process heat | \( E_\mathrm{th} \) | Inter-stage annealing |
| Transport (truck) | \( T \) | Plant → filling line, ~ 250 km |
| Process water | \( W \) | Washing + cooling |
The corresponding equations are derived on the Methodology page. The full contribution table across 14 LCIA methods is on Impact assessment.
Functional unit¶
1 finished, lacquered, empty aluminum bottle (15 g).
Process diagram¶
flowchart LR
classDef param fill:#e8f1ff,stroke:#4a78c8,color:#111;
classDef flow fill:#e2f7e2,stroke:#3a9c3a,color:#111;
classDef out fill:#f2d8ff,stroke:#7d4a99,color:#111;
mb["m_bottle<br/>15 g"]:::param
fal["f_Al = 0.97"]:::param
fcoat["f_coat = 0.02"]:::param
fscrap["f_scrap = 0.01"]:::param
eform["e_form = 0.32 kWh/kg"]:::param
eann["e_ann = 0.18 kWh/kg"]:::param
dist["d = 250 km"]:::param
Al(["m_Al = f_Al m_bottle / (1 − f_scrap)"]):::flow
Coat(["m_coat = f_coat m_bottle"]):::flow
Elec(["E_elec = e_form m_bottle"]):::flow
Heat(["E_th = e_ann m_bottle"]):::flow
Trans(["T = d m_bottle / 1000"]):::flow
mb --> Al
fal --> Al
fscrap --> Al
mb --> Coat
fcoat --> Coat
mb --> Elec
eform --> Elec
mb --> Heat
eann --> Heat
mb --> Trans
dist --> Trans
FU(["1 aluminum bottle"]):::out
Al --> FU
Coat --> FU
Elec --> FU
Heat --> FU
Trans --> FU
Package layout¶
aluminum_bottle_lca/
├── __init__.py
├── parameters.yaml # foreground parameters
├── model.py # pure physics functions
├── inventory.py # AluminumBottle class (loads YAML)
└── impacts.py # illustrative CFs + contribution_table()
The Python package is intentionally tiny — the focus of this prototype is the documentation surface, not the LCA itself.