FDMHestonADI2D.java
package net.finmath.finitedifference.solvers.adi;
import net.finmath.finitedifference.assetderivativevaluation.models.FDMHestonModel;
import net.finmath.finitedifference.assetderivativevaluation.products.FiniteDifferenceEquityProduct;
import net.finmath.finitedifference.grids.SpaceTimeDiscretization;
import net.finmath.modelling.Exercise;
/**
* ADI finite-difference solver for the two-dimensional Heston PDE.
*
* <p>
* Under the Heston model, the state vector is typically given by the spot
* <i>S</i> and the variance <i>v</i>. The option value
* <i>u = u(\tau,S,v)</i>, written in time-to-maturity coordinates
* <i>\tau = T - t</i>, satisfies a two-dimensional parabolic PDE of the form
* </p>
*
* <p>
* <i>
* \frac{\partial u}{\partial \tau}
* = \mathcal{L}_{\mathrm{Heston}} u,
* </i>
* </p>
*
* <p>
* where the Heston generator contains drift terms in both state variables,
* diffusion terms in both directions, and a mixed derivative induced by the
* correlation between the Brownian motions driving spot and variance.
* </p>
*
* <p>
* This class provides the concrete specialization of {@link AbstractADI2D} for
* the Heston model. The spatial operator is discretized by the generic
* two-dimensional ADI machinery, while the model-specific coefficients are
* obtained from {@link FDMHestonModel}. The resulting scheme is suitable for
* European, Bermudan, and American-style products supported by the surrounding
* finite-difference framework.
* </p>
*
* @author Alessandro Gnoatto
*/
public class FDMHestonADI2D extends AbstractADI2D {
/**
* Creates the ADI solver for the two-dimensional Heston PDE.
*
* @param model The Heston finite-difference model.
* @param product The product to be valued.
* @param spaceTimeDiscretization The space-time discretization.
* @param exercise The exercise specification.
*/
public FDMHestonADI2D(
final FDMHestonModel model,
final FiniteDifferenceEquityProduct product,
final SpaceTimeDiscretization spaceTimeDiscretization,
final Exercise exercise) {
super(model, product, spaceTimeDiscretization, exercise);
}
}