Subject | : Re^5: SAD Update. V1.0.10.4.3a10. ElementValues |
Date | : 2010/03/02(Tue) 12:05:28 |
Contributor | : Akio Morita |
> 今朝行ったcvs updateにより、今まで報告してきた異常が消えたことを確認しました。 > 設定済みの ElementValuesを参照出来ないのが最大のバグだと思うのですが? 例えば、 ElementValues = {}; (* Clear coupling *) AppendTo[ElementValues, "K1"["QFH"] :> 0.5 * "K1"["QF"]]; AppendTo[ElementValues, "K1"["QDH"] :> 0.5 * "K1"["QD"]]; などのように、一度に設定せずに設定を徐々に追加する場合、MAIN trunkの現状の実装では 過去に設定した ElementValuesの値を参照する Getter proxyが存在しないので、非互換性が 発生しています(過去に動いたものが動かないという意味で) 実用上の互換性から、次の用例をサポートすべきだと思います o 複数のサブルーチンコールの内部で個別に追加設定する場合(Getter proxyが必要) o ElementValues/FitWeight/FitValue/FitFunctionの定義をバックアップして、別の設定の元で計算し復元する場合 (Getter proxy/Definition proxyが必要[With[{backup = ?ElementValues}, Clear[ElementValues]; foo; ReleaseHold[backup]]) 他にも o ビームラインの設定に先立って ElementValuesを設定している場合に、Packages/Couple.n読み込み時点の ElementValuesが反映されません。 Packages/Couple.n読み込み時点で、設定済みのElementValuesを評価するか、ElementValuesの評価を SetCoupledElementsの評価時点まで遅延する必要があります o ビームライン定義に先立って設定される場合、ElementValues = l_Listの評価時点では、エレメントが存在しない ((LINE|Element)["POSITION", _] === {})ケースもありえますので、EVSetFunの生成に失敗するケースが考えられます