古いフレームワークと同様、Schemeクラスは、解こうとしている微分方程式における、時間軸方向の偏微分の差分スキームを提供しています。詳しい説明は、古いフレームワークの該当セクションをご覧下さい。Schemeを、作り直して提供しています。それに加えて、いくつかの新しいスキームも提供していますが、その部分の説明は省略します。詳細を知りたい方は、QuantLibライブラリーの中のプログラムコードをご覧下さい。古いフレームワークと同様、Schemeクラス群は共通のベースクラスを持ちません。実装しているものの、それらの間には、お互いを束縛するような継承関係は存在しません。ProgrammingやTemplateを控えようとしている中で、やや問題かもしれません。Templateを使わないで済むようなコードを書くことはできません。Schemeの型と、それをインスタンス化するのに必要なパラメータを、メンバー変数に設定した上で、他のオブジェクトに渡されていきます。enumを使ってリストアップされていますが、最適な方法とは言えないでしょう。この点については後で説明します。Schemeインスタンスを事前に生成し、それを返します。仮に、独自のインスタンスを生成したい場合は、どのような古い(?)値を使ったインスタンスでも生成できます。ひとつ、このクラスも、このセクションで説明するほかのクラスも、クラステンプレートで無い点、注意して下さい。これらのクラスは、FdmLinearOpCompositeクラスとだけしか、一緒に動作しないようにプログラムされています。TridiagonalOperatorクラスでしか使われませんでした)。FdmBackwardSolverクラスについては、(もっと気持ち悪いプログラム手法を)覚悟して下さい。SchemeDescインスタンスを引数として取り、メンバー変数に保持します。)メソッドの中で使われます。このメソッドは、1これら部品を使って有限差分モデルを組み立て、2初期値の配列を取り、そして3スタートとエンド時の間で、与えられたステップ数だけ有限差分モデルを走らせます。(訳注:適当な訳語が無いので英語のままにしました。時間ステップの最初の数ステップは、Payoff関数の微分不可能な領域(Strike価格、あるいはノックイン・ノックアウトなどのバリア点)の影響を強く受け、その近辺で不自然な振動を起こす可能性があるので、その影響を緩和する為に特別な操作を行っているもの)。)の動作は、SchemeDescクラスの型にあわせ、switchによる多岐に渡る分岐操作の中で行われます。