블로그 이미지
FMIKS
M.S. (Mechanical Engineering) Contact : fmiks@protonmail.ch

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

'Program/OpenFOAM'에 해당되는 글 3

  1. 2023.09.17 SnappyHexMesh를 이용한 격자 생성 - 1. Overview
  2. 2020.06.12 SBC - Raspberry, LattePanda 등..
  3. 2020.05.22 What is OpenFOAM?
2023. 9. 17. 23:04 Program/OpenFOAM

CFD를 수행함에 있어 가장 중요한 부분중에 하나는 역시 격자와 관련된 부분일 것이다.

 

격자는 계산을 수행하는 각각의 지점들이기 때문에 이러한 격자의 퀄리티가 해석의 결과물에 지대한 영항을 미치기도 한다.

 

일반적으로 전산해석에 사용되는 격자를 짜기 위해서는 상용툴(ANSYS, StarCCM, ANSA...)에 있는 격자 프로그램을 이용하는 편이다.

 

이러한 프로그램들은 격자를 짜면서 바로바로 눈으로 확인할 수 있으며 초보자도 쉽게 사용할 수 있는 UI로 구성되어 있다.

 

하지만 이런 프로그램들은 전문적으로 사용되는 해석툴로 license 비용은 일반인이 감당하기 어려우며 기업들도 다수의 copy를 구매하기 쉽지 않은 가격을 자랑한다.

 

그렇다면 결국 오픈소스 계열을 찾아봐야 하지만 오픈소스의 경우 쉬운 사용성과 높은 퀄리티를 뽑아내기 위해서는 더 많은 시간을 필요로 한다.

 

필자도 상용툴을 최대한 배제한 상태에서 격자를 짜보기 위해 다양한 오픈소스 프로그램을 찾아보고 사용해보기도 했지만 현재는 오픈폼에 내장된 SnappyHexMesh가 가장 사용하기 편하기에 이를 소개하고자 한다.

 

SnappyHexMesh 방법은 아래 그림과 같은 순서로 격자가 생성된다.

1 -> 2 -> 3
4 -> 5 -> 6
7

전문적인 용어를 제외하고 간단히 설명하면 배격격자와 모델을 중첩시킨 다음 중첩된 지점의 면을 표현하기 위해 쪼개는 과정을 수행하여 격자의 크기가 설정된 수치에 될때까지 수행한다. 이후 설정에 따라 격자가 필요없는 부분을 날려준다. 이후에는 작은 육면체로 되어있는 상태의 표면을 매끄럽게 만들어주는 과정을 과정을 거친뒤 경계층 격자와 같은 설정에 따라 최종 작업을 수행하는 과정을 거친다.

 

전체적인 프로세스는 위와 같이 진행되지만 실제로 격자를 짜다보면 수없이 많은 수행착오와 에러를 마주하며 짜증나는 순간을 만나게 된다.

 

예전에 OKUCC(OpenFOAM Korea User Community Conference)에서 이상봉 교수의 말을 들었던게 생각이 난다.

 

정확한 워딩은 생각이 나지 않지만 요지는 이런거였다. 오픈폼 실력을 일정수준 올리기 위해서 들어가는 시행착오의 절대적인 시간같은것이 있고 이는 필수불가결하다는 내용이었다.

 

오픈폼 사용자 입장에서 매우 공감이 가는 말이었다.

 

오픈폼은 결국 CFD 업계에서 비주류이고 그에따라 사용자가 적다보니 주변에 물어볼 사람이 없다는게 아쉬웠다.

(물론 비주류지만 점점더 프로그램이 성장해가고 있고 이제는 상용툴 업체에서 긴장하는 수준까지 올라고 있다.) 

 

그리고 그놈의 TUI 환경이 주는 그 특징 때문에 진입장벽이 꽤 높다고 할 수 있다. 이런 사용자 환경이 주는 불편함이 사용자가 익숙해지는데 드는 절대적인 시간을 늘리는데 한목한다고 생각한다.

 

이런 상황에서 오픈폼에 대한 자료들은 공식홈페이지에서 제공하는 매뉴얼과 해외 사용자 커뮤니티를 활용해야하며 국내에서 상세하게 소개된 사이트나 사용법을 쉽게 설명해주는 사이트는 많지 않다...

 

지금은 가뭄의 단비 같은 "OpenFOAM 해킹 가이드"라는 책이 출판되어있고 실제로 꽤 유익하다.

 

하지만 내가 처음 오픈폼을 접하던 시절에는 이런 서적도 없던지라 별의별 오류와 씨름했고 해석은 고사하고 격자를 짜는데도 엄청 고생했던 기억이 든다.

 

지금 내가 몸담고 있는 회사도 ANSYS 사의 제품군을 사용하지만 퇴근후에는 짬짬히 OpenFOAM을 이용한 CFD를 통해 개인적인 연구를 하고있다.

 

사실 이 블로그를 만든 이유는 OpenFOAM 사용지식을 정리해서 올려 다른 사용자들의 시행착오를 줄여보고자 함이였는데 지금은 개인적인 블로그가 되어가고 있는 기분이다...

 

앞으로도 조금씩 시간이 된다면 실제 개인적으로 연구하는 모델의 격자를 짜는 방법과 해석과정을 순서대로 올려보려고 한다.

반응형

'Program > OpenFOAM' 카테고리의 다른 글

SBC - Raspberry, LattePanda 등..  (0) 2020.06.12
What is OpenFOAM?  (0) 2020.05.22
posted by FMIKS
2020. 6. 12. 17:17 Program/OpenFOAM

SBC는 Single Board Computer의 약자로 한국어로 번역하면 단일 보드 컴퓨터 정도가 될 것 같다.

 

