Package com.barrybecker4.simulation.liquid.model

Source Code of com.barrybecker4.simulation.liquid.model.VortexGrid

/** Copyright by Barry G. Becker, 2000-2011. Licensed under MIT License: http://www.opensource.org/licenses/MIT  */
package com.barrybecker4.simulation.liquid.model;

import javax.vecmath.Vector2d;

/**
*  Create a grid with non-uniform velocity throughout.
*  The velocity will be set in the middle and taper off toward 0 at the edges.
*
@author Barry Becker
*/
public class VortexGrid extends Grid {

    /**
     * Constructor.
     */
    public VortexGrid(int xDim, int yDim) {

        this(xDim, yDim, CellStatus.EMPTY);
    }

    /**
     * Constructor.
     */
    public VortexGrid(int xDim, int yDim, CellStatus status) {

        super(xDim, yDim);
        double centerX = xDim/2;
        double centerY = yDim/2;

        for (int j = 1; j < yDim-1; j++ ) {
            for (int i = 1; i < xDim-1; i++ ) {
                double xDiff = centerX-i;
                double yDiff = centerY-j;

                double theta = Math.atan2(yDiff, xDiff);
                Vector2d tangentialVec = new Vector2d(-Math.sin(theta), Math.cos(theta));

                setVelocity(i, j, tangentialVec);
                getCell(i, j).setStatus(status);
            }
        }
    }

}
TOP

Related Classes of com.barrybecker4.simulation.liquid.model.VortexGrid

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.