213 lines
14 KiB
Markdown
213 lines
14 KiB
Markdown
<!-- source-page: 331 -->
|
|
|
|
# 1-6 체적력
|
|
|
|
체적력(body force)은 주로 구조물의 자중이나 관성력을 모델링하는데 사용된다.모든 요소에 재하가 가능하고, 전체좌표계 X , Y , Z 에 대하여 입력이 가능하다.체적력의 기본 적분식은 식 (1.6.1)와 같고, , , ωx y zω ω 의 크기는 밀도와 방향별 중력 계수(gravitational force factor)로부터 계산된다. 형상함수( Ni )는 요소별 강성계산에 사용한 것과 동일하다.
|
|
|
|
$$
|
|
\mathbf {F} _ {i} = \int_ {V _ {e}} N _ {i} \left\{ \begin{array}{l} \omega_ {x} \\ \omega_ {y} \\ \omega_ {z} \end{array} \right\} d V \tag {1.6.1}
|
|
$$
|
|
|
|
여기서,
|
|
|
|
$$
|
|
\begin{array}{l} \mathbf {F} _ {i} \quad : \text { 체적력 } \\ \omega_ {x} \quad : x \text { 방향 단위중량 } \\ \omega_ {y} \quad : y \text { 방향 단위중량 } \\ \omega_ {z} \quad : z \text { 방향 단위중량 } \\ N _ {i} \quad : \text { 형상함수 } \\ \end{array}
|
|
$$
|
|
|
|
<!-- source-page: 332 -->
|
|
|
|
# 1-7 강제변위
|
|
|
|
강제변위(prescribed displacement)는 특정 절점에 대한 변형 후 위치를 알고 있을 때 사용된다. 강제변위는 기본적으로 전체좌표계에 대하여 정의되지만, 절점좌표계와 함께 사용하면 임의의 방향으로의 변위를 모사할 수 있다. 강제변위는 구조물의 변형을 발생시키기 때문에 하중으로 분류되어 있으나, 반력이 발생하는 등경계조건과 유사한 측면이 있다. 특히 강제변위가 적용된 절점과 해당 요소의 강성이 변화되기 때문에, 여러 하중조건을 동시에 푸는 경우 각별한 주의가 필요하다. 예를 들어, 동일한 구조물과 경계조건을 이용하여 여러 하중조건을 동시에 해석하는 경우, 특정 하중조건에서 사용된 임의 절점의 강제변위는 다른 하중조건에의한 결과에서도 그 절점의 변위가 구속된 것과 같은 효과를 야기한다.
|
|
|
|
<!-- source-page: 333 -->
|
|
|
|
# Chapter 2. Equation Solver
|
|
|
|
# 2-1 개요
|
|
|
|
선형연립방정식의 해법은 식 (2.1.1)과 같은 선형 행렬식의 해 u 를 구하는 방법이다.
|
|
|
|
$$
|
|
\mathbf {K} \mathbf {u} = \mathbf {p} \tag {2.1.1}
|
|
$$
|
|
|
|
선형연립방정식 해법은 선형 해석뿐만 아니라, 고유치/좌굴 해석, 동적 해석, 비선형 해석 등 거의 모든 해석군에 이용되며, 해법은 크게 직접해법(direct method)과 반복해법(iterative method)으로 분류할 수 있다. midas FEA에서 사용할 수 있는 방법과 선택사항은 다음과 같다.
|
|
<table><tr><td rowspan="2">직접해법</td><td colspan="2">스카이라인(skyline)</td></tr><tr><td colspan="2">다중프런트법(multi frontal)</td></tr><tr><td rowspan="4">반복해법</td><td rowspan="2">컬레 구배법(conjugate gradient)</td><td>ILUT 예조건화</td></tr><tr><td>자코비 예조건화</td></tr><tr><td rowspan="2">GMRES(generalized minimal residual)</td><td>ILUT 예조건화</td></tr><tr><td>자코비 예조건화</td></tr></table>
|
|
|
|
<!-- source-page: 334 -->
|
|
|
|
# 2-2 직접해법
|
|
|
|
직접해법에서는 방정식의 해를 두 단계에 걸쳐 구하게 된다. 첫 번째 단계는 행렬분해(decomposition)이고, 두 번째 단계는 전-후진 대입(forward-backwardsubstitution : FBS) 과정이다.
|
|
|
|
행렬 분해 과정에서는 대칭인 강성행렬 K 를 T LL 또는 T LDL 형태로 분해한다.
|
|
|
|
$$
|
|
\mathbf {L} \mathbf {L} ^ {T} \mathbf {u} = \mathbf {p} \quad \text { or } \quad \mathbf {L} \mathbf {D} \mathbf {L} ^ {T} \mathbf {u} = \mathbf {p} \tag {2.2.1}
|
|
$$
|
|
|
|
여기서, L 은 하삼각행렬(lower-triangular matrix)이고 D 는 대각행렬(diagonalmatrix)이다. 일반적으로 D 가 포함된 분해법은 행렬이 양의 정부호(positivedefinite)가 아닌 경우에 필요하다. 분해된 행렬 K ( T = LL 또는 T = LDL )는 FBS과정을 통하여 해를 구하는데 이용된다. 먼저 T v L u = 또는 T v DL u = 로 치환하면식 (2.2.1)을 다음과 같이 나타낼 수 있고
|
|
|
|
$$
|
|
\mathbf {L} \mathbf {v} = \mathbf {p} \tag {2.2.2}
|
|
$$
|
|
|
|
Lv p = 의 해 v 는 L 의 하삼각 특성을 이용하여 구할 수 있다. 그리고 v 가 계산되면 T v L u = 또는 T v DL u = 를 이용하여 u 를 계산한다.
|
|
|
|
직접해법 적용시 중요한 점은 행렬의 희소성(sparsity)을 적절히 이용해야 하는 것이다. 일반적으로 유한요소해석 시에 발생하는 행렬 K 는 희소행렬(sparsematrix)이며, 희소성을 활용하는 방법에 따라 계산 시간과 요구되는 메모리 양이현저하게 달라진다. midas FEA에서는 단일 프런트를 이용하는 스카이라인 방법과다중 프런트 행렬을 이용하는 다중프런트법을 제공하고 있다.
|
|
|
|
# 2-2-1 스카이라인 방법
|
|
|
|
스카이라인 방법은 단일 프런트 행렬을 이용하여 행렬 분해를 수행하며, 행렬의저장 방식으로 스카이라인 형태를 이용한다.
|
|
|
|
<!-- source-page: 335 -->
|
|
|
|