대중들에게 비교적 많이 알려진 SBC 중 하나는 Raspberry Pi(라즈베리파이) 시리즈이다.

 

라즈베리 파이의 개발 역사는 영국의 라즈베리파이 재단에서 어린이들의 교육을 목적으로 2012년에 만들어졌다.

 

대학원에서 공부를 하는 도중 라즈베이파이로 클러스터를 구축한 사례들을 우연히 접하면서 관심을 갖고

 

시간이 날때마다 조금씩 만지작 거려왔다.

 

학교를 졸업한 이후 보다 본격적으로(취업 준비는 안하고;;;) SBC를 이용한 OpenFoam 구동 및 해석을 시도했다.

 

간단하게 프로세스를 정리하면

 

SBC에 OpenFoam 구동환경 구축 -> 클러스터 구축 -> 클러스터를 이용한 CFD

                                        1단계                              2단계                     3단계

 

위와 같다.

 

라즈베리파이에 오픈폼을 구축한 사례를 참고하여 구동하는데 성공하였으나 라즈베리파이의 성능의 한계가 있어

보다 성능이 좋은 LattePanda로 SBC를 바꿀수밖에 없었다.(아래는 참고했던 사이트)

(http://www.wolfdynamics.com/ , https://openfoamwiki.net/index.php/Installation/Linux/OpenFOAM-dev/Raspbian)

 

라떼판다의 경우 라즈베리파이 보다 훨씬 좋은 성능을 갖고 있으나 가격적인 면에서는 무려 3~4배 이상 차이가 난다.

(라떼 판다의 경우 miniPC에 더 근접한거 같기도 하다.)

 

현재까지는 라즈베리파이, 라떼판다 모두 1단계 까지는 성공하였으나

 

코로나 사태와 비용적인 측면과 시간 부족 등 클러스터 구축인 2단계는 실행하지 못하고 있다.

(+클러스터 구축에 필요한 지식 공부 부족)

 

개인 프로젝트를 진행하는 도중 벽에 막히면 도움을 청할 사람이 있으면 좋겠지만.....

 

해당 부분에 관심을 갖는 사람이 워낙 적은지라 아쉬울 뿐ㅜㅠ

 

좌 : 라떼판다  /   우 : 라즈베리파이

반응형

'Program > OpenFOAM' 카테고리의 다른 글

SnappyHexMesh를 이용한 격자 생성 - 1. Overview  (0) 2023.09.17
What is OpenFOAM?  (0) 2020.05.22
posted by FMIKS
2020. 5. 22. 00:40 Program/OpenFOAM

유동해석 분야에는 다양한 CFD 프로그램이 존재하며 현재 상업적으로 가장 성공한 프로그램은

 

ANSYS사의 Fluent, CFX 또는 Altair사의 STAR CCM+ 등이 있다.

 

이러한 프로그램들은 교육 목적의 라이센스 비용은 저렴한 반면 성능 제한이 있거나(최대 격자수, 병렬연산 제한 등) 학생버전이어도 개인이 부담하기에 부담스러운 가격대인 경우도 있다.

 

CFD 분야에서도 Opensource 움직임이 있고 OpenFOAM, SU2 등 여러 프로젝트들이 있다.

 

이중 가장 활성화되어 있고 현재까지 성공적인 프로젝트는 OpenFOAM 이라는 것에 대부분 동의한다.

 

하지만 상용 소프트웨어에 비하면 여러 단점이 존재한다.

 

Linux 구동환경에 이렇다할 GUI 환경이 아니라 코드 기반으로 돌아가기에 처음 접하게 되면 무엇을 해야할지 감이오지 않는다.

(상용프로그램의 경우 친절하지는 않아도 사용자를 배려한 인터페이스 환경이 갖추어져 있으나 오픈폼(OpenFOAM)은 그런것이 없다...)

 

하지만 이런 불편함에도 불구하고 어느정도 프로그램에 숙달되고 기본적인 CFD 지식이 있다면 OpenFOAM은 최고의 도구가 된다.

 

무려 "무료"라는 이점과 해석 코드를 직접 수정(물론 코드에 대한 이해와 적용된 유체역학 이론에 대한 이해가 필요하기에 결코 쉬운일이 아니다)할 수 있기 때문에 한번 접하고 매력에 빠지면 쉽게 헤어나오기 어렵다.

(필자도 대학원때 오픈폼을 접한 이후 아직까지도 헤어나오지 못하고 있다....)

 

오픈폼에 대한 자세한 설명과 추가적인 정보는 아래의 사이트 링크를 올리는 것을 끝으로 마무리...

 

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

오픈폼 사이트 : https://www.openfoam.com/ , https://openfoam.org/

(위의 두 사이트 모두 공식 사이트이나 약간의 차이가 있다. 오픈폼 개발중 어떤 이유로 인해 두개의 그룹으로 나뉘게 되어 각각 별개의 프로젝트로 발전하게 된걸로 알고 있음...오픈폼은 큰 차이가 없는 것으로 알고 있음, 필자의 경우 openfoam.org 사이트를 더 많이 참고함)

위키백과 : https://en.wikipedia.org/wiki/OpenFOAM

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

 

※ 혹시 위의 내용중 잘못된 내용이나 바로잡아야할 내용이 있으면 언제든지 피드백 부탁드립니다.

   (메일, 댓글 모두 괜찮습니다.)

 

Sloshing tank (OpenFOAM을 이용하여 해석)

반응형

'Program > OpenFOAM' 카테고리의 다른 글

SnappyHexMesh를 이용한 격자 생성 - 1. Overview  (0) 2023.09.17
SBC - Raspberry, LattePanda 등..  (0) 2020.06.12
posted by FMIKS
prev 1 next