[re] 유체의 수치해석에 대한 의문

글쓴이
음냐
등록일
2002-08-18 17:33
조회
8,230회
추천
1건
댓글
13건
라면으로 끼니를 때우면서 사색자님의 글을 읽다가 라면이 다 부풀었네요.

님께서 하시는 일을 보니 저하고는 전혀 상관이 없는 일이라서 뭐라고 댓구는 못하겠군요.
Flow 3D도 구경해 본적이 없어서, 이름만 들어보고....

>음냐님의 글을 보고나서 몇가지 제 자신이 가진 의문점들을 여쭤보고자하는데 혹시 시간되시면 고견을 듣고 싶군요.

고견이라고 까지 할수 있겠습니까? 대학원 2년 배운게 전부인데.....
그리고 다른 사람보다 노가다를 많이 해 보았다는 거 밖에는....

>
>저는 1차원 자유표면을 가진 유동해석을 위해 finite difference method를 이용하고 있습니다. Lagrangian 프레임에서 1차원으로 단순화시킨 Navier-Stokes z momentum 방정식은 매틀랩을 통해 풀고 이 값을 Crank-Nicholson method를 이용한 contium 방정식으로 넘겨준후 liquid jet의 거동을 관찰합니다. 그리고 다시 N-S 방정식으로 피드백시킵니다.
>
>1차원으로 단순화시킨 근거중 하나는 노즐밖으로 돌출된 liquid jet의 pressure r gradient는 z  gradient에 비해 크게 중요하지 않다는 것이 Flow 3D 해석결과 관찰되었기 때문입니다.
>
>또한, radial velocity가 axial velocity에 비해 그 기여도가 적다고 판단되며 axial velocity도 노즐을 떠난 직후 급속히 r gradient가 사라지게 됩니다.
>
>결국 tau_zz는 고려되지만 tau_rz는 liquid jet 자유표면의 대부분의 영역에서 그 중요도가 떨어지기때문에 이와 관련된 항들은 소거시켜도 무방하리라 추측됩니다.
>
>지금까지 드린 말씀으로 아마 짐작하시겠지만, 제가 푸는 문제는 drop-on-demand inkjet print head에서 drop formation에 관련된 문제입니다.

이거 연구한다면 매우 재미 있겠네요. 홍홍홍
밤 새는 줄도 모르고 컴 앞에만 앉아 있겠다.
에구 그런 시절이 그립네요. 지금은 밤새면서 술마시고 있어서 크크크.


>이러한 drop formation문제를 Fromm의 경우는 3차원 N-S 방정식으로 풀었습니다만 이후 CH Lee, Roy and Adams, PH Chen등 많은 사람들이 1차원으로 단순화된 surface tension driven liquid jet 의 drop formation 문제를 다뤘으며, 1차원으로 단순화된 접근이 3차원 혹은 axisymmetric 가정하의 2차원 문제로 푸는 것보다 훨씬 빠른 시간안에 3차원 가정때와 꽤 유사하게 풀 수 있다는 것이 입증되었습니다.
>
>유사하게 풀 수 있다는 것이지 정확하다는 것은 아닙니다. 수치해석이란 것 자체가 정확성에 근접하고자하는 학문이지 정확성을 모사하는 학문은 아니라고 개인적으로 생각합니다.

그런 경우 매우 많습니다. 수치해석도 그 방법 자체가 사용한 알고리즘 그 오차안에서 작동하는 것이기에 1차원으로 가정한 식이 3차원 알고리즘의 오차안에서 설정 되었다면 가능하겠지요.
많은 Navier-Stokes 방정식의 exact 해도 그 해가 나오기 전까지 무수히 많은 가정이 포함 되어 있어서 사람이 수식으로 풀수 있도록 간단화 됩니다. 그런 경우 수치해석보다 정확하고 수치해석의 해를 검증하는데 사용하겠지요.

적절한 가정과 그에 맞는 알고리즘의 선택, 알고리즘을 이행할 코드 등등 여러가지가 받혀주면 가능하지 않을까요?
그리고 매우 정확하고 그냥 답이 나온다면 무었때문에 연구를 할까요?  정확한 해에 접근하기 위해 연구를 하겠지요.
실험은 거기에 맞는 실험 장치를 갖춘다면 그 값이 사실일 것입니다. 그 실험을 대신하기 위해 모사를 하는 것 이겠지요. 말 그대로 모사 입니다.
아직도 수치해석의 접근이 불가능한 분야도 매우 많습니다. 그러나 경우에 따라서는 실험보다도 귀중한 자료를 얻을 수 있으며 반대로 말도 안되는 자료가 나오는 경우도 있지요.

>저는 이 문제에 접근함에 있어서 기본 방정식은 Jens Egger 의 논문을 참조하고 있습니다.
>개인적으로는 Roy and Adams와 그에 연관된 다른 연구자들의 논문의 기본방정식에 오류가 있지 않나 의심을 합니다.
>
>제가 개발한 모델 (단순하면서도 빠르면서도 정확하게...이게 제가 추구하는 세가지 목표입니다.) 을 Flow 3D라는 상용패키지와 비교를 해봅니다.

