C++

【オブジェクト指向C++】2次元ナビエストークス方程式(キャビティ流れ)の数値計算

オブジェクト指向型プログラミング

では、ここからオブジェクト指向でコードを修正していきます。
段階を踏んでコードを書いていくことにします。

Step1:x方向とy方向の離散化

$x$方向と$y$方向の空間離散化を行います。

  • Mesh.h:変数の定義
  • Mesh.cpp:関数処理の定義
Mesh.h

Mesh.cpp

これで空間の離散化の定義ができたのでmain.cppでMeshクラスをインスタンス化して出力してみましょう。

main.cpp

今回は「#include “Mesh.h” //メッシュ設定 」しかインクルードとして必要ないので、その他のヘッダーファイルはコメントアウトしています。

【結果】

エラーがエラーがなければx方向の離散化の結果が出力されます。

Step2:速度ベクトルU,Vの値の設定

Fields.h

2次元ベクトルを定義するvectorコンテナvectorField2dの定義と演算子のオーバーロードの定義を追加しました。

Fields.cpp

ベクトル場を出力するためにPrintVector.hを作成し、以下としました。

PrintVector.h

main.cpp

【結果】

しかし、「Fields FieldsOperations;」でインスタンス化を行って以降の記述が冗長なので「createFields.h」に書き込んでmain.cppで読み込むようにします。

createFields.h

main.cpp(修正)

こちらの方がmainファイルがすっきりしますね。

1 2 3 4 5 6

COMMENT

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