modify documents

This commit is contained in:
KOKO\Mimi
2026-10-04 03:32:59 +09:00
parent 858e87be64
commit c1d5cc3c0d
176 changed files with 9615 additions and 25355 deletions
+6 -162
View File
@@ -1,10 +1,13 @@
# Shell Surface Pressure Load 릴리스 준비 보고서
본 문서는 당시 revision의 검증·판정 기록이다. 본문에 남긴 원본 보고서 이름과 SHA-256은
통합 전 자료의 식별자이며 정리된 현재 파일의 byte hash를 뜻하지 않는다. 원문은 Git
`858e87b`의 해당 기능 폴더에서 확인할 수 있다. 현재 진입점과 대응 기록은 [README](README.md)를 따른다.
## 1. Metadata
- feature_id: `shell-surface-pressure-load`
- status: `ready-for-release`
- owner_agent: `release-agent`
- date: `2026-09-01`
- audited_head: `e5e8ccc8ff84a97e64ab2bc1889b5ab7aaae1c77`
- physics_evaluated_commit: `1eb4dce885175b78b8229b095f14cac102ea93df`
@@ -17,123 +20,6 @@
본 판정은 FESA 기능 전달 workflow의 내부 release readiness에 한정한다. Publish, deploy,
package, tag, merge, commit, push 또는 외부 배포 권한을 부여하지 않는다.
## 2. Release Scope
| 구분 | 포함 범위 |
| --- | --- |
| 기능 | Assembly-level `*SURFACE, TYPE=ELEMENT, NAME=<name>`의 `SPOS|SNEG` member에 step-level `*DSLOAD`의 uniform finite scalar `P`를 적용 |
| analysis type | 단일 linear static의 reference-configuration pressure, 단일 `NLGEOM=YES` full-Newton nonlinear static의 current-configuration follower pressure와 external tangent |
| elements | Source type과 label을 보존하는 four-node `S4`, `S4R`; 기존 FESA MITC4 선택 |
| materials/sections | 기존 linear isotropic elastic MITC4 shell material/section; 이 기능은 material 범위를 확장하지 않음 |
| load semantics | Positive `P`는 selected surface normal 반대 방향, negative `P`는 방향 반전, load factor는 정확히 한 번 적용 |
| assembly/physics | Stable full-DOF external load/tangent assembly, free/constrained projection, reaction/free residual, current-arm global force/moment equilibrium, deterministic ordering |
| input subset | Direct `<instance>.<element-label>` member와 explicit `INSTANCE=`에 결속된 flat assembly ELSET member; case-insensitive lookup과 stable raw/source identity |
| result scope | 기존 schema `0`/`1` HDF5의 displacement, generalized force/residual, reaction, global equilibrium 및 기존 MITC4 result chain; 새 pressure-only dataset 없음 |
| reference scope | Exact stored nonlinear S4/SPOS/positive-`P` case의 factor-one nodal `U1/U2/U3` blocking, `UR1/UR2/UR3` warning-only comparison |
| artifact scope | Runtime authoritative artifact는 `<stem>_results.h5`; CSV는 external reference/debug evidence이며 FESA product output이 아님 |
Release 범위에서 제외되는 핵심 항목은 `*DLOAD`, nonuniform/field/user pressure,
node/edge/double-sided/contact surface, S4/S4R 이외 element, material nonlinearity, dynamics,
thermal/contact/buckling, multiple-step propagation, surface offset/thickness-side correction,
pressure-only result quantity 및 다른 solver 내부 알고리즘과의 동등성 주장이다.
## 3. Gate Evidence Inventory
| Gate evidence | feature/status 감사 결과 | release disposition |
| --- | --- | --- |
| `requirements.md` | 동일 feature, must `001`–`024`; 초기 `draft-for-coordinator-gate-review` label을 유지하지만 Coordinator Gate 1 통과 및 이후 전 단계의 binding baseline으로 사용됨 | pass |
| `research.md` | 동일 feature; 초기 gate-review label을 유지하며 formulation/reference 범위와 non-equivalence 경계가 후속 문서에 반영됨 | pass |
| `formulation.md` | `ready-for-numerical-review`; force/tangent/sign/configuration/assembly 계약이 `numerical-review.md`에서 독립 승인됨 | pass |
| `numerical-review.md` | `pass-for-io-definition`; `tau_J=1.0e-12`, analytical/objectivity/tangent/equilibrium gate 확정 | pass |
| `reference-model.md` | `pass-for-io-definition`; exact required input/CSV, row identity, U/UR disposition과 immutable artifact contract 확정 | pass |
| `io.md` | `ready-for-implementation-planning`; input subset, semantic identity, diagnostics, schema `0`/`1`, HDF5-to-CSV projection 확정 | pass |
| `implementation-plan.md` | archival pre-execution label은 `draft-awaiting-user-approval`; 승인 후 materialized Steps 1–7 실행 및 Gate 6 보고서로 plan 이행이 입증됨 | pass |
| `implementation-report.md` | `pass-for-physics-evaluation` 권고; TDD Steps 1–6와 final evidence audit 완료 | pass |
| `build-test.md` | focused `64/64`, pressure reference `9/9`, automatic Stop full MSVC/CTest `362/362`, `0 failed`, 새 `/W4 /WX` warning 없음 | pass |
| `reference-comparison.md` | explicit `pass-for-physics-evaluation`; precheck 통과, U blocking `2187/2187`, UR warning-only `2187/2187`, 두 family row/RMS 모두 pass | pass |
| `corrections.md` | 중복 full-verification Harness timeout을 implementation defect와 분리하고 단일 Stop owner로 교정; 이후 full `362/362`로 해소됨 | resolved/pass |
| `physics-evaluation.md` | `pass-for-release-agent`; force/moment normalized balance `6.758e-14`/`3.725e-14 <= 1e-8`, blocker 없음 | pass |
Staleness 감사에서 Physics Agent가 평가한 `1eb4dce`는 현재 HEAD의 ancestor이며, 그 이후
변경은 `coordination.md`와 `physics-evaluation.md`뿐이다. 평가 후 source, test, CMake,
reference artifact 또는 tolerance 변경은 없다. 초기 문서의 archival status label과
`implementation-report.md`의 compact requirement/evidence shorthand는 Coordinator 승인,
`implementation-plan.md` §11, 실제 named-suite inventory, reference 및 physics evidence로
교차 확인했다. Release acceptance를 바꾸는 미해결 상태·범위·수치 모순은 없다.
### Release Checklist
- [x] 필수 Gate 1–7 문서가 모두 존재하고 `feature_id`가 일치한다.
- [x] Full MSVC x64 Debug build/CTest evidence가 `362/362 PASS`, `0 failed`다.
- [x] `reference-comparison.md`가 `pass-for-physics-evaluation`이고 required comparison file이 모두 존재한다.
- [x] `physics-evaluation.md`가 `pass-for-release-agent`다.
- [x] Must requirement `24/24`가 acceptance, test/internal model, required external reference 및 release disposition에 연결된다.
- [x] Exact input/CSV hash와 path가 구현 전후 동일하다.
- [x] Blocking U family, warning-only UR family 및 internal equilibrium evidence가 모두 pass했다.
- [x] Unsupported/deferred 범위와 accepted limitations를 사용자-facing하게 기록했다.
- [x] Unresolved implementation defect, missing declared comparison file, tolerance 변경 또는 upstream decision이 없다.
- [x] 이 판정이 외부 release 권한이 아님을 명시했다.
## 4. Acceptance Traceability
`test id`는 `implementation-plan.md`의 TDD ID와 실제 passing named suite를 함께 나타낸다.
`BM-*`는 `research.md`의 bounded verification model이며, external case가 필요한 항목에는
`shellnl-meshfine-pressure-s4-follower`를 명시한다.
| requirement id | compact acceptance criterion | test id / passing evidence | reference model id | verification report | release disposition |
| --- | --- | --- | --- | --- | --- |
| `FESA-REQ-SHELL-PRESSURE-001` | Approved SURFACE+DSLOAD S4/S4R mapping과 identity 보존 | `T-INPUT-VALID`; `InpSyntax`, `ShellSurfacePressureInput` | `BM-07` + internal valid fixtures | `build-test.md` | included/pass |
| `FESA-REQ-SHELL-PRESSURE-002` | Positive/zero/negative finite scalar exact-once, nonfinite reject | `T-INPUT-VALID`, `T-INPUT-NEG`; `ShellSurfacePressureDomain` | `BM-01`, `BM-08` | `build-test.md` | included/pass |
| `FESA-REQ-SHELL-PRESSURE-003` | Unique deterministic instance/element/side inventory와 order | `T-INPUT-VALID`, `T-ASSEMBLY`; `SurfacePressureAssembly` | `BM-03` | `build-test.md` | included/pass |
| `FESA-REQ-SHELL-PRESSURE-004` | Only S4/S4R and SPOS/SNEG; source type/label 보존 | `T-INPUT-VALID`, `T-INPUT-NEG`; target rejection cases | `BM-01`, `BM-08` | `build-test.md` | constraint/pass |
| `FESA-REQ-SHELL-PRESSURE-005` | Positive pressure는 selected normal 반대, negative는 정확히 반전 | `T-KERNEL-FORCE`; `ReversesExactlyForSposSnegAndNegativeMagnitude` | `BM-01` | `build-test.md`, `physics-evaluation.md` | physics/pass |
| `FESA-REQ-SHELL-PRESSURE-006` | Connectivity-derived SPOS normal과 SNEG inverse | `T-KERNEL-FORCE`; sign/connectivity kernel cases | `BM-01`, `BM-02` | `build-test.md`, `physics-evaluation.md` | physics/pass |
| `FESA-REQ-SHELL-PRESSURE-007` | Linear pressure는 reference area/normal에서 displacement-independent | `T-KERNEL-FORCE`, `T-LINEAR`; `LinearShellSurfacePressure` | `BM-01`, `BM-02` | `build-test.md` | included/pass |
| `FESA-REQ-SHELL-PRESSURE-008` | NLGEOM pressure는 current `X+u` follower load | `T-KERNEL-FORCE`, `T-NONLINEAR`; current-area/objectivity cases | `BM-04`, `BM-07` | `build-test.md`, `physics-evaluation.md` | physics/pass |
| `FESA-REQ-SHELL-PRESSURE-009` | External follower-force derivative가 Newton tangent에 포함 | `T-KERNEL-TANGENT`, `T-NONLINEAR`; centered FD/sign cases | `BM-05`, `BM-06` | `build-test.md`, `physics-evaluation.md` | numerical/pass |
| `FESA-REQ-SHELL-PRESSURE-010` | Step load factor `0/0.5/1`을 정확히 한 번 적용 | `T-ASSEMBLY`, `T-LINEAR`, `T-NONLINEAR`; factor cases | `BM-03`, `BM-06` | `build-test.md` | numerical/pass |
| `FESA-REQ-SHELL-PRESSURE-011` | Stable full-DOF external load/tangent 후 projection | `T-ASSEMBLY`, `T-LINEAR`; full-space/order cases | `BM-03` | `build-test.md` | included/pass |
| `FESA-REQ-SHELL-PRESSURE-012` | Pressure가 constrained reaction과 free residual에 포함 | `T-LINEAR`, `T-NONLINEAR`; reaction/residual/balance cases | `BM-01`, `BM-06`, `BM-07` | `reference-comparison.md`, `physics-evaluation.md` | physics/pass |
| `FESA-REQ-SHELL-PRESSURE-013` | Resolution/reduction/result/diagnostic/comparison order 결정적 | `T-INPUT-VALID`, `T-ASSEMBLY`, `T-NONLINEAR`, `T-REF-COMPARE` | `BM-03`, `BM-07` | `build-test.md`, `reference-comparison.md` | constraint/pass |
| `FESA-REQ-SHELL-PRESSURE-014` | Unsupported SURFACE/DSLOAD variant fail-closed | `T-INPUT-NEG`; `ShellSurfacePressureInput` negative matrix | `BM-08` | `build-test.md` | constraint/pass |
| `FESA-REQ-SHELL-PRESSURE-015` | Missing/empty/ambiguous/conflicting/scope target fail-closed | `T-INPUT-NEG`; mapping failure/no-partial-candidate cases | `BM-08` | `build-test.md` | constraint/pass |
| `FESA-REQ-SHELL-PRESSURE-016` | Unsupported procedure, nonfinite, invalid geometry fail-closed | `T-INPUT-NEG`, `T-KERNEL-TANGENT`, `T-NONLINEAR`; rollback cases | `BM-04`, `BM-05`, `BM-08` | `build-test.md` | constraint/pass |
| `FESA-REQ-SHELL-PRESSURE-017` | Stable diagnostics와 failed candidate/output atomicity | `T-INPUT-NEG`, `T-CLI-HDF5`, `T-NONLINEAR`; final preservation cases | `BM-08` | `build-test.md` | output/pass |
| `FESA-REQ-SHELL-PRESSURE-018` | 기존 schema `0/1` HDF5만 authoritative; 새 pressure dataset 없음 | `T-CLI-HDF5`; schema/no-new-path writer regressions | `BM-07` | `implementation-report.md`, `build-test.md` | output/pass |
| `FESA-REQ-SHELL-PRESSURE-019` | Existing displacement/reaction/residual/equilibrium/result chain finite | `T-LINEAR`, `T-NONLINEAR`, `T-REF-COMPARE` | `BM-06`, `BM-07` | `reference-comparison.md`, `physics-evaluation.md` | output/pass |
| `FESA-REQ-SHELL-PRESSURE-020` | Linear S4/S4R sign/resultant/reaction/mesh-order suite 통과 | `T-KERNEL-FORCE`, `T-LINEAR`; analytical suites | `BM-01`–`BM-03` | `build-test.md`, `physics-evaluation.md` | verification/pass |
| `FESA-REQ-SHELL-PRESSURE-021` | Objectivity/current-area/tangent/residual/global balance 통과 | `T-KERNEL-TANGENT`, `T-NONLINEAR`; force/moment `<=1e-8` | `BM-04`–`BM-06`, `BM-07` | `reference-comparison.md`, `physics-evaluation.md` | verification/pass |
| `FESA-REQ-SHELL-PRESSURE-022` | Exact required input/CSV를 current path에서 read-only 사용 | `T-REF-PRECHECK`, `E-FINAL`; hash/size pre/post match | `shellnl-meshfine-pressure-s4-follower` | `reference-comparison.md` | verification/pass |
| `FESA-REQ-SHELL-PRESSURE-023` | Factor-one source-key mapping, U blocking/UR warning, precheck first | `T-REF-PRECHECK`, `T-REF-COMPARE`, `E-FINAL`; `2187+2187` | `shellnl-meshfine-pressure-s4-follower` | `reference-comparison.md` | verification/pass |
| `FESA-REQ-SHELL-PRESSURE-024` | Reaction CSV review-only, stress CSV excluded, internal balance 유지 | `T-REF-COMPARE`; no reaction/stress verdict family | `shellnl-meshfine-pressure-s4-follower` | `reference-comparison.md`, `physics-evaluation.md` | constraint/pass |
Trace result: must requirements `24`, release-scoped rows `24`, orphan `0`, deferred must `0`,
missing feature-required comparison files `0`.
## 5. Validation Evidence
| evidence | command / source | result |
| --- | --- | --- |
| Configure | `cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ...` | exit `0`; MSVC 19.51.36252.0 |
| Focused build | `cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests fesa_reference_tests` | exit `0`; new warning `0` |
| Discovery | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | `362` discovered, feature suites nonzero |
| Focused CTest | `ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(InpSyntax|ShellSurfacePressureInput|ShellSurfacePressureDomain|ShellSurfacePressureKernel|SurfacePressureAssembly|LinearShellSurfacePressure|NonlinearShellSurfacePressure|ShellSurfacePressureApplication|ShellSurfacePressureReference)\."` | `64/64 PASS` |
| FESA reference execution | `fesa.exe .harness/build/reference/shell-surface-pressure-load/shellNL-meshfine-pressure.inp` | exit `0`; factor-one increment accepted; schema-1 HDF5 atomic publish |
| Pressure comparison | `ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\."` | `9/9 PASS` before and after generated HDF5 |
| Automatic Stop build | `cmake --build .harness/build --config Debug` | PASS |
| Automatic Stop full CTest | `ctest --test-dir .harness/build -C Debug --output-on-failure` | `362/362 PASS`, `0 failed` |
| Harness Python pytest | N/A | Harness/Python behavior 및 file 변경이 없어 upstream plan/report에서 적용 대상이 아님 |
Reference artifact pre/post evidence:
- Required input: SHA-256 `53718ccc9b41c23fcc1b509a51d66f1347e87aca43a74f1d6cec4d2085f4b90e`, `56,665` bytes, unchanged.
- Required displacement CSV: SHA-256 `2fe53f98eac9f04779100721c3edf8049eb1dbfe733ebcbd819aeeed03b81198`, `111,182` bytes, unchanged.
- `pressure_nodal_translation_blocking`: `2187/2187` rows pass, relative RMS `5.18831997081359e-5 <= 0.01`.
- `pressure_nodal_rotation_warning`: `2187/2187` rows pass, relative RMS `3.10406152731217e-4 <= 0.01`; warning `0`.
- Accepted free translation residual: `6.12848863188238e-11 <= 1e-2`.
- Accepted free rotation residual: zero-external-scale branch `1.3758908607997e-6 <= 1e-3`.
- Physics re-evaluation: normalized force balance `6.758e-14`, moment balance `3.725e-14`, each `<=1e-8`.
## 6. Known Limitations
1. 입력은 assembly-level `TYPE=ELEMENT` surface와 uniform `DSLOAD P`의 승인 subset뿐이다.
@@ -166,42 +52,6 @@ Reference artifact pre/post evidence:
Deferred must requirement, unresolved defect, accepted blocking risk 또는 release-blocking open item은 없다.
## 7. Release Notes Draft
### 사용자-facing 요약
FESA는 이제 승인된 Abaqus `.inp` subset에서 assembly named element surface의 `S4`/`S4R`
`SPOS` 또는 `SNEG` 면에 uniform `*DSLOAD P`를 적용할 수 있다. Linear static에서는 reference
surface를, `NLGEOM=YES` nonlinear static에서는 current surface follower force와 consistent
external tangent를 사용한다. Pressure는 기존 full-space load, reaction/free residual,
global equilibrium 및 HDF5 result lifecycle에 통합된다.
### 검증 범위
- MSVC x64 Debug full CTest `362/362 PASS`, focused feature tests `64/64 PASS`.
- Exact stored nonlinear case에서 factor-one U blocking `2187/2187`, UR warning-only
`2187/2187` rows pass.
- Factor-one normalized global force/moment balance는 각각 `6.758e-14`, `3.725e-14`로
승인 gate `1e-8`을 통과했다.
- S4R, side/sign reversal, linear reference pressure, current-area objectivity, external tangent와
invalid geometry는 독립 internal analytical/FD/fail-closed tests로 검증했다.
### 주요 제한 및 사용 주의
이 release는 single-step linear 또는 approved nonlinear static, four-node S4/S4R, existing
linear-isotropic MITC4 section과 uniform single-sided pressure만 지원한다. `*DLOAD`, nonuniform
pressure, amplitude, node/edge/contact/double-sided surface, 다른 element/procedure/material 및
surface offset/thickness correction은 지원하지 않는다. Model-consistent unit system을 사용해야
하며 invalid current surface geometry는 fail-closed한다. UR은 warning-only이고 reaction/stress
CSV는 external verdict 대상이 아니다. Abaqus 내부 동등성이나 실험 validation은 주장하지 않는다.
### Artifact paths
- Runtime authoritative output: input lexical sibling `<stem>_results.h5`
- Required reference input: `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure.inp`
- Required comparison CSV: `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure displacements.csv`
- Release record: `docs/shell-surface-pressure-load/release.md`
## 8. Release Verdict
**Verdict: `ready-for-release`.**
@@ -222,14 +72,6 @@ Coordinator Agent는 Gate 8을 `passed`로 기록하고 `shell-surface-pressure-
또는 upstream decision return은 필요하지 않다. Publish, deploy, package, tag, merge, commit,
push 또는 external release는 별도 명시적 권한 없이는 수행하지 않는다.
## 10. No-Change Assertion
Release Agent는 이 감사에서 `docs/shell-surface-pressure-load/release.md`만 생성했다. Source,
public/private header, test, CMake, build/Harness configuration, phase files, upstream feature
documents/reports, `coordination.md`, reference input/CSV, generated HDF5/log,
`docs/TOLERANCE.md` 및 tolerance policy는 수정하지 않았다. Abaqus, Nastran 또는 다른
reference solver를 실행하지 않았고 build, CTest, Harness 또는 FESA CLI를 재실행하지 않았다.
## 11. Open Issues
- Missing evidence: 없음.
@@ -240,3 +82,5 @@ reference solver를 실행하지 않았고 build, CTest, Harness 또는 FESA CLI
- Missing declared comparison files or mappings: 없음.
- Release documentation gap: 없음.
- Blockers: 없음.
현재 build·reference·물리 실행 기록은 [검증 보고서](verification.md)에 통합했다. 과거 readiness와 현재 재검증 필요를 구분하며 이 정리는 새로운 release 감사가 아니다.