|
|
|
|
<details>
|
|
<summary>text_image</summary>
|
|
|
|
P₁ P₂ P₃
|
|
</details>
|
|
|
|
그림 2.2.1 3 영역으로 구분되어 있는 요소망
|
|
|
|
그림 2.2.1과 같은 요소망의 강성행렬을 3개의 부분으로 나누어 표현하면 식(2.2.3)과 같고
|
|
|
|
$$
|
|
\mathbf {K} = \left[ \begin{array}{c c c} \mathbf {K} _ {1 1} & \mathbf {K} _ {2 1} ^ {T} & \mathbf {0} \\ \mathbf {K} _ {2 1} & \mathbf {K} _ {2 2} & \mathbf {K} _ {3 2} ^ {T} \\ \mathbf {0} & \mathbf {K} _ {3 2} & \mathbf {K} _ {3 3} \end{array} \right] \tag {2.2.3}
|
|
$$
|
|
|
|
이를 P P P 1 2 3→ → 순서로 분해한다고 가정하면, P1의 분해와 이에 따른 P2 의 갱신은 다음과 같다.
|
|
|
|
$$
|
|
\mathbf {K} _ {1 1} = \mathbf {L} _ {1 1} \mathbf {L} _ {1 1} ^ {T}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {L} _ {2 1} \mathbf {L} _ {1 1} ^ {T} = \mathbf {K} _ {2 1} \tag {2.2.4}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {K} _ {2 2} - \mathbf {L} _ {2 1} \mathbf {L} _ {2 1} ^ {T} = \mathbf {K} _ {2 2} ^ {*} (= \mathbf {L} _ {2 2} \mathbf {L} _ {2 2} ^ {T})
|
|
$$
|
|
|
|
같은 방법으로 P 의 분해와 P 의 갱신 및 분해를 할 수 있다. 이와 같이 단일 프런트 행렬에 의한 순차적인 행렬의 분해는 그 자유도의 재배치(renumbering)에 따라 계산의 효율성이 크게 좌우된다. 그림 2.2.2는 직사각형 요소망에서 효과적인계산 순서를 도식적으로 표현한 것이다. 자유도 재배치를 구현하기 위한 알고리즘은 Sloan1 이 제안한 프런트 감소법(wavefront reduction method)을 이용한다. 전
|
|
|
|
<!-- source-page: 336 -->
|
|
|
|
진 대입(forward substitution)은 행렬의 분해와 같은 순서로 이루어지고, 후진 대입(backward substitution)은 그 역순으로 계산하게 된다.
|
|
|
|

