docs: simplify FESA reference validation policy
This commit is contained in:
+25
-4
@@ -3,6 +3,11 @@
|
||||
## 목표
|
||||
FESA의 아키텍처 목표는 Abaqus `.inp` subset을 내부 semantic model로 변환하고, 유한요소 equation system을 구성해 구조해석 결과를 HDF5로 저장하며, reference comparison과 physics sanity가 가능한 C++17/MSVC 솔버 구조를 제공하는 것이다.
|
||||
|
||||
FESA의 element formulation과 numerical path는 Abaqus와 독립적이다. Abaqus `.inp`는
|
||||
승인된 입력 형식이고 Abaqus CSV는 기능별 blocking quantity의 외부 수치 reference다.
|
||||
Abaqus 내부 적분, stabilization, state 또는 recovery 동작은 FESA architecture contract가
|
||||
아니다.
|
||||
|
||||
핵심 품질 속성:
|
||||
- FEM formulation traceability
|
||||
- explicit I/O contracts
|
||||
@@ -42,7 +47,7 @@ tests/
|
||||
integration/ # analysis orchestration and CLI contracts
|
||||
reference/ # HDF5-to-Abaqus projection and comparison
|
||||
reference/
|
||||
<model-id>/ # approved read-only Abaqus input/CSV bundle
|
||||
<case-dir>/ # declared read-only Abaqus input/required CSV pair
|
||||
.agents/
|
||||
skills/ # Harness and review skills
|
||||
.codex/
|
||||
@@ -302,8 +307,11 @@ Schema requirements:
|
||||
- field output과 history output을 구분한다.
|
||||
- reference comparison을 위한 row identity는 node id, element id, integration point id, step/frame id를 포함한다.
|
||||
- FESA solver는 `results.h5`를 authoritative output으로 쓴다.
|
||||
- Abaqus reference results는 `reference/<model-id>/` 아래 CSV 파일이다.
|
||||
- Verification은 documented IDs, components, units, coordinate system, step/frame identity, tolerance 기준으로 FESA HDF5 rows와 Abaqus reference CSV rows를 비교한다.
|
||||
- Abaqus reference results는 기능 문서가 선언한 기존 CSV 파일이다. Directory/file
|
||||
naming, README, metadata 또는 provenance는 architecture readiness 조건이 아니다.
|
||||
- Verification은 기능이 요구하는 source identity와 component를 결정적으로 대응시키고
|
||||
승인 tolerance를 적용한다. Missing/extra/duplicate/nonfinite required row는 숫자 비교
|
||||
전에 실패한다. 단일 step/final-frame 기능은 별도 CSV step/frame 열을 요구하지 않는다.
|
||||
- FESA HDF5에서 추출한 deterministic CSV view는 optional debugging/review artifact이며 공식 solver output 또는 reference artifact가 아니다.
|
||||
- Writer는 final과 같은 directory의 임시 HDF5에 전체 schema를 쓴 뒤 flush, checked close,
|
||||
read-only reopen/self-check를 수행한다. Existing final은 `ReplaceFileW`, 새 final은
|
||||
@@ -348,7 +356,7 @@ deterministic한 순서로 출력한다.
|
||||
|
||||
| 기능 유형 | 시작 전에 고정할 것 | 주요 구현 경계 | 함께 검증할 것 | 피해야 할 shortcut |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 새 element/material | DOF, interpolation, constitutive law, integration, local axes/sign, invalid geometry/property | Domain record와 mapper, element kernel, DofManager scatter/pattern, SparseAssembler, ResultRecovery | rigid modes/rank/energy, patch·analytical test, rotated coordinates, reference/physics | 기존 TYPE을 비슷한 kernel에 alias, source ID와 internal index 혼용, 검증 전 범용 hierarchy 추가 |
|
||||
| 새 element/material | DOF, interpolation, constitutive law, integration, local axes/sign, feature-approved validity boundary | Domain record와 mapper, element kernel, DofManager scatter/pattern, SparseAssembler, ResultRecovery | feature-required invariants/tests and blocking reference quantities | 서로 다른 물리를 같다고 주장, source ID와 internal index 혼용, 검증 전 범용 hierarchy 추가 |
|
||||
| 새 load/constraint | Abaqus target grammar, application order, units, follower 여부, prescribed-value 의미 | Syntax/mapper, Domain target, full-space LoadAssembler 또는 constraint partition, diagnostics | set/direct target ambiguity, multi-instance identity, nonfinite sum, `Ff-Kfc*dc`, reaction | Element load kernel 존재를 parser 지원으로 간주, penalty를 elimination에 몰래 혼합 |
|
||||
| 새 analysis procedure | governing equation, state variables, increment/time lifecycle, tangent/residual, convergence와 output frame | 별도 Analysis implementation, procedure-specific state/equation owner, solver interface extension | orchestration order, failure atomicity, restart/frame identity, numerical benchmark | V0 hook 사이에 조건문으로 반복/시간 적분 삽입, 사용하지 않는 future state 선할당 |
|
||||
| 새 numerical backend | matrix/index contract, lifecycle, reusable state, failure taxonomy, thread/runtime policy | 기존 `LinearSolver` 또는 `ParallelFor` interface의 concrete adapter, CMake normalized target | empty/dimension/extreme-scale input, repeated call, failed-output preservation, clean runtime discovery | Vendor type을 public header에 노출, silent fallback/regularization, absolute install path 고정 |
|
||||
@@ -356,3 +364,16 @@ deterministic한 순서로 출력한다.
|
||||
|
||||
모든 확장은 PRD의 제품 완료 정의와 요구조건→정식화→I/O→구현→reference→physics gate를
|
||||
따른다. 기존 feature contract에 없는 범위를 편의상 “Abaqus compatible”이라고 넓히지 않는다.
|
||||
|
||||
## MITC4 확장 경계
|
||||
|
||||
MITC4가 구현될 때 Abaqus `S4`와 `S4R` source type은 같은 FESA formulation을 선택한다.
|
||||
Source type은 metadata/diagnostic identity로 보존하지만 FESA integration 또는 hourglass
|
||||
경로를 선택하지 않는다. 6-DOF embedding의 비물리 drilling coordinate에는 physical
|
||||
rotational stiffness block의 positive minimum diagonal에 `1e-3`을 곱한 고정 numerical
|
||||
stabilization만 둔다. Drilling calibration, artificial-energy policy와 별도 drilling result
|
||||
dataset은 이 기능 범위가 아니다.
|
||||
|
||||
Reference comparison은 `reference/shell/` S4와 `reference/shellR/` S4R의 기존 input 및
|
||||
displacement CSV를 사용한다. Global `U1/U2/U3`만 blocking이고 B33과 같은 component-scale
|
||||
mixed tolerance를 적용한다. `UR1/UR2/UR3`은 같은 기준의 warning-only evidence다.
|
||||
|
||||
Reference in New Issue
Block a user