Execution of ESyS-Particle simulations

Created by Dion Weatherley
Keywords:
execution simulation
Last updated by:
Vince Boros

In order to run the code, you need a special commandline and be careful with the choice of numWorkerProcesses and mpiDimList in your simulation script. I'll try to explain:

1/ mpiDimList specifies the number of subdivisions in each of the coordinate directions (X-, Y- and Z-directions) so mpiDimList=[2,1,2] would divide the domain into two parts in X-, one part in Y- and two parts in Z-dir, resulting in four subdomains. You will also need to specify numWorkerProcesses=4 in this case - the numWorkerProcesses must always be equal to the total number of subdomains (eventually I will hardwire this so you only specify mpiDimList).

2/ when you run a script, you need to use a commandline like the following:
mpirun -np 5 `which esysparticle` GravityTut.py

N.B.
a) the number after -np must be equal to numWorkerProcesses+1 as there will be a master process as well as all the worker processes.
b) replace GravityTut.py with the name of the python script you wish to execute. The special program esysparticle is called to initialise the MPI engine, and then it executes python to parse the script.
c) if you have circular boundary conditions in one of the directions, the domain _must_ be split into at least two parts along this direction!
d) if you're using "setSpatialDomain(...)" to set the simulation domain (necessary if the domain needs to be larger than the bounding box supplied by the geometry file) then you need to put the "setSpatialDomain(...)" _after_ "initVerletModel(...)" in the script. Otherwise the simulation will crash with a some (system dependent) cryptic error message.