우수하고 사용하기 쉬운 고품질 오픈 소스 CFD 솔버가 있습니까?


17

저의 논문은 연소 모델 감소를위한 수치 적 방법을 개발하는 것입니다. 연소 시뮬레이션의 화학 부분에서 순수하게 분석법을 실행하고 0-D 시뮬레이션 (유량 없음)에 대한 많은 사례 연구가 있습니다. 내가 원하는 것은 흐름이있는 시뮬레이션, 바람직하게는 2D 또는 3D 시뮬레이션을 실행하는 것입니다.

계산 요구 사항이 높기 때문에 이러한 시뮬레이션은 병렬로 수행해야합니다. 또한 Chemkin 또는 Cantera와 같은 화학 솔버와 인터페이스 할 수있는 소스 코드가 필요합니다. (Chemkin은 Fortran 77에 있고 Cantera는 C ++에 있습니다.)

이상적인 경우에는 대학원 프로그램과 일부 CFD 패키지에서 얻은 유체 역학에 대한 기본 지식을 사용하여 흐름 패턴을 지정하고 화학 반응을 추가하고 실행할 수 있습니다. 필요한 경우 이전 공동 작업자가 사용한 실험 설정을 기반으로 간단한 사례 연구를 위해 유체 운동 및 화학에 대한 방정식을 설정할 수 있지만, CFD 코드가없는 한 내 자신의 CFD 코드를 롤링하지 않는 것이 좋습니다. 매우 쉬운 패키지. 나는 그것에 2-3 주를 기꺼이 보낼 것입니다; 이 요구 사항이 PETSc 또는 Trilinos를 배제하는지 모르겠습니다. 더 이상 시간을 투자해야하는 경우 사례 연구를 위해 CFD 코드를 제공하는 공동 작업자가 있기 때문에 나중에 다시 시작해야합니다.

누구든지 CFD 패키지를 사용하거나 CFD 코드를 작성해 본 경험이 있으십니까? 그렇다면 추천 할 수 있습니까? 내가 사용하고 싶은 한 가지는 Strang splitting이지만 CFD 또는 PDE 전문가가 아닙니다. 모델 축소를위한 화학 및 수치 방법을 연구합니다. 또한 권장 소프트웨어를 사용하는 데 걸리는 시간에 대해서도 언급하십시오.

@FrenchKheldar는 내가 해결하고 싶은 문제의 특성을 언급해야한다고 지적합니다.

  • 이상적인 (완벽한) 가스, 단상
  • 압축성
  • 층류는 필수적입니다. 난류가 플러스입니다. (CFD의 수치 방법에서 이전 작업의 난기류에 대해 조금 알고 있지만 CFD 솔버에서는 작업하지 않았습니다. 물리학에 대해서는 조금만 알고 있습니다.)
  • Zero-Mach-number 공식은 괜찮습니다 (충격이나 초음속 흐름에 신경 쓰지 않습니다)
  • Soret과 Dufour 플럭스를 무시하고 Fickian으로 확산을 처리하는 연소 화학
  • 기하학은 간단한 것일 수 있습니다

인터페이스 코드를 작성할 수는 있지만 작성해야하는 횟수가 적을수록 좋습니다. @FrenchKheldar는 또한 Cantera에 Fortran 및 Python 바인딩이 있다고 지적합니다. 저는 빠른 프로토 타이핑을 위해 Cantera Python 바인딩을 사용하고 있기 때문에 이에 익숙합니다.


Cantera에는 python과 Fortran에 대한 래퍼가 있으므로 검색 범위를 조금 넓 힙니다.
FrenchKheldar

층류 또는 난류를 모델링 하시겠습니까? 압축 또는 비 압축? 완벽한 가스? 단상? 더 자세한 정보를 제공할수록 더 정확한 답변을 얻을 수 있습니다.
FrenchKheldar

@FrenchKheldar : 지적 해 주셔서 감사합니다. 몇 가지 세부 사항을 추가했습니다.
제프 옥스 베리

2
한 가지 의견 : 음향이나 파동에 신경 쓰지 않는다면 비 압축 솔버를 사용할 수 없습니까? 그것은 당신의 가능성을 넓힐 것입니다 ...
FrenchKheldar

다시 말해 보자 : 나는 충격에 관심이 없다. 상은 이상적인 가스이고 압력이 변할 때 이상적인 가스의 밀도가 변하기 때문에 흐름을 압축 할 수 있어야합니다.
Geoff Oxberry

답변:


11

