数学とか語学とか楽しいよね

フランス語、ドイツ語、ロシア語、アラビア語、オランダ語、英語、スペイン語、ラテン語とか数学とか数値計算(有限要素法、有限体積法、差分法、格子ボルツマン法、数理最適化、C++コード付き)とか勉強したことをまとめます。右のカテゴリーから興味のある記事を探してください。最近はクラシックの名演も紹介しています。Amazonアソシエイトを使用しています。

偏微分方程式

【有限体積法】1次元移流方程式をMUSCL法で解く C++コード付き

今回は1次元移流方程式を1次の風上差分+MUSCL法で解いていきます。MUSCL法とは、セル内で一定だった未知数のプロファイルを1次以上の関数で補外しセル界面での値を計算し、その値を用いて数値流速を計算することによって高次精度を達成する方法です。その際…

【数物リンク】固有関数展開の解説

偏微分方程式を解析的に解く際に用いられる手法のひとつ、固有関数展開の解説動画です。

【数物リンク】熱方程式の解の一意性

熱方程式の解の一意性の証明です。差をとってエネルギー法を使います。

【格子ボルツマン法】格子ボルツマン法で2次元拡散方程式を解きます(D2Q4) C++コード付き

今回から2次元に入っていきます。2次元拡散方程式を解くC++コードを作りました。D2Q4です。どうやら拡散方程式を解く分にはこれで十分みたいです。参考にしたのは"Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes…

【格子ボルツマン法】格子ボルツマン法で1次元バーガース方程式を解きます(D1Q2) C++コード付き

