Skip to content

Commit 91ebe0d

Browse files
authored
Merge pull request #1 from felipearocha/chore/series-uniformity
docs: align Week 9 CUI with Integrity Code Series canonical standard
2 parents 42d00bc + 4e990be commit 91ebe0d

2 files changed

Lines changed: 354 additions & 13 deletions

File tree

README.md

Lines changed: 48 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# ICS2 Week 9 — CUI Coupled Thermohygro-Electrochemical Simulation
22

3-
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.20172508.svg)](https://doi.org/10.5281/zenodo.20172508)
4-
53
[![CI](https://github.com/felipearocha/integrity-code-series-week9-cui/actions/workflows/ci.yml/badge.svg)](https://github.com/felipearocha/integrity-code-series-week9-cui/actions/workflows/ci.yml)
6-
[![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/)
7-
[![Tests](https://img.shields.io/badge/tests-151%20passing-brightgreen.svg)](#testing)
8-
[![License](https://img.shields.io/badge/license-Research--Educational-lightgrey.svg)](LICENSE)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
5+
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/)
6+
[![Tests: 154 passing](https://img.shields.io/badge/tests-154%20passing-brightgreen.svg)](tests)
7+
[![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
8+
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.20172508.svg)](https://doi.org/10.5281/zenodo.20172508)
99

1010
Three-way coupled physics-first simulator for **Corrosion Under Insulation (CUI)**
1111
on insulated carbon-steel process piping. Simulates moisture ingress through a
@@ -21,11 +21,12 @@ Part of an ongoing series of physics-first integrity simulators by Felipe Rocha:
2121
| # | Repo | Domain |
2222
|---|---|---|
2323
| Week 3 | [Integrity-code-series-3](https://github.com/felipearocha/Integrity-code-series-3) | F1 lap simulation (six coupled ODEs) |
24-
| Week 6 | [Integrity-code-series-week6-smartphone-galvanic](https://github.com/felipearocha/Integrity-code-series-week6-smartphone-galvanic) | Smartphone galvanic corrosion (Laplace + Butler-Volmer) |
24+
| Week 6 | [integrity-code-series-week6-smartphone-galvanic](https://github.com/felipearocha/Integrity-code-series-week6-smartphone-galvanic) | Smartphone galvanic corrosion (Laplace + Butler-Volmer) |
2525
| Week 7 | [integrity_code_series_week7_h2_lferw](https://github.com/felipearocha/integrity_code_series_week7_h2_lferw) | LF-ERW H2 conversion (B31.12 + NACE TM0316) |
2626
| Week 8 | [integrity-code-series-week8-creep-fatigue-heater](https://github.com/felipearocha/integrity-code-series-week8-creep-fatigue-heater) | Creep-fatigue 9Cr-1Mo (Norton/Omega + Coffin-Manson) |
27-
| Week 9 | [integrity-code-series-week9-cui](https://github.com/felipearocha/integrity-code-series-week9-cui) | CUI thermohygro-electrochemical (3 PDEs, Strang) |
27+
| **Week 9** | **[integrity-code-series-week9-cui](https://github.com/felipearocha/integrity-code-series-week9-cui)** | **CUI thermohygro-electrochemical (3 PDEs, Strang) — this repo** |
2828
| Week 10 | [integrity-code-series-week-10_nnph_scc](https://github.com/felipearocha/integrity-code-series-week-10_nnph_scc) | NNpHSCC full-physics (Chen-Sutherby-Xing + BS 7910) |
29+
| Week 11 | [integrity-code-series-week11-erosion-corrosion-multiphase](https://github.com/felipearocha/integrity-code-series-week11-erosion-corrosion-multiphase) | Erosion-corrosion multiphase (NORSOK M-506 + DNV-RP-O501 + G119 + API 579) |
2930
| Bonus | [Vibration-Accelerated-Corrosion-Coupled-Mechano-Electrochemical-Simulation](https://github.com/felipearocha/Vibration-Accelerated-Corrosion-Coupled-Mechano-Electrochemical-Simulation) | Vibration-accelerated corrosion (SDOF + Butler-Volmer + Archard) |
3031
| Bonus | [synthetic-integrity-digital-twin-piml](https://github.com/felipearocha/synthetic-integrity-digital-twin-piml) | Physics-informed neural-network surrogate |
3132
| Bonus | [integrity-data-foundation](https://github.com/felipearocha/integrity-data-foundation) | Engineering data validation baseline |
@@ -38,7 +39,7 @@ cd REPO
3839
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
3940
pip install -r requirements.txt
4041
python run_all.py # ~70 s on a laptop; produces 7 figures + 1 GIF + audit_chain.json
41-
pytest tests/ -v # 151 tests
42+
pytest tests/ -v # 154 tests
4243
python validation/benchmarks.py # 5 analytical benchmarks
4344
```
4445

@@ -60,6 +61,8 @@ locations from outer cladding temperature measurements.
6061

6162
## Governing Equations
6263

64+
Full rendered (MathJax) reference: **[docs/equations.html](docs/equations.html)** — open in any browser.
65+
6366
### Field 1 — Fourier Heat Conduction (Eq. 1)
6467

6568
```
@@ -167,6 +170,8 @@ integrity_code_series_week9_cui_thermohygro/
167170
│ ├── surrogate_gbr.py GBR surrogate, parity metrics
168171
│ ├── fad_assessment.py API 579-1 Level 2 FAD
169172
│ └── audit_chain.py SHA-256 hash-linked run log
173+
├── docs/
174+
│ └── equations.html Rendered (MathJax) governing-equations reference
170175
├── validation/
171176
│ └── benchmarks.py
172177
├── visualization/
@@ -177,6 +182,7 @@ integrity_code_series_week9_cui_thermohygro/
177182
├── tests/
178183
│ ├── test_geometry_thermal.py
179184
│ ├── test_moisture_electrochemistry.py
185+
│ ├── test_extended.py
180186
│ └── test_remaining.py
181187
├── assets/figures/ 8 static PNG panels (300 DPI)
182188
├── assets/animations/ cui_moisture_front.gif
@@ -214,7 +220,7 @@ integrity_code_series_week9_cui_thermohygro/
214220

215221
---
216222

217-
## Cybersecurity Summary
223+
## Cybersecurity (STRIDE)
218224

219225
STRIDE threat model applied to DFOS sensor network feeding inverse solver:
220226

@@ -230,12 +236,41 @@ STRIDE threat model applied to DFOS sensor network feeding inverse solver:
230236

231237
---
232238

239+
## Anti-Hallucination Note
240+
241+
Every physical parameter carries an explicit provenance tag. Constants read directly from
242+
a standard or the literature are stated as such; parameters anchored to literature but not
243+
calibrated to a specific site are flagged `[ASSUMED]` in `src/constants.py` and collected
244+
in the **[ASSUMED] Parameter Flags** table above. In the Integrity Code Series tiering this
245+
maps to:
246+
247+
- **T1 [SOURCE]** — values fixed by physics or a cited standard (the API 579-1 Level 2
248+
Option B FAD curve, Faraday's law, the API RP 583 50-175 C CUI window).
249+
- **T2 [SOURCE]** — quantities derived from T1 inputs (effective insulation properties, the
250+
golden-section Tikhonov recovery restricted to `S ∈ [0, S_ref]`).
251+
- **T3 [ASSUMED]** — practitioner / literature estimates that are not site-calibrated: the
252+
mineral-wool moisture diffusivity `D_theta0` and slope `beta_theta`, the electrolyte
253+
threshold `theta_crit`, the Fe-dissolution `i0_ref` / `E_a` / mixed overpotential, and the
254+
`D_T` coupling form.
255+
256+
No equation, constant, or citation in this repository or in `docs/equations.html` is
257+
introduced beyond what the model actually implements.
258+
259+
---
260+
261+
## Disclaimer
262+
263+
Research tool only. Not for design, fitness-for-service, or safety-critical decisions without site-specific calibration and independent PE review.
264+
265+
Additionally: API RP 583, API 579-1, and PHMSA regulations take precedence over model
266+
output, and `[ASSUMED]` parameters must be validated against site-specific inspection data
267+
before any operational use.
268+
269+
---
270+
233271
## License
234272

235-
Research and educational use only. Not for operational fitness-for-service decisions
236-
without independent engineering review and site-specific validation.
237-
API RP 583, API 579-1, PHMSA regulations take precedence over model output.
238-
[ASSUMED] parameters must be validated against site-specific inspection data.
273+
MIT — Felipe Rocha. See [LICENSE](LICENSE).
239274

240275
---
241276

0 commit comments

Comments
 (0)