그렇죠 자신이 생각해 낸 방식이 맞나 틀리나 검증을 해야 하고 다른 사람의 방식을 비판해야 하는데, 증명할 방법으로 상용을 쓴다고 틀린 방식은 아닐것으로 생각합니다. 상용패키지를 쓴다면 쓰는 이유가 있을테니깐요.

>Flow 3D는 volume of fluid method를 사용합니다. 최근들어 Ansys도 이 해석방법을 도입하였습니다.

>
>이 방법의 장점은 자유표면을 가진 유체의 거동 관찰에 있어서 메쉬를 각 시간 프레임마다 새로 짜줄 필요가 없다는 것입니다.
>
>음냐님께서 liquid-liquid 혹은 air-liquid와 같이 free surface 혹은 interface를 가지는 유체문제를 다루시는지는 잘 모르겠습니다만, OA Basaran (Purdue univ 화공과의 OA Basaran이라는 분이 이쪽에서 재미있는 논문을 꽤 내고 있습니다.)과 같이 경계면내의 유체에 대해서 일반적인 FEM으로 해석할 경우 시간값이 변할때마다 메쉬를 새로 생성하고 적절한 알고리듬을 동원하여 리파인해줘야 합니다. time and cost expensive하다고 표현하더군요.
>
>여하튼 이런저런 이유로 최소한 free surface 를 가진 유체문제에 있어서는 VOF 방식이 요즘에 꽤 두각을 나타내고 있습니다.

VOF가 처음 나온때가 1960년대 입니다. 그리고 자유표면 현상을 연구하는 쪽이 inkjet에만 있는 것도 아닙니다. 실제로 유조선이나, 자동차 연료탱크, 심지어는 날라가는 미사일이나 로켓의 연료통등 자유표면 현상으로 문제가 생기는 쪽에서는 그 전부터 이런 연구를 많이 했었지요.
물론 inkjet 과는 전혀 다른 문제로 시작 했지만요.

>
>물론 VOF방식도 문제가 없는 것이 아닙니다.
>가장 기본적인 문제점이 예를 들어,… 흠… VOF방식에서 노즐내 air entrapment문제가 해석이 안됩니다.
>
>유체 경계외를 단순히 void로 간주하기때문에 한 cell안의 fluid volume이 일정 이하 (기본설정이 0.05일겁니다.)가 되면 그 cell은 유체가 없는 것으로 간주됩니다.
>
>이럴 경우 유체가 cell안에서 사라져버리는 경우가 생깁니다. numerical method의 맹점이죠.  컴퓨터에게 어느 일정 수치 이상 혹은 이하가 되면 그 값은 의미없는 값으로 치환시켜버리는 것입니다. 한번 생기기 시작한 에러들은 점점 적층이 되어서 나중에는 이상한 결과가 나올수도 있습니다.

이런 현상을 가지고 시뮬레이션의 약점이라고 보시면 안될것으로 생각합니다. VOF의 약점이죠. 그리고 그런걸 최소화 하려고 새로운 알고리즘을 연구하는 사람도 있을 것 입니다.
그런 에러를 최소화하거나 피해가려구 다른 사람들이 별짓을 하지 않습니까? 


>그리고, 상용패키지에서 유저가 자유롭게 취사선택할 수 있는 팩터들은 그다지 많지 않습니다.
>Flow 3D의 경우 기껏해야 viscos stress evaluation을 explicit, Jacobi implicit, ADI중 어느방법을 선택하느냐, pressure iteration을 SOR로 하겠느냐 아니면 line implicit으로 풀겠느냐, 기타 preprosessor에 직접 써넣어주는 몇가지 파라미터들, 즉 convergence와 relaxation factor가 전부입니다. 기타 몇몇 파라메터들을 더 조정해줄 수도 있겠지만 별로 유의미한 작업들은 아니라고 봅니다. 그렇다고, 개인이 직접 코드를 만든다... 제가 Flow 3D, Fluent, Ansys보다 더 나은 코드를 만들기는 무리가 아닐까 싶은데요... :) 목숨걸고 하면 비슷하게는 만들 수 있겠지만, 뛰어넘는 역작은 혼자서는 아마 불가능하리라 봅니다. 님께서도 직접 코딩을 해보신듯 하시니 아마 이해하시리라 봅니다. 단순히 코드를 만든다는 것과 검증된 코드를 제공하겠다는 것은 전혀 다른 의미라고 봅니다.
>
>하물며, 개인이 실험실 수준에서 하는 코드와 전담개발인력을 두고 전문 소프트웨어회사에서 하는 코드의 질이 같다고 보면 어폐가 있겠죠. 틈새시장을 파고들수는 있습니다. 저도 Flow 3D에서 구현되지 않은 기능들때문에 스스로의 코드를 만든 것이지 만약 대안이 있었다면 상용 패키지를 사용했을겁니다.
>
>자, 간단한 제 연구의 백그라운드는 이것으로 소개가 되었을듯 싶네요.