저는 OpenFOAM을 많이 사용 하므로 당연히 추천합니다. 연소 모델을 포함 하여 많은 기능갖추고 있으며 (필요한 것은 아니지만) 다른 사람들 이 Canterra 와 함께 사용했습니다 . 아직 구현되지 않은 특정 방정식에 대한 솔버가 필요한 경우 거의 문자 그대로 방정식을 작성할 수 있습니다 . 나는 strang-splitting이 무엇인지 모르지만 (나는 스스로 연소 작업을하지 않습니다), 다른 사람들이 OpenFOAM 에서 그것을 사용했습니다 .

제한된 양의 자습서가 있습니다. 사용자 안내서에 문서화 된 것은 화학을 포함하지 않습니다. 살펴볼 수있는 반응 솔버에 대한 몇 가지 샘플 사례가 있습니다. 가장 좋은 방법은 Chalmers 의 OS-CFD 대학원 과정 웹 사이트 를 확인하는 것입니다 (링크는 2011 년이지만 이전 연도 페이지에 대한 링크가 포함되어 있음). 학생들은 종종 여기 에서 작업중인 솔버를 문서화합니다 .

학습 노력 : 미리 정의 된 모델 중 하나를 사용하여 사용하는 경우 사용이 매우 간단하고 몇 주 내에 결과를 얻을 수 있습니다. 최상위 레벨 아래로 내려 가야하는 경우 (예 : 새 ODE 솔버 추가) 상황이 훨씬 더 어려워 질 수 있으며 C ++를 알고 있으면 좋을 것입니다.


추천 해 주셔서 감사합니다! OpenFOAM에 대한 좋은 소식을 들었으며 앞으로도 사용하고 싶습니다. 경험상 API를 배우기 쉬웠습니까? 화학과 함께 OpenFOAM을 사용하는 좋은 튜토리얼이나 예제가 있습니까?
제프 옥스 베리

답변을 업데이트했습니다
akid

1
곧 C ++ 학습을 시작하십시오. :) Godspeed.
tmaric

2

Clawpack 의 병렬 확장 인 PyClaw를 사용할 수 있습니다 (참고 : PyClaw의 주요 개발자 중 하나입니다). 이상적인 가스의 보이지 않는 오일러 방정식 (압축성 흐름)을위한 2D 및 3D 솔버를 포함합니다. 또한 Strang splitting이 내장되어 있지만 점성 항과 화학에 대한 평가를 직접 추가해야합니다. PyClaw는 Python으로 작성되었으며 이미 포트란 77과 C 코드를 모두 포함하고 있기 때문에 Chemkin 및 Cantera와의 인터페이스는 간단해야합니다.

PyClaw는 상대적으로 새롭고 (기본 Clawpack 코드는 상당히 오래되었지만) OpenFOAM과 같이 설정되지 않았습니다.


감사! 그것을 확인하는 데 시간이 걸릴 수 있지만 확인해야합니다. 사용을 시작하면 어떻게 진행되는지 알려 드리겠습니다.
제프 옥스 베리

2

NIST의 Fire Dynamics Simulator (FDS)는 원하는대로 들립니다. FDS는 낮은 마하 수 흐름 솔버입니다. 밀도는 변할 수 있지만 음향 효과와 충격은 무시됩니다.

FDS는 상당히 잘 문서화되어 있지만 주 흐름 솔버 루틴을 보지 않았다는 것을 인정합니다. 또한 FDS가 연소 화학을 처리하는 방법에 대해 잘 모릅니다.

FDS의 Google 코드 사이트 에서 최신 코드를 다운로드하는 것이 좋습니다 .


0

저기 많이 있습니다!

IMHO는 OpenFOAM 이 최고이지만 다른 사람들은 이 링크 에 있습니다.


링크가 끊어 질 수 있으므로 '링크 만'답변을 제공하지 마십시오.
Jan

거기에 언급 된 모든 옵션을 "광산"으로 제시하고 싶지 않았습니다. 기술적으로 모든 내용을 복사하여 붙여 넣을 수는 있지만 그 사람이 아닙니다. 그래서, 나는 원래 작성자에게 크레딧 (들)을 얻었다 바로 링크를 넣어
T3rmInAt0r

1
좋구나. 예를 들어 맨체스터 대학교의 전산 유체 역학 및 난류 역학의 의장 이 엔지니어를위한 오픈 소스 소프트웨어 목록 을 작성했다고 말할 수 있습니다. 그렇게하면 링크가 끊어진 경우에도 동료 방문자가 인터넷을 검색 할 수 있습니다.
Jan

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.