Skip to content

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

Notifications You must be signed in to change notification settings

vanroekel/MPI-SCVT

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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: https://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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 62.1%
  • C++ 37.3%
  • Other 0.6%