41 const ext::shared_ptr<FdmMesher>& mesher,
42 const ext::shared_ptr<KlugeExtOUProcess>& klugeOUProcess,
43 const ext::shared_ptr<YieldTermStructure>& rTS,
45 Size integroIntegrationOrder)
47 kluge_ (klugeOUProcess->getKlugeProcess()),
48 extOU_ (klugeOUProcess->getExtOUProcess()),
52 integroIntegrationOrder)),
62 Array(mesher->layout()->size(),
63 klugeOUProcess->
rho()*extOU_->volatility()
64 *kluge_->getExtendedOrnsteinUhlenbeckProcess()
69 return mesher_->layout()->dim().size();
73 ouOp_->setTime(t1, t2);
87 return klugeOp_->apply_direction(direction,
r)
88 +
ouOp_->apply_direction(direction,
r);
93 if (direction == 0 || direction == 1) {
94 return klugeOp_->solve_splitting(direction,
r, a);
96 else if (direction == 2) {
97 return ouOp_->solve_splitting(direction,
r, a);
106 return klugeOp_->solve_splitting(0,
r, dt);
110 const std::vector<SparseMatrix> klugeDecomp =
klugeOp_->toMatrixDecomp();
115 ouOp_->toMatrixDecomp().front(),
1-D array used in linear algebra.
const ext::shared_ptr< FdmExtOUJumpOp > klugeOp_
FdmKlugeExtOUOp(const ext::shared_ptr< FdmMesher > &mesher, const ext::shared_ptr< KlugeExtOUProcess > &klugeOUProcess, const ext::shared_ptr< YieldTermStructure > &rTS, const FdmBoundaryConditionSet &bcSet, Size integroIntegrationOrder)
Size size() const override
Array apply_direction(Size direction, const Array &r) const override
Array preconditioner(const Array &r, Real s) const override
std::vector< SparseMatrix > toMatrixDecomp() const override
void setTime(Time t1, Time t2) override
Time is required.
Array apply_mixed(const Array &r) const override
const ext::shared_ptr< FdmMesher > mesher_
Array solve_splitting(Size direction, const Array &r, Real s) const override
const NinePointLinearOp corrMap_
Array apply(const Array &r) const override
const ext::shared_ptr< FdmExtendedOrnsteinUhlenbeckOp > ouOp_
Flat interest-rate curve.
Shared handle to an observable.
SparseMatrix toMatrix() const override
Array apply(const Array &r) const override
purely virtual base class for market observables
market element returning a stored value
Interest-rate term structure.
extended Ornstein-Uhlenbeck process
Ornstein Uhlenbeck process plus exp jumps (Kluge Model)
const ext::shared_ptr< YieldTermStructure > rTS_
Ornstein Uhlenbeck process plus jumps (Kluge Model)
Ornstein Uhlenbeck process plus jumps (Kluge Model)
Kluge process (power) plus Ornstein Uhlenbeck process (gas)
memory layout of a fdm linear operator
const ext::shared_ptr< FdmMesher > mesher_
flat forward rate term structure
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container
joint Kluge process an d Ornstein Uhlenbeck process
OperatorTraits< FdmLinearOp >::bc_set FdmBoundaryConditionSet
ext::shared_ptr< YieldTermStructure > r
second order mixed derivative linear operator
Interest-rate term structure.