Program tri_to_tri description:
Interpolate one unstructured surface flow solution to another in 3-space.
This is an adaptation of the earlier TRI_TO_QUAD, replacing the structured
target surface grid with a surface triangulation. Both assume that the
input dataset is a single-zone surface triangulation. Here, the target (and
hence output) triangulation may contain one or more zones.
Input Tecplot data format (original, vertex-centered):
VARIABLES = "X", "Y", "Z", "TEMP", "PRESS", "CP", "MACHE", "ASOUNDE", ...
ZONE N=96000, E=32000, F=FEPOINT, ET=TRIANGLE
0.000000 0.000000 0.000000 2838.386719 51330.925781 1.552663 0.609412 ...
0.000883 -0.007150 0.113643 2838.386719 51330.925781 1.552663 0.609412 ...
0.000883 0.000000 0.113868 2838.386719 51330.925781 1.552663 0.609412 ...
::::::::::::::::
::::::::::::::::
4.882953 0.000000 0.011285 950.867676 16.506409 -0.001166 5.062649 ...
1 2 3
4 5 6
7 8 9
10 11 12
::::::::
::::::::
95992 95993 95994
95995 95996 95997
95998 95999 96000
Alternative cell-centered Tecplot input format (DPLR overset grid tools):
TITLE = ""
VARIABLES = "x"
"y"
"z"
"p"
"Chm"
"h"
"qw"
"Re_c"
ZONE T="ZONE 001"
STRANDID=0, SOLUTIONTIME=0
Nodes=9367, Elements=18438, ZONETYPE=FETriangle
DATAPACKING=BLOCK
VARLOCATION=([4-8]=CELLCENTERED)
FACENEIGHBORCONNECTIONS=55014
FACENEIGHBORMODE=LOCALONETOONE
FEFACENEIGHBORSCOMPLETE=YES
DT=(SINGLE SINGLE SINGLE SINGLE SINGLE SINGLE SINGLE SINGLE )
3.756540120E-01 3.601163924E-01 3.451932967E-01 3.309260905E-01 ...
::::::::::::::::
Control file format (standard input):
TRI_TO_TRI control file
xxxx.xxx ! Surface triangulation and flow solution (Tecplot format)
1 ! 1 => vertex-centered/Tecplot; 2 => cell-centered/Tecplot
xxxx.xxx ! Target grid (Tecplot multizone surface triangulation)
T ! T|F = formatted|unformatted
xxxx.xxx ! Output file (Tecplot multizone surface triangulation)
T ! T|F = formatted|unformatted
0.0001 ! Distance tolerance for target pt. inside solution grid
[7.890 0. ! Optional X & F; if x > X, set finterp(:) = F]
Method:
> The surface triangulation is read as a single zone and converted to an
ADT (Alternating Digital Tree) for search purposes. If the function
values are cell-centered, they are interpolated to the cell vertices
first. No unique best interpolation method exists. The area-weighted
averaging used here suffices for typical triangulations.
> Target zones are processed in order (read and written as needed).
> For each target point, the ADT search locates the nearest point on the
surface triangulation (never outside it). The function values can then
be interpolated with the indicated trilinear coefficients.
> Optionally, target points beyond the indicated X will be set to the
indicated F (probably zero, as for radiation on an aft body).
History:
03/07/05 DAS Initial TRI_TO_QUAD for vertex-centered function data.
08/29/08 " Added optional X and F to deal with radiative heating
that goes to zero beyond some X for CEV.
03/15/10 " Provided for DPLR/Overset-related triangulated input data
(type 2, cell-centered Tecplot format).
08/08/13 " All ADT variants are in one module now with generic
build_adt and search_adt interfaces.
07/03/14 " TRI_TO_TRI adapted from TRI_TO_QUAD.
04/21/17 " The tri_area(:) array name clashed with a callable utility
added subsequently to triangulation_io.f90. It has been
renamed as triang_area(:).
07/20/18 " Hemispherical integration of radiance data involves multi-
zone triangulations. Interpolation of such surface data
to a different triangulation is now an option following
an extension within triangulation_io that concatenates
all zones as a single zone within new header fields, for
rapid searching via the ADT scheme, which builds all cells
of all zones into its search tree rather than treating one
zone at a time.
05/03/22 " One glitch following triangulation_io extensions.
Author: David Saunders, ERC, Inc./NASA Ames Research Center, CA
Later with AMA, Inc. at ARC.