opensees 작업을 위한 문서편집기 세팅 방법 및 navigator 정보

2021. 4. 25. 12:20공학,과학/매트랩,파이썬,오픈시스(tcl) 코딩

반응형

** 문서편집기와 관련한 내용은 21년 8월 기준으로 visual studio code를 사용하고 있어서 이 글에 이어서 https://gkjeong.tistory.com/142 해당 글에 내용을 추가로 업데이트 하였다. 지금 이 글의 마지막에 편집기를 옮긴 이유를 짧게 언급하였으나 일반적인 경우에는 sublime text가 상당히 괜찮고 opensees와 관련해서는 세팅 방법이 더 간단하기에 무엇을 쓰든 상관 없을듯 하다.

 

최근 위와 같은 요청을 받았다.

 최근에 opensees를 사용하고 싶어하는 사람의 요청을 받아 이번 글을 작성하게 되었다. 나 같은 경우는 작년 8월부터 지진해석을 위해 opensees가 필요하여, 여러 레퍼런스와 논문들을 확인하는 시간과 함께 opensees를 조금씩 익혀왔고, 올해 2월 부터는 본격적으로 메인 해석 프로그램으로 opensees를 사용하게 되면서 어느정도 tcl 언어와 opensees 알고리즘에 대해 감은 익은 상태이다. 그러나 matlab과 python을 이용한 코딩은 연구하면서 기본적인 프로그래밍을 할 실력은 있었음에도 tcl 언어의 문법 구조는 메인언어로 쓰기에는 다른 언어와 이질감이 많이 컸다.

 

 그런데 opensees의 경우 약 2년 전쯤 파이썬 라이브러리로 공식적으로 개발이 되었기 때문에 장기적인 관점에서는 바로 파이썬에서 opensees를 사용하는게 나을지도 모르겠다. 나의 경우에는 아직까지는 opensees 기본 메뉴얼과 wiki 자료들이 거의 대부분 tcl언어에 기반을 하고 있고, 파이썬 코드는 깃허브에서의 레퍼런스들과 유료 자료들 뿐이기에 기본적인 opensees 사용법을 따랐다.(시간이 지나면서 이후 openseespy 관련 문서가 많이 발달되어 예전보다 openseespy관련해 더 우호적이긴하다.)

 주변에 opensees를 다루는 사람이 없고, 자신의 구조 지식이 3차원 해석툴을 기초적인 수준에서 스스로 코딩하는데 충분하고, 자신의 영어 능력이 외국 연구자들에게 자문을 구할 수준은 된다면, 즉 아무런 기반 없이 자신이 혼자 opensees내의 모든 알고리즘을 하나씩 제대로 이해하고 진행할 계획이라면 파이썬 라이브러리의 opensees를 사용하는게 훨씬 합리적이라 생각된다.(공식 메뉴얼과 함수 설명이 tcl 코드에 우선하여 되어있지만 장기적으로 볼때는 병행하거나 py를 다루는게 나아보인다.)

 

 내가 이렇게 먼저 설명하는 이유는 지금 내가 제시하는 설정 방법은 내가 생각하기에 최선을 향하는 방법이 아니라는 것이다. 나의 겨우엔 gui 프로그램이나 파이썬이나 여러가지 오픈시스 해석을 위한 수단을 확인하고 비교해본 시간을 가졌지만, 기존 연구실 선배들과 타 대학 교수님들이 남겨둔 과거의 소스코드를 부분적으로 가져와서 사용할 부분이 많았기 때문에 이 방식이 합당했다. 그리고 내가 아는 방법들이 몇가지가 존재한다 하여도 이런 방법들을 모두 다루는게 어려운것은 이러한 방법들은 개인의 노하우이고 나조차도 상당부분은 선배들의 교육을 통해 얻은 지식이기에 함부로 알려주기가 어렵다. 물론 학문적 연구를 위해서는 지식을 공유하는 것이 옳바르기에 이번에 요청한 분에게 따로 알려드리고 싶었지만 따로 연락할 수단을 받은게 없으므로 글을 남긴다. (이와 관련해서는 추후에 이 글을 확인하고 추가 질문을 비밀 댓글로 다신다면 여유가 있을 때 답변을 하겠습니다.)

 

 

slideum.com/doc/8162552/opensees-%ED%95%98%EB%A3%A8%EB%A7%8C%EC%97%90-%EB%B0%B0%EC%9A%B0%EA%B8%B0-%EB%B0%9C%ED%91%9C%EC%9E%90%EB%A3%8C---11817123-byte-

 

openSees 하루만에 배우기(발표자료) (11817123 Byte) | slideum.com

Free library of english study presentation. Share and download educational presentations online.

