2017-10-22 9 views
0

私は、線形および非線形ソルバ(入力パラメータの固定サイズ)で完璧に動作する問題を抱えています。私はその後、入力パラメータのサイズも変数になるように変更しました。これは、ベクトルがとりうる最大サイズを定義し、使用されていないすべてのエントリをfloat( 'nan')に設定することで行いました。これはリニアソルバーではうまくいき、固定入力サイズの場合と同じ結果が得られます。ただし、すべての非線形ソルバはこの入力パラメータの値を1にリセットします。ソルバは、これらの初期値によって設定された簡単なケースに収束します。 リニアソルバーが私の新しい問題でうまく動作するので、これはバグになる可能性があると思います。 アイデアありがとう。非線形ソルバはNaNの値を扱うことができません

+1

あなたがしようとしているもののおもちゃの例を提供できますか?一般的に言えば、有効でない配列エントリに対してfloat配列に '' nan''を設定することは、OpenMDAOソルバでは機能しません。おもちゃの例は多くの助けとなり、そこからデバッグすることができます。 –

+0

それは必要ではないでしょう、あなたとケネスの提案が働きました。ゼロのような他の値に設定することで、ソルバは収束します。本当にありがとう。 –

答えて

1

NaNの代わりに0を使用しましたか? NaNを一般的な非線形ソルバでどの程度安全に伝播できるかはわかりません。

+0

ありがとう、NaNの代わりにゼロが働いた! –

関連する問題