OpenFOAM

OpenFOAM【chtMultiRegionFoamで輻射:viewFactorモデルについて】

OpenFOAMでchtMultiRegionFoam+viewFactorの導入について検討したのでそのまとめです。 viewFactorモデルの考え方 形態係数に基づいて輻射を計算します。OpenFOAMではfluid側で新しく輻射の熱流束に関する変数qrを追加して計算します。qrの境界条件は、fluid…

OpenFOAM【chtMultiRegionFoam のpostProcessでsingleGraph】

OpenFOAMの結果の可視化・グラフ化についてす。 chtMultiRegionFoamで実施したときにうまくいかなかったので。 $ postProcess -func singleGraph 通常コマンドで実行すると、こんな感じのエラーが出まくります。 Time = 15000 --> FOAM Warning : From funct…

OpenFOAM【物性の温度依存性の設定2】

自作の物性の追加します。 前準備(方針の確認) まずはリンクの構成を理解するところから。 $FOAM_SRC/thermophysicalModels/solidSpecie/transport ここに物性。一例として、exponentialSolidTransport.Hのリンク先を確認。 OpenFOAM: API Guide: src/ther…

OpenFOAM【物性の温度依存性の設定1】

chtMultiFegionFoam中で固体(solid)の物性の温度依存性を反映させるのが目的。熱伝導率(transport)、比熱(thermo)の温度依存性を考慮できます。thermophysicalPropertiesが設定ファイル。まずは、thermoTypeで関数の指定。 thermoType { type heSolidT…

OpenFOAM【chtMultiRegionFoamで輻射:基礎編】

chtMultiRegionFoamで輻射を入れる方法についてまとめ。 基本的な考え方 OpenFOAMで輻射を計算する場合、輻射に関する変数(G, IDefault, qr)が追加され、その変数を合わせて解くことになります。 輻射のモデルとしては、P1, viewFactor, FvDOMなどを選択可…

OpenFOAM【pythonでblockMesh】

penguinitis.g1.xrea.com 春日氏作成のpythonプログラムblockMesh.pyを使ってみました。ので、簡単なメモ(OpenFOAMも久しぶりなので)。 $ wget http://penguinitis.g1.xrea.com/study/OpenFOAM/blockMeshPython/blockMeshPython-v1912-20200612.tar.gz $ t…

BiomassGasificationFoam【インストール(Docker環境)】

インターネットを探していたら、BiomassGasificationFoamなるものがあるとのことでインストールしようと思ったのですが、、、 https://iopscience.iop.org/article/10.1088/1742-6596/530/1/012015/pdf 注意しよう!! 論文中のリンクをたどって開こうとする…

OpenFOAM【多孔質体の解析】

多孔質体の解析として、porousSimpleFoamがあります。 /applications/solvers/incompressible/simpleFoam/porousSimpleFoam にあります。 大きくは、この辺が違っているようです。 UEqn.H pEqn.H 参考にしました PENGUINITIS - 多孔質体の解析

OpenFOAM【reactingFoam:コード読解】

reactingFoamについて中身を確認します。 reactingFoam.C ソースコードをべたばりしています。 /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O…

OpenFOAM【simpleFoamとrhosimpleFoamの違い】

OpenFoamのsimpleFoamとrhosimpleFoamを見ながら、圧縮性流体と非圧縮性流体について考える回です。 それぞれの違い simpleFoam:"incompressible"(=非圧縮性)なソルバ rhosimpleFoam:"compressible"(=圧縮性)なソルバ 数値流体力学の観点からの比較…

OpenFOAM【chtMultiRegionFoam:複数領域の設定】

バージョンはOpenFOAM-v1912 chtMultiRegionFoamのmultiRegionHeaterを参考に設定します。(/tutorial/heatTransfer中に格納)。 ファイル構成 /systemに以下を配置します。 blockmeshDict topoSetDict controlDict fvSolution fvSchemes topoSetDictが領域…

OpenFOAM【OpenFOAM+のインストール】

+をインストールします。 $ sudo apt install tar bison flex m4 $ wget https://sourceforge.net/projects/openfoam/files/v1912/OpenFOAM-v1912.tgz $ sudo tar -xvzf OpenFOAM-v1912.tgz -C /opt/ $ sudo chown -R $USER /opt/OpenFOAM-v1912/ インスト…

OpenFOAM【主要な変数名】

www.xsim.info 大変勉強になりました。

OpenFOAM【最小のpimpleFoam】

層流の計算で、最小のpimpleFoamの環境構築を目指します。 メッシュの作成 /system中にblockMeshDictを配置します。 $ blockMesh のコマンドでメッシュを生成します。 /systemの構築 blockMeshDict controlDict fvSchemes fvSolution を配置します。 control…

OpenFOAM【DebugとOptの切り替え】

OptモードとDebugモードを切り替えます。コンパイルしなおす必要はなしです。 $ sudo vi $WM_PROJECT_DIR/etc/bashrc この辺を修正。 #- Optimised, debug, profiling: # WM_COMPILE_OPTION = Opt | Debug | Prof export WM_COMPILE_OPTION=Opt #export WM_C…

OpenFOAM【logファイル】

pimpleFoamのtutorialでblockedChannelを実行した後にlogファイルができたので。log.pimpleFoamの中身は実行時の標準出力です。 $ foamLog log.pimpleFoam /logsができます。あとはgnuplotとかで可視化。

OpenFOAM【インプットファイルの読み込み】

laplacianFoamのtransportPropertiesを修正して作成しました。新しくインプット用のファイル(myProperties)を作成し、物性として温度T0を読み込みます。 createFields.Hに追加します。 IOdictionary myProperties ( IOobject ( "myProperties", runTime.co…

OpenFOAM【VSCodeでdbg】

WSL+VSCode環境でOpenFOAMデバッグの環境構築です。 デバッグオプションでコンパイル 環境変数 $WM_COMPILE_OPTIONをDebugに変更します。その前に一応、現在の状態を確認。 $ echo $WM_COMPILE_OPTION Opt $WM_PROJECT_DIR/etc/bashrc内を修正します。readon…

OpenFOAM【水の蒸発潜熱を考慮する簡単なしかけ】

laplacianFoamの中で、水の蒸発潜熱を取り込む簡単なしかけです。温度場を解いて、次のステップに進む前あたりに突っ込みます。 // // 水の蒸発潜熱のようなもの forAll(T,i){ if( T[i] > T0 ) { if( X[i] < 1. ) { X[i] += (T[i]-T0)/h0; T[i] = T0; } } el…

OpenFOAM【postProcessでsingleGraph】

OpenFOAMの結果の可視化・グラフ化についてす。 postProcessコマンドについての使い方です。まずはヘルプ。 $ postProcess -help 基本的には、foamGetを使って自分が実施したい解析に近いものを拾ってきます。singleGraphがsampleDictに近い気がした。 $ foa…

OpenFOAM【sample→postProcess】

OpenFOAMでsampleコマンドがない、と思っていたら、postProcessコマンドに変わったようです。 qiita.com 使用方法は次回以降

OpenFOAM【VSCodeで開発環境】

laplacianFoamの改良をやっています。現状の開発環境。 フォルダ構造 /openfoam /myFoam .vscode .git myFoam /Make myFoam.C createFields.H write.H /laplacianFoam clean myFoam /0 /constant /system myFoam プログラム開発中の作業ディレクトリはmyFoam…

OpenFOAM【スカラーフィールドの設定】

laplacianFoamにスカラーフィールドを追加しました。ちょっとひねって、温度に依存して指数関数的に減衰していきます(反応率のイメージ) createField.Hに追加 volScalarField X ( IOobject ( "X", runTime.timeName(), mesh, IOobject::MUST_READ, IOobjec…

OpenFOAM【scalarCodedSource】

注意しよう! 結構苦戦しました。ネットのソースコードを参考にしていましたが、バージョン違い?などでうまくいかなかったので、結局自分がインストールしたソースコード内をあさりました。 テンプレートを探す grep -r "scalarCodedSource" * で探すと etc…

OpenFOAM【fvOptions】

fvOptionsについて調査。目標はヒートソースを導入すること。 https://caefn.com/openfoam/fvoptions-semiimplicitsource scalarSemiImplicitSourceを使いました。 /system中にfvOptionsの名前で下記の内容を記載して実行すればokです。laplacianFOAMで実行…

OpenFOAM【実行環境】

計算結果の削除 以下のスクリプトを作成。ファイル名はclean #!/bin/sh . $WM_PROJECT_DIR/bin/tools/CleanFunctions cleanTimeDirectories 実行権限を付与します。 $ chmod +x clean あとは実行すると解析でできたフォルダが削除される。 $ chmod +x clean …

Doxygen【インストール+OpenFOAM・FrontISTR】

Doxygenを使ってソースコードを確認します。インストールはこちら。 $ sudo apt-get install doxygen graphviz 参考にしました。 PENGUINITIS - Doxygen を使う OpenFOAMのドキュメント化 OpenFOAMのソースコード中の、Doxygenのディレクトリを引っ張ってき…

OpenFOAM【laplacianFOAMの改造】

laplacianFOAMの改造に取り組みました。目的は有効熱拡散係数のDTを温度の関数にすること。 やったこと createField.Hを修正する。 34 dimensionedScalar A 35 ( 36 transportProperties.lookup("A") 37 ); 38 39 volScalarField DT 40 ( 41 IOobject 42 ( 4…

OpenFOAM【laplacianFoam:構成の確認】

コピペしながら構成を確認する回。 メッシュの作成 /systemのフォルダを作成する。 /systemフォルダ内にcontrolDictとblockMeshDictを用意する。 controlDictはチュートリアルあたりからコピペする。 $ blockMeshでメッシュを作成。 物性 transportPropertie…

OpenFOAM【vimの環境設定】

qiita.com 参考にしました。 pathogen.vimの導入 こちらからダウンロードします。 GitHub - tpope/vim-pathogen: pathogen.vim: manage your runtimepath $ mkdir -p ~/.vim/autoload ~/.vim/bundle && \ $ curl -LSso ~/.vim/autoload/pathogen.vim https:/…