final BoundaryCondition upper = new NeumannBoundaryCondition(0, kMax, false);
final CoupledPDEDataBundle d1 = new CoupledPDEDataBundle(_data[0], _initalCond1, lower1, upper, grid);
final CoupledPDEDataBundle d2 = new CoupledPDEDataBundle(_data[1], _initalCond2, lower2, upper, grid);
final CoupledFiniteDifference solver = new CoupledFiniteDifference(theta, true);
final PDEResults1D[] res = solver.solve(d1, d2);
final PDEFullResults1D res1 = (PDEFullResults1D) res[0];
final PDEFullResults1D res2 = (PDEFullResults1D) res[1];
final double[][] prices = new double[grid.getNumTimeNodes()][grid.getNumSpaceNodes()];
for (int i = 0; i < grid.getNumTimeNodes(); i++) {