final double spaceStepBunching = Double.parseDouble(desiredValue.getConstraint(PROPERTY_SPACE_STEPS_BUNCHING));
final double maxMoneyness = Double.parseDouble(desiredValue.getConstraint(PROPERTY_MAX_MONEYNESS));
final String interpolatorName = desiredValue.getConstraint(PROPERTY_SPACE_DIRECTION_INTERPOLATOR);
final Interpolator1D interpolator = Interpolator1DFactory.getInterpolator(interpolatorName);
final PDELocalVolatilityCalculator<?> pdeCalculator =
getPDECalculator(new LocalVolatilityBackwardPDECalculator(theta, nTimeSteps, nSpaceSteps, timeStepBunching, spaceStepBunching, maxMoneyness), interpolator);
final Object localVolatilityObject = inputs.getValue(getVolatilitySurfaceRequirement(target, desiredValue));
if (localVolatilityObject == null) {
throw new OpenGammaRuntimeException("Could not get local volatility surface");
}
final Object forwardCurveObject = inputs.getValue(getForwardCurveRequirement(target, desiredValue));