LBMで1次元バーガース方程式を解くC++コードを作りました。D1Q2でやってます。参考にしたのは"Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes"の2-5章、Appendixのコード(まったく洗練されていないが故に読みや…

【格子ボルツマン法】格子ボルツマン法で1次元移流拡散方程式を解きます(D1Q2) C++コード付き

LBMで1次元移流拡散方程式を解くC++コードを作りました。D1Q2でやってます。参考にしたのは"Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes"の2-4章、Appendixのコード(まったく洗練されていないが故に読みやす…

【格子ボルツマン法】格子ボルツマン法で1次元拡散方程式を解きます(D1Q2) C++コード付き

幅を広げようと思い、格子ボルツマン法(Lattice Boltzmann Method, LBM)の勉強を始めました!LBMは流体の方程式に対する離散化手法です。そこで、取りあえず1次元拡散方程式を解くC++コードを作りました。D1Q2というやつです。Dの後の数字が次元で、Qの後…

【Navier-Stokes方程式】SIMPLE法によるNavier-Stokes方程式の離散化

SIMPLE法(Semi-Implicit Method for Pressure. Linked Equations)によるNavier-Stokes方程式の離散化について説明していきます。やっとこさSIMPLE法が理解出来ました。いきなり空間離散化して項を消したりするのでわかりづらいのです。実はこれHSMAC法とほ…

【浅水流方程式】1次元浅水流方程式の導出(勾配と摩擦なし)

【浅水流方程式】サイトマップ(ここから関連記事が探せます) 1次元浅水流方程式(Shallow Water Equation, SWE)の導出(勾配と摩擦なし)をします。取りあえず導出すべき1次元浅水流方程式の基本形を書いておきます。要は慣れです。慣れると怖くなくなり…

【浅水流方程式】サイトマップ

今後浅水流方程式(Shallow Water Equation, SWE)に関する記事がどんどん増える予定なので、取りあえずサイトマップのようなものを作っておきます。浅水流方程式は別名サン・ブナン方程式(Saint-Venant equation)ともいいます。基本的にこのページから全…

【浅水流方程式】1次元浅水流方程式の基本形

【浅水流方程式】サイトマップ(ここから関連記事が探せます) 1次元浅水流方程式(Shallow Water Equation, SWE)を勉強していきましょう!そのために、まず1次元浅水流方程式の基本形を書いておきたいと思います。水平な長方形の一様断面を考えることにし…

【差分法】HSMAC法で3次精度風上差分を用いてNavier-Stokes方程式を解きました C++コード付き

HSMAC法(Highly Simplified Marker And Cell method)で3次精度風上差分を用いてNavier-Stokes方程式を数値的に解いてみました。今回は高次の風上差分を入れてみました。以下も参照してください。 計算条件ですが、正方形のサイズは1×1、上部の壁は右へ速さ…

【差分法】フラクショナルステップ法で3次精度風上差分を用いてNavier-Stokes方程式を解きました C++コード付き

フラクショナルステップ法で3次精度風上差分を用いてNavier-Stokes方程式を数値的に解いてみました。今回は高次の風上差分を入れてみました。以下も参照してください。離散化は以下を見てください。河村哲也著『流体解析の基礎』のpp.75-76も非常に参考にな…

【差分法】SMAC法で3次精度風上差分を用いてNavier-Stokes方程式を解きました C++コード付き

SMAC法(Simplified Maker And Cell method)で3次精度風上差分を用いてNavier-Stokes方程式を数値的に解いてみました。今回は高次の風上差分を入れてみました。以下も参照してください。離散化は以下を見てください。河村哲也著『流体解析の基礎』のpp.71-7…

【差分法】HSMAC法で風上差分を用いてNavier-Stokes方程式を解きました C++コード付き

HSMAC法(Highly Simplified Marker And Cell method)で風上差分を用いてNavier-Stokes方程式を数値的に解いてみました。前回は中心差分で解いたので、今回は風上差分を入れてみました。以下を参照してください。 計算条件ですが、正方形のサイズは1×1、上…

【差分法】HSMAC法で中心差分を用いてNavier-Stokes方程式を解きました C++コード付き

HSMAC法(Highly Simplified Marker And Cell method)を用いてNavier-Stokes方程式を数値的に解いてみました。テスト問題としてよく取り上げられる2次元キャビティー流れです。水で満たされた正方形があり、上部の壁だけ右へ一定の速さで動いていきます。最…

【差分法】フラクショナルステップ法で風上差分を用いてNavier-Stokes方程式を解きました C++コード付き

フラクショナルステップ法で風上差分を用いてNavier-Stokes方程式を数値的に解いてみました。前回は中心差分で解いたので、今回は風上差分を入れてみました。以下を参照してください。 離散化は以下を見てください。河村哲也著『流体解析の基礎』のpp.75-76…

【差分法】フラクショナルステップ法で中心差分を用いてNavier-Stokes方程式を解きました C++コード付き

フラクショナルステップ法を用いてNavier-Stokes方程式を数値的に解いてみました。テスト問題としてよく取り上げられる2次元キャビティー流れです。水で満たされた正方形があり、上部の壁だけ右へ一定の速さで動いていきます。最初は静止していた水が、上部…

【Navier-Stokes方程式】フラクショナルステップ法によるNavier-Stokes方程式の離散化

フラクショナルステップ法(部分段階法)によるNavier-Stokes方程式の離散化について説明していきます。この手法は流速と圧力を直接未知数として計算する手法です。SMAC法では中間流速(予測子)を計算する際に圧力を使いましたが、フラクショナルステップ法…

【差分法】SMAC法で風上差分を用いてNavier-Stokes方程式を解きました C++コード付き

SMAC法(Simplified Maker And Cell method)で風上差分を用いてNavier-Stokes方程式を数値的に解いてみました。前回は中心差分で解いたので、今回は風上差分を入れてみました。以下を参照してください。離散化は以下を見てください。河村哲也著『流体解析の…

【差分法】SMAC法で中心差分を用いてNavier-Stokes方程式を解きました C++コード付き

SMAC法(Simplified Maker And Cell method)を用いてNavier-Stokes方程式を数値的に解いてみました。テスト問題としてよく取り上げられる2次元キャビティー流れです。水で満たされた正方形があり、上部の壁だけ右へ一定の速さで動いていきます。最初は静止…

【Navier-Stokes方程式】SMAC法によるNavier-Stokes方程式の離散化

MAC法(Maker And Cell method)を改良した、SMAC法(Simplified MAC法)によるNavier-Stokes方程式の離散化について説明していきます。この手法は流速と圧力を直接未知数として計算する手法です。MAC法ではPoisson方程式の右辺を計算するのに負荷がかかって…

【差分法】MAC法で風上差分を用いてNavier-Stokes方程式を解きました C++コード付き

MAC法(Maker And Cell method)で風上差分を用いてNavier-Stokes方程式を数値的に解いてみました。前回は中心差分で解いたので、今回は風上差分を入れてみました。以下を参照してください。 離散化は以下を見てください。河村哲也著『流体解析の基礎』のpp.…

【差分法】MAC法で中心差分を用いてNavier-Stokes方程式を解きました C++コード付き

MAC法(Marker And Cell method)を用いてNavier-Stokes方程式を数値的に解いてみました。テスト問題としてよく取り上げられる2次元キャビティー流れです。水で満たされた正方形があり、上部の壁だけ右へ一定の速さで動いていきます。最初は静止していた水が…

【数物リンク】SIMPLE法とMAC法の解説

Navier-Stokes方程式に対する数値解法である、SIMPLE法とMAC法の解説リンクを見つけました。細かい離散化まで載っていてためになります。https://www.iitg.ac.in/director/files/Chapter-6.pdfこちらはMAC法だけ。スタガード格子における補間法がわかりやす…

【有限体積法】1次元移流方程式を流束制限関数(superbee)で解く C++コード付き

今回は1次元移流方程式を有限体積法(流束制限関数)で解いていきます。C++コード付きです。1次元移流方程式とは のような一階の偏微分方程式のことをいいます。ここで、 は溶質の濃度、 は風などによる移流速度です。さて、slope limiterというのは、補間し…

【有限体積法】1次元移流方程式を流束制限関数(minmod)で解く C++コード付き

今回は1次元移流方程式を有限体積法(流束制限関数)で解いていきます。C++コード付きです。1次元移流方程式とは のような一階の偏微分方程式のことをいいます。ここで、 は溶質の濃度、 は風などによる移流速度です。さて、slope limiterというのは、補間し…

【Navier-Stokes方程式】MAC法によるNavier-Stokes方程式の離散化

今後キャビティー流れの計算をやりたいので、MAC法(Maker And Cell method)によるNavier-Stokes方程式の離散化について説明していきます。流速と圧力を直接未知数として計算する手法で陽解法です。以下の内容は『流れ解析のための有限要素法』のpp.154-155…

【有限体積法】1次元移流方程式を風上差分で解く C++コード付き

今回は1次元移流方程式を有限体積法(風上差分)で解いていきます。C++コード付きです。1次元移流方程式とは のような一階の偏微分方程式のことをいいます。ここで、 は溶質の濃度、 は風などによる移流速度です。移流方程式はその名前の通り、初期の波形(…

【有限体積法】1次元定常移流拡散方程式をハイブリッド法で解く C++コード付き

今回は1次元定常移流拡散方程式を有限体積法(ハイブリッド法)で解いていきます。C++コード付きです。1次元定常移流拡散方程式とは のような二階の常微分方程式のことをいいます。ここで、 は溶質の濃度、 は風などによる移流速度、 は拡散の効果を表す拡散…