음냐, 요즘은 상용프로그램이 워낙 발전을 해서 그리고 사용하기도 쉽고, 그래서 많이 사용하지요.
그러나 때에 따라서는 간단한 geometry이나 물리적 현장이 복잡한 경우 그리고 일반 상용프로그램이 사용하는 알고리즘등이 맘에 안들경우 직접 코딩해서 쓰는 경우가 많지요.
우리나라의 경우 직접 코딩해서 연구하는데는 거의 없는 것으로 알고 있습니다. 복잡한 Geometry의 경우 격자 짜는게 보통일이 아닌거 같더군요. 유동 현상도 무지 복잡하고 잘 맞는 다는 보장도 없고, 윗사람들이 보면 별루 하는일 없이 노는 것으로 알고 있나 봐요. 시간도 많이 걸리고, 화려한 결과(컬러풀한 그림이나 동영상)도 안나오고, 그래서 어떤 회사는 그저 대외 홍보용으로만 쓴다는 얘기도 있습니다.
이런 이유때문에 밑의 Harry Kim 님께서 그런 말씀을 하신거 같네요.

>
>
>대략 이론을 한 몇년 하고 난후 요즘에는 실험을 하고 있습니다. 잉크 방울의 크기가 60 마이크론 그 근방입니다. 한 펄스당 하나씩 생성된다고 했을때 5 kHz~20 kHz 영역을 사용주파수로 했을경우 5,000 개에서 20,000 개의 방울이 생성됩니다. 이때 제가 최종적으로 궁금한 것은 각 잉크 방울의 속도와 크기입니다. 이것을 해석하고 추측하는 것이 제 연구주제입니다만, 실험도 하고 이론도 하다보니 이제와서 CFD에 대한 기본적인 것들에 회의가 들더군요.
>
> Flow 3D를 예로 들어보자면,
>
>(1) convergence값이 1.0 이 기본설정인데 0.9로 설정하였을때 기본설정일때와 다른 값이 나온다면, convergence factor를 1.0으로 기본설정했을때의 값이 옳을까요 아니면 0.9로 좀더 finer convergence를 취했을때의 값이 옳을까요?

convergence factor가 Flow 3D에서 어떻게 사용되는 지는 저도 잘 모르겠군요. 아마 수렴을 안정화 시키는 값 같은데요. 그거 잘못 사용하면 결과는 나오는데 엉뚱한 값이 나올거 같네요. 상용프로그램의 맹점이라고 들 하데요. 무조건 수렴해서 값이 나오도록 말이죠.
개발 코드의 경우 뭐가 잘못 되었을 경우 해가 나오지 않고 발산을 하거든요. 먼저 매뉴얼이나 개발자에게 물어봐서 어떤 역할을 하는지 파악하는게 중요할거 같네요.

>(2) Relaxation factor의 값이 incompressible assumption에서 1.7이 기본설정인데 numerical noise를 줄이기 위해 1.6을 사용했을때 기본설정에서 관찰되던 스파이크들이 사라진다면... 과연 그 스파이크들은 진짜로 numerical noise였을까요, 아니면 실제로는 존재해야하는 값임에도 불구하고 underrelaxation을 함으로서 뭉게져버린 값들일까요?

Relaxation factor의 경우 수렴 가속화 시키는 값인데요. 그거 알고리즘마다 다르고, 격자마다 다 다르고, 지멋대로 입니다. 이론적으로도 구하기가 어렵구요. 아마 1.7 나온것은 uniform 격자에서 이론적으로 뽑은 경우 일 것입니다. 그것도 알고리즘마다 그 값이 다 다르고요. nonuniform의 경우 이론값도 없구요.
그냥 1.0,으로 주시면 아무 작용을 하지 않습니다. 계산 시간이 무지 길어 지겠지만....
그리고 수렴판정을 어느 정도에서 하시는지 ....

>
>(3) 5 kHz의 압력 펄스에 대한 drop formation 해석에서 사용한 파라메터들을 이용하여 다른  조건 예를 들어 13 kHz의 압력펄스를 주었을때 지금껏 사용했던 파라메터들을 바꿔주는게 정석일까요 아닐까요?
>
>그럼 이론적 지식으로 어떤 파라메터들을 선택해서 어떤 값을 지정해줘야하는지 예측이 가능할까요, 아니면 trial by error 접근을 해야할까요?
>

당근 시행착오 입니다. 그러나 많이 아신다거나, 경험이 풍부하시면 시행착오를 무지 줄일수 있겠죠.
물리젹 현상을 이해하는것이 가장 중요한거 같아요. 시간의 조건이 바뀌었을때 무엇에 어떤 영향을 주는지 그것을 파악하셨다면 다른 결과가 나올것 으로 생각하는데......


