Package com.opengamma.analytics.financial.model.volatility.local

Source Code of com.opengamma.analytics.financial.model.volatility.local.LocalVolatilityPDECalculator

/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.model.volatility.local;

import com.opengamma.analytics.financial.model.finitedifference.MeshingFunction;
import com.opengamma.analytics.financial.model.finitedifference.PDEGrid1D;
import com.opengamma.analytics.financial.model.finitedifference.PDETerminalResults1D;
import com.opengamma.analytics.financial.model.finitedifference.ThetaMethodFiniteDifference;
import com.opengamma.analytics.financial.model.finitedifference.applications.InitialConditionsProvider;
import com.opengamma.analytics.financial.model.finitedifference.applications.PDE1DCoefficientsProvider;
import com.opengamma.analytics.financial.model.interestrate.curve.ForwardCurve;
import com.opengamma.analytics.financial.model.option.pricing.analytic.formula.EuropeanVanillaOption;

/**
*
*/
public abstract class LocalVolatilityPDECalculator {
  private final PDE1DCoefficientsProvider _pdeProvider;
  private final InitialConditionsProvider _initialCondProvider;
  private final ThetaMethodFiniteDifference _solver;

  public LocalVolatilityPDECalculator(final double theta) {
    _pdeProvider = new PDE1DCoefficientsProvider();
    _initialCondProvider = new InitialConditionsProvider();
    _solver = new ThetaMethodFiniteDifference(theta, false);
  }

  public abstract PDETerminalResults1D runPDESolver(final LocalVolatilitySurfaceMoneyness localVolatility, final EuropeanVanillaOption option);

  public abstract PDETerminalResults1D runPDESolver(final LocalVolatilitySurfaceStrike localVolatility, final ForwardCurve forwardCurve, final EuropeanVanillaOption option);

  protected PDEGrid1D getGrid(final MeshingFunction timeMesh, final MeshingFunction spaceMesh) {
    return new PDEGrid1D(timeMesh, spaceMesh);
  }

  protected PDE1DCoefficientsProvider getPDEProvider() {
    return _pdeProvider;
  }

  protected ThetaMethodFiniteDifference getSolver() {
    return _solver;
  }

  protected InitialConditionsProvider getInitialConditionProvider() {
    return _initialCondProvider;
  }
}
TOP

Related Classes of com.opengamma.analytics.financial.model.volatility.local.LocalVolatilityPDECalculator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.