MESHLESS
Meshless Voronoi Basis Functions
MESHLESS
is a FORTRAN90 program which
generates a set of local basis functions, without the use of a mesh,
by Lili Ju.
If N basis functions are desired
in an arbitrary region, then N basis points are chosen at random
in the region. Each point in the region is assigned to the nearest
basis point. The basis points are then adjusted by taking the
average of the associated points. If this process is repeated, the
basis points will arrange themselves into generators of a centroidal
Voronoi tessellation of the region.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
MESHLESS is available in
a FORTRAN90 version.
Related Data and Programs:
CVT,
a FORTRAN90 library which
computes points that
form a Centroidal Voronoi Tessellation, which can be used by
MESHLESS to assign node locations.
HALTON,
a FORTRAN90 library which
computes quasirandom
Halton points, which can be used by MESHLESS to
assign node locations.
PS_WRITE,
a FORTRAN90 library which
implements some PostScript graphics commands.
Author:
Lili Ju
Reference:
-
Qiang Du, Vance Faber, Max Gunzburger,
Centroidal Voronoi Tessellations: Applications and Algorithms,
SIAM Review, Volume 41, 1999, pages 637-676.
-
Qiang Du, Max Gunzburger, Lili Ju,
Meshfree, Probabilistic Determination of Point Sets and Support
Regions for Meshfree Computing,
Computer Methods in Applied Mechanics in Engineering,
Volume 191, 2002, pages 1349-1366;
-
Lili Ju, Qiang Du, 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:
-
MAIN is the main program for the meshless basis function routines.
-
BASIS_BOX finds a box that contains all the basis functions.
-
BASIS_OVERLAP counts the number of basis functions with overlapping support.
-
BASIS_PLOT plots the basis functions in the region.
-
BASIS_READ reads basis data from a file.
-
BASIS_WRITE writes the basis data to a file.
-
CH_CAP capitalizes a single character.
-
CENTER_PLOT plots the center in the region.
-
CVT_MAKE computes centroidal Voronoi tessellation generators.
-
CVT_READ reads the CVT data from a file.
-
CVT_WRITE writes the CVT data to a file.
-
DENSITY evaluates the density function.
-
EPS_FILE_HEAD writes header information to an encapsulated PostScript file.
-
EPS_FILE_TAIL writes trailer information to an encapsulated PostScript file.
-
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
-
FILE_LINE_COUNT counts the number of lines in a file.
-
FIND_CLOSEST finds the center point CENTER(1:M,IC) closest to Y(1:M).
-
FIND_RE finds the number of center points near a given point.
-
GET_UNIT returns a free FORTRAN unit number.
-
HALTON_GENERATE generates a Halton dataset.
-
HALTON_READ reads Halton data from a file.
-
HALTON_WRITE writes a Halton dataset to a file.
-
I4_SWAP swaps two integer values.
-
I4_TO_HALTON computes an element of a Halton sequence.
-
POINT_INSIDE_BOX_2D determines if a point is inside a box in 2D.
-
PRIME returns any of the first PRIME_MAX prime numbers.
-
PS_CIRCLE draws a circle.
-
PS_COLOR_FILL_SET sets the fill color.
-
PS_COLOR_LINE handles the line color.
-
PS_COLOR_LINE_SET sets the line color.
-
PS_COMMENT inserts a comment into the PostScript file.
-
PS_DEFAULT sets the internal settings to their default values
-
PS_FILE_CLOSE closes a PostScript file.
-
PS_FILE_HEAD writes header information to a PostScript file.
-
PS_FILE_OPEN opens a new version of a PostScript file with a given name.
-
PS_FILE_TAIL writes trailer information to a PostScript file.
-
PS_GRID_CARTESIAN draws a cartesian grid.
-
PS_LINE_CLOSED adds the graph of a closed line to a PostScript file.
-
PS_LINETO draws a line from the current point to the given point.
-
PS_MARK_CIRCLES marks points with a small open circle.
-
PS_MARK_DISK marks a point with a small filled disk.
-
PS_MARKER_SIZE sets the marker size.
-
PS_MOVETO "moves to" a new point, which becomes the current point.
-
PS_PAGE_HEAD writes header information on a new page.
-
PS_PAGE_TAIL writes tail information at the end of a page.
-
PS_SETTING_INT sets, gets, or prints integer internal PS_WRITE parameters.
-
PS_SETTING_REAL sets, gets, or prints real internal PS_WRITE parameters.
-
R8_SWAP swaps two real values.
-
RADIUS_MAKE_1 uses algorithm 1 to determine a suitable radius for each center.
-
RADIUS_MAKE_2 uses algorithm 2 to determine a suitable radius for each center.
-
RANDOM_GENERATOR returns a random point Z(1:M) in [A(1:M),B(1:M)].
-
S_BLANK_DELETE removes blanks from a string, left justifying the remainder.
-
S_EQI is a case insensitive comparison of two strings for equality.
-
S_TO_I4 reads an I4 from a string.
-
S_WORD_COUNT counts the number of "words" in a string.
-
SET_RANDOM_SEED initializes the FORTRAN 90 random number generator.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TIMESTRING writes the current YMDHMS date into a string.
-
UNIFORM_MAKE sets up the uniform random data points.
-
UNIFORM_READ reads uniform random data from a file.
-
UNIFORM_WRITE writes the uniform random data to a file.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 12 November 2006.