>(4) linearized Navier-Stokes z momentum eq를 이용하여 노즐에서의 approximate analytic solution 을 개발했습니다.
>convergence 1.0, Relaxation factor 1.7에서의 수치해석값과 비교해보니 에러가 20%였습니다.
>convergence 0.9, Relaxation factor 1.6의 수치해석값과 비교해보면 에러가 10% 입니다.
>그러면, 둘 중 어느 에러가 제 approximate analytic solution의 에러라고 논문에 보고해아할까요?

수치해의 값중 어떤게 진짜인지 그것부터 판단을 하시는게 좋을 듯 하네요. 컴퓨터로 계산한 값이 무조건 맞는 다는 보장이 없다니깐요. 실험도 마찬가지 이고요.


>
>(5) 메쉬를 짜는 것도 예술의 하나라고 하셨는데…첫번째 일단 coarse하지만 uniform한 메쉬로 해석을 해보고 복잡한 유동이 관찰 혹은 예상되는 곳은 좀더 세밀하게 refinement해준다가 기본이 아닌가 싶습니다만. 님께서는 이런 기본적인 접근방식이 아닌 님만의 독특한 다른 방식이 있습니까?
>
>저는 점진적으로  uniform, coarse mesh -> locally non-uniform, fine mesh로 진입하는 방식을 선호합니다. 첫번째 uniform, coarse mesh상태의 관찰단계에서 대략적인 윤곽을 살펴본후 관심이 가는곳, 유동의 흐름이 복잡한 곳을 중점적으로 세분화해가는 것인데 이것은 특별한 수련이 필요한 작업이라고는 보기 힘들지 않나 싶은데요. 게다가 요즘에는 mesh generation을 전문적으로 해주는 툴들이 많이 생겼죠. Flow 3D의 경우에는 그냥 사각형의 격자 모델만이 이용됩니다.
>
>여하튼, 이런 단계적 접근은 별다른 예술은 아니라고 생각합니다만… 님께서 예술이라고 말씀하셨을때는 무엇을 이야기하시는지 잘 이해가 안갑니다. 님께서는 어떤 geometry가 주어졌을때 cell의 aspect ratio는 어디는 얼마정도, grid density는 얼마나, 어느곳은 refine해줘야하고 하는 것들을 이론적으로 입증하실 수 있으며 그러한 이론에 기반하여 그리드를 짜십니까?
>
>제가 보기엔 많은 분들이 저와같은 방법으로 메쉬를 짜나간다고 봅니다만 이것은 말씀드렸다시피 예술이라고 보기엔 무리가 있을거 같네요.
>
>그리고 유동장의 특성을 알고 메쉬를 짠다는 말은 잘 이해가 안가네요. 모르기때문에 CFD를 하는게 아닌가 싶네요. 그냥 머릿속에 여기에 난류가 발생할 것이다라는 두리뭉실한 정도의 특성을 파악해야한다는 것인지 아니면 그보다 더 고차원적인 특성을 미리 파악하고 메쉬를 짜야한다는 것인지 잘 모르겠습니다.
>

글쎄요. 님께서 지금 하시고 계신 일의 경우 geometry가 그리 복잡한 경우가 아닌거 같네요. 연습장에 그림 그린후 자로 내부를 긋고 일정간격으로 점을 내어 그 좌표값을 그냥 입력하는 정도...
농담입니다. 실제 공학쪽(팬, 항공기, 자동차 등) 에서 사용하는 geometry의 경우 무지 복잡합니다. 그건 형상의 경우 격자만 완성하는데 몇일이 걸릴지 모르니깐요. 격자수도 무지 많고요. 그런경우 격자 만들다 시간 다 보내지요. 그런경우 격자한번 만들어 보고 solver돌려서 해 나오구, 그 해를 대충 보고서 다시 격자 만들고, 계속 반복하다가는 그냥 짤리지요. 격자수가 늘어나면 계산 시간도 무지 걸리고요.
아마 님께서 계산하시는 경우 격자 수가 그리 많지 않을 것입니다. 그런 경우야 뭐 관계 없지만......
그냥 무지 많이 집어 넣으면 되겠지요. 그리고 결과도 무지 많이 집어 넣은 경우가 잘 나옵니다.
코등하기 위해 만든 식 이산화 방정식을 보시면 각각의 scheme의 정확도가 나와 있을 것입니다. 거길 보시면 절단 오차라는 것이 있을 것입니다. 1차 정확도냐 2차냐.... 그것도 격자 간격으로 나와 있습니다. Delta x, Delta y, Dleta t 등등 그 델타 값을 무지 작게 주면 1차 정확도라도 값이 잘 나오겠죠(현상에 따라 항상 정확하다는 보장도 없지만) 그러나 격자 수가 엄청나게 들어 갈것입니다. 당근 계산 시간이 엄청 걸리고, 그러나 1차 정확도 대신 2차 정확도의 이산화 방정식을 쓰시면 식을 계산 하는데 걸리는 시간은 좀 길지만 격자수가 무지 줄어 들어 전체 계산 시간을 줄일 수 있습니다.

