CVT_BASIS - Determine a Reduced Basis for PDE Solutions

CVT_BASIS tries to extract a few representative behavior modes from a set of data.

Specifically, a partial differential equation (PDE) has been defined, specifying the time dependent flow of a fluid through a region. The PDE specification includes a parameter ALPHA whose value strongly affects the behavior of the flow. The steady state solution S0 is computed for a particular value of ALPHA. Then the time dependent problem is solved over a fixed time interval, with ALPHA varying from time to time. A set of several hundred solutions S(T(I),ALPHA(I)) are saved.

The need is to try to extract from this solution data the typical modes of behavior of the solution. Such a set of modes may then be used as a finite element basis that is highly tuned to the physics of the problem, so that a very small set of basis functions can be used to closely approximate the behavior of the solution over a range of values of ALPHA.

The method of extracting information from the solution data uses a form of K-Means clustering. The program will try to cluster the data, that is, to organize the data by defining a number of cluster centers, which are also points in N dimensional space, and assigning each record to the cluster associated with a particular center.

The method of assigning data aims to minimize the cluster energy, which is taken to be the sum of the squares of the distances of each data point from its cluster center.

In some contexts, it makes sense to use the usual Euclidean sort of distance. In others, it may make more sense to replace each data record by a normalized version, and to assign distance by computing angles between the unit vectors.

Reference 1:
Du and Gunzburger,
Centroidal Voronoi Tesselations: Applications and Algorithms,
SIAM Review, Volume 41, 1999, pages 637-676.
Reference 2:
Wendy Martinez and Angel Martinez,
Computational Statistics Handbook with MATLAB,
Chapman and Hall / CRC, 2002.

The PDE solution data files for the first region are available in the CVT basis data directory.

The PDE solution data files for the T-Cell region are available in the CVT basis T-CELL data directory.

Files you may copy include:

One way of using the program is to investigate the cluster energy as the number of clusters increases. You may copy a set of files associated with such a computation:

Another way of using the program is to pick a single cluster size. In this case, the program searches for a good clustering, and writes out the representatives (centroids) of the clusters. You may copy a set of files associated with such a computation:

The third run preprocesses the input data by subtracting appropriate multiples of the steady state solution.

Run #4 preprocesses the input data by subtracting appropriate multiples of the steady state solution, and computes 4 basis functions.

Run #5 preprocesses the input data by subtracting appropriate multiples of the steady state solution, and computes 8 basis functions.

Run #6 preprocesses the input data by subtracting appropriate multiples of the steady state solution, and computes 16 basis functions.

Run #7 is like Run #4, but we only use the odd numbered data files (1, 3, 5, ... through 401, for a total of 201 data files).

Run #8 is like run #5, but we only use the odd numbered data files (1, 3, 5, ... through 401, for a total of 201 data files).

Run #9 is like run #6, but we only use the odd numbered data files (1, 3, 5, ... through 401, for a total of 201 data files).

Run #10 is like Run #4, but we normalize the data.

Run #11 is like run #5, but we normalize the data.

Run #12 is like run #6, but we normalize the data.

Run #13 works with 500 flow solutions in the T-Cell region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We DON'T normalize the results.

Run #14 is like run #13, but for cluster size 8.

Run #15 is like run #13, but for cluster size 16.

Run #16 works with 500 flow solutions in the T-Cell region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We NORMALIZE the results.

Run #17 is like run #16, but for cluster size 8.

Run #18 is like run #16, but for cluster size 16.

Run #19 works with 500 flow solutions in the T-Cell region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We do NOT normalize the results. Then we discard half the data, keeping the EVEN steps, 2, 4, ..., 500.

Run #20 is like run #19, but for cluster size 8.

Run #21 is like run #19, but for cluster size 16.

Run #22 is like run #13, but for cluster size 2.

Run #23 is like run #16, but for cluster size 2.

Run #24 is like run #19, but for cluster size 2.

Run #25 works with 500 flow solutions in the INOUT region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We DON'T normalize the results.

Run #26 is like run #25, but for cluster size 4.

Run #27 is like run #25, but for cluster size 8.

Run #28 is like run #25, but for cluster size 16.

Run #29 works with 500 flow solutions in the INOUT region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We NORMALIZE the results.

Run #30 is like run #29, but for cluster size 4.

Run #31 is like run #29, but for cluster size 8.

Run #32 is like run #29, but for cluster size 16.

Run #33 works with 500 flow solutions in the INOUT region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We DON'T normalize the results. However, before we proceed, we DROP the ODD numbered results.

Run #34 is like run #33, but for cluster size 4.

Run #35 is like run #33, but for cluster size 8.

Run #36 is like run #33, but for cluster size 16.

Run #37 works with 500 flow solutions in the CAVITY region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We DON'T normalize the results.

Run #38 is like run #37, but for cluster size 4.

Run #39 is like run #37, but for cluster size 8.

Run #40 is like run #37, but for cluster size 16.

Run #41 works with 500 flow solutions in the CAVITY region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We NORMALIZE the results.

Run #42 is like run #41, but for cluster size 4.

Run #43 is like run #41, but for cluster size 8.

Run #44 is like run #41, but for cluster size 16.

Run #45 works with 500 flow solutions in the CAVITY region. We subtract 5/3 of steady solution from 1-250, and 1/3 from 251 through 500. We DON'T normalize the results. However, before we proceed, we DROP the ODD numbered results.

Run #46 is like run #45, but for cluster size 4.

Run #47 is like run #45, but for cluster size 8.

Run #48 is like run #45, but for cluster size 16.

The list of routines includes:

Return to the FORTRAN software page.


Last revised on 20 June 2002.