/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.model.finitedifference; import org.apache.commons.lang.Validate; import com.opengamma.analytics.math.cube.Cube; import com.opengamma.analytics.math.surface.Surface; /** * Describes a partial differential for a function $V(t,x,y)$, with the initial condition $V(0,x,y) = g(x,y)$ * $\frac{\partial V}{\partial t} + a(t,x,y) \frac{\partial^2 V}{\partial x^2} + b(t,x,y) \frac{\partial V}{\partial x} + c(t,x,y)V * + d(t,x,y)\frac{\partial^2 V}{\partial y^2} + e(t,x,y) \frac{\partial^2 V}{\partial x \partial y} + f(t,x,y) \frac{\partial V}{\partial y} = 0$ * @deprecated replace with a PDE2DDateBundle */ @Deprecated public class ConvectionDiffusion2DPDEDataBundle { private final Cube<Double, Double, Double, Double> _a; private final Cube<Double, Double, Double, Double> _b; private final Cube<Double, Double, Double, Double> _c; private final Cube<Double, Double, Double, Double> _d; private final Cube<Double, Double, Double, Double> _e; private final Cube<Double, Double, Double, Double> _f; private final Surface<Double, Double, Double> _initialCondition; public ConvectionDiffusion2DPDEDataBundle(final Cube<Double, Double, Double, Double> a, final Cube<Double, Double, Double, Double> b, final Cube<Double, Double, Double, Double> c, final Cube<Double, Double, Double, Double> d, final Cube<Double, Double, Double, Double> e, final Cube<Double, Double, Double, Double> f, final Surface<Double, Double, Double> initialCondition) { Validate.notNull(a, "null a"); Validate.notNull(b, "null b"); Validate.notNull(c, "null c"); Validate.notNull(d, "null d"); Validate.notNull(e, "null e"); Validate.notNull(f, "null f"); Validate.notNull(initialCondition, "null initial Condition"); _a = a; _b = b; _c = c; _d = d; _e = e; _f = f; _initialCondition = initialCondition; } public double getA(final double t, final double x, final double y) { return _a.getValue(t, x, y); } public double getB(final double t, final double x, final double y) { return _b.getValue(t, x, y); } public double getC(final double t, final double x, final double y) { return _c.getValue(t, x, y); } public double getD(final double t, final double x, final double y) { return _d.getValue(t, x, y); } public double getE(final double t, final double x, final double y) { return _e.getValue(t, x, y); } public double getF(final double t, final double x, final double y) { return _f.getValue(t, x, y); } public double getInitialValue(final double x, final double y) { return _initialCondition.getZValue(x, y); } }