실제 요즘 CFD로 계산하는 문제의 경우 격자수가 얼마나 들어 간다고 생각하십니까? 자유게시판에 가 보시면 서울대 항공과의 김승조 교수님 연구실의 cluster 컴퓨터에 대한 얘기가 있을 것입니다. 미지수가 200만개 정도라고 나와 있는 것으로 기억합니다만.....
제가 몇년전에 논문에서 보았는데, 매우 간단한 형상 2차원 채널 유동의 난류에 대한 논문이 나와 있더군요. 난류의 경우 그 값을 구하기 위해서는 여러가지 방법이 있습니다만 실험보다 정확하다는 DNS라는 것이 있습니다. 격자수 200만개 정도로 1985년에 스텐포드에서 매우 속도가 작은 유동을 풀었더군요. 격자수 200만개이면 격자당 미지수가 속도 3개 압력 1개(비압축성의 경우) 약 800만개의 미지수 있습니다. 그러나 난류의 경우 통계적인 학문이기 때문에 통계를 낼 정도의 값이 필요합니다. 몇만개 정도의 시간당 샘플이 필요하죠. 음냐 숫자 하나당 64bit의 실수로 보더라도 엄청한 기억 장치가 필요합니다(64x8000000x10000 = ? bit). 이거 1985년 논문입니다.
그후 1997년 정도에인가 같은 형상에서 속도가 3배정도 큰 유동을 해석 했는데..... 격자수가 2000만개라구 하더군요. 상상이 가십니까?
그런 경우 격자수를 줄이기 위해 무슨 짓을 했겠습니까?
난류를 잡을 수 있는 최소의 격자가 필요하겠지요. 이런 경우 최소의 격자를 어떻게 만들겠습니까? 시행착오로 할까요? 엔터 치고 한달후 결과 확인하고 아니네 하면서 격자크기 바꾸어 보고 .....
할 수 있겠습니까 일반 기업체에서 .....
 
2차원 채널 그거 매우 간단한 형상입니다.





>
>
>
>
>제 근본적인 회의는 여기에서 옵니다.
>많은 파라메터들과 메쉬의 조합으로 실험에 근접한 값들을 출력시킬 수는 있습니다.
>그런데, 이게 자꾸 속된말로 ‘사기’치는 것같은 기분이 들더라구요.
>파라메터를 바꿔서 일단 근사한 값들이 나오면 논문에 발표하기에도 즐겁고 보스에게 자랑하기에도 즐겁습니다만, 마음 한구석에는 찜찜합니다.

>만약 어떤 연구소의 다른 분들이 자기도 나와같은 해석을 해봤는데 도저히 그런 값이 안나온다고 하면 “아, 그것은 이 파라메터를 이렇게, 저 파라메터를 저렇게… 그리고 메쉬는 이렇게 짜야 나옵니다.” 라고 해야할까요?

메쉬가 해에 영향을 주지 않는 정도로 짜야 합니다. 실제 예전 논문의 경우 메쉬가 의해 해에 어떤 영향을 받는지 테스트를 합니다. 패러미터도 마찬가지로 영향을 받지 않아야 합니다.
그런 경우는 어디엔가 문제가 있어서 일 것입니다. 수렴이 덜 되었다든지 아니면 수렴이 아예 안되던가......
알고리즘 자체가 문제 있을수도 있구요.

>
>엔지니어가 하는 모든 실험은 재생산성에 기반을 둬야합니다만, 그러한 파라메터 설정이나 메쉬 설정이 과연 재생산선을 이루는데 아주 큰 요인이라고 한다면, 그리고 그러한 설정들이 이론적 기반위에 성립하지 않고 근본적으로 직관이나 trial by error에 의존한다면 문제가 있지 않을까요?
>

문제는 거기에서 나왔다고 생각합니다. 뭐가 바뀌었을 때 잉크 드랍넷의 주기나 형상 아니면 입구 조건등이 바뀌었을때 그때 물리적인 조건이 바뀌기 때문에 그것에 맞게 그 문제를 푸는 방법 아니 과정이 바뀌어야 겠지요. 메쉬설정이나 패러미터 값 바꾸는 것도 그 과정중의 하나 이구요.
그런건 그리고 직관이 아니구, 엔지니어링 센스가 아닐까 싶네요. 봉사 문고리 잡듯이 하는 것은 전혀 공학이 아니지요.


>예를 들어, JH Ferziger의 Computational Methods for Fluid Dynamics라는 책이 옆에 있기에 지금 막 훑어봤는데도 CFD에서 discretization은 각 방법론에 따라 어떻게 한다 뭐 이런식의 이야기는 나오지만 convergence, relaxation parameter는 어떤 식으로 정해줘야하고 어떤 geometry존재시 어떤 식으로 셀 사이즈크기와 local refinement를 정해줘야하는지는 어떠한 이론도 나오지 않습니다. 실제로 저도 그에 대한 어떠한 이론도 접해본적이 없습니다.

