The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.
| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README | 2022-08-24 | 5.7 kB | |
| triangulation_io.f90 | 2022-08-24 | 155.6 kB | |
| Totals: 2 Items | 161.3 kB | 0 | |
Module triangulation_io packages I/O for unstructured surface or volume
datasets in 3-space. For surface datasets, two types of Tecplot format
are supported: triangulations with optional function values that are
either vertex-centered or cell-centered. Hooks appear for binary Tecplot
files, but only ASCII files may be read or written presently.
public :: tri_read ! Read an entire unstructured surface
public :: tri_write ! Write an entire unstructured surface
public :: tri_header_read ! Read an unstructured surface header
public :: tri_header_write ! Write fn unstructured surface header
public :: tri_zone_allocate ! Allocate the arrays for one surface zone
public :: tri_zone_read ! Read one zone of a surface dataset
public :: tri_zone_write ! Write one zone of a surface dataset
public :: deallocate_tri_zones ! Deallocate arrays of indicated zones
public :: tri_data_range ! x/y/z data ranges over all surface zones
public :: tri_area ! Total wetted area over all surface zones
public :: tri_volume ! Total volume enclosed by surface zone(s)
public :: tri_center_of_mass ! CM of all surface zones (and of each zone)
public :: tri_moments_of_inertia ! Surf. moments of inertia about Ox/y/z
public :: tri_apply_rotation_R ! Apply matrix from tri_moments_of_inertia
public :: tri_zone_data_range ! x/y/z data ranges for one surface zone
public :: tri_zone_area ! Total wetted area of a triangulated zone
public :: tri_zone_volume ! Volume def. by surface zone & interior pt.
public :: tri_zone_center_of_mass! CM of surf. zone + cell centroids & areas
! Analogous utilities for volume meshes (tets or hexahedra);
! some can use the tri* utility directly, but this avoids confusion:
public :: vol_read ! Read an entire unstructured volume
public :: vol_write ! Write an entire unstructured volume
public :: vol_get_element_type ! Read enough of a surf|vol to determine ET
public :: vol_header_read ! Read unstructured volume dataset header
public :: vol_header_write ! Write unstructured volume dataset header
public :: vol_zone_allocate ! Allocate arrays for a zone of volume
public :: vol_zone_read ! Read one zone of an unstructured volume
public :: vol_zone_write ! Write one zone of an unstructured volume
public :: deallocate_vol_zones ! Deallocate arrays of the indicated zone(s)
public :: vol_data_range ! Compute x/y/z data ranges over all zones
public :: vol_volume ! Total volume of all elements of all zones
public :: vol_center_of_mass ! CM of all vol. zones (and of each zone)
public :: vol_moments_of_inertia ! Vol. moments of inertia about Ox/y/z
public :: vol_apply_rotation_R ! Applies matrix from vol_moments_of_inertia
public :: vol_zone_data_range ! x/y/z data ranges for one volume zone
public :: vol_zone_volume ! Volume of all cells of one volume zone
public :: vol_zone_center_of_mass! CM of vol. zone + cell centroids & volumes
Two derived data types also appear in triangulation_io.f90:
tri_header_structure
tri_zone_structure
See TRI_TO_QUAD, NEQAIR_Integration for sample applications of surface reading.
See TRI_TO_TRI also for reading multiple zones as one for efficient searching,
and HEMISPHERES_OF_SIGHT for writing examples.
See TRIANGULATION_TOOL for driving recently-added geometric operations.
07/21/18 ADT searching of multizone triangulations (or unstructured volumes)
requires a way of assembling all zones as one list of all elements.
Subroutine tri_read now has this option, via new header fields
%combine_zones, %conn, %xyz and %f. If function values are cell-
centered, they will be area-averaged to the vertices for ADT use.
07/23/18 Tri_read now has an independent option to convert centroid function
values to vertices via new header field, %centroids_to_vertices.
07/26/18 Tecplot won't read a one-function line VARLOCATION=([4-4]=CELLCENTERED)
written by tri_zone_write. Instead, it expects the form
VARLOCATION=([4]=CELLCENTERED). Thanks to Jeff Hill for thinking of this.
04/04/22 Fixed glitches in the run-time formatting of BLOCK order output. Added zone%zone_type, which has an
obscure overlap with %element_type.
04/10/22 %combine_zones and %centroids_to_vertices now work during the reading of volume datasets as for surface
datasets, including quad surfaces.
04/11/22 Look also for CELLCENTERED in get_element_type now.
04/22/22 Keywords like VARLOCATION=([1-3]=NODAL,[4-17]=CELLCENTERED) need to be preserved for transmitting to
an output file such as from USREFLECT.
04/27/22 Subroutine tri_zone_read was reading x,y,z,f as a single record in BLOCK mode. Evidently,
f is a new record.
04/30/22 Subroutine get_element_type was failing to find CELL-CENTERED when it appeared after ZONETYPE.
Now, the file header and the zone 1 header are scanned for all useful keywords.
05/01/22 Added subroutine reverse_handedness for TRIANGULATION_TOOL to use after a reflection.
08/23/22 A title T="inlet" by chance has ET in it after upcasing, and get_element_type treated it as the
element type keyword with a bad value. Work-around: blank any title in the buffer before searching
for any keyword.
David Saunders, ELORET Corporation/NASA Ames Research Center, CA
(later with ERC, Inc. and AMA, Inc. at NASA ARC)