public interface IScalarField { public double getVal(double [] arrLfLoc); /** * Gradient at a particular location for field * @param arrLoc place at which to take gradient * @return gradient (of proper dimensionality) as a double [] */ public double [] getGradient(double arrLoc[]); /** * Gradient at a particular location for field * @param arrLoc place at which to take gradient * @param arrRslt gradient (of proper dimensionality) as a double [] */ public void getGradient(double arrLoc[], double arrRslt[]); public IScalarField makeCopy(); }