2008-04-26
org.kosen.entty.User@58f8782a
여준호(yeoya)
- 5
Navier-Stokes equation을 FDM법으로 수치해석화 하여 시뮬레이터를 제작할려구
준비중인 대학원생입니다.
네비어 스톡스 방정식은 세상에 풀수 없는 7대 난제에 속하는데
수치해석적으로 근사해를 구할수 있다고 알려진 유명항 편미분 방정식이죠^^;
그 움직임을 2D로 시뮬레이터를 만들어 보고 싶은데.
먼저 유동장의 지배 방정식으로 네비어 스톡스를 쓰고
초기조건과 경계조건은 틀을 잡았습니다.
지금 문제는
r * Dv/Dt= r델p + w델^2v + f r : 밀도 w : 점성 v : 유체의 속도
p : 압력 f : 외력
밀도 * 물질미분 = 압력변화 + 점성변화 + 외력
비압축성이라는 가정하에(dvi v =0) 밀도는 상수로 나타내어집니다.
위의 방정식을 formulation해야하는데.
아직 공부가 많이 부족해서 방정식에 대한 이해도도 떨어질뿐더러.
수치해석의 과정을 풀어나가는데도 어려움이 있어서 질문을 올립니다.
도움이 되는 자료나
조언해주실수 있으신분은 부탁드리겠습니다.
- navier stoke
- 네비어 스톡스
- 유체역학
지식의 출발은 질문, 모든 지식의 완성은 답변!
각 분야 한인연구자와 현업 전문가분들의 답변을 기다립니다.
각 분야 한인연구자와 현업 전문가분들의 답변을 기다립니다.
답변 5
-
답변
안길홍님의 답변
2008-04-26- 0
몇가지 자료를 올립니다. 도움이 될런지 모르겠네요. -
답변
안길홍님의 답변
2008-04-26- 0
몇가지 추가자료를 참고하여 주시기를... -
답변
안길홍님의 답변
2008-04-26- 0
몇가지 추가자료가 더 있어서 올립니다. 그리고 ppt- animation은 file upload가 되지 않아서 eMail로 보내드리겠습니다. -
답변
이응신님의 답변
2008-04-27- 0
단순히 시뮬레이터 개발만 하는 것이 아니라 SCI급 논문도 발표해야 하는거지요? 방정식에 대한 정확한 이해와 수식을 바로 세워야 국제적인 논문에 발표할 수 있을 것입니다. 수치해석은 해보셨으면 알겠지만 솔직히 약간 예술적인 취급이 필요합니다. Navier-Stokes 방정식이 비선형이고 편미분방정식이라서 어려운 것이 아니라 방정식을 올바르게 세울 수 있는 환경에 대한 이해가 어렵기 때문입니다. 비선형 방정식을 풀이하는 방법이나 해의 존재 여부는 수학에서 하는 일이므로 시뮬레이터를 개발하려는 사람은 고민할 필요가 없습니다. 어차피 실제 문제에서 형성한 수식이므로 해의 존재는 보장이 되어 있고 단순히 풀어내는 절차만이 문제가 됩니다. 유체역학에서 진짜로 어려운 수치해석은 Laval 노즐에서 초음속과 아음속이 노즐 가운데서 생기는 현상을 이해해서 노즐의 모양을 설계하는 것인데 이것도 70년대에 NASA에서 해결했습니다. 시간 파라메터 방식인데 관련서적이나 논문을 찾아보면 나와있을 겁니다. 일반적인 유체역학 문제라면 별 문제없이 수치해석이 가능합니다. 유체역학에서 CFD의 발달로 여러가지 수치해석하는 프로그램이 나와있으므로 상용 프로그램을 사용하는 편이 좋습니다. 괜히 스스로 프로그래밍을 하려고 시도하면 시간이 엄청 걸릴 뿐만아니라 논문을 발표해봐야 결과를 믿는 사람이 드물다는 사실입니다. 수치해석 과정이 옳다는 것을 문제삼을테니까요. 시뮬레이터를 꾸밀 때 실험치에서 가져오려면 LabVIEW의 G-language를 사용하여 인터페이스를 만들든지, SIMULINK로 만드는 방법이 잘 알려져 있는데 CFD에서는 어떤 시뮬레이터를 사용하는지는 잘 모르겠습니다. CFD에서 수치해석을 할 때 격자를 어떻게 주느냐, 초기치를 어떻게 잡느냐에 따라 유동장에서 해석값이 천차만별로 나오기 때문에 신뢰도가 떨어집니다. 그래서 상용 프로그램을 이용하면 어느 정도 오차가 줄어드는 방법을 많이 구사하였으므로 그래도 조금 낫습니다. 어떤 경우는 상용프로그램을 돌리더라도 매번 돌릴때마다 값이 다르게 나오는 경우가 종종 있습니다. 컴퓨터 내부에서 유동소수점을 계산하는 알고리듬 때문이고 난수 발생을 시킬 때 seed를 주는 방법에 따라서도 달라집니다. CFD의 상용프로그램 중에서는 seed를 주는 방법을 선택하는 것도 있습니다. 또 가상 점성을 주어 진동항을 막고 유동장의 뒷편으로 가면서 수치적으로 안정시키는 알고리듬도 있습니다. 따라서 여러 번 프로그램을 돌려서 최적화를 시켜야 안정적인 풀이를 얻을 수 있습니다. 매뉴얼을 잘 읽어보면 나옵니다. 스스로 시뮬레이터를 만들었을 때 CDF에서 나오는 기법들을 잘 모르면 엉뚱한 결과나 나올 가능성이 높습니다. 비선형항들을 처리할 때 물리적인 의미가 합당한가 수치적인 처리가 합당한가를 잘 따져야 합니다. 물리적으로 Chaos 현상이 들어있다면 비선형항을 그냥 처리했다가는 유동장의 뒷편에서 완전히 다른 결과가 나옵니다. Navier-Stokes방정식의 난류해석을 참고하면 됩니다. 수치적으로 비선형항 때문에 오차가 증폭되는 경향이 있으므로 수치해석 프로그램의 메뉴얼을 잘 읽어보면 비선형항을 처리할 때 어떤 조건을 사용해야 하는가에 대한 설명이 있을 것입니다. Navier-Stokes 방정식에서 어려운 곳은 유동장에서 속도에 따른 스트레스가 생기고 스트레스를 텐서장으로 가정하고 텐서연산을 하는 부분입니다. 대부분의 초급 유체역학 교재에서는 속도장을 이중편미분해서 처리하는데 그렇게 쉬운 방법이라면 이미 다 풀이법이 나왔겠지요. 유체의 스트레스 텐서를 처리해야 하고 편미분방정식을 세우고 경계조건을 따라 방정식을 분리해내는 방법인데... 편미분 방정식을 다루는 책에 나와있을 것입니다. 이렇게 편미분방정식을 제대로 세워야 남들도 인정을 할 것입니다. 방정식이 옳다면 풀이과정이야 컴퓨터에 맡기면 되겠지요. 먼저 연속역학(continuum mechanics)에서 유체역학 부분을 읽어보면 Navier-Stokes 방정식을 텐서장으로 처리하는 과정이 나와있습니다. 또 Tensor analysis책을 보면 Navier-Stokes방정식을 세우는 과정이 있습니다. 이렇게 수학적인 이해를 해야 제대로 된 방정식을 세울 수 있습니다. Navier-Stokes 방정식에 대한 어지간한 문제들을 이미 다 풀었는데 난류쪽에서 논란이 많으므로 난류를 다루지 않는다면 기존의 교재나 논문을 참고하면 시뮬레이터를 만드는데 많은 도움을 받을 수 있습니다. 진짜로 case by case로 하려면 윤활문제(lubrication)를 다룬 교재나 논문을 찾아보십시오. 비뉴턴 유체들을 이용하여 특정한 경계조건에서 윤활작용을 제대로 이해하기 위한 수많은 시도들이 윤활문제 교재에 나옵니다. 논문을 찾아봐도 될 것 같군요. 비뉴턴 유체들의 스트레스 텐서를 구하는 방법, 경계조건에 따른 비선형 미분방정식을 세우는 방법, 수치해석을 하는 방법 등이 잘 나옵니다. 몇년전에 Springer에서 출간한 교재를 읽어봤는데 그때 나왔으므로 지금쯤은 윤활문제에서 보편화된 기법들도 많이 나와있을 것입니다. >Navier-Stokes equation을 FDM법으로 수치해석화 하여 시뮬레이터를 제작할려구 >준비중인 대학원생입니다. > >네비어 스톡스 방정식은 세상에 풀수 없는 7대 난제에 속하는데 >수치해석적으로 근사해를 구할수 있다고 알려진 유명항 편미분 방정식이죠^^; >그 움직임을 2D로 시뮬레이터를 만들어 보고 싶은데. >먼저 유동장의 지배 방정식으로 네비어 스톡스를 쓰고 >초기조건과 경계조건은 틀을 잡았습니다. > >지금 문제는 >r * Dv/Dt= r델p + w델^2v + f r : 밀도 w : 점성 v : 유체의 속도 > p : 압력 f : 외력 >밀도 * 물질미분 = 압력변화 + 점성변화 + 외력 >비압축성이라는 가정하에(dvi v =0) 밀도는 상수로 나타내어집니다. >위의 방정식을 formulation해야하는데. >아직 공부가 많이 부족해서 방정식에 대한 이해도도 떨어질뿐더러. >수치해석의 과정을 풀어나가는데도 어려움이 있어서 질문을 올립니다. > >도움이 되는 자료나 >조언해주실수 있으신분은 부탁드리겠습니다. > -
답변
안길홍님의 답변
2008-04-28- 0
eisenbahn님의 의견에 전적으로 동의하며, equation에 대하여 이해가 되었다고 하면 이를 적용할 software에 관련된 site 목록을 참조하시기를 바랍니다.일부는 free로 software를 download받아서 활용할 수 있는 것도 있으니 응용하여보시기를...