A library with utilities of all things TecPlot. This is a work in progress.
SUMMARY
This is a library intended to include all my codes related to AMTEC's TecPlot. It is a small but growing collection of tools primarily meant to:
-
Read and manipulate files that were generated by or intended to be read by TecPlot and/or preplot (its companion binary file converter). This includes other "components" of a TecPlot-readable file, like "geometry" and "text" objects, for example.
-
Generate TecPlot-readable files with multiple zones.
-
Manage and manipulate TecPlot data "zones" as data-objects that can be read dynamically as needed.
MOTIVATION (and a personal perspective)
The motivation behind creating this library was sparked from the popularity of TecPlot, and by the need to be able to (primarily) read files that were generated with the intention that data objects be visualized by TecPlot.
Unfortunately, in spite of its maturity as a software product, its popularity in the scientific community and its extremely wide and versatile functionality, TecPlot remains un-suitable for high-performance computing and visualization of very large datasets. The poor choice of using an internal binary format for compact data-storage of large datasets instead of something more versatile, such as the HDF5 data format, has not been addressed to modernize the software. As a result, the present HDF5 dataset reader that is shipped with TecPlot is an un-documented orphan "add-on" and is largely un-usable. Some competing, open source software packages, such as ParaView, are trying to address these issues with limited success. As a result, TecPlot remains the "de facto" visualization package in academia and industry today.
It is possible to author an add-on that is customizable to a particular data format that a high-end and demanding user desires. In this way, versatile data management can be performed for selectively visualizing data in dettached regions of a particular zone. This versatility is something that I have not encountered in a software package, open or closed source, and authoring such a package is certainly a difficult task that requires understanding how TecPlot add-ons interact with the software, engineering the data-reading and managemnt procedures, and creating an appropriate graphical UI. Some meta-data creation would also be necessary to address high-performance visualization concerns. The desired result would be to simply feed data to TecPlot such that they can be visualized, and more importantly annotated, for use in document publication.
In addition to needing a dynamic data-reader for TecPlot zone objects for use in add-ons, querying and further manipulating existing files is also a target application this library is trying to address.
ADDITIONAL FUNCTIONALITY
A summary of special features of this library will be included at a later time.
LIMITATIONS
This library is not, at present, trageting .plt (native TecPlot binary) files. For this functionality look at this repository: https://github.com/tuxication/tecplot-binary-read
HOW TO USE
When originally released, this code did not compile without using a special library that was not released alongside it, and was meant to be a studying tool. As of the latest changes, the library compiles to a dynamically linked library (.so file on Unix-like systems) and can be used by other C++ programs, just as the main.cpp driver demonstrates. Simply look at the class created for a TecPlot file, how it is opened and handled. Look at the methods of the class to see how accessors and setters operate on the data.
IN 2017/06/28 (initial creation)
IN 2019/05/23 (inclusion of "utils" and changes to make this library standalone)