# 아키텍처 ## 디렉토리 구조 ``` src/ ├── Analysis/ # Analysis 관련 class ├── Property/ # 요소 재료 및 속성 관련 class ├── Element/ # 절점, 요소 관련 class ├── Boundary/ # 경계조건 관련 class ├── Load/ # 하중 관련 class └── 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 ``` ## 패턴 당신과 상의 후 수치해석 솔버에 최적화된 디자인 패턴을 선택하겠습니다. ## 데이터 흐름 ``` 해석 입력 파일 -> 파일 파싱 후 AnalysisModel 생성 -> 해석 step 루프 진입 -> 현재 해석 step 진행 -> 해석 결과 파일에 쓰기 -> 다음 해석 step 진입 -> 반복 -> 해석 종료 ``` ## 상태 관리 당신과 상의 후 수치해석 솔버에 최적화된 상태 관리 방식을 선택하겠습니다.