slideum.com

 우선 오픈시스를 다루기 이전에 이것을 통해서 먼저 오픈시스가 어디에 필요한지 제대로 인식할 필요가 있다. 2010년 당시 전산공학회에서 건국대 토목공학과 이태형 교수님이 발표하셨던 자료인데 시간이 지나 학문이 발전함에 따라 opensees의 공식 알고리즘이 더욱 확장되고 개선되었지만 전반적인 내용은 달라진게 없다. 해당 발표자료에서 가져오고 싶은 슬라이드가 많이 있지만 자료 다운로드와 배포를 금지해 둔 자료이므로 직접 확인해 보길 바란다. 142페이지의 슬라이드 자료이지만 연구하는 입장에서 ppt 142페이지는 부담스러운 분량은 아니라고 생각된다.

 

 

 

 

 

 우선 요청받은 내용은 gui 사용방법과 문서편집기 연동 방법이고 이 글에서는 그것에 대해 다룰 것이다. 그러나 나는 현재 gui 프로그램을 '개인' 연구용으로는 사용하지 않는다. 내가 프로그램을 실행시킬 때 나오는 그래프나 그림들은 plot를 통해 코드 상의 결과치들을 3차원에서 표현되도록 프로그래밍을 한 결과일 뿐이다. 그리고 이렇게 작업하는게 opensees가 가지고 있는 프로그래밍 이점을 살릴 수 있고 모듈화된 구조물의 경우 수정 작업시간이 아예 없어지기에 다양한 경우의 데이터를 뽑아야 하는 경우에 더욱이 이렇게 작업을 할 필요가 있다.

gui 프로그램으로 노드를 넣은게 아니라 코드를 통해 입력 조건에 맞게 자동적으로 노드와 부재등이 형성되게 프로그래밍 되어있다.

 

 

 

 

--------------------------opensees navigator 관련 설명------------------------------

 

 

 하지만 여기서는 opensees navigator 사용 방법에 대해 설명은 하려고 한다. 우선 opensees를 사용하는 가장 큰 장점은 기존 상용프로그램과 달리 자신이 파악할 수 있는 코드로 구조물을 구현하여 계산 과정을 명확하게 인식하는 것에 있다. 그렇기 때문에 opensees navigator 전 기능에 다루지는 않을것이며 어떻게 matlab에서 실행시키고 navigator에서 작업한 내용을 오픈시스에서 해석가능한 코드로 출력하는지 보이려 한다. DB에 기반한 재료가 물성치가 아니라 이론적으로 산술된 물성치를 자동적으로 계산하여 집어 넣도록 코드를 짜면서 기존 상용프로그램에서 구현이 안되는 매우 디테일한 비선형 조건과 수치해석적 결과치를 신뢰도 있게 뽑을 수 있다. (물론 이것을 구현하도록 코드를 짜는건 개인의 몫이기에 상당한 지식이 필요하지만 오픈시스 위키를 통해서 정형적인 수준에서 소스코드 예제를 받을 수 있으므로 연구용으로 사용하기에 크게 무리는 없다.)

 

opensees.berkeley.edu/wiki/index.php/Main_Page

 

OpenSeesWiki

Welcome to the OpenSeesWiki OpenSeesWiki is a Wiki creation. The goal is simple: to provide information about OpenSees. Please explore the site and see what a great resource OpenSees can be.. OpenSees OpenSees, the Open System for Earthquake Engineering Si

opensees.berkeley.edu

우선 오픈시스 네비게이션 다운로드는 아래에서 진행한다.

openseesnavigator.berkeley.edu/downloads/matlab-p-code/

 

Matlab P-code - OpenSees Navigator

OpenSees Navigator is available in a content-obscured form called P-code. Using these files you can run OpenSees Navigator inside Matlab the same way you run M-code. We distribute the software in this format instead of open-source, so that we have … Cont

openseesnavigator.berkeley.edu

위의 사이트에 접속하여 가입을하면 다운로드가 활성화되고 2021년 4월 현재 기준 가장 최신버젼은 19년도 3월 버젼이다.

 이제 다운로드하여 압축을 푼 후 matlab 홈탭의 경로설정에서 하위폴더와 함께 경로를 추가하면 된다.

 그리고 이제 OpenSeesNavigator 라고 명령어를 실행시키면 위와같은 네비게이터가 실행되며 이제 노드 좌표를 입력하고, 부재를 입력하고 부재 특성들을 입력하고 하중을 입력하는 등의 일반적인 구조해석 프로그램의 pre processor를 진행하면 된다. 그리고 analyze에서 run opensees를 진행시키는 것보다는 코드를 아래처럼 직접 뽑아내서 따로 첨삭을 진행하고 자체적으로 output을 뽑는게 합당하다고 생각한다.

navigator에서 작업된 input 데이터를 tcl코드로 뽑아 낼 수 있으며 이것을 오픈시스로 해석을 진행하면 된다.

 

 

 

 

 

 

 

 

--------------------sublime text 3 문서편집기 관련 설명------------------

