25#ifndef quantlib_fdm_3d_ext_ou_jump_solver_hpp
26#define quantlib_fdm_3d_ext_ou_jump_solver_hpp
28#include <ql/experimental/finitedifferences/fdmextoujumpop.hpp>
29#include <ql/experimental/processes/extouwithjumpsprocess.hpp>
30#include <ql/handle.hpp>
31#include <ql/methods/finitedifferences/solvers/fdm3dimsolver.hpp>
32#include <ql/methods/finitedifferences/solvers/fdmbackwardsolver.hpp>
33#include <ql/methods/finitedifferences/solvers/fdmsolverdesc.hpp>
34#include <ql/patterns/lazyobject.hpp>
35#include <ql/termstructures/yieldtermstructure.hpp>
43 ext::shared_ptr<YieldTermStructure> rTS,
53 return solver_->interpolateAt(x, y, z);
58 ext::shared_ptr<FdmLinearOpComposite>op(
63 solver_ = ext::make_shared<Fdm3DimSolver>(
69 const ext::shared_ptr<YieldTermStructure>
rTS_;
73 mutable ext::shared_ptr<Fdm3DimSolver>
solver_;
void performCalculations() const override
FdmSimple3dExtOUJumpSolver(const Handle< ExtOUWithJumpsProcess > &process, ext::shared_ptr< YieldTermStructure > rTS, FdmSolverDesc solverDesc, const FdmSchemeDesc &schemeDesc=FdmSchemeDesc::Hundsdorfer())
const FdmSolverDesc solverDesc_
const ext::shared_ptr< YieldTermStructure > rTS_
ext::shared_ptr< Fdm3DimSolver > solver_
Real valueAt(Real x, Real y, Real z) const
const Handle< ExtOUWithJumpsProcess > process_
const FdmSchemeDesc schemeDesc_
Shared handle to an observable.
Framework for calculation on demand and result caching.
virtual void calculate() const
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
static FdmSchemeDesc Hundsdorfer()
const FdmBoundaryConditionSet bcSet
const ext::shared_ptr< FdmMesher > mesher