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

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

数値計算

【差分法】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次元移流方程式をslope limiter(superbee)で解く C++コード付き

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

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

今回は1次元移流方程式を有限体積法(slope limiter、勾配制限法)で解いていきます。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次元定常移流拡散方程式とは のような二階の常微分方程式のことをいいます。ここで、 は溶質の濃度、 は風などによる移流速度、 は拡散の効果を表す拡散…

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

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

【有限体積法】1次元定常移流拡散方程式を中心差分で解く C++コード付き

今回は1次元定常移流拡散方程式を有限体積法(中心差分法)で解いていきます。C++コード付きです。ただし今回は風上化は入れていません。1次元定常移流拡散方程式とは のような二階の常微分方程式のことをいいます。ここで、 は溶質の濃度、 は風などによる…

【有限体積法】1次元Poisson方程式(ポアソン方程式)を有限体積法で解く C++コード付き

有限体積法のほうもぼちぼち1次元の場合から解説していきます!今回は有限体積法の勉強で最初に解くであろう、1次元Poisson方程式を有限要素法(Galerkin法)で解くC++コードを公開します。普通の有限体積法で離散化します。二次元配列は一次元配列に収納し…

【有限要素法】Cole-Hopf変換による1次元Burgers方程式(バーガース方程式)の解析解

1次元Burgers方程式の解析解を求めます。『偏微分方程式の数値シミュレーション』のpp.219-220と以下のリンクを参照しています。偏微分方程式の数値シミュレーション作者: 登坂宣好,大西和栄出版社/メーカー: 東京大学出版会発売日: 1991/04メディア: 単行本…

【有限要素法】1次元Fisher-KPP方程式(フィッシャーKPP方程式)をGalerkin法で解く C++コード付き

今回は1次元Fisher-KPP方程式(フィッシャーKPP方程式)を有限要素法(Galerkin法)で解いていきます。C++コード付きです。おそらくFisher-KPP方程式を有限要素法で解くコードが載っているネット上唯一のページです。Fisher-KPP方程式は半線型反応拡散方程式…

【有限要素法】1次元Burgers方程式(バーガース方程式)をGalerkin法で解く C++コード付き

今回は1次元Burgers方程式(バーガース方程式)を有限要素法(Galerkin法)で解いていきます。C++コード付きです。1次元Burgers方程式は、前に書いた記事「有限要素法のプログラミングを勉強するときにどの順序で学ぶのがよいか?」で紹介した、有限要素法を…

【有限要素法】1次元非定常移流拡散方程式をGalerkin法で解く C++コード付き

今回は1次元非定常移流拡散方程式を有限要素法(Galerkin法)で解いていきます。C++コード付きです。1次元非定常移流拡散方程式は、前に書いた記事「有限要素法のプログラミングを勉強するときにどの順序で学ぶのがよいか?」で紹介した、有限要素法を学ぶ場…

【有限要素法】無限領域における拡散方程式の解析解

今回は無限領域における拡散方程式の解析解をフーリエ変換を使って導きたいと思います。松下泰雄『フーリエ解析』のpp.126-127を参照します。フーリエ解析―基礎と応用作者: 松下泰雄出版社/メーカー: 培風館発売日: 2001/11/01メディア: 単行本 クリック: 1…

【有限要素法】1次元非定常移流拡散方程式の解析解を導く

今回は一次元非定常移流拡散方程式の解析解を導きたいと思います(実は途中まで)。有限要素法のプログラムがきちんと動くかどうか確かめるために使いたいのです。これ意外と本に載っていないのではないでしょうか。一次元非定常移流拡散方程式とは in のよ…

【連立一次方程式】TDMA(三重対角行列アルゴリズム、Tri-Diagonal Matrix Algorithm)C++コード付き

今回は連立一次方程式の係数が三重対角行列のときにとても効率の良い、TDMA(三重対角行列アルゴリズム、Tri-Diagonal Matrix Algorithm)のC++コードを公開します。TDMAは直接法に分類される手法で、流体計算の際のソルバーとして用いられています。理論はh…

【有限要素法】2次元有限要素法における面積座標(局所座標)の積分公式

今回は、2次元の有限要素法における面積座標(局所座標)の積分公式 を示します。ここで は2次元の三角形要素、 はその面積、、、 は形状関数で、それぞれ とあらわされます。係数は で与えられます。 と はそれぞれ三角形要素の頂点の座標です。 これを知っ…

【有限要素法】1次元有限要素法における面積座標(局所座標)の積分公式

今回は、1次元の有限要素法における面積座標(局所座標)の積分公式 を示します。ここで は要素の長さ、 と は形状関数で、それぞれ とあらわされます。これを知っていると積分がサクサクできます。 まず、 とおきます。すると、 より とかけるので上式に代…

【数値計算】LU分解 C++コード付き

今回は連立一次方程式に対する直接法である、LU分解のC++コードを公開します。行列を上三角行列Uと下三角行列Lに分解します。一度分解してしまえば、前進代入と後退代入という簡単な操作で連立一次方程式を解くことができるのです。理論はhttp://www.ced.is.…

【有限要素法】『よくわかる有限要素法』

有限要素法の解説書である、福森栄次著『よくわかる有限要素法』を読み終わったので、内容に関して書いていきたいと思います。ページ数は304でそれなりに読みごたえがあります。私は2日ほどで通読しました。初心者向けとのことですが、本当の初心者には通読…