diff --git a/AGENTS.md b/AGENTS.md index 91bf11c..30df92c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,6 +4,7 @@ - C++ 17 이상 - Math library : Intel OneApi MKL - Parallel library : Intel OneApi TBB +- 해석 결과 저장 형식 : hdf5 형식 사용 - git 주소 : https://teagit.mimi1011.synology.me/baram2584/FESADev.git ## 아키텍처 규칙 @@ -25,8 +26,7 @@ ## 검증 - 기본 검증 스크립트는 `python scripts/validate_workspace.py` -- Node 프로젝트면 `package.json`의 `lint`, `build`, `test` 스크립트를 자동 탐지해 순서대로 실행 -- 다른 스택이면 `HARNESS_VALIDATION_COMMANDS` 환경 변수에 줄바꿈 기준으로 검증 커맨드를 지정 +- 기준이 되는 Reference 모델들의 해석결과와 비교로 검증 수행 ## 명령어 - `python scripts/execute.py `: Codex 기반 phase 순차 실행 diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 07260dd..445ae90 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -11,16 +11,68 @@ src/ └── Util/ # 수학 라이브러리 등 솔버 utility 관련 class ``` +## 클래스 구조 +``` + +Domain # 전체 해석 객체들을 저장하고 관리하는 class + +AnalysisModel # 현재 해석 step에서 active 되는 해석 객체들을 저장하는 class + +AnalysisObject +├── Analysis # Analysis 관련 class + ├── StaticAnalysis + ├── DynamicAnalysis + ├── FrequencyAnalysis + ├── ... +├── Property # 요소 재료 및 속성 관련 class + ├── 1DProperty + ├── 2DProperty + ├── 3DProperty + ├── ... +├── Element # 절점, 요소 관련 class + ├── 1DElement + ├── Truss + ├── Beam + ├── ... + ├── 2DElement + ├── MITC3 + ├── MITC4 + ├── ... + ├── 3DElement + ├── Hexahedral + ├── Tetrahedral + ├── Wedge + ├── Pyramid + ├── ... + ├── ... +├── BoundaryCondition # 경계조건 관련 class + ├── Fix + ├── RBE2 + ├── RBE3 + ├── ... +├── Load # 하중 관련 class + ├── NodalLoad + ├── PressureLoad + ├── BodyFroce + ├── ... + +InputParser # input 파일 파싱 class +ResultsWriter # 해석 결과 저장 class +MKLWrapper # MKL Wrapper +Vector # Vector +Matrix # Matrix + + +``` + ## 패턴 -{사용하는 디자인 패턴 (예: Server Components 기본, 인터랙션이 필요한 곳만 Client Component)} +당신과 상의 후 수치해석 솔버에 최적화된 디자인 패턴을 선택하겠습니다. ## 데이터 흐름 ``` -해석 입력 파일 -{데이터가 어떻게 흐르는지 (예: -사용자 입력 → Client Component → API Route → 외부 API → 응답 → UI 업데이트 -)} +해석 입력 파일 -> 파일 파싱 후 AnalysisModel 생성 -> 해석 step 루프 진입 -> 현재 해석 step 진행 -> 해석 결과 파일에 쓰기 -> 다음 해석 step 진입 -> 반복 -> 해석 종료 + ``` ## 상태 관리 -{상태 관리 방식 (예: 서버 상태는 Server Components, 클라이언트 상태는 useState/useReducer)} +당신과 상의 후 수치해석 솔버에 최적화된 상태 관리 방식을 선택하겠습니다. diff --git a/docs/PRD.md b/docs/PRD.md index 3f98d1d..cf943b0 100644 --- a/docs/PRD.md +++ b/docs/PRD.md @@ -31,4 +31,6 @@ MITC4 Shell 요소를 사용해 구조 해석을 하는 유한요소 솔버를 - Heat transfer 해석 - 절점 온도에 대한 열전도 요소 행렬 계산 - 온도 하중 계산 - - \ No newline at end of file +5. Phase 5 + - 1D, 3D 요소 구현 + - 기타 하중, 경계조건 구현 \ No newline at end of file