23#include <ql/methods/finitedifferences/operators/fdmg2op.hpp>
24#include <ql/methods/finitedifferences/solvers/fdm2dimsolver.hpp>
25#include <ql/methods/finitedifferences/solvers/fdmg2solver.hpp>
26#include <ql/methods/finitedifferences/stepconditions/fdmsnapshotcondition.hpp>
27#include <ql/models/shortrate/twofactormodels/g2.hpp>
35 : model_(
std::move(model)), solverDesc_(
std::move(solverDesc)), schemeDesc_(schemeDesc) {
41 const ext::shared_ptr<FdmG2Op> op(
44 solver_ = ext::make_shared<Fdm2DimSolver>(
50 return solver_->interpolateAt(x, y);
ext::shared_ptr< Fdm2DimSolver > solver_
const Handle< G2 > model_
void performCalculations() const override
const FdmSolverDesc solverDesc_
Real valueAt(Real x, Real y) const
FdmG2Solver(Handle< G2 > model, FdmSolverDesc solverDesc, const FdmSchemeDesc &schemeDesc=FdmSchemeDesc::Hundsdorfer())
const FdmSchemeDesc schemeDesc_
Shared handle to an observable.
const ext::shared_ptr< T > & currentLink() const
dereferencing
virtual void calculate() const
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
const ext::shared_ptr< FdmMesher > mesher