code aster 구조해석 공개라이브러리 기능 및 모듈 분석 연구 · 2018. 10. 15. ·...

54
- 1 - Code_Aster 구조해석 공개라이브러리 기능 및 모듈 분석 연구 2014.10 한국과학기술정보연구원 슈퍼컴중소기업지원실 서동우 (김재성, 이상민, 김호윤, 황재순, 박형욱, 손일엽, 기환종, 홍정우, 정민중, 윤태호 )

Upload: others

Post on 26-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • - 1 -

    Code_Aster 구조해석 공개라이브러리 기능 및 모듈 분석 연구

    2014.10한국과학기술정보연구원 슈퍼컴중소기업지원실

    서동우 (김재성, 이상민, 김호윤, 황재순, 박형욱, 손일엽, 기환종, 홍정우,

    정민중, 윤태호)

  • - 2 -

    목차

    제 1 장 서론 1제 1 절 분석 배경 및 목적 1. 분석 배경 1 2. 분석 목적 2

    제 2 장 Code_Aster 소개 및 세부 모듈 분석 3 제 1 절 Code_Aster 소개 3 1. Code_Aster 3 2. Code_Aster 의 기본 구조 및 제공 모듈 기능 4 3. Code_Aster의 전·후처 지원을 위한 오픈소스 6 4. Code_Aster 해석 조건 부여를 위한 구분 분석 11 5. Salome와 Code_Aster 기반의 해석 방법 및 예제 13

    제 3 장 중소·중견기업 사용사례 35 제 1 절 독일 Simscale 35 1. 웹 기반의 사용자 서비스 36

  • - 3 -

    2. 웹 기반의 전처리 가시화 서비스 39 3. 웹 기반의 해석 지원 서비스 41 4. 웹 기반의 후처리 서비스 43 제 2 절 Hyperworks 45 1. Hyperworks Plugin 45

    제 4 장 결론: 활용방안 및 추후연구 48 제 1 절 슈퍼컴퓨터기반 Code_Aster를 활용한 구조해석 서비스 1. HTML5 웹 기반의 부품디비를 활용한 시뮬레이션 서비스 48 2. 한계점 및 추후연구 50

  • - 1 -

    제 1 장 서론제 1 절 분석 배경 및 목적 1. 분석 배경 최근 디지털 환경에서 제품의 설계 및 검증 활동을 수행하는 새로운 제품개발패러다임이등장하고 있다. 컴퓨터를 통해 3차원으로 모델링된 가상 환경에서 제품 설계 및 시뮬레이션을 수행함에 따라 실제 제품생산 이전에 미리 생산 중 발생할 수 있는 오류를 발견하고 이를 통한 문제해결이 가능하게 되었다. 이러한 디지털 생산에서 CAE 시스템은 컴퓨터를 통해 모델링된 가상의 공간에서 설계 및 해석을 수행함에 따라 기존의 오프라인에서의 물리적 실험 테스트 기능을 최소화하고 디지털화된 환경에서 설계 및 검증이 가능하게 한다. 따라서 CAE해석은 시뮬레이션 시간과 프로토타입 수를 줄여 기업의 생산성 향상을 위한 필수적인 과정으로 활용되고 있다. 제품개발기간의 단축을 통한 빠른 시장진입은 글로벌 제품경쟁력 확보를 위한 핵심 요소로 간주된다. 특히, 다변화 되어가고 있는 국제 시장 환경에서의 생존을 위하여 ‘첨단 IT기술과 설계/제조기술의 활용’을 통해 기존 생산방식의 혁신을 도모하고 이를 바탕으로 우수한 제품을 양산하는 것이 기업의 핵심 전략으로 제시되고 있다. 이러한 추세에 힘입어 대기업, 글로벌 기업들을 중심으로 제품의 양산 이전에 시공간적인 제약조건을 뛰어넘어 가상공간에서 제품의 설계 및 생산과 관련한 일련의 작업들을 수행하는 새로운 형태의 설계/제조 환경을 적극적으로 도입하여 실용화에 주력하고 있는 것은 주지의 사실이다. 유한요소해석 등과 같은 전산기법에 근거한 CAE시스템들은 이러한 새로운 제품 설계/제조환경의 구축에 있어서 핵심적인 도구로 활용되고 있다. 일반적으로 CAE시스템은 컴퓨터를 통해 모델링된 가상의 공간에서 설계 및 해석을 수행함에 따라 기존의 오프라인에서의 물리적 실험·테스트 활동을 최소화하고 디지털화된 환경에서 설계 및 검증을 가능하게 한다. 따라서 제품개

  • - 2 -

    발에 소요되는 시간과 비용을 절감하고 제품에 대한 설계기술을 향상시킬 수 있어 제조업체의 생산성 제고에 크게 기여하고 있다. 현재까지 다양한 구조해석 시스템이 개발되어 왔으며 부품의 설계에서부터 건축물의 설계, 나아가 지진과 같은 자연현상의 예측과 분석에 이르기까지 매우 광범위한 분야에 성공적으로 활용되고 있다. 이러한 추세에 힘입어 글로벌 기업들을 중심으로 제품의 양산 이전에 가상공간에서 제품의 설계 및 생산과 관련된 일련의 작업들을 수행하는 새로운 형태의 설계/제조 환경을 적극적으로 도입하여 실용화에 주력하고 있다. 하지만, 글로벌 기업과 달리 중소기업은 이러한 변화에 빠르게 대응하기 힘든 실정이다. 따라서 빠르게 변화하는 경쟁 환경의 정점에 서 있는 국내 제조 중소기업의 경쟁력을 높이기 위해서는 중소기업에 적합한 형태의 디지털 생산 기술 개발이 무엇보다 중요하다. 하지만, 인적•물적 자원의 한계를 가지고 있는 중소기업은 이러한 시스템을 구축하기가 현실적으로 어렵다. 특히, 중소기업은 고가의 소프트웨어 라이센스 비용을 감당하지 못하기 때문에 실질적으로 현실적으로 활용하지 못하고 있는 실정이다. 따라서 비용이 들지 않는 오픈소스와 슈퍼컴퓨터를 활용함으로써 중소기업의 제조 경쟁력을 한 차원 끌어 올릴 수 있는 환경이 필요하다. 이러한 환경을 개발하기 위한 오픈소스의 기능과 모듈을 세부적으로 분석할 필요가 있다

    2. 분석 목적 본 보고서에서는 구조해석 오픈소스인 Code_Aster의 기능과 모듈을 분석한다. 이를 통해 Code_Aster를 활용할 수 있는 기본적인 토대를 마련하고자 한다. 추가적으로 Code_Aster를 활용한 사례를 살펴보기 위하여 대표적으로 독일 SimScale(주)에서 제공중인 서비스와 개발중인 Hyperworks의 Plugin 에대하여 살펴보기로 한다. 마지막으로 분석된 내용을 토대로 서비스 제공을 이한 제안 시스템 구조와 추후 연구내용에 대하여 설명한다.

  • - 3 -

    제 2 장 Code_Aster 소개 및 세부 모듈 분석

    제 1 절 Code_Aster 소개

    1. Code_Aster Code_Aster 는 세계전력 전력공사인 프랑스의 EDF에서 2001 년부터 컴퓨터를 통한 모의 해석을 통한 원자력 문제 시뮬레이션을 위한 오픈소스로 개발이 시작되었다. 오픈소스 정책인 GNU를 따르고 있으며 매주 400 번 이상의 다운로드 횟수를 기록하고 있으며, 매년 오픈소스 사회적으로 공헌이 큰 오픈소스를 발굴하여 상을 수여하는 Lutèce 대회에서 수상, 이를 통해 많은 기관, 기업 등에서 많은 관심을 가지고 있는 오픈소스 시뮬레이션중의 하나이다. 또한 Code_Aster는 FORTARAN、파이썬, C 언어 등으로 구성되어있으며 1,200,000 라인 이상의 소스코드로 구성되어있다. 이는 지속적으로 EDF와 참여 개발자들을 통해서 새로운 모델로 업그레이드되고 테스트 되고 있는 중이다. 특히, 상대적으로 품질이 주요한 원자력 분야에 사용되기 위하여 고안되었으므로 구축된 소스코드는 원자력 관련 회사들에 의해서 검증되었다. 또한 매주 2,000 이상의 문제에 대하여 검증 테스트가 수행되고 있어서 검증이 지속적으로 이루어지고 있는 단계이다. Code_Aster문서는 12,000 페이지이상으로 구성되는데 이는 사용자 매뉴얼, 전산 역학 EDF의 경험, 사용 테스트와 튜토리얼 문서를 포함하는 이론 매뉴얼로 구성되어있다.

  • - 4 -

    2. Code_Aster 의 기본 구조 Code_Aster 는 그림과 같이 stand-alone 형태의 구조 해석 기능을 제공한다. 다시 말해 일반적으로 해석을 수행하기 위한 입력 데이터를 만들고 해석된 결과를 검토하기 위한 전후처리 기능은 제공되지 않는다. Code_Aster를 이용한 해석 입력 파일은 CAD 데이터의 메쉬데이타와 기계적인 해석 조건을 설명한 스크립트로 구성된다. 이를 통해 Code_Aster 가 해석을 수행하고 그 결과들(Displacement, Strain, Stress, Temperature 등)을 검토할 수 있다.

    그림. Code_Aster 해석을 위한 기본 구조

  • - 5 -

    그림. Code_Aster 해석 조건 부여를 위한 Script 의 예

    다음은 Code_Aster 가 제공하는 기능들을 나열한 것이다. Code_Aster는 크게 Elastictic, Elasto-viscoplasticity, Fraction, Multi-Physics 등의 기능을 제공한다.

  • - 6 -

    Finite Element 시뮬레이션을 위해서 제공하는 기능은 다음과 같다.

    3. Code_Aster의 전·후처 지원을 위한 오픈소스 Code_Aster 는 자체적으로 전·후처리 기능을 지원하지 않아서 사용자에게 매우 불편함을 야기했다. 따라서 다음과 같은 도구를 통해 만들어진 메시데이터를 입력파일로 이용한다. Code_Aster 그룹은 MED File Format을 입력파일로 사용하도록 권장하는 상태이다. -> Gmsh -> I-DEAS -> GIBI -> *MED mesh 파일이 호완되는 툴

    *MED 포맷은 Mesh 데이터(nodes, elements, node 그룹, element 그룹)과 필드 데이터(stresses,

  • - 7 -

    strains, displacements, level sets 등)의 정보 교환을 위한 플랫폼에 독립접인 파일 포맷이다.

    프랑스의 EDF는 MED 파일 호완뿐만 아니라 실질적인 해석이 가능하도록 범용 전·후처리기 오픈소스인 Salome_Meca를 수정하여 Code_Aster와 통합되도록 개발하였다.

    그림. Salome_Meca 구조와 예시

  • - 8 -

    Salome와 Code_Aster를 통합하요 사용하는 방법은 크게 두가지 있는데 첫 번째는 Salome 를 통해 MED 포맷의 메시 데이터를 생성하고 해석 조건 부여를 위한 스크립트 파일을 작성하여 입력파일로 제공하는 것이다.

    Salome를 이용한 Code_Aster 해석 수행

    두 번째는 Salome_Meca를 이용하는 방법인데 이는 Salome_Meca에서 제공하는 GUI를 활용하여 전처리 작업을 수행하고 이에 통합된 Code_Aster활용하여 해석을 수행할 수 있다. 이를 각각에 필요한 파일들이 자동으로 생성되기 때문에 손쉽게 이용이 가능하다. 하지만 Salo_Meca에서 제공하는 해석 조건을 부여하는 GUI는 기능이 한정되어 있기 때문에 현실적인 해석을 수행하기 에는 한계점이 존재한다.

    Salome_Meca를 활용한 Code_Aster 해석 수행

  • - 9 -

    Salo_Meca에서 제공하는 해석 조건을 부여하는 GUI기능은 다음과 같다 = Linear elastic analysis = modal analysis = linear thermal analysis앞에서도 언급했지만 GUI에서 제공하는 기능은 Code_Aster 매우 일부분에 해당하는 것이므로 현장에서 사용하기에는 한계점이 존재한다.

    그림. Salome_Meca 위자드의 예

    결국에는 Code_Aster 의 기능을 완벽하게 활용하기 위해서는 스크립트 파일을 수정하여 직접적으로 세부적인 요소들에 해당하는 텍스트를 변경해줘야 한다. 하지만 이러한 작업이 매우 번거럽고 복잡하기 때문에 해석 조건 부여를 위한 스크립트를 좀더 수월하게 수정할 수있는 Eficas 라는 오픈소스 도구를 제공한다.

  • - 10 -

    Eficas 를 활용함으로써 모든 옵션을 기억하고 있지 않아도 Eficas에서 제공하는 리스트에서 원하는 항목을 선택하고 수정함으로써 해석을 위한 세부 옵션을 지정할 수 있다.

    그림. Code_Aster 해석 조건 부여를 위한 스크립트 수정용 GUI도구 Efica

  • - 11 -

    화면 4. Code_Aster 해석 조건 부여를 위한 구분 분석 아래 그림은 Code_Aster 를 통해 해석 수행시 조건 부여를 위한 간단한 스크립트 예를 보여준다. Code_Aster 해석 조건부여 스크립은 Python Script이고 그림에서 보여주는 것과 같인 순차적인 순서로 정의를 한다. 각각의 명령어(Command)는 Code_Aster 가 수행하는데 필요한 개념을 정의하고 이를 이용하는 형태로 구성된다.

    그림. Code_Aster 스크립트의 예

  • - 12 -

    명령어의 구조를 간단하게 설명하면 다음과 같다. 상단의 DEBUT = begin 은 해석 수행을 위한 스크립트가 시작이라는 표시이다. 만약에 특정한 해석이 끝난 결과에 계속적으로 해석을 수행하고 한다면 POURSUITE=continue 문구를 넣어 주면 된다. 다음은 새로운 Material을 정의하고 그 속성을 설정한다는 명령어이다. 아래의 속성은 다양한 형태로 구성이 가능한데 여기서 사용된 ELAS는 elastic 속성을 정의하는 것이다.

    명령어 컨셉 정의는 하나 또는 여러 개의 파라미터로 구성할 수 있다.

    다음은 steel, alu라는 재질을 선언한 것을 보여준다steel = DEFI_MATERIAU(ELAS=_F(E=2.06E11,

    NU=0.3,),)

    alu = DEFI_MATERIAU(ELAS=_F(E=0.76E11,

    NU=steel,),)

    아래는 Code_Aster에서 해석 수행시 사용할 메쉬 타입을 정의하는 명령이다. 입력받는 메시 형태에 따라서 그에 맞는 문구를 작성하면 된다.

    다음으로 AFFE_CHAR_MECA 명령어를 이용하여 해석 수행을 위한 기계적인 Boundary Condition 정보를 선언해준다. DDL_IMPO 와 PRES_REP 명령어를 이용하여 DOF 와 pressure 등을 선언해준 것을 보여준다.

  • - 13 -

    다음으로 CALC_ELEM 을 통해 사용자가 지정해준 조건에 의하여 계산할 내용, 결과가 포함할 필드나 형태 등을 지정해줄 수 있다.

    다음으로 다음의 명령어를 이용하여 해석될 결과중에서 출력하고자 하는 필드나 형태 등을 지정하여

    마지막으로 해석 수행을 위한 설정을 끝나면 FIN(); 명령어로 마무리 하면된다.

    5. Salome와 Code_Aster 기반의 해석 방법 및 예제

    Salome-Meca의 설치는 Linux(Fedora 혹은 Ubuntu, CentOS 등)가 설치된 시스템으로 하고 Linux의 설치와 Linux System의 언어 및 Graphic 설정 관련은 여기에서 생략한다.

  • - 14 -

    127.0.0.1 localhost.localdomain localhost

    ::1 localhost6.localdomain6 localhost6

    127.0.1.1 name.domain name

    192.168.1.3 name.domain name

    192.168.1.3 dbc-ubuntu-pc

    Salome-Meca를 설치하기 전에 사전 설치 요구사양이 있다.1. Python 2.x (단 3.x 이상은 지원하지 않는다.)2. gcc compiler naming service를 가상 서버에서 지원하기 위하여 hosts 파일을 수정하자. (vi /etc/hosts)

    Salome-Meca는 현재(2012년 10월) 2012.2 LGPL버전이 공개되고 있다. 이 속에는 Salome 6.5.3과 Code-Aster 2012.2 가 같이 들어 있다. 압축을 푼 폴더로 이동하여 사전 인스톨 프로그램(shell)을 실행 시키자. 이 shell명령은 관리자 권한으로 실행해야 하며 초기 설치 시 한번만 실행하면 된다. ./postinstall.sh Salome-Meca의 기동은 실행 shell을 실행 시킨다. 실행 shell도 관리자 권한으로 실행해야 한다. 향후 이 shell만 실행시키면 된다. ./runSalomeMeca.sh 그러면 아래와 같은 화면이 기동된다.

    그림. Salome_Meca 초기 화면

  • - 15 -

    이 Salome-Meca가 기동하면서 기존 콘솔 창에는 여러 메시지가 나타난다. 이는 표준

    출력과 표준 에러 출력으로 설정하고 있다. 이 콘솔에 Salome-Meca가 실행되면서 각종 정

    보, 에러 등이 나타난다.

    그림. 실행된 콘솔 이미지

    Salome-Meca의 기동화면에서, 메뉴바 상의 리스트 메뉴(드롭다운 메뉴)에 있는 [Salome-Meca]를 [Geometry]로 바꾸면, 새로운 대화창이 나타난다. [New]를 클릭하면 Geometry 작성 화면으로 이동한다.

    그림. Geometry New 대화창

    Geometry 작성 화면 위에 File->Import를 클릭하여 모델 파일을 읽어 들인다. 이 모델 파일은 CAD 시스템에서 모델링한 데이터로 CAD 표준 포맷 파일로 변환한 데이터야 한다. 즉, STEP, IGES 파일 등이 그렇다.

  • - 16 -

    그림. Step 파일을 읽어들인 화면

  • - 17 -

    화면의 회전 (Rotate) 1. [ctrl]키 + 마우스 오른쪽화면의 확대, 축소 (Zoom) 1. [ctrl]키 + 마우스 왼쪽2. 마우스 휠화면의 이동 (Pan) 1. [ctrl]키 + 마우스 휠2. [pan]아이콘 누르고 마우스 왼쪽화면의 뷰 (ISO) [reset] 아이콘화면의 뷰 (F, Ba, T, Bo, L, R)

    [Front], [Back], [Top], [Bottom], [Left], [Right] 아이콘

    데이터를 읽어 들인 후, OCC윈도우 창내에 있는 [Fit All] 아이콘을(돋보기 모양)을 클릭하면 모델이 화면에 꽉차게 확대된다. 읽어 들인 직후의 모델은 와이어 프레임으로 나타나며, 이를 마우스로 클릭하여 선택하면 와이어의 색이 노란색에서 흰색으로 변한다. 흰색으로 선택된 상태에서 마우스 오른쪽으로 와이어를 클릭하면 [Display mode]->[Shading]으로 와이어를 음영처리가 되는 면으로 표시된다.

    그림. 모델의 면처리된 화면

    표. 화면의 회전, 축소 확대, 이동

  • - 18 -

    메뉴 Measures -> What is를 클릭하면, Whatis Information 대화 창이 나타난다. Object란에 모델명이 들어 있지 않다면 마우스로 바탕에 있는 모델을 선택하자.

    그림. 모델 데이터의 정상 여부 확인

    현재의 단일 모델이 정상적인가를 확인하는 창이다. 현재의 모델은 정점이 12개, 가장자리 선이 18개, 와이어가 8개, 면이 8개, 쉘이 1개, 솔리드 1개로 되어 있다. 여기에서 솔리드 (SOLID)가 몇 개인가에 따라 단일 모델인지 두 개로 분리되어 있는 모델인지 알 수 있다.

  • - 19 -

    경계 조건 설정 지점의 지정 : 정적 탄성 (선형) 해석을 실시할 때, 설정을 간단하게 할 수 있는 위자드를 사용하여 설정하고 있다. 이 위자드는 고정부와 부하부의 설정이 가능하지만, 부하부는 하중을 면압으로서 취급하기 떄문에 면과 압력(면에 수직하게 걸리는 압력)을 설정하는 것으로 한다. 경계 조건의 설정 지점(고정부와 부하부)을 그룹화시켜 이름을 붙여 놓는다. 고정부는 bar의 끝면 부하부는 bar의 상단으로 한다. 우선, 고정부를 설정하자. 설정은 메뉴의 New Entity -> Group -> Create를 클릭하여 나타나는 창 [Create Group] 화면 상에서 면을 설정한다.

    그림. 그룹 설정 [Apply and Close]버튼을 눌러 상태를 적용하고 창을 닫는다. 좌측 트리 구조(Object Browser)에서 방금 그룹으로 등록한 Fix가 보일 것이다. 이

  • - 20 -

    Object Browser에 있는 Fix를 마우스로 선택하면 화면 상의 모델에 선의 색상이 흰색으로 변하므로 어떤 면이 지정되어 있는지 확인 할 수 있다. 또한 아무 면도 선택되어 있지 않을 때는 어떤 정보가 들어 있는 면에는 녹색 선으로 표시되어 무엇인가가 설정되어 있다는 것을 확인할 수 있다. 같은 방법으로, “Load”라는 이름으로 면압을 줄 상단 면을 Group에 추가 하자.

    그림. 그룹 설정

  • - 21 -

    Group 의 삭제, 혹은 편집 :

    방금 만든 Group의 “Fix”, “Load”를 수정 편집하려면 Object Browser에서 해당 이름을 마우스 오른쪽으로 선택하자. 그러면 메뉴 목록이 나오는데, [Rename], [Delete], [Edit]을 이용하면 된다. [Edit]을 선택하면 조금 전 Create할 때의 정보가 저장된 Create Group 대화창이 나타난다.

    데이터의 저장 차기의 작업 도중에 중단한 경우, 설정했던 데이터가 소실되는 경우가 있으니, 미리 여기까지의 데이터를 저장해 두고 진행하자. 메뉴 File -> Save를 클릭하고 File name에 파일명을 지정하다. 저장되는 확장자는 *.hdf이므로 잘 기억해 두기 바며, 저장되는 폴더의 위치도 별도의 폴더를 만들어 잘 관리하기 바란다. 여기에서는 파일명을 “Study1”로 하여 work폴더에 저장하고 차후 다시 불러들이겠다.

    그림. 파일의 저장, 불러오기 대화창

  • - 22 -

    Mesh의 생성 : 상기 파일을 다시 불러 보자. 메뉴 File -> Open으로 불러들일 수 있다. 파일이 저장되어 있는 폴더(여기서는 work폴더)는 이번 해석에 사용한 파일 전체를 보존하는 곳으로 할 것이다. 파일을 저장한 후, 폴더의 위치나 파일명을 변경할 경우, .comm파일이 읽어 들일 수 없게 되므로 주의를 요한다. Geometry를 선택하였던 리스트 메뉴(드롭다운 메뉴) 중에 Mesh를 선택하자. 새로운 VTK화면이 생기면서 Mesh를 작성할 수 있는 모듈로 화면이 변한다.

    그림. Mesh 화면 상기의 화면처럼 검정 바탕의 화면으로 변하는데, 메뉴 Mesh -> Create Mesh를 선택하여, [Create Mesh]화면을 불러 온다. Name에는 “Mesh_1”이 설정되어 있고, Geometry에는 모델의 “Product 1”이 설정되어 있다. 설정되어 있지 않으면 Object Browser의 Geometry에 있는 “Product 1”을 선택하여도 된다. 하단의 [Assign a set of hypotheses] 버튼을 클릭하고 목록 중에 [3D:Automatic Tetrahedralization]을 선택한다. 그러면 아래

  • - 23 -

    와 같은 대화상자가 나오는데 [OK]버튼을 클릭하고 [Apply and Close]버튼을 눌러 종료한다.

    그림. Create Mesh 생성 대화창

    Object Browser에 Mesh_1이 생성되는데, Mesh_1에서 마우스 오른쪽 버튼을 눌러, [Compute]를 실행시킨다.Mesh의 계산 결과 창이 나타난다. 내용을 확인해 보면, Nodes(절점) = 251개, Tetrahedrons(1차 사면체 요소) = 766개라고 나타난다. [Close]버튼을 누르면 화면에 모델이 Mesh로 변하였다는 것을 볼 수 있다. VTK화면 상의 모델의 Mesh 생성 결과를 확인하고, 문제가 없으면, 결과를 보존하자. Mesh가 너무 거칠거나, 너무 미세하게 된 경우에 Meshs의 크기를 조정하기 위하여서는 Object Browser 트리에서 Mesh -> Mesh_1 -> Applied Hypotheses -> Max Size_1 을 마우스 오른쪽 클릭하여 [Edit Hypothesis]를 선택하면 된다. 나타나는 대화 창에서 [Length]의 값을 조정하자.

  • - 24 -

    Length 값의 범위 1e-15 ~ 1e15Length 값의 자리수 5자리

    변경된 Length의 값을 적용하기 위해서는 다시 Object Browser 트리에서 Mesh -> Mesh_1을 마우스 오른쪽 클릭하여 [Compute]를 실행 시키자. 면의 크기가 미세하게 변하였을 것이다.

    Mesh Length의 설정치가 너무 작으면 Mesh를 생성하는데 많은 시간이 소요된다. 요즘에는 기기의 성능이 우수해 져서 많이 좋아 졌지만 예전에는

  • - 25 -

    수 십분, 1시간 이상 걸리는 수도 있다. Mesh를 생성하는 도중에 중단하거나, 에러로 인하여 실패하였을 경우는 파일을 다시 로드하여 실행하면 된다.원하는 사이즈의 Mesh가 생성되었다면 바로 저장하자. Mesh 생성의 중단 : Mesh가 너무 미세하면, Mesh 생성에도 시간이 걸리는데, Mesh 생성을 중단 하고 싶은 경우는 [Cancel]대화 창에서 cancel버튼을 클릭하거나, [Salome-Meca Console] (1-2. Salome-Meca 설치 및 기동 참조)창을 클릭하고 ctrl-C키를 누르면 중단된다. 중단하여도 Salome-Meca가 busy상태로 계속 있으면, 강제 종료하는 수 밖에 없다. 최근 버전에는 이러한 현상이 거의 없지만, 강제 종료되었을 경우에는 Mesh에 대한 설정 데이터가 사라지기 때문에 Geometry를 다시 불러 들여 작업해야 한다. 경계 조건의 설정 : 해석으로 이동하기 위해, 리스트 메뉴(드롭다운 메뉴) 를 Mesh에서 Aster로 바꾸자. 풀다운 메뉴와 아이콘 메뉴 일부가 바뀐다. 메뉴 Aster -> Wizard -> Linear elastic(선형탄성)을 클릭하자.

    그림. 해석 옵션 설정

  • - 26 -

    나타난 창[Model definition]의 목록에서 [3D]를 선택하고 [Next>]를 클릭. 다음 창[Mesh selection]에서 원하는 Mesh를 Object Browser에서 선택하고, [Use geometrical groups]가 선택되어 있는지 확인하고 [Next>]를 클릭하자. 다음창[Material properties]에서는 영계수와 프와송비를 입력하고 [Next>]를 클릭.

    다음 화면에서는 경계 조건 [Boundaries conditions]를 입력하는데, 화면상에 보이는 값은 기본 값으로 그대로 사용하면 된다. [Next>] 클릭.

    다음 창도 역시 경계 조건을 입력하는 창인데, 부하(하중)을 걸 요소를 입력한다. Geometry에서 Group으로 사용하던 “Load”가 표시되고, [Pressure]에는 1이 들어가 있다. 현재의 단위는 Mpa로 약 100kg정도이다.

  • - 27 -

    [Next>]를 클릭.

    다음 창에서 저장할 파일명을 지정하고 [Finish]버튼을 클릭하면 된다. 파일명은 확장자가 .comm으로 되며 Geometry가 존재하는 같은 폴더에 저장한다.그러면 Salome-Meca의 Object Browser트리에 새로운 “Aster”가 생성이 된다. 이로서, 경계 조건의 설정에 대한 준비 입력 작업은 완료되었다.

  • - 28 -

    해석의 실행

    Salome-Meca의 Object Browser트리에 있는 Aster -> linear-static을 오른쪽 클릭하면, [Run], [Status], [Stop]의 세가지 메뉴가 보인다. 여기서 [Run]을 클릭하여 해석을 실행한다.

    [Run] - 해석 수행 [Status] - 수행 상태 정보 표시 [Stop] - 해석 수행 취소 의외로 해석을 수행함에 있어서 시간이 많이 걸리는 경우가 종종 있다. 이는 사용자로 하여금 시스템 불안정의 의구심을 불러일으키기도 하는데, 인내심을 가지고 기다리자. 도저히 참지 못하겠는 경우에 [stop] 버튼을 클릭하자.

  • - 29 -

    해석이 정상적으로 수행이 되는 동안은 아래 그림처럼 처리 과정의 여러가지 정보가 눈에 보인다. [Message Window]창에는 작업 수행의 흔적을 남긴다. 해석이 끝나고 에러가 발생되지 않으면, 트리 [Aster] 밑에 트리[Post-Pro]가 생성된다. 또한, 로컬에는 데이터가 들어있던 폴더에 수행 결과 파일들이 저장된다. study1.comm //code aster의 코드 study1.hdf //salome의 데이터 linear-static.base glob.1.gz, pick.1.gz linear-static.export linear-static.mess // 경과 메시지 linear-static.mmed linear-static.resu //결과 메시지 linear-static.rmed 에러가 발생했다고 보여지면, 모델의 형상이 Solid로 되어 있는지, 경계조건의 설정 즉, 모델이 회전한다든지, 이동하는 자유도가 없는지 등을 살펴보고 재 설정한다. 계산은 정상적으로 됐지만, [복사 불가] 등의 에러인 경우는 데이터가 너무 많거나 하기 때문으로 메모리를 많이 할당해 두면, 해결되는 경우가 있다. Salome에서 할당하고 있는 메모리는 기본으로 128MB로 되어있다. 트리 [Aster]->[linear-static]을 마우스 오른쪽 클릭하여, [Edit]을 선택하고, 나타난 대화창의 하단부에 [Solver parameters]에 있다. Total memory (MB) 를 256MB 등으로 변경하자.

  • - 30 -

    데이터가 너무 많아져서 메모리를 증가 시킨다는 것은 필연적으로 계산시간이 많이 걸린다는 것을 의미한다. 계산시간 [Time (s)]이 기본적으로 120s로 설정되어 있기 때문에, 제한 시간이내에 계산이 종료되지 않은 경우에는 Time (s)의 값도 증가시킨다. /* 계산의 상황은 순차적으로 xterm에 표시되지만, 이 화면상에는 정보가 흘러가 버리기 때문에, 지나간 정보로 되돌아 가 볼 수가 없다. 그러나, 로그가 ~/flasheur/ 폴더에 파일로서 기록되어 있으니 이 내용을 확인하여 에러의 내용을 상세히 알 수 있다. */ 결과의 확인 여기서, 해석한 결과를 3D표시해 보자. 3D로 표시시키는 것으로, 모델이 어느 정도로 변형되어 있는지를 직감적으로 잘 알게 된다. 더욱이 변형된 형태에 대하여, 응력 등의 해석결과를 색으로 분리하여 표시시켜, 변형의 정도와 응력의 관련에 잘 판단할 수 있다. 또, 확인이라는 것은 모델 표면의 응력 분포를 확인하는 것이다. 모델 내부의 응력상태가 어느정도 인가를 확인하기 위해서는 단면의 상태를 확인할 필요가 있다. 변형형태에 대하여 해석결과를 색으로 분리하여 표시 Salome의 화면을 [Post-Pro]로 바꾼다. 리스트 메뉴(드롭다운 메뉴)에서 [Post-Pro]를 클릭한다. Object Browser트리의 [Post-Pro]->[linear-static.rmed]->[MAIL]->[Fields] 밑에 다음의 Object가 생성되어 있다. RESU____DEPL 변형량 RESU____SIEQ_NOEU 응력(절점) RESU____SIGM_NOEU 응력텐서(절점) XYZ면상에 움직이는 응력 합계

  • - 31 -

    변형량의 확인 [RESU____DEPL]의 아래에 [0, -]를 마우스 오른쪽 클릭하여 [Scalar Map]을 선택하자. [Scalar Bar Properties]창이 나타난다. 우선 모두 디폴트로 두고 OK를 클릭하자.

    그러면, 트리 [0, -] 밑에 [ScalarMap] Object가 생성이 되며, 화면에 결과 이미지가 나타난다. 혹시 화면에 뭔가 나타난 것 같기는 한데 점 모양밖에 보이지 않는다면, [VTK scene]의 아이콘 중에 돋보기 아이콘[ ]을 클릭해 보자. 화면에 뭔가 꽉찬 이미지가 나타날 것이다.

  • - 32 -

    상기 이미지에서 변형량의 값은 화면 하단부 색상 바 위에 수치로 나타난다. 파랑색 부분이 최소(MIN)이고 빨강색 부분이 최대(MAX)이다. 응력의 확인 같은 방법으로, [RESU____SIEQ_NOEU]의 [0, -]를 마우스 오른쪽 클릭하고 [Scalar Map]을 클릭한다.변형량[RESU____DEPL]의 대화창과 같은 [Scalar Bar Properties]창이 나타난다. 역시 OK를 클릭하면, [ScalarMap:1]이 생성되며, 화면에는 응력 분포가 적용되어 있는 이미지가 나타난다.

    이미지 하단에 나타난 색상 바는 수치와 함께 응력의 분포를 나타내며, 최대 응력은 86.0902Mpa을 나타내고 있다.

  • - 33 -

    응력 텐서의 확인 같은 방법으로, [RESU____SIGM_NOEU]의 [0, -]를 마우스 오른쪽 클릭하고 [Scalar Map]을 클릭한다. 변형량[RESU____DEPL]의 대화창과 같은 [Scalar Bar Properties]창이 나타난다. 역시 OK를 클릭하면, [ScalarMap:2]이 생성되며, 화면에는 응력 분포가 적용되어 있는 이미지가 나타난다.

    이미지 하단에 나타난 색상 바는 수치와 함께 응력의 분포를 나타낸다. 응력텐서를 확인하면 최대응력은 49.4828Mpa을 나타내고 있다. 단면에 해석 결과를 색 분류로 표시하기 우선, 해당 응력의 단면을 확인해 보자. 트리의 [RESU____SIEQ_NOEU] → [0, -]를 마우스 오른쪽 클릭하여 [Cut Planes]를 선택한다. [Cut Planes Definition] 대화창이 표시된다. 이 화면에서, Orientation(절단 방향) //X-Y Number of planes(면의 수) 1

  • - 34 -

    Displacement(0,..1) 0.5를 선택하고 OK를 클릭한다.기본값은 XY면을 균등하게 10개 면으로 절단하는 것이 설정되어 있다. 이미지창에는 이하의 화면이 표시된다.

    이 이미지는 해당 응력의 단면을 확인하는 것이고, 응력 텐서의 단면을 확인하기 위해서는 [RESU____SIGM_NOEU]의 Object에서 [Cut Planes]를 시행한다.결과를 확인한 후, 계산 결과를 저장하자.

  • - 35 -

    제 3 장 중소·중견기업 사용사례

    제 1 절 중소기업 사용 사례(독일 Simscale 중심으로) 본 절에서는 Code_Aster를 활용하여 기업들이 구조해석 서비스를 활용할 수 있도록 웹 기반의 서비스를 제공하는 독일의 Simscale(주) 서비스 내용을 설명한다. Simscale(주) 는 독일의 뭰헨 근처에 위치한 제품 시뮬레이션 컨설팅을 주로 하는 중소기업 회사이다. 최근에 1:1 기반의 소수 기업의 컨설팅을 넘어서서 시뮬레이션 서비스 사용자 수를 확대 지원하기 위하여 오픈소스를 활용한 서비스를 선보였다. HTML5를 기반으로 웹 환경에서 언제어디서든지 손쉽게 서비스를 접근하여 이용할 수 있는 환경을 개발하였으며 이를 이용하여 사용자 확보를 위한 마케팅 및 컨설팅 활동을 활발하게 진행 중이다.

    그림. Simscale 포탈 서비스

  • - 36 -

    1. 웹 기반의 사용자 서비스 Simscale 서비스는 웹 기반의 환경에서 작동하도록 개발되었으며 모질라 파이어폭스, 구글 크롬, 오페라, 사파리 등의 다양한 브라우저에서 작동이 가능하다. 하지만 현재 익스플로어에서는 HTML5 가 완전히 지원이 안되는데 추후 버전업될 익스플로어 환경을 고려하면 서비스 가능성이 높다고 사료된다. Simscale 서비스를 사용하기 위해서는 다음 화면에서 회원가입을 진행해야 한다.

    그림. SimScale 서비스 회원 가입 처리

  • - 37 -

    회원가입 절차가 끝나고 승인이 완료되면 로그인 화면을 통해서 서비스 사용을 위한 절차를 진행한다.

    그림. SimScale 서비스 로그인 로그인이 끝나면 다음과 같이 서비스를 이용할 수 있는 웹 기반 해석 플랫폼이 실행되고 동영상 등을 통해서 서비스 사용 방법 등을 설명해주는 기능이 활성화 된다. 처음 접속하더라도 동영상 매뉴얼을 통해 손쉽게 서비스를 익히고 사용이 가능한 사용자 기능을 제공한다.

    그림. 로그인 후 화면

  • - 38 -

    또한 화면 오른쪽 부분에 시뮬레이션 전과정에 필요한 CAD 모델 관리, 뷰잉, 메시 생성, 시뮬레이션 처리 등에 해당하는 작업 내용들이 목록화 되있고 이를 통해 자신의 목적에 맞는 프로젝트 정보를 관리할 수 있다.

    그림. SimScale 서비스 화면

    SimScale서비스는 할당 자원이나 시뮬레이션 종류에 따라서 사용 금액이 부여되는 비즈니스 모델을 가지고 있다.

  • - 39 -

    그림. SimScale 서비스 가격 2. 웹 기반의 전처리 가시화 서비스 사용자는 그림과 같이 자신이 보유하고 있는 STEP, IGES 등의 표준 캐드 데이터를 자신의 웹 프로젝트 공간에 업로드 한다.

    그림. CAD 데이터 업로드 SimScale 는 웹 환경에서 CAD 데이터가 가시화 되고 사용자가 이를 상호작용할 수 있도록 HTML5기반의 X3Dom 데이터 모델로 변환하고 화면에 가시화 시켜준다. 사용자는 마우스를 이용하여 모델의 크기를 조절하고 회전하는 등의 작업을 수행 할 수 있다.

  • - 40 -

    그림. 사용자가 업로드한 3D CAD 데이터의 렌더링 처리 사용자가 작업한 모델의 업로드가 완료되고 렌더링을 통해 모델을 확인하였으면 해석 수행을 위한 메시를 생성할 수 있다. 메시 생성은 상단의 Mesh_Creator 탭을 클릭함여 메시 생성을 위한 작업 환경으로 변경시킨다. 메시 생성 환경에서는 아래와 같은 메시 생성 옵션들이 존재하고 사용자가 원하는 형태의 메쉬 생성 옵션을 선택한 후 상단의 Start 버튼을 클릭하면 SimScale 클라우드 서비스가 메시를 자동으로 생성해준다. 생성된 메시모델도 사용자가 원하는 형태로 크기, 위치 등의 조절하여 생성된 메시 결과를 검토해볼 수 있다.

    그림. 메시 생성 옵션과 메시생성 결과

  • - 41 -

    3. 웹 기반의 해석 지원 서비스 메시 모델이 생성되면 사용자는 생성된 메시 모델을 이용하여 구조해석을 수행해 볼 수 있다. 이를 위해서는 구조해석 시뮬레이션을 위한 조건을 부여해야 하는데 이는 상단의 Simulation Designer 탭에서 수행한다. 모델의 Contact 조건, Material, 해석 타입, Boundary Condition 등의 옵션을 지정 하면 해석을 위한 준비가 끝난다.

    그림. 해석처리를 위한 세부 과정

  • - 42 -

    주어진 조건을 이용하여 해석시 사용할 코어 수나 옵션 등을 지정한 후 Start 버튼을 클릭하게 되면 해석이 진행된다.

  • - 43 -

    4. 웹 기반의 후처리 서비스 해석이 완료되면 사용자는 Post-Processor 탭에서 해석된 결과를 그림과 같이 가시화 하여 이용할 수 있다.

    그림. 후처리 가시화 환경 화면

    상단의 Filed 정보중에 관심이 있는 해석 결과 내용을 선택하여 다음과 같이 그 결과를 확인할 수 있다.

    그림. Displacement 정보를 가시화한 결과

  • - 44 -

    그림. vonmises 정보를 가시화한 결과

    뿐만 아니라 사용자는 Report 도구를 이용하여 해석 결과에 대한 분석 결과를 PDF 로 만들어서 이용할 수 있다.

  • - 45 -

    그림. 해석 결과에 대한 레포트를 생성하는 화면제 2 절 Hyperworks 상용 전후처리기로써 전세계 시장을 확보하고 있는 Hyperworks는 다양한 산업체에서 이용되고 있는 상용솔루션이다. 지금까지 Hyperworks는 Ansys 등의 상용 솔버를 위한 전처리 데이터를 생성하는 솔루션이었으나 기업에서 오픈소스 사용에 대한 관심이 지대해지면서 최근에 플러그인 개발을 시작하고 연구하고 있는 중이다. 본 절에서는 현재 연구 개발 중인 내용을 살펴보기로 한다

    1. Hyperworks Plugin Hyperworks 플러그인과 Code_Aster를 통한 해석 처리 지원을 위하여 다음과 같이 Hypermesh 를 통해 메시를 생성한 후 해석 조건을 부여하여 Code_Aster 를 통해 해석을 수행한다. 수행된 결과는 후처리와 연동되어 그 결과를 자동을 확인해서 볼 수 있다.

  • - 46 -

    그림. Hyper Mesh 와 Code_Aster 통합 절차 구체적으로 보면 Code_Aster 가 해석하기 위하여 필요한 메시 입력 파일은 IDEA포멧인 unv로 생성되어 입력이 된다. 추가적으로 해석 조건을 정의한 옵션 정보들이 자동으로 Code_Aster 의 명령어 스크립트로 변환되어 제공된다. 그리고 해석결과는 ENSIGHT 포맷으로 지정하여 해석을 수행시킨다. 해석결과는 자동으로 통합되어 Hyper Mesh를 통해 그 결과를 검토한다.

  • - 47 -

    그림. 구체적인 입력데이터 설명

    그림. 해석 결과의 가시화

  • - 48 -

    제 4 장 결론: 활용방안 및 추후연구

    제 1 절 슈퍼컴퓨터기반 Code_Aster를 활용한 구조해석 서비스

    본 절에서는 분석된 결과를 토대로 슈퍼컴퓨터환경에서 Code_Aster를 활용한 웹 기반의 중소·중견기업용 구조해석 서비스 제공방법을 제시한다.

    1. 슈퍼컴퓨터환경에서 HTML5 웹 기반의 부품디비를 활용한 시뮬레이션 서비스

    제안하는 슈퍼컴퓨터환경에서 HTML5 웹 기반의 부품디비를 활용한 시뮬레이션 서비스를 다음과 같은 구조로 되어있다. 시스템은 크게 다음의 4개의 레이어로 구성된다. 1) 웹 기반 사용자 해석 서비스 인터페이스 레이어, 2)부품정보관리 레이어, 3)작업 및 보안 관리 미들웨어 레이어, 4)슈퍼컴퓨터 레이어 사용자는 웹 기반 사용자 해석 서비스 인터페이스를 이용하여 자신이 원하는 부품을 생성하고 원하는 시뮬레이션 수행할 수 있다. 먼저 웹 환경을 통해서 자신의 슈퍼컴퓨터 계정 아이디를 이용하여 웹 기반 해석 서비스 환경에 접속한다. 그 후에 자신이 설계한 CAD 모델을 업로드하거나 카타로그에서 필요한 부품을 선택한 후 크기나 형태 등의 옵션을 설정하여 해당 모델을 생성한다. 사용자는 생성된 모델을 활용할 수 있을 뿐만 아니라 생성된 제품 모델의 기계적인 성능과 안정성 등의 주요한 성능을 테스트하기 위한 시뮬레이션 수행해 볼 수 있다. 또한 그 결과를 웹상에서 바로 가시화하여 검토하고 해

  • - 49 -

    석 결과를 가시화 해줄뿐만 아니라 결과에 대한 분석결과를 레포트로 생성하여 사용자가 활용할 수 있도록 해준다. 부품 정보 관리 레이어는 부품 카테로리와 부품 요소에 대한 정보를 저장하고 관리하고 활용할 수 있는 관계형 데이터베이스로 구성된다. 해당 부서 담당자는 이를 이용하여 부품 정보들을 업데이트하고 관리함으로써 다양한 산업에서 시스템을 활용할 수 있는 정보를 제공해준다. 작업 및 보안관리 미들웨어는 사용자가 요청한 작업을 슈퍼컴퓨터를 통해서 처리하기 이전에 기업에게 필수적인 보안 문제를 중간에서 해결해주는 역할을 한다. 또한 요청한 사용자 작업에 대한 스케줄을 관리하고 해당되는 작업을 슈퍼컴퓨터에게 전달함으로써 슈퍼컴퓨터를 통한 해석 작업이 이루어지도록 도와준다. 뿐만 아니라 슈퍼컴퓨터의 보안 등을 고려한 통합 방법을 제공함으로써 한층 강화된 형태의 효율적인 처리를 지원하도록 한다. 마지막으로 슈퍼컴퓨터는 제품 구조해석을 수행하는데 있어서 고 성능의 자원할당이 많이 필요한 작업을 처리하는 역할을 한다. 특히 대규모 제품에 대한 병렬 처리가 가능한 형태로 Code_Aster 솔버를 구성하고 이를 통해 효율적인 제품 해석 처리가 가능하도록 한다.

  • - 50 -

    그림. 제안하는 슈퍼컴퓨터환경에서 HTML5 웹 기반의 부품디비를 활용한 시뮬레이션 서비스

    2. 추후연구 및 한계점

    본 연구에서는 오픈소스인 Code_Aster의 기능과 모듈을 분석하였다. 이를 통해 Code_Aster를 활용할 수 있는 기본적인 토대를 마련하고자 하였다. Code_Aster를 활용한 사례를 살펴보기 위하여 대표적으로 독일 SimScale(주)에서 제공중인 서비스와 Hyperworks에서 연구 중인 Plugin엔 대하여 살펴보았다. 마지막으로 분석된 내용을 토대로 중소·중견이 서비스를 활용할 수 있는 “슈퍼컴퓨터를 활용한 웹 기반의 부품데이터 기반 구조해석 서비스 모델”을 제안하였다. 하지만 기업체에서 활용하는데 있어서 가장 중요한 것은 시뮬레이션의 신

  • - 51 -

    뢰성이다. 추후 연구에서는 신뢰성 검증을 위하여 중소·중견기업과 함께 제품을 선정하여 시뮬레이션해보고 이를 검증된 소프트웨어 및 실험 결과와 비교해볼 예정이다. 또한 앞서 제시한 “슈퍼컴퓨터를 활용한 웹 기반의 부품데이터 기반 구조해석 서비스 모델”을 개발 및 제공하는데 있어서 웹 기반의 렌더링의 경우 브라우저에 종속되어있기 때문에 성능이 제한된 단점이 존재한다. 뿐만 아니라 실질적인 서비스를 제공하기 위해서는 해결해야할 문제들이 다수 존재한다. 따라서 이러한 문제들을 심도 있게 분석해보고 분석된 결과를 통해 서비스 제공 모델 프로토타입을 개발하고 이를 기업에 적용해봄으로써 슈퍼컴기반의 서비스제공을 통한 중소·중견적용 가능성들을 살펴보고자 한다.