package org.openpixi.pixi.distributed;
import org.openpixi.pixi.distributed.utils.EmulatedDistributedEnvironment;
import org.openpixi.pixi.distributed.utils.IplServer;
import org.openpixi.pixi.physics.particles.Particle;
import org.openpixi.pixi.physics.particles.ParticleFull;
import org.openpixi.pixi.physics.Settings;
/**
* Runs a single simple distributed simulation test with custom settings.
* Intended mainly for debugging.
*/
public class SimpleDistSimTest {
public static void main(String[] args) {
Settings settings = new Settings();
settings.setNumOfNodes(2);
settings.setNumOfThreads(2);
settings.setGridCellsX(8);
settings.setGridCellsY(8);
settings.setSimulationWidth(10 * settings.getGridCellsX());
settings.setSimulationHeight(10 * settings.getGridCellsY());
settings.setNumOfParticles(100);
// If number of iterations is set to 0 we get a simple test
// of problem distribution and results collection (we must use runAtOnce() method of
// the EmulatedDistributedEnvironment).
settings.setIterations(100);
IplServer.start();
new EmulatedDistributedEnvironment(settings).runInSteps();
IplServer.end();
System.out.println("PASSED ..... simple distributed simulation test");
}
/**
* Used for debugging purposes when there is a need of a specific particle(s).
*/
public static void createParticles(Settings settings) {
Particle p1 = new ParticleFull();
p1.setX(75);
p1.setY(35);
p1.setVx(2);
p1.setVy(0);
p1.setRadius(1);
p1.setMass(1);
p1.setCharge(0.1);
settings.addParticle(p1);
}
}