에구 웬만한건 다 공개 되어 있습니다. 최소격자 구하는 방법도 나와 있군요. 주로 일반적인 얘기만 나와 있지만, 일반적인 얘기가 가장 보편적이고 핵심이니깐요. 그런걸 정확히 이해해야 합니다.
경험도 중요하고요.

>
>이론도 존재하지 않는 문제,  trial-by-error가 주된 근간인 논점들을 가지고 예술이라고 부르신 것은 아니신지요?
>

님께서는 아직 예술을 느끼실 경지에 안 오르신거 같습니다.

>
>상용 프로그램으로는 Algor, Flow 3D 두가지를 써봤습니다. 제가 디벨로퍼가 아니라서 안의 루틴까지 확인할 수야 없지만, 두 해석툴 모두에게서 문제점을 발견했습니다. Algor의 경우는 quadratic cell의 outnormal vector중 몇몇의 방향이 내부로 향하고 있습니다. 이것은 프로그램상에서는 안타나납니다. 필요에 의해서 Algor가 preprocessing중에 생성하는 데이터파일을 분석해본적이 있는데 그때 우연히 발견되었던 문제입니다. outnormal vector가 반대로 되어있으니 나중에 solver에게 잘못된 값을 전해주겠죠.

정확히 무엇때문인지는 저도 잘 모르겠구요. normal 벡터 구하는 것도 수치적으로 구하기 때문에 에러는 존재할수 있습니다. 그러나 터무니 없이 에러가 나오는 것은 어디엔가 문제가 있을수 있겠군요.
뭐라고 답변을 못드리겠네요.

>
>Flow 3D의 경우 국내 S 대기업에서도 사용하고 유럽에 있는 Lexmark라는 프린터 회사에서도 사용했던 (혹은 지금도 사용하는 ) 것으로 압니다. 그런데, VOF 자체의 문제뿐 아니라 이 툴의 문제점중 하나는 drop이 날아가서 아무것도 존재하지 말아야할 void cell의 압력값이 사라지지않고 남아있다는 것입니다.  결론은 후속으로 다가오는 liquid jet 의 자유표면이 이런 존재하지 말아야할 압력값때문에 일그러지게 됩니다.

저도 무지 궁금하네요. 왜 그런 경우가 발생했는지. 또 그런문제를 개발자에게 물어 볼수도 없는 입장일 경우도 많을 텐데.........
그래서 중요한 문제의 경우 직접 코딩하는 것입니다. 상용 코드가 항상 만능은 아니니깐요.


>
>님께서 말씀하시길 “특히 비전공자들이 하는 실수가 그거지요. 무턱대고 엔터키 친다고 결과가 나오는것은 아닙니다. 모르는게 무지는 아니지요. 자신이 모른다는 것을 모르는 것이 문제 이지요.
>실제로 실험 전공하신 분들이 겪는 경우 중의 하나 입니다. 어려운 컴퓨터 코드는 아니고, 그저 그래픽으로 화려한 화면에서 몇번 마우스 클릭하여 격자 짜고 적당한 변수를 주고 계산한면 해가 뚝딱나온다고 생각하는 사람 의외로 많습니다. 전산유체역학 그리 쉬운 학문 아닙니다.” 라고 하셨는데, 원칙적으로 추구해야할  잘된 코드라는 것은 제가 보기엔 7살짜리 꼬마라도 마우스 클릭 몇번으로 계산하면 나와야하는 것이 정상이 아닐까 싶습니다.
>
>주관이 개입되기 시작하면 그것은 이론적 토대가 서있는 학문이 되기 힘들지 않을까요?

음냐 그럼 무엇때문에 그런 학문이 생겨 났겠습니까? 아무나 다하면 눈치 빠른 사람은 벌써 희소성이 있는 부분으로 도망을 가겠지요. 유치원생이 그 정도 할 정도인데 왜 기업에서는 석사 박사 전공자를 뽑을까요? 그리고 그런 일을 시킬까요.
어려우니깐 여러사람이 덤비고 서로 잘났다고 논문발표하고 .......



>
>
>마지막으로, 값들이 다르게 나온다고 했을때, 님께서 말씀하실때 비슷하게 나와야 하는 것이 정상인데 아니면 제가 잘못했을거라고 하셨는데, 잉크방울 40 마이크론 직경이 실험으로 측정되었는데 36 마이크론이라는 직경이 수치해석값으로 나왔다면 제게는 썩 잘된 결과는 아닙니다.
>
>그런데, 며칠의 시간을 투자하여 이리저리 수치해석 파라메터 조합과 메쉬를 뜯어고치다보면 40 마이크론 나오게 만들 수 있습니다. 실험값과 예측치가 100% 일치합니다.
>
>자, 이게 정말 일치했다고 말할 수 있겠습니까? 이게 제 딜레마입니다. 사기치는 기분같다는…
>