|
|
|
|
<details>
|
|
<summary>text_image</summary>
|
|
|
|
1
|
|
5
|
|
9
|
|
</details>
|
|
|
|
그림 2.2.2 스카이라인 방법에서 사용하는 자유도 배치 순서
|
|
|
|
# 2-2-2 다중프런트법
|
|
|
|
다중프런트법은 여러 개의 프런트 행렬을 동시에 고려하여 행렬의 분해를 수행하며, 행렬을 요소 단위로 저장하여 계산하는 방법2 을 이용한다. 그림 2.2.1과 같은요소망에 대하여 식 (2.2.5)과 같이 배치하고
|
|
|
|
$$
|
|
\mathbf {K} = \left[ \begin{array}{c c c} \mathbf {K} _ {1 1} & \mathbf {0} & \mathbf {K} _ {2 1} ^ {T} \\ \mathbf {0} & \mathbf {K} _ {3 3} & \mathbf {K} _ {2 3} ^ {T} \\ \mathbf {K} _ {2 1} & \mathbf {K} _ {2 3} & \mathbf {K} _ {2 2} \end{array} \right] \tag {2.2.5}
|
|
$$
|
|
|
|
이를 1 3 2( , ) P P P → 순서로 분해하게 되면, 아래의 식 (2.2.6), (2.2.7)과 같이 표현할 수 있다.
|
|
|
|
<!-- source-page: 337 -->
|
|
|
|
$$
|
|
\mathbf {K} _ {1 1} = \mathbf {L} _ {1 1} \mathbf {L} _ {1 1} ^ {T}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {L} _ {2 1} \mathbf {L} _ {1 1} ^ {T} = \mathbf {K} _ {2 1} \tag {2.2.6}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {K} _ {2 2} - \mathbf {L} _ {2 1} \mathbf {L} _ {2 1} ^ {T} = \mathbf {K} _ {2 2} ^ {*}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {K} _ {3 3} = \mathbf {L} _ {3 3} \mathbf {L} _ {3 3} ^ {T}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {L} _ {2 3} \mathbf {L} _ {3 3} ^ {T} = \mathbf {K} _ {2 3} \tag {2.2.7}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {K} _ {2 2} ^ {*} - \mathbf {L} _ {2 3} \mathbf {L} _ {2 3} ^ {T} = \mathbf {K} _ {2 2} ^ {* *}
|
|
$$
|
|
|
|
다중 프런트 행렬에 의한 행렬의 분해 역시 자유도 재배치가 필요하다. 그림 2.2.3은 직사각형 요소망에서 효과적인 계산 순서를 도식적으로 표현한 것이다. 자유도재배치를 구현하기 위한 알고리즘은 재귀 이분할법(recursive bisection)을 이용한다. 전진 대입은 행렬의 분해와 같은 순서로 이루어지고, 후진 대입은 그 역순으로계산하게 된다.
|
|
|
|

