package org.openpixi.pixi.physics.grid;
import junit.framework.Assert;
import org.openpixi.pixi.physics.GeneralBoundaryType;
import org.openpixi.pixi.physics.Settings;
import org.openpixi.pixi.physics.solver.Boris;
/**
* Extends the grid functionality which is required in one or more tests.
*/
public class GridTestCommon {
public static Settings getCommonSettings() {
Settings stt = new Settings();
stt.setSpeedOfLight(0.7);
stt.setSimulationWidth(10);
stt.setSimulationHeight(10);
stt.setParticleSolver(new Boris());
stt.setBoundary(GeneralBoundaryType.Periodic);
stt.setGridCellsX(10);
stt.setGridCellsY(10);
return stt;
}
public static double getJxSum(Grid grid) {
double sum = 0;
for (int x = 0; x < grid.getNumCellsX(); x++) {
for (int y = 0; y < grid.getNumCellsY(); y++) {
sum += grid.getJx(x, y);
}
}
return sum;
}
public static double getJySum(Grid grid) {
double sum = 0;
for (int x = 0; x < grid.getNumCellsX(); x++) {
for (int y = 0; y < grid.getNumCellsY(); y++) {
sum += grid.getJy(x, y);
}
}
return sum;
}
public static void checkSignJy(Grid grid) {
double sign = 0;
for (int x = 0; x < grid.getNumCellsX(); x++) {
for (int y = 0; y < grid.getNumCellsY(); y++) {
if (grid.getJy(x, y) != 0) {
sign = Math.signum(grid.getJy(x, y));
}
}
}
for (int x = 0; x < grid.getNumCellsX(); x++) {
for (int y = 0; y < grid.getNumCellsY(); y++) {
if (grid.getJy(x, y) != 0) {
if (sign != Math.signum(grid.getJy(x, y))) {
Assert.assertTrue("wrong sign", false);
}
}
}
}
}
public static void checkSignJx(Grid grid) {
double sign = 0;
for (int x = 0; x < grid.getNumCellsX(); x++) {
for (int y = 0; y < grid.getNumCellsY(); y++) {
if (grid.getJx(x, y) != 0) {
sign = Math.signum(grid.getJx(x, y));
}
}
}
for (int x = 0; x < grid.getNumCellsX(); x++) {
for (int y = 0; y < grid.getNumCellsY(); y++) {
if (grid.getJx(x, y) != 0) {
if (sign != Math.signum(grid.getJx(x, y))) {
Assert.assertTrue("wrong sign", false);
}
}
}
}
}
}