(문의를 받아 확인해보니 가장 최신의 sublime text 4 에서는 해당 패키지 설치시 build중 오류가 뜨는걸 확인하였는데 무엇이 원인인지 살펴보질 못했습니다. 아마 무료로 사용하는 미등록 버젼의 기능상의 문제인듯 합니다. 게시글은 sublime text 3을 기준으로 설명된 내용입니다.)

 사실 sublime text이 개인용 문서편집기로 무료로 사용가능하고 작업 환경도 좋기에 사용을 하고 있지만 해당 프로그램은 사용 빈도와 작업량이 많으면 이를 인지하고 유료전환 요청을 띄운다고 프로그래머 지인에게 들어서 우려는 하고 있다. (나 같은 경우 input 데이터를 matlab에서 모두 작업하고 tcl언어로 번역을해서 뽑아내도록 프로그래밍이 되어있어서 sublime text 안에서 직접 작업하는 경우는 거의 없고 opensees를 실행하기 위해 쓰는 정도로만 쓰기에 걱정은 없다.) 그래서 혹시라도 이게 막히면 atom 편집기에서 opensees 패키지를 설치해서 쓸 생각이지만... 

 

(이것은 아톰용 언어 패키지이다.)atom.io/packages/language-opensees

 

language-opensees

Syntax highlighting and autocompletion for OpenSees tcl scripts in Atom

atom.io

 

(이것은 opensees 해석용 패키지 컨트롤 설명)

packagecontrol.io/packages/OpenSees

 

OpenSees - Packages - Package Control

OpenSees OpenSees is a simple plug-in for Sublime Text adding syntax highlighting, code completion, build commands, etc for the OpenSees extension language of Tcl (.tcl). Jump to Section Features Support for OpenSees syntax, in addition to Tcl syntax (usin

packagecontrol.io

사실 어떤 문서프로그램을 쓰든 package control를 깔고 build with를 설정하면 된다. 빌드는 코드를 실행가능한 파일로 변환 시키는 것인데, build with 기능을 통해 opensees를 통해서 코드를 읽으면 해석 결과물을 출력하게 된다. 각 문서 편집기마다 메뉴에서 찾아 보면 나오는 run 혹은 build 등의 기능을 눌러 진행가능하다.

sublimetext의 경우 ctrl+shift+p 단축키를 치면 나오는 창에 install package를 검색해서 다운받고 그 이후 opensees를 검색하여 build를 자동세팅하도록하면 build system 중에 opensees가 생긴다.

 그리고 이때에 package setting 에서 opensees 패키지에서 확인되는 opensees dir 세팅 값에 맞추어서 opensees 공식 홈페이지에서 다운받은 opensees 폴더를 위치시키면 된다.

나 같은 경우는 user세팅을 통해 처음 저장해둔 위치에 폴더를 그대로 두고 opensees 실행파일 경로를 따로 지정해두고 사용하고 있다.

 

 

(참고로 개인적으로는 sublime text 외의 문서편집기에서는 자동으로 opensees에 맞게 build해주는 package를 만들어둔걸 발견하지 못했다. 따라서 직접 경로를 확인하고 opensees를 열어서 현재 작업중인 위치로 이동하여 작업 문서를 읽도록 배치 파일을 만들던지[방금 말한 순서대로 코드를 그대로 따면 파이썬 등으로 쉽게 배치 파일을 만들 수 있다.], 혹은 그냥 직접 opensees를 실행시켜서 경로를 설정하고 읽게하면 된다.

[opensees 홈페이지에서 기본적으로 제시하는 방법은 지금 보이는 이 방법이다.] 이때 경로에서 \ 대신 /으로 입력해야 읽혀지는 것에 주의를 해야겠다.)

이런식으로 작업 경로를 변경하고 main파일을 읽으면 된다.
경로에 띄어쓰기 등이 있다면 문자열 리스트를 읽을때 오류가 나므로 " " 안에 경로를 묶어서 인식하도록 하는게 좋다.
작업 경로를 바꿔두지 않으면 main 파일 내에서 불러오는 소스파일을 읽을 수 없다. 만약에 컴퓨터 설정에서 자신이 연구용으로 쓰는 폴더는 path에 고정적으로 잡아둔다면 바로 [source 파일명]만 입력하면 바로 실행된다.

 

 

 

------------------------------------------------------------------------------------------------------

현재 내가 가장 주로쓰는 방식은 비쥬얼스튜디오코드와 경로 설정을 활용해 직접 실행을 하는 방식이다. 

 현재 내가 가장 주로쓰는 방식은 비쥬얼스튜디오코드와 경로 설정을 호라용해 직접 실행을 하는 방식이다. 해당방식이 위의 서브라임의 패키지 툴을 활용하는 것보다 불편할 수 있지만, 현재 파이썬, 비쥬얼베이직, 매트랩, tcl 언어등을 번갈아가면서 필요에 맞게 쓰고있다보니 편집기를 보다 간소화 할 필요성을 느껴 이쪽으로 정착하게 되었다.

반응형