다음과 같이 인용해 주십시오: Barba, Lorena A., Forsyth, Gilbert F. (2018). CFD Python: Navier-Stokes 방정식의 12단계. 오픈 소스 교육 저널 , 1 (9), 21, https://doi.org/10.21105/jose.00021
Navier-Stokes의 12단계 라고도 알려진 CFD Python은 유체 흐름의 물리학을 설명하는 기본 편미분 방정식에 대한 솔루션을 코딩하여 전산유체역학(CFD)의 기초를 학습하기 위한 실용적인 모듈입니다. 이 모듈은 보스턴 대학교 기계공학과에서 2009년부터 2013년까지 Lorena Barba 교수(이후 George Washington University로 옮긴 Barba 교수)가 강의한 과정의 일부였습니다.
이 모듈에서는 기본 프로그래밍 지식(모든 언어)과 편미분 방정식 및 유체 역학에 대한 일부 배경 지식만 가정합니다. "단계"는 2011년까지 Barba 교수 연구실의 박사후 연구원이었던 Rio Yokota 박사의 아이디어에서 영감을 얻었으며, CFD 과정을 가르치는 여러 학기 동안 Barba 교수와 학생들에 의해 수업이 개선되었습니다. 우리는 아르헨티나 멘도사에서 집중적인 2일 과정을 가르치기 위해 2013년에 이 Jupyter 노트북 세트를 작성했습니다.
학생들에게 이러한 단계를 안내하면(아무 것도 건너뛰지 않고!) 귀중한 교훈을 많이 배울 수 있습니다. 연습의 점진적인 특성은 각 과제가 끝날 때마다 성취감을 얻고 적은 노력으로 학습하고 있다고 느낀다는 것을 의미합니다. 진행하면서 자연스럽게 코드 재사용을 연습하고 프로그래밍 및 플로팅 기술을 점진적으로 배웁니다. 결과를 분석하면서 수치적 확산, 정확성 및 수렴에 대해 배웁니다. 약 4주 동안 정기적으로 진행되는 과정을 통해 그들은 어느 정도 능숙한 프로그래머가 되며 보다 이론적인 문제에 대해 논의하기 시작합니다.
정규 세션 대학 과정에서 학생들은 4~5주 안에 CFD Python 수업을 완료할 수 있습니다. 집중 튜토리얼로서, 모듈은 학습자의 이전 경험에 따라 2~3일 안에 완료될 수 있습니다. 수업은 자습에도 활용될 수 있습니다. 모든 경우에 학습자는 새로운 Jupyter 노트북에 코드를 다시 입력하고, 시험해 볼 때 원본 메모를 작성하여 각 수업의 작업 예제를 따라야 합니다.
바인더 서비스를 사용하여 이 모듈과 대화형 세션을 시작합니다.
1~4단계는 하나의 공간 차원에 있습니다. 5~10단계는 2차원(2D)입니다. 11~12단계에서는 Navier-Stokes 방정식을 2D로 풉니다. 세 개의 "보너스" 노트북은 수치적 안정성, NumPy를 사용한 배열 작업, Python의 함수 정의를 위한 CFL 조건을 다루고 있습니다.
이 강의를 사용하려면 Python 3과 과학적인 Python의 표준 스택인 NumPy, Matplotlib, SciPy, Sympy가 필요합니다. 물론 웹 브라우저에서 실행되는 대화형 컴퓨팅 환경인 Jupyter도 필요합니다.
이 미니 코스는 Python 코드에 대해 작성된 자료와 해결된 솔루션이 포함된 Jupyter 노트북 세트로 제작되었습니다. 자료를 사용하려면 새 노트북으로 각 수업을 시작하고, 각 코드 줄을 입력하고(복사하여 붙여넣지 마세요!) 매개변수를 변경하여 탐색하고 어떤 일이 일어나는지 확인하는 것이 좋습니다.
설치 후 패키지가 최신 상태인지 확인하려면 터미널에서 다음 명령을 실행하세요.
conda update conda
conda update jupyter numpy sympy scipy matplotlib
Miniconda(디스크 공간을 절약하는 Anaconda의 미니 버전)를 선호하는 경우 터미널에서 다음 명령을 실행하여 이 과정을 따르는 데 필요한 모든 라이브러리를 설치하십시오.
conda update conda
conda install jupyter
conda install numpy scipy sympy matplotlib
pip install jupyter
또한 다음을 실행하여 필요한 라이브러리가 설치되어 있는지 확인하십시오.
pip install numpy scipy sympy matplotlib
우리는 풀 요청을 통한 기여를 허용합니다. 실제로 여러 사용자가 이미 수정하거나 약간의 개선을 위해 풀 요청을 제출했습니다. 버그를 발견하거나 제안 사항이 있는 경우 이슈를 열 수도 있습니다.
(c) 2017년 로레나 A. 바바, 길버트 F. 포사이스. 모든 콘텐츠는 Creative Commons Attribution CC-BY 4.0에 속하며 모든 코드는 BSD-3 조항(이전에는 MIT에 속해 있으며 2018년 3월 8일에 변경됨)에 따릅니다.
어떤 방식으로든 콘텐츠를 재사용해 주시면 기쁩니다!