revert
This commit is contained in:
+15
-97
@@ -1,104 +1,22 @@
|
||||
# PRD: FESA MITC4 Linear Static Shell Solver
|
||||
# PRD: C++/MSVC Harness
|
||||
|
||||
## 목적
|
||||
FESA는 유한요소 input 파일을 읽어 구조해석을 수행하고, 절점과 요소의 해석 결과를 출력하는 C++ 구조해석 솔버를 제공한다. 초기 제품 기능은 MITC4 4절점 shell element 기반 선형정적 해석이다.
|
||||
## 목표
|
||||
Codex Harness가 C++/MSVC 프로젝트에서 phase planning, TDD guard, commit validation, workspace validation을 일관되게 수행하게 한다.
|
||||
|
||||
## 사용자
|
||||
- 구조해석 솔버를 개발하는 C++/MSVC 개발자
|
||||
- Abaqus/Nastran 계열 input과 결과 검증 방식을 이해하는 해석 엔지니어
|
||||
- reference solver 결과와 FESA 결과를 비교해 기능 release를 판단하는 reviewer
|
||||
- Codex/FESA agent workflow로 기능을 단계별 구현하는 agent
|
||||
|
||||
## 문제 정의
|
||||
구조해석 솔버는 단순히 코드를 빌드하는 것만으로 정확성을 판단할 수 없다. 요소 정식화, 입력 mapping, 선형해법, 결과 출력, reference solver 비교, tolerance 판정이 모두 명시되어야 한다. FESA는 이 과정을 문서화된 단계와 자동 검증으로 묶어 구현 실수를 줄인다.
|
||||
- Windows/MSVC 기반 C++ 개발자
|
||||
- Harness phase를 작성하고 실행하는 Codex agent
|
||||
- Harness 결과를 검토하는 reviewer
|
||||
|
||||
## 핵심 기능
|
||||
1. Abaqus `.inp` subset 입력
|
||||
- `*NODE`, `*ELEMENT`, `*MATERIAL`, `*ELASTIC`, `*SHELL SECTION`, `*BOUNDARY`, `*CLOAD`, `*STEP` 지원
|
||||
- unsupported keyword는 명시적 diagnostic을 낸다.
|
||||
2. MITC4 shell 선형정적 해석
|
||||
- 4-node quadrilateral shell
|
||||
- 6 DOF per node: `U1, U2, U3, UR1, UR2, UR3`
|
||||
- isotropic linear elastic shell section
|
||||
- 2x2 Gauss integration
|
||||
- membrane, bending, transverse shear resultants
|
||||
3. Sparse system solve
|
||||
- CSR global stiffness assembly
|
||||
- Intel oneAPI MKL PARDISO direct solver
|
||||
- constrained DOF 처리와 reaction recovery
|
||||
4. Parallel computation
|
||||
- Intel oneAPI TBB 기반 element stiffness/result recovery 병렬화
|
||||
- deterministic assembly merge
|
||||
5. HDF5 result output
|
||||
- mesh metadata
|
||||
- nodal displacement
|
||||
- nodal reaction
|
||||
- element internal force/resultant
|
||||
- element stress
|
||||
6. Reference solver verification
|
||||
- stored Abaqus S4R reference HDF5 artifact와 비교
|
||||
- Abaqus S4 artifact는 diagnostic reference로 보관
|
||||
- nodal displacement, reaction, element internal force, stress 비교
|
||||
- tolerance `1e-5` 단일 기준
|
||||
7. Solver state and result model
|
||||
- `Domain`, `AnalysisModel`, `AnalysisState` 분리
|
||||
- step/frame/field/history HDF5 결과 구조
|
||||
- constrained DOF 제거와 full-system reaction recovery
|
||||
8. Extensible object creation
|
||||
- Abaqus parser와 element/material/load/boundary factory registry 분리
|
||||
- 향후 1D/3D 요소, nonlinear, dynamic, thermal 기능 추가를 위한 module boundary 유지
|
||||
|
||||
## 성공 기준
|
||||
- MITC4 요구조건, 연구, 정식화, I/O, reference model, 구현 계획, reference verification, release 문서가 작성되어 있다.
|
||||
- 모든 C++ production 변경은 관련 테스트가 먼저 작성되고 실패가 확인된 뒤 구현된다.
|
||||
- MSVC x64 Debug CMake build와 CTest가 통과한다.
|
||||
- 다음 테스트모델이 stored Abaqus S4R reference와 `abs-or-rel 1e-5` 이내로 일치한다.
|
||||
- membrane patch
|
||||
- bending patch
|
||||
- transverse shear patch
|
||||
- twist patch
|
||||
- coarse Scordelis-Lo shell
|
||||
- HDF5 output schema가 reference comparison에 필요한 모든 id, component, step/frame, units, metadata를 포함한다.
|
||||
- Essential boundary condition reaction은 `K_full * U_full - F_full` 기준으로 계산되어 reference reaction과 비교 가능하다.
|
||||
- Singular system 또는 solver factorization 실패는 명시적 diagnostic으로 보고된다.
|
||||
1. CMake/MSVC/x64/Debug 기반 workspace validation
|
||||
2. C++ source/header 변경에 대한 엄격한 TDD guard
|
||||
3. npm 없이 Python self-test와 CMake/CTest 검증을 수행하는 pre-commit hook
|
||||
4. C++ 프로젝트에 맞는 Harness workflow/review prompt
|
||||
5. CMake project가 아직 없어도 Harness 자체 테스트가 가능한 no-op validation path
|
||||
|
||||
## 제외 사항
|
||||
- Nastran BDF parser
|
||||
- nonlinear static analysis
|
||||
- geometric nonlinearity
|
||||
- dynamic analysis
|
||||
- eigen/buckling analysis
|
||||
- material plasticity
|
||||
- layered composite shell section
|
||||
- contact analysis
|
||||
- Abaqus/Nastran 실행 자동화
|
||||
- reference artifact 자동 생성
|
||||
- OpenSees API 호환성
|
||||
- Phase 1 mesh quality scoring
|
||||
|
||||
## 확장 로드맵
|
||||
MITC4 선형정적 기능이 reference 검증을 통과한 뒤 다음 기능을 별도 요구조건과 정식화 문서로 진행한다.
|
||||
|
||||
1. nonlinear static analysis
|
||||
2. nonlinear dynamic analysis
|
||||
3. heat transfer and thermal-stress coupling
|
||||
4. 1D truss/beam and 3D solid elements
|
||||
5. additional material models and properties
|
||||
|
||||
## Dependency Requirements
|
||||
- MSVC and CMake must be available for C++ build validation.
|
||||
- Intel oneAPI MKL must be available through `MKLROOT` or known oneAPI installation paths.
|
||||
- Intel oneAPI TBB must be available through `TBBROOT` or known oneAPI installation paths.
|
||||
- HDF5 C library must be supplied through `HDF5_ROOT` or `HDF5_DIR`; the current local default is `C:\Program Files\HDF_Group\HDF5\2.1.1`, with CMake package files under `C:\Program Files\HDF_Group\HDF5\2.1.1\cmake`.
|
||||
- Python 3 must be available for harness validation and phase execution.
|
||||
|
||||
## Release Requirements
|
||||
Solver feature release is allowed only when:
|
||||
|
||||
1. Requirements are approved.
|
||||
2. Research evidence and formulation are reviewed.
|
||||
3. I/O contract and HDF5 schema are fixed.
|
||||
4. Reference model artifacts exist and provenance is documented.
|
||||
5. C++ TDD implementation passes CTest.
|
||||
6. Reference comparison passes tolerance `1e-5`.
|
||||
7. Known limitations are written in the release document.
|
||||
- 이전 FESA solver source tree 복원
|
||||
- JavaScript/TypeScript fallback 유지
|
||||
- Abaqus reference artifact 생성 또는 solver reference 비교 구현
|
||||
- Visual Studio `.sln`/`.vcxproj` 전용 MSBuild workflow
|
||||
|
||||
Reference in New Issue
Block a user