blueCFD-Core-2024 の動作を調べてみた2

前の記事で何となく動作がわかってきたので,プログラムの変更にトライしてみました.その時のメモです.その際のメモです.勘違いや誤りがあるかもしれませんが,有識者の方にご指摘,アドバイスをいただけると嬉しいです.


・上の検討ではFOAM_USER_LIB(C:\blueCFD-Core-2024\ofuser-of12\platforms\mingw_w64Gcc122DPInt32Opt\lib) に incompressibleFluid.dll をつくって実行した.今回はMy_incompressibleFluid.dll の名前にして実行してみよう・・・このブログを参考にしました.https://qiita.com/mmer547/items/dd8ffecf10ad6c94ca61

このブログはopenFOAM12だったので,blueCFD-Core-2024 でもできるかを確認しました.

1 新しいプログラム準備

・incompressibleFluid のフォルダを My_incompressibleFluid と名前を変える.

 とりあえず中身は変更しないでおく.


・make\filesを確認.コンパイル対象ファイルは以下の5つ. 

setRDeltaT.C 

moveMesh.C 

momentumPredictor.C 

correctPressure.C 

incompressibleFluid.C


・メインプログラムとヘッダーファイルの名前を変更

 incompressibleFluid.C → My_incompressibleFluid.C 

incompressibleFluid.H → My_incompressibleFluid.H 


・make\files を開いて以下に変更 する.

 setRDeltaT.C 

moveMesh.C 

momentumPredictor.C 

correctPressure.C 

My_incompressibleFluid.C 

 LIB = $(FOAM_USER_LIBBIN)/libMy_incompressibleFluid


・プログラムの中の incompressibleFluid → My_incompressibleFluid に変更する.以下の6つのコマンドをターミナルで順次実行.同じファイルに2回やると面倒なことになるので注意. (My_My_incompressibleFluid とかになる) 


sed -i s/incompressibleFluid/My_incompressibleFluid/g setRDeltaT.C 

sed -i s/incompressibleFluid/My_incompressibleFluid/g moveMesh.C 

sed -i s/incompressibleFluid/My_incompressibleFluid/g momentumPredictor.C 

sed -i s/incompressibleFluid/My_incompressibleFluid/g correctPressure.C 

sed -i s/incompressibleFluid/My_incompressibleFluid/g My_incompressibleFluid.C

sed -i s/incompressibleFluid/My_incompressibleFluid/g My_incompressibleFluid.H 


・念のためファイルを開いてきちんと変更されているか確認しておくとよい.


2 コンパイル

・My_incompressibleFluidをコンパイルする. 

wclean ⏎ 

wmake ⏎ 


・以下は無視してよい. 

 Error occurred with cv2pdb, have stripped binary as a workaround. 


・ C:\blueCFD-Core-2024\ofuser-of12\platforms\mingw_w64Gcc122DPInt32Opt\lib にMy_incompressibleFoam.dll ができていることを確認.


3 試し計算

・チュートリアルのcavityで試し計算をしてみる.

・system/controlDict を修正 

   solver My_incompressibleFluid;


・foamRunを実行

  foamRun ⏎


・無事My_incompressibleFluid を呼び出して計算できた! 

 




0コメント

  • 1000 / 1000