79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
# 아키텍처
|
|
|
|
## 디렉토리 구조
|
|
```
|
|
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 진입 -> 반복 -> 해석 종료
|
|
|
|
```
|
|
|
|
## 상태 관리
|
|
당신과 상의 후 수치해석 솔버에 최적화된 상태 관리 방식을 선택하겠습니다.
|