Journal Search Engine
Search Advanced Search Adode Reader(link)
Download PDF Export Citaion korean bibliography PMC previewer
ISSN : 2234-6937(Print)
ISSN : 2287-6979(Online)
Journal of Korea institue for Structural Maintenance Inspection Vol.18 No.2 pp.30-37
DOI : https://doi.org/10.11112/jksmi.2014.18.2.030

An Analysis Method of Large Structure Using Matrix Blocking

Sung-Jin Jung1), Min-Sup Lee2)*
1)Membership, Hannam University Professor of Architectural Engineering
2)Membership, Hannam University Department of Architecture PhD, corresponding author

• 본 논문에 대한 토의를 2014년 4월 30일까지 학회로 보내주시면 2014년 5월호에 토론결과를 게재하겠습니다.

Corresponding author: E-mail: alstjq1@hanmail.net
June 20, 2013 September 13, 2013 October 4, 2013

Abstract

In this study, we studied how to perform the structural analysis which need a large-capacity flash memory with the computer program when the flash memory storage of a personal computer has no enough room for the analysis of structure. As one of the solutions of this problem, the blocking method of stiffness matrix, which is a method that stiffness matrix is divided by a few blocks and each block is sequentially used for the calculation of matrix decomposition, is proposed and an algorithm available in computer program is derived on the method. Finally, A structural analysis program (sNs) based on this study is developed and the correctness and efficiency of the algorithm is founded through some examples which are fundamental in structural analysis.


블록화기법을 이용한 대형구조물의 해석방법

정 성진1), 이 민섭2)*
1)정회원, 한남대학교 건축공학과 교수
2)정회원, 한남대학교 건축공학과 박사과정, 교신저자

초록

