105 lines
5.0 KiB
Markdown
105 lines
5.0 KiB
Markdown
# PRD: FESA MITC4 Linear Static Shell Solver
|
|
|
|
## 목적
|
|
FESA는 유한요소 input 파일을 읽어 구조해석을 수행하고, 절점과 요소의 해석 결과를 출력하는 C++ 구조해석 솔버를 제공한다. 초기 제품 기능은 MITC4 4절점 shell element 기반 선형정적 해석이다.
|
|
|
|
## 사용자
|
|
- 구조해석 솔버를 개발하는 C++/MSVC 개발자
|
|
- Abaqus/Nastran 계열 input과 결과 검증 방식을 이해하는 해석 엔지니어
|
|
- reference solver 결과와 FESA 결과를 비교해 기능 release를 판단하는 reviewer
|
|
- Codex/FESA agent workflow로 기능을 단계별 구현하는 agent
|
|
|
|
## 문제 정의
|
|
구조해석 솔버는 단순히 코드를 빌드하는 것만으로 정확성을 판단할 수 없다. 요소 정식화, 입력 mapping, 선형해법, 결과 출력, reference solver 비교, tolerance 판정이 모두 명시되어야 한다. FESA는 이 과정을 문서화된 단계와 자동 검증으로 묶어 구현 실수를 줄인다.
|
|
|
|
## 핵심 기능
|
|
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으로 보고된다.
|
|
|
|
## 제외 사항
|
|
- 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.
|