/** * 2d box with no scalar fields of a fixed (at construction time) * width and height * @author Michael Schuresko * @version %I%, %G% * @since 1.0 */ public class TrivialEnvironment implements IEnvironment { BoxBoundary m_boundary; double[] m_arrLfMin; double[] m_arrLfMax; public TrivialEnvironment() { initializeVars(100.0,100.0); } public TrivialEnvironment(double lfWidth, double lfHeight) { initializeVars(lfWidth, lfHeight); } public IEnvironment makeCopy() { return new TrivialEnvironment(m_arrLfMax[0], m_arrLfMax[1]); } public void initializeVars(double lfWidth, double lfHeight) { m_arrLfMin = new double[2]; m_arrLfMax = new double[2]; m_arrLfMin[0] = 0.0; m_arrLfMin[1] = 0.0; m_arrLfMax[0] = lfWidth; m_arrLfMax[1] = lfHeight; m_boundary = new BoxBoundary(m_arrLfMin, m_arrLfMax); } /** * dimensionality of space in which environment is embedded */ public int getDimensionality() { return 2; } /** * number of scalar fields over environment */ public int getNumScalars() { return 0; } /** * Gets a particular field value at a particular location * Invalid for this class * Figure out how to declare exceptions in interface definitions */ public double getFieldVal(int nWhichField, double arrLoc[]) { return 0.0; } /** * Gradient at a particular location for a given field * @param nWhichField field to take gradient of * @param arrLoc place at which to take gradient * @return gradient (of proper dimensionality) as a double [] */ public double [] getGradient(int nWhichField, double arrLoc[]) { return new double[2]; } /** * Gradient at a particular location for a given field * @param nWhichField field to take gradient of * @param arrLoc place at which to take gradient * @param arrRslt gradient (of proper dimensionality) as a double [] */ public void getGradient(int nWhichField, double arrLoc[], double arrRslt[]) { // don't even bother for this one. } /** * Gets all field values for a particular location as a vector * Invalid for this class * Figure out how to declare exceptions in interface definitions * @param arrLoc invalid for this class * @return null -- invalid for this class */ public double [] getFieldVals(double arrLoc[]) { return null; } /** * Gets boundary interface */ public IBoundary getBoundary() { return m_boundary; } }