modify docu

This commit is contained in:
NINI
2026-06-12 01:15:14 +09:00
parent 742f311be1
commit 066b352fcb
62 changed files with 458 additions and 389 deletions
+17 -19
View File
@@ -9,7 +9,7 @@
- 기능 요구조건, 이론 정식화, 코드 구현, 검증, 배포 역할을 분리한다.
- 실행 가능성만으로 성공을 판단하지 않고, 레퍼런스 결과와 물리량을 비교해 기능 완료를 판정한다.
- 테스트는 구현 전에 준비한다. 개발 대상 솔버 테스트와 레퍼런스 솔버 결과 비교 테스트를 함께 사용한다.
- Abaqus나 Nastran을 Agent가 직접 실행하지 않는다. `references/`에 저장된 입력 파일, `reference.h5`, deterministic CSV views를 검증 기준으로 사용한다.
- Abaqus나 Nastran을 Agent가 직접 실행하지 않는다. `reference/<model-id>/`에 저장된 `model.inp`, `metadata.json`, Abaqus reference CSV files를 검증 기준으로 사용한다.
- 기본 개발 환경은 C++17 이상, MSVC, CMake, CTest이다.
- 모든 기능은 tolerance 기준을 명시하고, 기준을 만족할 때만 배포 후보가 된다.
@@ -98,9 +98,9 @@
책임:
- mesh, node, element, material, section, boundary condition, load, step 입력 형식을 정의한다.
- authoritative HDF5 result schema와 deterministic CSV view schema를 정의한다.
- authoritative HDF5 result schema와 reference CSV comparison row schema를 정의한다.
- Abaqus input file과 내부 입력 모델 사이의 대응 관계를 정리한다.
- 결과 비교를 위해 reference HDF5 dataset, solver HDF5 dataset, deterministic CSV view의 ID/컴포넌트 규약을 맞춘다.
- 결과 비교를 위해 FESA HDF5 dataset과 Abaqus reference CSV row의 ID/컴포넌트 규약을 맞춘다.
주요 산출물:
- 입력 데이터 schema
@@ -114,27 +114,25 @@ TDD와 검증에 사용할 테스트 모델을 준비하는 Agent이다.
책임:
- 개발 대상 기능을 검증할 최소 모델, benchmark 모델, 회귀 모델을 설계한다.
- `references/`에 보관할 Abaqus input file, `reference.h5`, deterministic CSV view 요구사항을 정의한다.
- `reference/<model-id>/`에 보관할 Abaqus input file, metadata, Abaqus reference CSV 요구사항을 정의한다.
- 레퍼런스 결과에 포함될 물리량과 tolerance를 명시한다.
- 테스트 모델이 요구조건을 실제로 검증하는지 확인한다.
중요 제약:
- Agent는 Abaqus를 직접 실행하지 않는다.
- Abaqus 해석 결과는 사람이 생성하거나 별도 승인된 절차로 생성해 `references/`에 저장한다.
- Abaqus 해석 결과 CSV는 사람이 생성하거나 별도 승인된 절차로 생성해 `reference/<model-id>/`에 저장한다.
- Agent는 저장된 reference artifact만 사용해 비교한다.
권장 reference 구조:
```text
references/
<feature-name>/
reference/
<model-id>/
model.inp
metadata.json
reference.h5
csv/
displacements.csv
reactions.csv
element_forces.csv
stresses.csv
<model-id>_displacements.csv
<model-id>_reactions.csv
<model-id>_internalforces.csv
<model-id>_stresses.csv
```
### Implementation Planning Agent
@@ -203,7 +201,7 @@ python scripts/validate_workspace.py
구현 솔버 결과와 저장된 레퍼런스 결과를 비교하는 Agent이다.
책임:
- 구현 솔버 `results.h5``references/``reference.h5`를 비교하고, deterministic CSV views row identity 검토와 report evidence로 사용한다.
- 구현 솔버 `results.h5`의 rows`reference/<model-id>/`의 Abaqus reference CSV rows를 비교하고, FESA debug CSV views row identity 검토와 report evidence로 사용한다.
- 절점 변위, 반력, 요소 내력, 응력의 tolerance 만족 여부를 평가한다.
- absolute tolerance, relative tolerance, norm-based tolerance를 구분해 적용한다.
- 결과 차이가 tolerance 밖이면 원인 후보를 분류한다.
@@ -296,7 +294,7 @@ flowchart TD
### Gate 3: 테스트 준비 승인
통과 조건:
- 구현 전 실패해야 하는 테스트가 정의되어 있다.
- `references/` artifact 요구사항이 명확하다.
- `reference/<model-id>/` artifact 요구사항이 명확하다.
- 최소 모델, benchmark 모델, 회귀 모델의 목적이 구분되어 있다.
### Gate 4: 구현 검증
@@ -307,7 +305,7 @@ flowchart TD
### Gate 5: 레퍼런스 검증
통과 조건:
- 저장된 reference HDF5 결과와 구현 solver HDF5 결과가 tolerance 안에 있다.
- Abaqus reference CSV 결과와 구현 solver HDF5 결과가 tolerance 안에 있다.
- 절점 변위, 반력, 요소 내력, 응력 비교 결과가 리포트로 남아 있다.
- 실패한 물리량이 없거나 승인된 known limitation으로 기록되어 있다.
@@ -317,11 +315,11 @@ flowchart TD
- 문서와 release note가 준비되어 있다.
- 남은 제한사항이 명확히 기록되어 있다.
## Reference HDF5 / CSV View 비교 기준
## FESA HDF5 / Abaqus Reference CSV 비교 기준
권장 비교 방식:
- authoritative 비교는 `results.h5``reference.h5`의 dataset 기준으로 수행한다.
- CSV는 HDF5 dataset에서 추출한 deterministic view로만 사용한다.
- authoritative 비교는 FESA `results.h5` rows와 Abaqus reference CSV rows 기준으로 수행한다.
- FESA HDF5에서 추출한 deterministic CSV view는 debugging/review 보조 artifact로만 사용한다.
- scalar 값: absolute tolerance와 relative tolerance를 함께 적용한다.
- vector 값: component-wise 비교와 norm 비교를 함께 기록한다.
- stress tensor: component-wise 비교를 기본으로 하고, 필요한 경우 principal stress 또는 von Mises stress를 추가 비교한다.