iSMART〜Automatic Differentiation Part 1
冬籠りの三ヶ月間どっぷり自動微分(Automatic Differentiation)に浸かりました。俺の一世代前の貯留層シミュレーターiSMARTは導入の容易な差分商で近似する数値微分法を採用しているが、演算に大幅な手間が掛かる上に最適な微小値\(\epsilon\)を見出すのが難しく誤った解に収束することも起こりうる状況にある。近年研究対象のシミュレーターでは自動微分を用いてヤコビアン行列の組込みの手間の短縮化を図っていることを知り自動微分の組込みを夢見ていた。野外活動が鈍る北陸の冬の時期、iSMARTに自動微分の実装に向けてチャレンジを開始。Three months this winter are dedicated to the automatic differentiation (AD). My primitive reservoir simulator iSMART adopts the numerical differentiation method which is easy to implement but may end up converging to a wrong solution due to the loss of the search for an optimal \(\epsilon\). I wish to incorporate an AD function into iSMART, once I learn that the latest research simulators tend to use the AD function instead of spending huge time on constructing analytical Jacobian matrices….