실험을 다시 해 보십시요 40으로 나오는지............... 절대 안 나올것입니다.



  • 사색자 ()

      답변 감사합니다. 역시 유체 수치해석은 답이 없는 분야인거 같습니다.이론을 할때는 느끼지 못했던 것들이 실험을 하고 비교를 하면서 조금씩 각성하는거 같습니다. 언제쯤이면 과연 일반화된 시뮬이 가능할까요?

  • 사색자 ()

      음냐님께서는 새로운 알고리듬이나 discretization을 연구하셨습니까, 아니면 이미 있는 방법론을 구현하는 코딩쪽에 주력하셨습니까?

  • 사색자 ()

      제가 일관되게 회의를 품고 있던것은 여러가지 알고리듬간의 비교우위 등에 관한 것은 아니었다고 봅니다. 수치해석이 안고있는 innate problem 즉 어떠한 알고리듬을 쓰더라도 사라지지 않는 태생적인 한계에 대한 것이었는데요. 아무리 정확성을 기울인다고 해도 1st order, 2nd order등의 오차범위는 피할 수가 없는 것입니다. 아주 간단한 예로 Crank-Nicholson의 경우는 시간, 공간 모두 2nd order accuracy라고 하던가요? 결국 그 scheme자체가 오차를 내포할 수 밖에 없습니다. Lax method는 그 자체로서 가상점성함을 이용하여 쓸모없는 numerical noise를 줄이고 있다고는 하지만 본값을 불필요하게 뭉게버리죠. 모든 scheme에는 이렇듯 나름대로 문제점들

  • 사색자 ()

      이 존재합니다. VOF의 맹점중 몇가지를 제가 지적한것을 음냐님께서는 그것은 VOF의 약점이지 시뮬 자체의 약점은 아니라고 하셨는데, 제가 말씀드리고자 한 의도는 모든 시뮬에 내포된 약점 그자체였습니다. 그것을 VOF의 예를 들어 설명하고자 한 것이었을 뿐이었습니다. 그리고 제가 꾸준히 의문을 품고있는 것, 즉 그러한 태생적 한계를 가진 전산해석결과를 파라메터 몇개 조정, 메쉬사이즈 조정하면 실험치와의 오차를 줄이는 방향으로 나갈 수 있다는 것입니다. 이것은 전혀 노우하우가 아니라고 봅니다. 여기서 계속해서 "나는 꽁수나 사기를 치고 있는 것이 아닌가"라는 의문이 드는 것입니다.

  • 사색자 ()

      얼마만큼 전산유체를 다루어야 "나는 전산유체를 좀해본 사람이다."라고 이야기할 수 있는지는 모르겠지만, 저 자신은 아직까지는 "약간 맛뵈기해본 정도"라고 느낍니다. 2년동안 이리저리해봤지만 아직도 오리무중이고요. 10년을 해도 마찬가지일거 같습니다만...

  • 음냐 ()

      일반화된 시뮬레이션이라 그거 참 어렵네요. 어쩌면 불가능할지도 모르겠습니다. 워낙 CFD가 CASE BY CASE라서요. 저도 해본것이 대부분 석사가 그렇듯이 기존에 나온 알고리즘 구현해서 관심이 있는 분야 해석해서 남들과 같이 비교해 보는 그런 수준밖에는 안돼서요. 그것도 예전에요. 현재는 전혀 다른 일을 하고 있거든요.

  • 음냐 ()

      모든 수치해석이 그렇듯이 항상 오차를 내포하고 있습니다. 컴퓨터로 실수를 계산하더라도 컴퓨터 자체에 오차가 있듯이요. 문제는 오차가 있더라도 우리가 원하는 값을 구한다면(오차는 실험이나 통계.. 무엇을 하더라도 항상 존재하니깐요) 즉 원래 시작했을때 포함한 오차 이내의 값이라면 그 값은 타당하지 않을까요? 예를 들어서 유동 소음같은 것을 해석 할때는 구할때는 매우 상당한 주의가 필요합니다. 음파의 오더가 일반 유동에 나오는 압력이나 속도에 비해 그 값이 무지 작기 때문이죠 오더가 4내지 5정도로요. 그런 정확도를 요구하는 계산에서 1차나 2차정확도로는 값을 구할수가 없습니다. 이럴경우 오차를 줄이기 위해 사용하는 스킴의 경우 4차 6차 8차 그 변형들 무지 많습니다.

  • 음냐 ()

      몇개의 예를 보고서 그 학문이 태생적인 한계로 보신다는 것은 너무 비약한다는 생각이 듭니다. 경우에 따라서는 매우 간단한 유동의 경우 NS방정식의 값과 일치합니다. 이경우는 그 유동현상에 맞게 적절한 알고리즘의 선택과 적절한 격자가 들어가 있기 때문이죠. 말도 안되게 격자를 쓰고 알고리즘을 적용하고 해서 해를 구한다면 그것은 백날 백년을 하더라도 해가 안나올것입니다. 실험도 마찬가지이지요. 실험기구마다 그 측정 유효범위가 있을것이며, 그 측정 오차도 나와있을 것 입니다. 그런것을 벗어난 기구를 쓰고서는 측정값이 오차가 크다고 한다면 그게 더 문제이지요.

  • 음냐 ()

      정확한 유동현상의 물리적 특성에 대한 이해와 그것을 구현할 알고리즘의 이해 그리고 마지막으로 실행할 도구(상용이건 In-house 이든지, 당연히 적절한)의 사용법을 아신다면  아마도 좋은 결과가 있지 않을까 싶네요. 우선은 왜 이런 방법의 적용이 안되는 것일까? 다른 방법을 없을까? 그것을 이해하는 것이 좋을듯 하네요.

  • 음냐 ()

      그래도 종기원 다니시면 좋겠다. 하시는 일이 맘에 드실지 안드실지는 모르지만......

  • 사색자 ()

      아뇨,저 종기원이랑은 관계없습니다. 살다보니 회사다니다가 영국으로 흘러들어왔네요. 하는 일은 마음에 들지만 제 한계를 절감하는 중이랍니다.

  • 사색자 ()

      유체에 대해서 집요하게 물고늘어져서 죄송하네요. 그런데, 점점 그런 생각이 듭니다. 몇세기가 지나더라도 과연 유체 전영역에서 일반화된 거동시뮬레이션이 가능할까? 아시다시피 미분해석법에서 x축 y면 좌측은 u, 그러면 x축 y면 우측은 u+(dudx)*dx 로 표기하지 않습니까? 이거 실제로는 series function화시킨 것중에서 처음 2항을 남기도 나머지 항들은 소거시킨것인데, 아무리 항수를 n차로 늘인다한들 그 자체가 님께서 표현하신 절단오차를 내포한 방정식이 됩니다. 전혀 새로운 수학이나 개념이 나오지 않고서는 이러한 오차가 태생적으로 포함되지 않은 미방의 유도는 요원할 것이고 거기서 태어난 N-S방정식의 해도 결국에는 실제거동의 일반적인 모사에는 실패할 수 없지 않나하는 생각이 들었더랩니다.

  • 사색자 ()

      또 다른 예로 컴퓨터로 랜덤함수를 만드는 경우를 생각해보면... 태생적으로 규칙적인 계에서 완벽한 혼돈계를 모사할 수 있는가하는 개똥철학적 의문이 생깁니다. Harry Kim님이 말씀하신 바와같이 "좇도모른다"라는 말이 제게는 딱 맞는거 같군요. 그분의 표현방식은 좀 놀라웠습니다만...



