2016-10-13 15 views
0

私は、各繰り返しの最後に が呼び出されるべき関数pyOptを渡すことができる方法があるのだろうかと思いましたか?pyOptの最適化反復間で関数を呼び出す方法は?

私はこのような何かを必要とする理由は、私は、各機能評価におけるFEA シミュレーションを実行している、と私は各 最適化反復後ExodusIIファイルに出力 FEA結果(変位、応力を)したいということです。私はもともと私のwriteExodus関数を に置いた "function evaluation"関数の最後で、私の問題は です。新しい "疑似時間ステップ"が毎回私のexodusファイルに書き込まれるようになりました。 関数は各反復の終わりである これは明らかに、離散的な出力のために、数値化(有限差分、複素数ステップ)の ファイルへの余分な出力につながり、 (すなわち、近似があるかどうかをチェックするときのGCMMA保守的です)。

したがって、各繰り返しの最後にpyOptに関数(つまり exodusWrite関数)を実行するように指示する方法はありますか?または、代わりに とにかく私は 私の "機能評価"機能の中に私は オプティマイザ反復を追跡することができ、繰り返し番号が変わったときにのみ、エクソダス出力を書くことができるので、pyOptでオプティマイザ反復を追跡することができますか?

答えて

0

モデルの最後に配置したコンポーネントに関数を配置することもできます。接続されていないので、あなたのグループには手動でset the run orderが必要です。

また、pyopt_sparseドライバコードをハックして、手動で関数を呼び出すこともできます。 this callの場合は、最後に選択した方法の呼び出しを追加し、いつでも呼び出されます。pyopt_sparseは客観的評価を求めます

関連する問題