# Step 27: Physics Sanity > 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. > 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` - `../../docs/solver-core/README.md` - `../../docs/solver-core/README.md` - `../../docs/linear-static-3d-euler-beam/README.md` - `../../docs/linear-static-3d-euler-beam/README.md` - `../../docs/linear-static-3d-euler-beam/README.md` - `../../docs/linear-static-3d-euler-beam/formulation.md` - `../../docs/linear-static-3d-euler-beam/README.md` - `../../docs/linear-static-3d-euler-beam/README.md` - 과거 검증 자료(정리됨) - 과거 검증 자료(정리됨) - `/reference/cantilever beam/`의 승인된 read-only artifact ## 작업 Reference Verification status가 `pass-for-physics-evaluation`인지 먼저 확인하고 `../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. 다음 physical check를 documented expectation과 observed HDF5/comparison evidence로 각각 판정한다. - global applied force + reaction force equilibrium - origin 기준 applied/reaction force moment와 reaction moment equilibrium - constrained DOF reaction consistency와 free residual normalized `1e-10` - load 방향에 대한 displacement/rotation direction과 sign - expected zero/symmetry components - adjacent element endpoint section resultant consistency와 boundary end action balance - local/global component mapping, section-force signs, `S11` location/sign sanity - nonfinite, rigid-body-mode, 비정상 magnitude/energy 징후 - B33 cantilever가 검증하는 범위와 line-load/rotated/analytical unit test가 보완하는 coverage 각 check에 식, unit, coordinate system, observed value/norm, criterion, verdict를 기록한다. Stress는 Abaqus reference comparison 없이 schema/unit/analytical evidence로만 sanity를 평가한다고 명시한다. 모든 documented check가 통과하면 Metadata와 Evaluation Verdict를 `pass-for-release-agent`로 둔다. No-Change Assertion을 포함한다. ## Acceptance Criteria 과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ```powershell $path = 'docs/linear-static-3d-euler-beam/physics-evaluation.md' if (-not (Test-Path $path)) { throw "Missing $path" } $required = @('status: `pass-for-release-agent`', '## Input Evidence', '## Physics Checks', 'global equilibrium', 'reaction consistency', 'displacement direction', 'element force', 'stress', '## No-Change Assertion') foreach ($text in $required) { if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) { throw "Missing physics evidence: $text" } } git diff --check -- $path ``` ## 검증 절차 1. Passing reference report와 exact solver artifact identity를 확인한다. 2. 각 physical expectation을 HDF5/metrics/test evidence로 계산·검토한다. 3. 모두 통과한 경우에만 report와 Step 27을 pass/completed로 갱신한다. 4. 실패는 physics classification과 owning agent handoff를 기록하고 Step 27을 `error`로 둔다. 추가 reference model/사용자 결정이 필수이면 `blocked`로 둔다. ## 금지사항 - source, tests, CMake, upstream reports/contracts를 수정하지 마라. 이유: independent physics gate다. - reference tolerance 성공을 다시 판정하거나 완화하지 마라. 이유: Step 26 책임이다. - undocumented expectation으로 pass를 만들지 마라. 이유: 검토 traceability가 사라진다. - Abaqus 실행 또는 reference artifact 변경을 하지 마라. 이유: read-only evidence다. - release readiness를 승인하지 마라. 이유: Step 28 책임이다. - 직접 commit하지 마라. 이유: Harness executor가 담당한다.