과학기술Q&A

게시판 리스트
번호 제목 글쓴이 등록일 조회 추천
204 [정보] 일본 식육(食肉)가공업계 댓글 2 로켓연구가 08-17 4882 0
203 엔트로피 질문 댓글 11 로켓연구가 08-15 6445 0
202 답변글 [re] 엔트로피 질문 댓글 14 KO 08-16 5603 0
201 답변글 [re] 엔트로피 반론 댓글 12 Simon 08-23 7510 0
200 inverse heat conduction problem? 댓글 1 Les Miserables 08-14 5501 4
199 유체의 수치해석에 대한 의문 댓글 2 사색자 08-13 7506 1
198 답변글 [re] 유체의 수치해석에 대한 의문 한때 직장인 08-13 6366 2
197 답변글 [re] 유체의 수치해석에 대한 의문 댓글 3 harry kim 08-17 5783 1
196 답변글 [re] 유체의 수치해석에 대한 의문 전문대생 08-25 5298 0
195 답변글 [re] 유체의 수치해석에 대한 의문 황인태 02-07 5499 1
194 답변글 [re] 유체의 수치해석에 대한 의문 댓글 1 음냐 08-26 7084 0
193 답변글 [re] 유체의 수치해석에 대한 의문 음냐 08-17 6303 1
192 답변글 말씀이 지나치시군요 08-27 6124 2
191 답변글 [re] 유체의 수치해석에 대한 의문 사색자 08-18 7599 0
열람중 답변글 [re] 유체의 수치해석에 대한 의문 댓글 13 음냐 08-18 8231 1
189 답변글 [re] 유체의 수치해석에 대한 의문 댓글 4 사색자 08-19 6144 0
188 곡면에서의 가속도 헛가리네요. 댓글 3 이지원 08-12 8033 4
187 혹시 intrinsic safety calculation 을 아시는 분? aaa 08-11 5413 1
186 유체의 저항이란? 댓글 12 환비 08-08 10508 1
185 답변글 흠... 맞나 모르겠네요. 댓글 6 환비 08-09 5814 4


랜덤글로 점프
과학기술인이 한국의 미래를 만듭니다.
© 2002 - 2015 scieng.net
모바일 버전으로 보기