【ソルバーコンパイル方法確認のお願い】改造ソルバーのコンパイル方法に関する質問

84 views
Skip to first unread message

Cane

unread,
Mar 14, 2022, 7:01:30 AMMar 14
to OpenFOAM
こんにちは,Caneと申します.
OpenFOAMを初めて1ヶ月に満たない初心者です.
使用バージョンはOpenFOAMv2106です.

GitHubにあるソルバー(GitHub - kurianjv/CSECGEFoam: Continuum scale electrochemical gas evolution solver on OpenFOAM)をダウンロードして,Descriptionに従ってコンパイルしようとしているのですが,エラーが生じてしまいコンパイルできません.原因は私のコンパイル手順にあるのか,そもそもこのソルバーに問題があるのかが分かりかねているので,どなたかコンパイルを試していただけないでしょうか?

エラー内容については,大量の"note"に加えて,以下と同様なエラーがたくさん出てきました.

interfaceProperties.C:227:9: error: ‘dimensionedScalar’ was not declared in this scope; did you mean ‘dimensionedScalar_H’?
  227 |         dimensionedScalar("nHatf", dimArea, 0.0)
      |         ^~~~~~~~~~~~~~~~~
      |         dimensionedScalar_H

お手数ですが回答者様の環境でコンパイルをお試しいただけると大変助かります.

Shinichi Kawabata

unread,
Mar 14, 2022, 8:36:18 AMMar 14
to OpenFOAM
こんにちは。

Githubを見るとOpenFOAM6で開発しているとあります。
Caneさんのお使いのバージョンはv2106で、系統が違う別のOpenFOAMを使われています。

Foundation版(6、7、8···)とOpenCFD版(2106、2112···)は
ソースコードは同じではないので、開発元指定のバージョンでまずコンパイルできるか確認し、
コンパイルができるのであれば、
自分の使いたいバージョンのソースコードに合わせて
エラーがなくなるまでソルバを書き換える段取りになるかと思います。
エラーメッセージを見る限りコンパイル環境ではなく、ソース内のスコープの問題ですので、
ソルバ書き換えになるかと思います。

すでにv6でコンパイルされていたらすみません。

2022年3月14日月曜日 20:01:30 UTC+9 Cane:

Cane

unread,
Mar 15, 2022, 12:20:31 AMMar 15
to OpenFOAM
ご回答ありがとうございます.
Qiitaの記事等,お世話になっております.

最初に見るべきところを見落としておりました.
また,やはりそもそもソルバーにも問題がありそうですね.
まずはご回答いただいたことを試してみます.

2022年3月14日月曜日 21:36:18 UTC+9 hamma...@gmail.com:

Cane

unread,
Mar 16, 2022, 3:13:29 AMMar 16
to OpenFOAM
お世話になっております.
ご指摘の通りOpenFOAMv6でコンパイルした結果,以下の7つのエラーのみとなりました.

In file included from main.C:51:0:
../Libraries/SSF_transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude/immiscibleIncompressibleTwoPhaseMixture.H:1:1: error: expected unqualified-id before ‘.’ token
 ../immiscibleIncompressibleTwoPhaseMixture.H
 ^
In file included from /opt/openfoam6/src/TurbulenceModels/turbulenceModels/lnInclude/TurbulenceModel.H:38:0,
                 from /opt/openfoam6/src/TurbulenceModels/incompressible/lnInclude/IncompressibleTurbulenceModel.H:39,
                 from /opt/openfoam6/src/TurbulenceModels/incompressible/lnInclude/turbulentTransportModel.H:46,
                 from main.C:52:
/opt/openfoam6/src/TurbulenceModels/turbulenceModels/lnInclude/turbulenceModel.H:75:9: error: ‘nearWallDist’ does not name a type; did you mean ‘nearWallDist_H’?
         nearWallDist y_;
         ^~~~~~~~~~~~
         nearWallDist_H
/opt/openfoam6/src/TurbulenceModels/turbulenceModels/lnInclude/turbulenceModel.H:155:15: error: ‘nearWallDist’ does not name a type; did you mean ‘nearWallDist_H’?
         const nearWallDist& y() const
               ^~~~~~~~~~~~
               nearWallDist_H
In file included from /opt/openfoam6/src/OpenFOAM/lnInclude/postProcess.H:135:0,
                 from main.C:62:
./createFields.H: In function ‘int main(int, char**)’:
./createFields.H:35:1: error: ‘immiscibleIncompressibleTwoPhaseMixture’ was not declared in this scope
 immiscibleIncompressibleTwoPhaseMixture mixture(U, phi);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./createFields.H:37:24: error: ‘mixture’ was not declared in this scope
 volScalarField& alpha1(mixture.alpha1());
                        ^~~~~~~
In file included from main.C:69:0:
createFields.H:35:1: error: ‘immiscibleIncompressibleTwoPhaseMixture’ was not declared in this scope
 immiscibleIncompressibleTwoPhaseMixture mixture(U, phi);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
createFields.H:37:24: error: ‘mixture’ was not declared in this scope
 volScalarField& alpha1(mixture.alpha1());
                        ^~~~~~~
/opt/openfoam6/wmake/rules/General/transform:25: recipe for target 'Make/linux64GccDPInt32Opt/main.o' failed
make: *** [Make/linux64GccDPInt32Opt/main.o] Error 1


そこで,まずは一つ目のエラーの対処について教えていただきたいです.
該当のソースコードは以下の通りです.
スクリーンショット 2022-03-16 160146.png

お手数ですがご回答いただければ幸いです.
2022年3月14日月曜日 21:36:18 UTC+9 hamma...@gmail.com:
こんにちは。

haruka tsubota @xsim.info

unread,
Mar 16, 2022, 10:28:12 AMMar 16
to OpenFOAM
GitHubでソースコードを見てみましたが lnInclude という名前のディレクトリに入ってるファイルが全てC/C++の文法的におかしいですね。

推測ですが開発作業時に lnInclude フォルダ内に各 .H、.C ファイルへのシンボリックリンクを作って作業を行っていて、そのシンボリックリンクをGitにコミットしてしまっているのではないかと思います(GitHubプッシュ時にメタデータが消えてただのテキストファイルになっている?)。

とりあえず lnInclude フォルダ内のファイルパスが書かれているだけの.H、.C ファイルを全てシンボリックリンクで置き換えれば当該のエラーは消えるのではないかと思います。

できたらGitHubのレポジトリのイシューで問題点をイシューとして投稿しておいて下さい。


2022年3月16日水曜日 16:13:29 UTC+9 Cane:

Cane

unread,
Mar 17, 2022, 1:02:28 AMMar 17
to OpenFOAM
tsubota様,ご回答ありがとうございます.
ご指摘の通りすべてシンボリックリンクで置き換えた結果,無事エラーなくコンパイルすることができました!!
GitHubにもIssueとして投稿いたしました.(Issue投稿は初めてなので作法が正しいのか分かりませんが)

hamma様含め,ご対応いただき誠にありがとうございます.

2022年3月16日水曜日 23:28:12 UTC+9 haruka tsubota @xsim.info:
Reply all
Reply to author
Forward
0 new messages