問題タブ [openfoam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - サブタイプを含むパラメーター化された型を受け入れる C++ 関数
OpenFOAM ライブラリは と の 2 つの型を定義してvolMesh
おりsurfaceMesh
、どちらも を継承していGeoMesh<fvMesh>
ます。引数を受け取る関数を定義したい:
ただし、関数を呼び出そうとすると、g++ で「参照型の初期化が無効です」というエラーが表示されます。
Java のバックグラウンドから来て、この問題は次のような宣言を使用するのを忘れることに似ているようです。
可能であれば、C++11 固有の機能を避ける必要があります。
python - 角かっこ '{' 内に含まれる特定のキーワードのテキスト ファイルを読み込んでいます
以下のようなテキストファイルを読みたいと思います。形状名 --> "hvac,OUTLET,INLET,Lamelle,duct and wall" があります
この場合は 6 だけですが、CFD プロセスのシミュレーションによって異なる場合があります。
ジオメトリ名とそれに対応する「タイプ」のみを抽出したいと思います。私の場合、ジオメトリとタイプはそれぞれ「hvac、OUTLET、INLET、Lamelle、duct and wall」と「wall and patch」です。
XML を使用して Parse を使用するか、'{\n' および '}\n' Keyword の後の文字列を検索する必要があります。
openfoam - OpenFOAM フィールドを空間の関数として定義する
(x,y,z) の関数で指定されるいくつかの初期条件があります。
値が (x,y,z) の関数であるフィールドをプログラムで定義したいと思います。これは、セル/面をループして各値を個別に設定するのではなく、フィールド構築の一部として実行できますか?
さらに、内部フィールドと境界値を簡単な方法で設定できますか?
openmpi - openfoam openmpi エラー: libmpi.so.0 が見つかりません
openfoam でソルバーをコンパイルしようとすると、次のエラーが表示されます。
問題はopen-mpiのインストールにあると思います。エラーを確認/修正するにはどうすればよいですか?
c++11 - c++隠しユニークポインタ
ソース ファイルの先頭で部分的に定義されているインクルード ファイル (通常はそうです) と、関数内で使用されるその他のファイルに依存するコードがあります。
その典型的な例は、OpenFOAM ソルバーのソースです。
このコードのスキームは非常に手続き的なものですが、これらすべてを init()、run()、およびおそらく release() を提供するクラスに入れたいので、いくつかの変数をプライベートとしてクラスに入れる予定です。メンバー。
含まれているファイルはライブラリに属しているため、変更したくありません。
クラスを使用する理由は、他のルーチン クラスがこのコードと一緒に実行されるためです。
これが事です。init() はいくつかの変数を準備する必要があり、明示的なコンストラクターや特別な引数ではなく、これらの変数 (他のクラスの型である) が存在する状況があります。一度呼び出されます。run() が数回呼び出されます。手続き型コードにはループのみがあり、そのループの内容は run() メソッドに入れられます。
したがって、最善の解決策は、これらの変数を std::unique_ptr に配置することであり、init は必要なものを構築できます。明らかにそのトリックで変数の署名が変更されたので、次のような参照の 2 番目の宣言を作成しました。
ちょっと面倒なのでマクロを作ってみました
これは私のためにすべての作業を行います:
それはかなりうまく機能しますが、特にコードをデバッグする必要がある場合は、一般的にマクロのファンではありません。
今私の質問は次のとおりです。これに取り組み、すべての魔法を行う可能性のあるテンプレート定義のようなものを使用するより良い方法はありますか?
編集:「かなりうまくいく」とは、コンパイラがそれを翻訳できることを意味します。ただし、参照はまだ無効です。
編集:わかりました、2つのマクロを使用して無効なポインターの問題を解決しました:
今、私FOAMPTR(TYPE,NAME)
はメンバーに置くと、私は自分のユニークなptrsを取得します. このrun()
メソッドでは、2 番目のマクロFETCHFOAMREF(NAME)
が使用されます。もちろん、init() はオブジェクトを正しく初期化する必要があります。そうしないと、プログラムがクラッシュします。
私はその解決策に満足していないので、まだ質問を開いたままにしています.
python - Calling alias Command from python script
I need to run an OpenFOAM command by automatized python script.
My python code contains the lines
where OF23 is a shell command is defined in alias as
This script runs the OpenFOAM command in terminal and the file_path defines the stl files which are converted to binary format
But when I run the script, I am getting 'OF23' is not defined.
How do I make my script to run the alias command and also perform the next OpenFOAM file conversion command