|
|
|
|
<details>
|
|
<summary>text_image</summary>
|
|
|
|
1
|
|
2 1 4 1 2
|
|
3
|
|
3
|
|
1 2 1 1 2 1
|
|
</details>
|
|
|
|
그림 2.2.3 다중프런트법에서 사용하는 자유도 분할법
|
|
|
|
<!-- source-page: 338 -->
|
|
|
|
# 2-3 반복해법
|
|
|
|
반복해법(iterative method)은 현 단계의 해 ui 와 잉여값( r p - Ku i i= )을 이용하여식 (2.1.1)의 정해에 가까운 값을 찾아가는 방법이다. ui+1을 계산하는 방법을 간략하게 표현하면 식 (2.3.1)와 같다.
|
|
|
|
$$
|
|
\mathbf {u} _ {i + 1} = \mathbf {u} _ {i} + \boldsymbol {\Gamma} _ {i} \mathbf {Q} (\mathbf {p} - \mathbf {K} \mathbf {u} _ {i}) \tag {2.3.1}
|
|
$$
|
|
|
|
여기서, Γi 는 반복법의 종류에 따라 결정되는 행렬 연산자이고, Q 는 수렴 속도를 좌우하는 예조건화 기법(pre-conditioner)이다. 반복해법에서 반복 계산의 지속여부는 최대 반복 회수(maximum iteration)와 잉여값 r p - Ku i i= 의 수렴 허용범위(convergence tolerance)를 기준으로 결정한다. midas FEA 에서는 이 값을 사용자가 결정할 수 있으며, 그 기본값은 다음과 같다.
|
|
<table><tr><td rowspan="2">최대 반복 회수</td><td> $N/4 >1000$ </td><td> $N/4$ </td></tr><tr><td> $N/4 < 1000$ </td><td>1000</td></tr><tr><td>수렴 허용범위</td><td colspan="2"> $\|\mathbf{r}_{i}\| < 10^{-6} \|\mathbf{f}\|$ </td></tr></table>
|
|
|
|
# 2-3-1 켤레구배법과 GMRES
|
|
|
|
midas FEA에서는 행렬이 대칭이며 양의 정부호인 경우에 사용하는 켤레구배법3 (CG:conjugate gradient) 방법과 일반적인 행렬에 적합한 GMRES4 (generalizedminimal residual) 방법을 사용할 수 있다. 켤레구배법과 GMRES 방법 모두 잉여값 ir 가 Krylov 부분공간(subspace) $s p a n \{ \mathbf { r } _ { 0 } , \mathbf { K } \mathbf { r } _ { 0 } , \mathbf { K } ^ { 2 } \mathbf { r } _ { 0 } , \ldots \}$ 내에서 직교하도록 해
|
|
|
|
<!-- source-page: 339 -->
|
|
|
|
의 탐색 방향을 설정한다. 따라서 수치적으로 오차가 없는 계산을 하게 되면 이론적으로 N(구조물의 자유도 개수)회의 반복 계산을 통해 정해를 구할 수 있다.
|
|
|
|
켤레구배법은 켤레 방향(conjugated direction : $\mathbf { d } _ { i } = \mathbf { r } _ { i } + \beta _ { i } \mathbf { d } _ { i - }$ −1)을 탐색 방향으로설정하여 해를 찾아가는 방법이다. 켤레구배법은 K 의 대칭성을 이용하여 잉여값의 직교성을 쉽게 얻을 수 있는 특징이 있다. GMRES 방법에서는 잉여값 ir 가Krylov 부분공간 에서 직교하는 성질을 가지도록 반복계산의 매 단계마다 Gram-Schmidt 직교화(orthogonalization)을 수행한다. Gram-Schmidt 직교화는 반복 회수가 늘어남에 따라 계산량이 증가하기 때문에 적정 회수의 반복계산 이후에Krylov 부분공간을 새롭게 구축하는 방법을 이용한다.
|
|
|
|
# 2-3-2 예조건화 기법
|
|
|
|
식 (2.3.1)에서 $\mathbf { K } ^ { - 1 } \equiv \mathbf { 0 }$ 대신 사용하게 되면 1회 반복 계산으로 정해를 얻을 수있는 것과 같이 예조건화 기법은 적은 양의 계산으로 −1 K 와 유사한 행렬$( { \bf \nabla Q } \approx { \bf K } ^ { - 1 }$ )을 얻음으로써 수렴 속도를 증가시키는 역할을 한다. midas FEA에서는ILUT 5 (incomplete LU decomposition with threshold) 예조건화 기법과 자코비(Jacobi) 예조건화 기법을 이용할 수 있다. ILUT 기법은 행렬의 분해 과정에서 발행하는 Fill-In에 허용치를 적용한 불완전 LU 분해를 이용하는 것이다. 자코비 예조건화 기법은 행렬 K 의 대각항만을 고려하여 Q K = diag( ) 를 이용한다.
|
|
|
|
<!-- source-page: 340 -->
|
|
|
|
# 2-4 특징
|
|
|
|
선형연립방정식의 해법은 다음과 같이 해석하고자 하는 문제에 따라 midas FEA프로그램이 자동으로 결정하는 경우가 있다.
|
|
|
|
<table><tr><td>좌굴해석 또는 Lanczos 방법 이용</td><td>다중프런트법</td></tr><tr><td>반복법을 이용한 동해석</td><td>다중프런트법</td></tr><tr><td>구속방정식(constraint equation)이 포함된 문제</td><td>다중프런트법</td></tr><tr><td>비대칭 강성 발생(반복법을 사용할 경우)</td><td>GMRES</td></tr></table>
|
|
|
|
선형 연립방정식의 해법은 해석하고자 하는 문제에 따라 크게 성능이 달라지므로각각의 경우에 적절한 해법을 선택하는 것이 필요하다. 각 해법의 특징 및 성능은다음과 같다.
|
|
|
|
직접해법 : 행렬의 상태(condition)에 관계 없이 안정적으로 해를 계산하지만, 메모리 요구량이 많다. 사용자의 시스템 메모리가 부족한 경우에는 자동적으로 디스크저장소(disk storage)를 이용한다.
|
|
|
|
- 스카이라인 방법 : 1차원 형상의 구조물 해석에 적합
|
|
- 다중프런트법 : 2,3차원 형상의 구조물 해석에 적합
|
|
|
|
반복해법 : 메모리 요구량이 적은 반면, 행렬의 상태에 따라 계산 시간이 매우 상이하다. 입체요소가 많은 경우에 적합하다.
|
|
|
|
\- ILUT 예조건화 : 반복 회수가 적음
|
|
|
|
-자코비 예조건화 : 예조건화 작업이 빠르고 메모리 요구량이 적음
|