Skip to content

Latest commit

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

About: MPI-SCVT is a Parallel SCVT Generator written in C++. It makes use of boost's mpi and serialization libraries. It was written by Douglas Jacobsen as part of his Dissertation work while he was a Ph.D. student at Florida State University.

Compiling: To compile, you need the boost mpi and serialization libraries to be in your LD_LIBRARY_PATH, and the header files in your PATH variables. Afterwards, compilation is as simple as typing "make", a debug version can be compiled using "make debug" as well. These commands create MpiScvt.x which can be run from the command line.

Boost: Boost can be downloaded from: http://www.boost.org/

The only libraries that need to be setup at mpi, and serialization. Please refer to boost's documentation
to set up correctly.

Running: To run, simply type: ./MpiScvt.x

To run using mpi, simply type:
mpirun -n P ./MpiScvt.x
Where P is replaced with the number of processors used. The number of Processors has to be either
1 or the number of points in RegionList as described below.

Input: To run MPI-SCVT 4 Files can be used. Each file has a label saying if it is required or not.

Params: (Required)
This file contains parameters required to run MPI-SCVT. If the file does not exist
a run of MPI-SCVT will create this file, with default values.
RegionList: (Required)
This file contains a list of region centers, for parallelization. Some example lists are provided in the
original source package. Each region center needs to be given as x, y, z with one region per line.
One region should be provided for each processor to be used. A simple example two processor setup (the smallest number MPI-SCVT is capable of using) is the north and south pole, with a RegionList file containing
the following data:
0 0 1
0 0 -1
RegionTriangulation: (Required)
This file contains the connectivity of the regions in RegionList. Each line contains one "triangle" given as three indices, where each index relates to a point number from the RegionList file. Contradictory to the name, the connectivity does not need to be a Triangulation, though a Triangulation is easy to come by. As an example, the connectivity for the example provided for RegionList would be:
0 1 0
However, a triangulation (in triangles.dat) as output from MPI-SCVT can be used as well
SaveVertices: (Optional)
This file contains an initial point set for iterating on. These points should be given as x, y, z
with one point per line. This is required if the method of generating points is set to 0 in Params.
SaveBoundaries: (Optional)
This file lists all points which lie along some boundary segment or segments. Generator points can
be projected onto these segments during generation, but do not have to be.
SaveLoopCounts: (Optional)
This file defines the continous segements of boundary lines. The first
column is a beginning index, and the second column is the number of
points to read from SaveBoundaries to create a loop.

Output: After a successful run of MPI-SCVT, Three files are created.

end_points.dat:
This file contains the ending pointset from MPI-SCVT, given as x, y, z with one point per line
triangles.dat:
This file contains the final triangulation of the points in end_points.dat, given as one triangle
per line, with each number being the index of a point in end_points.dat.
bisected_points.dat:
This file contains the bisected pointset from end_points.dat. For a full sphere grid, it should have
4*n - 6 points, where n is the number of points in end_points.dat. 

Bitdeli Badge

About

Parallel spherical centroidal Voronoi tessellation generator. Written in C++ uses MPI and Boost.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages