python seminar(伊藤進一 東京大学大気海洋研究所)
数値計算ゼミ
新入生を中心に開催したpython seminarで作図等ができるようになっていますので、簡単な数値計算の結果を描画しながら、数値計算の基礎的な知識の取得を目指しています。
本セミナーでは、fortranを用いた数値計算の実施や、数値計算に伴う注意点などを学んでいきます。
本演習では、Smith and Ulrich (2008) Lectures on numerical meteorologyに基づいて行います。このレクチャーノートはこちらからダウンロードできます。
内容的には、Mesinger and Arakawa (1976) Numerical methods used in atmospheric models.を踏襲していますので、基本的な数値計算の注意点を学ぶことができます。
fortranのインストール
fortranのインストール方法には様々な方法があります。自分の使用しているpcやサーバーのスペックにあわせて使いやすいものをインストールしてください。
最初は前振りも書いてあるので、Macユーザーも含め、「WindowsユーザーでTDM GCCをインストールする場合の方法」を覗いてみてください。
- WindowsユーザーでTDM GCCをインストールする場合の方法
- WindowsユーザーでWSL(Windows Subsystemo for Linux)をインストールする場合の方法(お勧めです)
- Cygwinをインストールして、windowsからXwindow環境でgfortranを使用する場合の方法
- Macユーザーでhomebrewからgccをインストールする場合の方法
Homework
- Chap. 2-3. 線形移流方程式でCFL条件を変えてみて、Convergenceの効果をを確かめてみよう
- 線形移流方程式を前方-風上差分で数値計算するfortranサンプルプログラム
- CFL条件が1.00の場合(波長は8*dx): Convergenceを満たしている例。
- CFL条件が1.01の場合(波長は8*dx): Convergenceを満たしていない例
- CFL条件が0.50の場合(波長は8*dx): Convergenceを満たしているけど。。。な例
- CFL条件が1.00の場合(波長は32*dx): Convergenceを満たしている例(おまけです)
- CFL条件が1.00の場合(波長は32*dx): Hovmeller diagramで見るとちゃんと移送速度c
- Chap. 2-4. 線形移流方程式でCFL条件を変えてみて、Stabilityの効果をを確かめてみよう
- 2*dx波長の鋸波でCFL条件が1.00の場合: 中立条件
- 2*dx波長の鋸波でCFL条件が0.75の場合: 過剰安定条件
- 2*dx波長の鋸波でCFL条件が0.50の場合: 過剰安定条件
- 4*dx波長の鋸波でCFL条件が1.00の場合: 中立条件
- 4*dx波長の鋸波でCFL条件が0.75の場合: 過剰安定条件
- 4*dx波長の鋸波でCFL条件が0.50の場合: 過剰安定条件