2016-05-19 5 views
1

問題のオブジェクトは、オブジェクトと何-ないで宣言されたすべての問題の変数の辞書のように動作するようにプログラムされていることができます。今、私のようなループのために、通常の辞書を反復処理することができます。はどのようにOpenMDAOで1 OpenMDAOオブジェクト内のエントリを超える反復

for key,value in my_dict.iteritems(): 
    do_something(key,value) 

このような何かをOpenMDAOの問題で行うことができますか?

私は辞書での作業に役立つユーティリティの束を持っています。 OpenMDAOの問題を扱うためにそれらを使用したいと思います。

ありがとうございます!

答えて

1

私はあなたが何をしたいのかを正確にわからないんだけど、あなたは、モデル内のすべての変数を反復処理したいように聞こえますか?あなたが行うことができる1つの方法は、モデルの上部Systemにあるすべての接続変数を含むベクトルであるprob.root.unknownsを反復することです。サブシステムで指定された接続が含まれているという意味で再帰的です。ただし、データ受け渡しには関係のないものは含まれていないため、少なくともIndepVarCompに接続されていないComponentの入力は表示されません。

+0

こんにちはケネス私は再び助けてくれてありがとう! –

+0

問題のすべてをループすると、ワークフローを構築するのに役立ちます。私は接続、派生物、そして実際の値をチェックするコードをたくさん持っています。私はコンポーネントを1つずつ追加し、すべての変更を確認することができます。すべてが機能しています。だからこそ、私はすべての変数を繰り返し処理したいのです... –

1

問題は実際に辞書のようなものではなく、__getitem____setitem__のメソッドをユーザーの便宜のために定義しています(see code)。基本となるdict-likeオブジェクトにアクセスする場合は、代わりにprob.root.unknowns にアクセスできます。これは実際には辞書ではありませんが、VecWrapperインスタンスですが、dict-likeであり、ダックタイピングの意味で使用するのに必要なメソッドがあります。

+0

ありがとうJustin!私はあなたの答えがケネスのように好きでしたが、私は1つの小切手しか与えられません... –

関連する問題