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)