C++

【オブジェクト指向C++】1次元移流方程式の数値計算

全体のコード(まとめ)

あとは余計なコメントや出力などを消して完成とします。

※最終的なコードは本編から少し変えました。
「Diff1d.h」に微分の関数定義を書き、「Diff1d.cpp」に微分処理を書いていましたが、Diff1d.h内のクラス定義をやめて直接微分の処理を書くようにしました。
それによってmain.cppで以下のインスタンス化部分がいらなくなります。

プログラム保存先

https://github.com/kamakiri1225/1DNS

main.cpp

creatFields.hを作ってUの設定は別のヘッダーファイルで定義するようにしました。

creatFields.h

さらにプログラム作成途中でU[i].vauleの値を確認したい場合に出力するプログラムをヘッダーファイルに書きました。

main.cppで

によりインクルードしています。

PrintVector.h

main.cppで

の2行でよりでU[i].vauleの値を確認できます。

Mesh.h

Mesh.cpp

Fields.h

Fields.cpp

Diff1d.h

Solution1D.h

Solution1D.cpp

FileWriter.h

FileWriter.cpp

他にパラメータ、初期条件、境界条件などもプログラムの部品としてまとめておくと、後で色々な組み合わせで組みあげることができて便利になります。

今回は1次元移流方程式を対象にしましたが、拡散方程式やナビエストークス、次元数を3次元に増やしたりと条件に応じて実装できるように設計することができます。

参考書

1週間でC++の基礎が学べる本

1週間でC++の基礎が学べる本

亀田 健司
2,803円(12/26 15:27時点)
発売日: 2021/03/12
Amazonの情報を掲載しています
独習C++ 新版

独習C++ 新版

高橋 航平
3,346円(12/26 15:27時点)
発売日: 2019/11/11
Amazonの情報を掲載しています
江添亮のC++入門

江添亮のC++入門

江添 亮
5,500円(12/26 15:27時点)
Amazonの情報を掲載しています
1 2 3 4 5 6

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です