본 연구에서는 개인 컴퓨터의 플래시 메모리가 충분하지 않을 경우 대용량의 플래시 메모리를 필요로 하는 구조해석을 컴퓨터 프로그램 으로 수행하는 방법론을 연구하였다. 이러한 문제점의 해결방안으로 강성행렬의 블록화기법 -강성행렬이 몇 개의 블록으로 나뉘고 각각의 블록에 대하여 행렬분해가 수행되는 방법- 을 제안하였으며 제안된 방법론을 바탕으로 컴퓨터 프로그래밍이 가능한 알고리즘을 제시하였 다. 끝으로, 본 연구를 바탕으로 구조해석 프로그램을 개발하였으며 몇 가지 기초적인 구조해석 예제를 통하여 개발 알고리즘의 정합성 및 효율성을 확인할 수 있었다.


    1.서 론

    최근 상용 구조해석 프로그램에서 제공하고 있는 그래픽 인터페이스 (Graphic Interface)가 편리해짐에 따라 구조해석 모형을 작성하는 방식에서 많은 변화가 일어나고 있다. 특히, 과거에는 구조물의 거동을 잘 나타낼 수 있으면서 단순화 된 해석모형을 이용하여 구조해석을 수행하였으나, 최근에 들어 서는 구조물을 최대한 세밀하게 모형화하여 해석을 수행하 는 방향으로 구조해석 동향이 변화하고 있다.

    이러한 경향은, 구조해석 시 고려해야 할 절점 수 및 부재 수를 기하급수적으로 증가시키게 되어, 결과적으로 상용 구 조해석 프로그램의 안정적인 연산 수행을 위해서는 일시에 많은 양의 메모리 (Memory)를 필요로 하는 문제점을 일으 키게 되었다.

    일부에서는 개인용 컴퓨터 (Personal Computer)의 메모리 용량이 비약적으로 증가하고 있으므로 이러한 문제는 해소 될 수 있는 문제로 보고 있다. 이러한 판단에 따라 이들은 향후 구조실무자들이 더욱 상세한 구조해석 모형을 작성할 수 있을 것이며, 또한 이러한 구조물을 해석하는데 있어서 아무런 제약을 받지 않을 것으로 판단하고 있다.

    그러나 사실적인 구조해석 모형화 경향의 심화는 가용할 수 있는 메모리의 더욱 많은 부분을 전⋅후처리를 위한 그 래픽 인터페이스에 할당하도록 요구하게 될 것이다. 또한 다 양한 프로그램들을 통하여 여러 가지 작업이 동시에 수행되 어야하는 향후의 업무환경은 상용 구조해석 프로그램이 가 용할 수 있는 메모리의 크기를 암묵적으로 제한할 수밖에 없 을 것이다.

    이러한 이유로 인해 개인용 컴퓨터를 이용한 구조해석은 제한적인 메모리를 사용하여 이루어질 수밖에 없으며, 부족 한 메모리 공간상에서 대용량 행렬연산 수행을 위한 최적의 방법론을 찾는 것은 여전히 해결되어야 할 문제점으로 인식 되고 있다.

    전술된 문제점들을 해결하기 위한 방법들로는 부분구조법 (Substructuring method) (Przemieniecki, 1963), 병렬연산 (Parallel computing) (Patterson and John, 1998), 블록화기법 (Blocking method) (Bathe, 1996) 등 여러 가지 방법들이 있으며, 이들 에 대해서는 여전이 여러 분야에서 활발히 연구되고 있다.

    본 연구에서는, 전술된 제 방법들 중 강성행렬을 가용 가능 한 메모리 범위 내에서 몇 개의 블록 (Block)으로 나누고, 개 별 블록으로 나누어진 강성행렬을 순차적으로 메모리에 저장 하여 연산을 수행함으로써 전체 구조물에 대한 구조해석을 원활하게 수행하는 방법에 대하여 연구하고 있다. 또한 제시된 방법론을 바탕으로 유한요소해석 (Finite Element Analysis) 프로그램을 구현하였으며, 예제 검증을 통하여 제안된 방법 론의 효율성을 검증하고 있다.

    2.블록화기법 알고리즘

    컴퓨터 프로그램을 이용한 구조해석에서 풀어야할 평형방 정식의 가장 간단한 형태는 식 (1)과 같다.

    KU = R
    (1)

    여기서, K = 강성행렬 (Stiffness Matrix)

    U = 변위벡터 (Displacement Vector)

    R = 하중벡터 (Load Vector)

    식 (1)과 같은 방정식을 풀기 위한 컴퓨터프로그램을 작성 할 때, 가장 먼저 수행하여야 할 작업은 컴퓨터 메모리에 K 행렬과 R 벡터를 올릴 수 있느냐의 문제를 판단하는 것이라 볼 수 있다. 이때 컴퓨터 메모리가 충분하지 못하여 이들 행 렬과 벡터를 한 번에 올릴 수 없다면, 이를 해결하기 위한 방법을 찾아야 하는 문제가 발생한다. 이러한 문제를 해결하 기 위한 방법들은 여러 가지가 있을 수 있는데, 본 연구에서 는 블록화기법 (Blocking Method)을 이용하여 문제를 해결 하기 위한 방법에 대해 연구하고 있다.

    블록화기법을 이용하여 대용량의 메모리가 요구되는 문제 를 풀기 위한 과정을 크게 나누어 보면 Table 1과 같이 정리 될 수 있다. Table 1에서의 첫 번째 과정은 컴퓨터 프로그램 작성 시 사용된 프로그래밍 언어 (Programming Language) 와 관련이 있다. 즉, 구조해석 프로그램이 실행 (Run)되는 시점에서 얼마나 큰 메모리를 사용할 수 있는지를 알아내기 위한 방법은 프로그래밍 컴파일러에 따라 조끔씩 다르므로 각자의 형편에 맞게 처리하면 된다. 본 연구에서 사용한 인 텔포트란 (Intel Fortran)의 경우에는 포인터 (Pointer)와 메 모리 할당 (Allocate) 문장을 이용하면, 컴퓨터 프로그램이 실 행되는 시점에서 사용가능한 메모리의 크기를 정할 수 있다.

    따라서, 본 연구에서는 Table 1에 나타난 과정 중 두 번째 및 세 번째 방법에 대해서 연구하고 있다.

    2.1.행렬분해법의 분석

    본 연구에서는, 행렬분해 (Matrix Decomposition)를 위한 제 기법 중 가우스 소거법 (Gauss Elimination Method) (Bathe, 1996)을 응용한 LDLT법에 대하여 연구하고 있다.

    LDLT법을 이용하여 평형방정식의 해를 구하는 과정은 식 (2a)~식 (2d)와 같다.

    KU = LDL T U = R
    (2a)
    LV = R
    (2b)
    DL T U = V
    (2c)
    L T U = D 1 V
    (2d)

    여기서, L = 하부삼각행렬 (Lower Triangle Matrix)

    LT = 상부삼각행렬 (Upper Triangle Matrix)

    D = 대각행렬 (Diagonal Matrix)

    LDLT법을 이용한 구조해석 프로그램들은 일반적으로 대각 행렬 D와 상부삼각행렬 LT를 구한 다음, 이를 이용하여 평 형방정식의 해를 구하는 방식을 채택하고 있다.

    열소거법 (Active Column Solver) (Farhat and Wilson, 1988) 을 이용할 경우, 강성행렬은 Fig. 1과 같이 메모리에 저장된 다. 이와 같이 저장된 강성행렬에 대하여 LDLT법을 이용한 행렬분해를 수행하면, Fig. 2와 같아진다. Fig. 2에 나타난 lij, djj를 구하기 위한 알고리즘을 정리하면, Table 2와 같다. 여기서 주목해야 할 점은, 식 (4a)에서 볼 수 있는 바와 같 이 j-자유도에서 lij 구하기 위해서는 중간변수 gij가 필요 한데, 이 때 이전 단계에서 계산된 lri가 필요하다는 점이다. 이러한 사실의 의미를 명확히 파악해보기 위해서는, Fig. 1 과 같이 저장된 강성행렬을 LDLT법을 이용하여 분해하기 위 한 과정을 분석해볼 필요가 있다.

    먼저 Fig. 1과 같이 저장된 강성행렬에 대한 스카이라인 (Skyline)을 구해보면, m1=1, m2=1, m3=3, m4=1, m5=5, m6=4, …, mn=n-4+1이 된다.

    여기서 자유도 2 (2열)에 대한 l12를 구하기 위해서는 식 (4a)에서와 같이 g12가 필요한데, 이 값은 식 (3a) 또는 식 (3b)를 이용하여 구할 수 있다. 이 경우 m1=1, m2=1이므로 mm = max (m1, m2)= 1가 된다. 따라서 g12는 식 (3a)로부터 바로 구할 수 있으며, 식 (3b)는 계산할 필요가 없다. 이와 같이 g12를 구한 후, 식 (4a)와 식 (4b)를 이용하여 l12를 구 하면 된다. 자유도 3 (3열)의 경우,l13l23에 해당하는 강 성행렬의 항들이 스카이라인 밖에 존재하므로 이들을 계산 할 필요가 없다. 따라서 식 (4b)로부터 d33 = k33 을 바로 구 할 수 있다.

    자유도 4 (4열)의 경우에는 m4=1이므로 l14~l34 구하여 야 식 (4b)로부터 d44를 구할 수 있다. l14l34 구하기 위한 과정을 정리해보면 Table 3과 같다.

    Table 3으로부터 알 수 있는 바와 같이 g24 계산하는 과 정에서 l12가 필요한데, 이 값은 자유도 2 (2열)를 소거하는 과정 중에 계산되는 값이다. 이와 같이 g24 계산할 때 l12 가 필요하게 된 이유는 자유도 2와 자유도 4는 서로 연관성 (Coupled Simultaneous Equation)을 가지고 있기 때문이다. 컴퓨터 프로그램에서는 일반적으로 Fig. 1과 같은 행렬을 일차원배열 (One Dimensional Array)에 저장한 후 소거를 한다. 이와 같이 저장할 경우, Fig. 1과 같은 강성행렬은 Fig. 3과 같이 일차원배열로 저장될 것이다.

    구조해석 프로그램이 실행되는 시점에서, Table 1의 절차 에 따라 사용가능한 메모리를 계산하여 보았더니 일차원배 열을 4개 밖에 사용할 수 없는 상황을 가정해 보자. 이 경우 에는 (k11, k22, k12, k33), (k44, k34, k24, k14), (k55, k66, k56, k46) 등과 같이 블록 (Block)으로 나누어 이들 값을 파일 (File) 등에 써놓은 다음, 필요한 시점에서 각 블록의 값을 파일로부터 읽은 후 이들 값을 A(1)~A(4)에 저장한 다음 열 소거를 수행하여야 한다. 이와 같이 블록단위로 열소거를 진 행할 경우, 두 번째 블록은 첫 번째 블록과 연관이 있으므로 첫 번째 블록에서 산정된 lij가 필요하며, 이에 대한 정보를 사전에 알고 있어야 한다. 즉, 이는 특정 블록에 대한 열소거 를 시작하기 전에 이 블록이 어느 블록과 연관되어 있는지 사전에 알고 있어야 한다는 사실을 말해주고 있다.

    전술된 사항들을 종합적으로 분석하여 정리하면, 행렬을 블록으로 나눈 다음 여기에 LDLT법을 적용하여 행렬을 분해 하기 위해서는 다음과 같은 사항들을 핵심적으로 처리해야 함을 알 수 있다. 먼저 사용가능한 메모리를 계산한 후, 이를 근거로 행렬을 블록으로 나눈다. 둘째, 특정 블록과 연관성 을 가지고 있는 첫 번째 블록을 알아낸다. 마지막으로 각각 의 블록에 대해 순차적으로 분해를 진행한다.

    2.2.블록화 및 행렬의 분해

    행렬분해 시 요구되는 항들은 대각항과 상부삼각행렬에 위치한 유효 값들이다. 컴퓨터 프로그램에서는 이 값들을 메 모리에 저장한 후 원하는 계산을 수행하는 것이 일반적이다. 만일 사용 가능한 메모리가 부족하여 필요한 데이터를 한 번 에 메모리에 저장하지 못하는 경우가 발생한다면, 이를 해결 할 수 있는 방안을 생각해보아야 한다.

    열소거법 (Active Column Solver)을 이용하여 선형시스템 의 해를 구하는 문제에서는, 특정 블록에 몇 개의 열을 배당 하여야 사용가능한 배열을 이용할 수 있는가의 문제일 것이 다. 이 문제는 행렬을 몇 개의 블록으로 분할하여야 하는가 의 문제와 같다. 행렬을 일차원배열로 저장할 때 대각항이 저장되는 위치에 대한 정보가 있다면, 이 문제는 쉽게 해결 될 수 있는데, 그 내용은 Table 4와 같다.

    Table 4의 내용을 Fig. 1, Fig. 3을 중심으로 생각해 보면 다음과 같다. 먼저 사용가능한 배열의 개수를 narr = 4 라 가 정하면, 자유도 3에서는 n1stor = 0 가 되므로, 자유도 1~자유 도 3까지를 하나의 블록으로 지정하여 저장할 수 있다는 의 미가 된다. 자유도 4에서는 n1stor = -4 가 되므로, 이는 자유 도 1~자유도 3까지를 하나의 블록으로 지정해 놓고 자유도 4부터 새로운 블록으로 지정하여야 함을 의미하게 된다. 전 술한 바와 같이 계산을 수행하면 사용가능한 배열의 수를 고 려하여 행렬을 블록으로 분할할 수 있다.

    행렬을 블록으로 분할한 이후에는 특정 블록과 연결된 (Coupling) 첫 번째 블록을 찾아야 하는데, 이를 찾기 위한 방법을 논의 하기에 앞서 Table 2에서 제시된 식 (3a)~식 (3b)를 분석해 보면 다음과 같다. 먼저 식 (3a)의 의미는, 자유도 j에서 처음 으로 0이 아닌 값을 가져다가 gmj,j 에 대입하면 되므로 이 값 을 계산하는데 이전 자유도는 상관이 없다는 것을 뜻한다.

    식 (3b)를 분석하여 보면, gij 계산할 때 자유도 j와 연결 된 첫 번째 자유도는 j-mj-2 와 관련이 있음을 의미한다. 이로부터 자유도 j와 연결된 첫 번째 자유도는 식 (5)와 같이 계산될 수 있다.

    i c = j m j 2 > 0
    (5)

    여기서, j = j-자유도

    mj = j-자유도의 스카이라인 (Skyline)

    전술한 바와 같은 개념을 사용하면 블록으로 분할된 행렬 에서 블록 사이의 연결 관계를 계산할 수 있는데, 이를 수행 하기 위한 알고리즘을 작성하면 Table 5와 같다.

    앞에서 전술한 바와 같은 방법들을 이용하여 강성행렬을 필요한 만큼 블록으로 나누고, 각각의 블록과 연결된 첫 번 째 블록에 대한 정보를 알아냈다면, 이러한 정보를 이용하여 강성행렬을 분해하기 위해서는 파일 (File)을 이용하여야 한 다. 즉, 강성행렬을 블록으로 분할해야할 필요성은 사용가능 한 메모리가 작아졌을 때 발생하는 것이므로, 강성행렬을 분 해하는 과정에서 파일이 사용되어야 한다.

    파일로부터 블록 단위로 강성행렬을 읽은 후, 이를 LDLT 법을 이용하여 분해하기 위한 과정은 일반적인 행렬분해법 과 같다.

    3.해석 예

    2장에서 전술한 행렬의 블록화기법 및 행렬분해법의 정합성 을 평가해보기 위하여, 본 연구에서는 컴퓨터 프로그램 (sNs) 을 작성하고 이를 다양한 예제에 적용하여 구조해석을 수행 하였다.

    3.1.해석 정확도 평가

    구조물 설계 시 가장 일반적으로 사용되는 트러스 (Truss), 골조 (Frame) 구조물에 대하여 제시된 블록화기법 알고리즘 이 적용된 선형정적해석을 수행하고 이를 수계산 (Manual) 과 비교하였다. 이 때, 가용 가능한 메모리의 크기를 각 해석 예제마다 임의로 설정하여 다양한 블록수 상에서 해석이 수 행될 수 있도록 하였다.

    3.1.1.트러스 구조물

    사용가능한 배열의 수가 매우 작은 경우를 가정하여 Fig. 4와 같은 트러스구조에 대한 해석을 수행하였다. 이 경우에 는 사용가능한 배열의 수를 3으로 가정하였으며, 블록의 수 는 1이 되도록 조정하였다.

    해석 시 가정된 재료 및 단면특성은 Table 6과 같으며, 수 계산 및 개발프로그램을 이용한 해석결과는 Table 7과 같다.

    3.1.2.2차원골조 구조물

    Fig. 5에서 보는 바와 같이, 다이아프램 (Diaphragm) 구속 조건을 갖는 2차원골조 (2D Frame)구조에 대한 해석을 수행 하였다. 이 경우에는 사용가능한 배열의 수를 6으로 가정하 였으며, 블록의 수는 3이 되도록 조정하였다.

    해석 시 가정된 재료 및 단면특성은 Table 8과 같으며, 수 계산 및 개발프로그램을 이용한 해석결과는 Table 9와 같다.

    3.1.3.3차원 프레임 구조물

    본 연구에서 제시된 블록화기법의 안정성 평가를 위하여, Fig. 6과 같이 일정한 강성행렬 크기를 갖는 3차원 프레임구 조를 대상으로 사용가능한 배열의 수를 변화시키면서 해석 을 수행하였다.

    해석 시 가정된 재료 및 단면특성은 Table 10과 같으며, 수계산 및 개발프로그램을 이용한 해석결과는 Table 11과 같다.

    3.2.해석 속도 평가

    본 연구에서 제시한 블록화기법을 사용할 경우, 강성행렬을 분해하기 위해서는 강성행렬이 분할되는 블록 수에 따라 강 성행렬을 파일로 저장하고 읽어야 하는 부분이 추가되어야 한다. 일반적으로 컴퓨터 프로그램의 실행시간 (Run Time)을 지배하는 주요인자 중 하나는 파일을 이용한 입출력 시간이 라고 볼 수 있다. 이와 같은 이유로 인하여 대용량 메모리가 요구되는 강성행렬에 대한 블록화기법 적용 시 해석속도의 차이가 발생할 수 있으므로 이에 대한 효율성을 검토해 볼 필요가 있다.

    전술된 바와 같은 필요성에 따라, 본 연구에서는 Fig. 7과 같은 캔틸레버 (Cantilever)보를 대상으로 요소분할을 통한 구조해석을 수행하였다. 요소분할은 Table 12에서 보는 바와 같이 분할되는 요소의 크기를 두 가지 형태로 설정하여 강성 행렬 크기의 변화에 따른 해석속도 차이를 비교∙분석해 보 고자 하였다.

    해석속도는 프로그램의 실행 후 하중에 의한 절점변위의 산정까지 소요되는 시간을 기준으로 측정하였으며, 사용가능 한 배열수에 따라 각각 10회씩 해석을 수행한 결과에서 최대 값과 최소값을 뺀 평균값을 적용하였다.

    해석 시 가정된 재료 및 단면특성은 Table 13과 같으며, 개발프로그램을 이용한 해석속도 결과는 Table 14와 같다.

    4.결 론

    효율적인 행렬분해를 위한 전산학적 방법론의 연구는 다 양한 연구자들에 의해 수행되어 왔으나, 개인용 컴퓨터를 이 용하여 행렬분해를 수행할 경우 발생하는 메모리 공간 부족 문제는 여전히 해결해야 할 문제점으로 인식되고 있다. 본 연구에서는 이를 효율적으로 해결 할 수 있는 방법론 중 하 나인 블록화기법의 이론적 배경을 분석하였으며, 이를 실제 프로그램으로 구현할 수 있는 프로세스 (Process) 및 프로그 래밍 과정에서 발생하는 데이터 처리 문제에 대한 해결 방안 을 제시하였다.

    또한, 다양한 예제에 대한 해석을 통하여 제시된 방법론 및 이를 바탕으로 작성된 프로그램 (sNs)의 정합성을 검증하 였으며, 이에 대한 내용은 다음과 같다.

    1. 임의의 블록수로 나누어져 수행되어진 선형정적해석 의 결과들은 모두 수계산에 의한 정해와 일치하고 있 다. 이를 통하여 제시된 블록화기법은 전체적인 행렬 분해 알고리즘의 정확도에 영향을 미치지 않으면서 구 조물에 대한 평형방정식의 해를 효율적으로 구하고 있 음을 알 수 있다.

    2. 3차원 프레임 구조물의 해석 시, 여러 경우의 블록수 로 수행되어진 해석 결과가 동일한 값을 보이고 있으 며, 수계산을 통한 정해와도 일치하고 있음을 알 수 있 다. 이는 개인 컴퓨터를 통한 업무 수행 시 빈번히 발 생할 수 있는 가용 가능 메모리 크기의 변화에도 불구 하고 제시된 블록화기법 알고리즘이 안정적으로 해를 구할 수 있음을 보여주고 있다. 또한 작은 양의 메모리 를 가지는 개인 컴퓨터에서도 신뢰할 수 있는 결과를 얻을 수 있음을 알 수 있다.

    3. Fig. 7의 캔틸레버 보 예제의 경우, 유형별 블록수에 따른 해석 속도는 블록수가 늘어날수록 빨라지는 경향 을 보이고 있다. 다시 말해, 행렬분해 연산의 반복수행 및 파일 입출력 횟수의 증가에도 불구하고 실제적인 해석 시간은 줄어드는 경향을 보이고 있다. 이것은 유 한한 메모리 크기에서 한 번에 많은 양의 데이터를 연 산하고 파일로 입출력할 때 발생하는 컴퓨터의 부하증 가가 블록화 알고리즘에 의한 입출력과정의 증가보다 해석속도에 크게 영향을 미칠 수 있음을 보여주는 결 과로 판단된다. 따라서 적절한 블록수로 나누어 행렬 분해를 수행하는 것이 전체 구조물에 대한 해석 속도 를 향상시킬 수 있는 하나의 방법임을 알 수 있다.

    4. 다만, 텍스트 입출력 방식을 취하고 있는 개발 프로그 램의 한계로 인하여 보다 큰 규모의 구조물에 대한 해 석이 수행되지 못하였다. 이로 인하여 블록 수에 따른 해석속도 비교∙분석과정에 미비한 점이 존재할 것으로 분석되며, 이에 대한 보완이 필요할 것으로 판단된다.

    5. 본 연구에서 개발된 블록화기법 알고리즘은 대표적인 행렬분해 연산기법인 스카이라인 솔버 (Skyline Solver) 에 최적화된 알고리즘으로서, 다른 상용프로그램에서 제시되고 있는 멀티-프론탈 솔버 (Multi-Frontal Solver) 에 대한 적용을 위해서는 추가적인 연구를 통한 알고 리즘의 수정∙보완이 필요할 것으로 판단된다.

    본 연구를 통하여 제시된 블록화기법은 개인 컴퓨터의 사 용가능한 메모리 크기가 충분하지 않은 경우에도 정확하고 안정적인 구조해석을 수행할 수 있는 것으로 분석된다. 향후, 자유도 수 만개의 구조물 해석을 위한 그래픽 인터페이스 (Graphic Interface) 전∙후처리기 개발과 이를 바탕으로 한 블록화 알고리즘 최적화에 대한 지속적인 연구를 통하여 전 체적인 해석속도 향상을 도모할 수 있을 것으로 판단된다.

    감사의 글

    본 연구는 정부 (교육과학기술부)의 재원으로 한국연구재 단의 지원을 받아 수행된 연구임. [NRF-2010-0024 517]

    Figure

    JKSMI-18-30_F1.gif

    Storage of Stiffness Matrix

    JKSMI-18-30_F2.gif

    Stiffness Matrix Decomposition by LDLT Method

    JKSMI-18-30_F3.gif

    Array Storing elements of K

    JKSMI-18-30_F4.gif

    Truss Structure

    JKSMI-18-30_F5.gif

    2D Frame Structure

    JKSMI-18-30_F6.gif

    3D Frame Structure

    JKSMI-18-30_F7.gif

    Cantilever Beam

    Table

    Process of Blocking Method

    Algorithm for the Calculation of the Elements lij, dij in the j-th Column

    *mj = row number of the first nonzero element in column jmm= max{mi, mj}mi = skyline of i-th d.o.f

    Calculation of the Elements l14, l24, l34

    Algorithm for the Calculation of the Number of Blocks

    *ndof = number of d.o.fn1stor = number of elements stored in random blocknarr = number of useable arrayipdia = array number of diagonal element in i-th d.o.fn0stor = number of elements stored up to former block

    Algorithm for the Calculation of the Coupling Blocks

    *nb = number of blocksni = array number of diagonal element in column Inic = number of columns in present blocknib = present block number

    Material and Section Properties

    Analysis Results

    Material and Section

    Analysis Results

    Material and Section

    Analysis Results

    JKSMI-18-30_T12.gif

    Patterns of Analysis Modelling

    Material and Section

    Analysis Speed Results

    Reference

    1. ADINA ENGINEERINGADINA - System verification manual REPORT AE, pp.83-5
    2. Almasi G. S , Gottlieb A (1989) Highly Parallel Computing, Benjamin-Cummings publishers,
    3. Bathe K. J (1996) Finite Element Procedures, Prentice Hall,
    4. Computer and Structures Inc (2003) ETABS-Software Verification Exmaples, Ver. 8
    5. Computers and Structures Inc (1998) SAP2000-ANALYSIS REFERENCE, Ver. 7.0
    6. Farhat C , Wilson E (1988) A parallel active column equation solver , Computers & Structures, Vol.28 (2) ; pp.289-304
    7. Han J. I , Lee K. D (1998) Dynamic Analysis of Vehicle- Bridge System by the Dynamic Condensation Method , The Journal of the Korea Institute for Structural Maintenance and Inspection, Vol.2 (2) ; pp.177-184
    8. Mario Paz , William Leigh (2004) Structural Dynamics, Kluwer Academic Publishers,
    9. Patterson D. A , John L. H (1998) Computer Organization and Design, Morgan Kaufmann Publishers,
    10. Przemieniecki J. S (1963) Matrix Structrual Analysis of Substructures , AIAA Journal, Vol.1 (1) ; pp.138-147
    11. Zienkiewicz O. C , Taylor R. L , Zhu J. Z (2005) The Finite Element Method - Its Basis & Fundamentals, Elsevier Butterworth-Heinemann,