要素関数・材料関数のリファクタリング
FrontISTRの材料関数は,温度変数temperatureをoptional属性の引数としており,これを熱荷重の有無で分岐を作って呼び出している. そのため,MatlMatrix,UpdateStress3Dでは材料種類×温度,StiffMatやUpdateに至っては要素種類×定式化×温度の入れ子構造が発生していて,材料や要素の追加が面倒になっている.種類が増えつつある昨今,コードの可読性も低下している.
いま,平滑化要素#495 (closed) u/p要素#51 (closed) を実装するために,MatlMatやUpdateStressに応力の静水圧成分のみ/偏差成分のみ計算させるフラグを1つ追加したいのだが,現状のまま機能拡張し,temperatureによる分岐と組み合わさると,コードの可読性・拡張性はさらに悪化すると思われる.
そこで,材料関数から要素関数まで,temperatureを常時受け取る(熱荷重が無い場合はデフォルトの温度を受け取ってその温度での物性値を返す)実装に変更し,温度による分岐をコードからなくしたい.