CVT_MOD
Centroidal Voronoi Tessellation on Logical Torus
CVT_MOD is a FORTRAN90 library,
using double precision arithmetic,
which creates Centroidal Voronoi Tessellation (CVT) datasets in which the
geometry is a logical torus.
A 2D unit logical torus is the unit square, but with "wraparound".
This is the connectivity frequently seen in video games, in which
a spaceship flies off the top of the screen and immediately reappears
at the bottom of the screen. In the general M-dimensional case,
the extreme minimum and maximum values of each coordinate are
identified, and modular arithmetic may be used to determine
distances.
For details on the underlying CVT calculation, refer to
CVT_DATASET. This program is a modification of that one, in
which distances are computed using modular arithmetic. For the
current code, the region is a unit hypercube, although there's
no real difficulty in allowing the widths in each dimension to
vary.
Related Data and Programs:
CVT
is a FORTRAN90 library which
computes a Centroidal Voronoi Tessellation.
CVT_DATASET
is a FORTRAN90 program which
defines and computes a CVT.
TABLE
is a file format
used for the output of CVT_MOD.
Reference:
-
Franz Aurenhammer,
Voronoi diagrams -
a study of a fundamental geometric data structure,
ACM Computing Surveys,
Volume 23, Number 3, pages 345-405, September 1991,
../../pdf/aurenhammer.pdf
-
John Burkardt, Max Gunzburger, Janet Peterson and Rebecca Brannon,
User Manual and Supporting Information for Library of Codes
for Centroidal Voronoi Placement and Associated Zeroth,
First, and Second Moment Determination,
Sandia National Laboratories Technical Report SAND2002-0099,
February 2002,
../../publications/bgpb_2002.pdf
-
Qiang Du, Vance Faber, and Max Gunzburger,
Centroidal Voronoi Tessellations: Applications and Algorithms,
SIAM Review, Volume 41, 1999, pages 637-676.
-
Lili Ju, Qiang Du, and Max Gunzburger,
Probabilistic methods for centroidal Voronoi tessellations
and their parallel implementations,
Parallel Computing,
Volume 28, 2002, pages 1477-1500.
Source Code:
Examples and Tests:
List of Routines:
-
CH_CAP capitalizes a single character.
-
CH_EQI is a case insensitive comparison of two characters for equality.
-
CH_TO_DIGIT returns the integer value of a base 10 digit.
-
CVT_ITERATION_MOD takes one step of the CVT iteration.
-
CVT_MOD_WRITE writes a CVT MOD dataset to a file.
-
DATA_READ reads generator coordinate data from a file.
-
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
-
FILE_ROW_COUNT counts the number of row records in a file.
-
FIND_CLOSEST_MOD finds the Voronoi cell generator closest to a point X.
-
GET_SEED returns a seed for the random number generator.
-
GET_UNIT returns a free FORTRAN unit number.
-
I4_TO_HALTON_VECTOR computes an element of a vector Halton sequence.
-
PARAM_PRINT prints the program parameters.
-
PRIME returns any of the first PRIME_MAX prime numbers.
-
R8_UNIFORM_01 returns a unit pseudorandom R8.
-
REGION_SAMPLER_MOD returns a sample point in the physical region.
-
S_BLANK_DELETE removes blanks from a string, left justifying the remainder.
-
S_CAP replaces any lowercase letters by uppercase ones in a string.
-
S_EQI is a case insensitive comparison of two strings for equality.
-
S_TO_I4 reads an I4 from a string.
-
S_TO_R8 reads an R8 from a string.
-
S_TO_R8VEC reads an R8VEC from a string.
-
S_WORD_COUNT counts the number of "words" in a string.
-
TEST_REGION determines if a point is within the physical region.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TIMESTRING writes the current YMDHMS date into a string.
-
TUPLE_NEXT_FAST computes the next element of a tuple space, "fast".
You can go up one level to
the FORTRAN90 source codes.
Last revised on 12 November 2006.