VTKpytools/Bar2vtk

From PHASTA Wiki
Revision as of 19:22, 27 February 2021 by Jrwrigh (talk | contribs)
Jump to: navigation, search

bar2vtk is a utility from the vtkpytools project for taking data in *bar files (velbar and stsbar) and loading it into a "blank" VTK Multiblock (VTM) file. In particular, it makes use of the barfiletools module in the vtkpytools project.

Documentation for bar2vtk can be found by running the --help flag, but this will also serve as a more detailed/verbose documentation page as well.

Functionality

Modes

bar2vtk has two primary modes; cli (short for command line interface) and toml. They are both equally capable. The cli operates solely on the command line via standard flag and argument system. The toml system uses configuration files (in a toml format) to control the program instead.

To access the cli or toml modes, simply append the either cli or toml to the command:

   bar2vtk cli [...]

or

   bar2vtk toml [...]

The documentation below is given for the cli interface.

cli toml Description
[1st argument] blankvtmfile = ' ' Path to the blank vtm file
[2nd argument]
barfiledir = ' '
Path to *bar files
[3rd argument]
timestep = ' '
Timesteps of data to be used
--velbar
velbar = [ ]
Explicitly specify velbar file to use
--stsbar
stsbar = [ ]
Explicitly specify stsbar file to use
--ascii asciidata = [true/false] Whether the *bar files are written in ASCII
--debug debug = [true/false] Add raw stsbar data to the file for debugging purposes
--velonly --velonly= [true/false] Whether to only include data from velbar files
--outpath outpath = ' ' Path that the resulting file should be output to
-f/--new-file-prefix new-file-prefix = ' ' Prefix defined for the new file

Basic Usage

bar2vtk takes three primary arguments: blankvtmfile, barfiledir, and timestep. The utility will search the barfiledir for the appropriate *bar file(s) based on the timestep argument, and then load them onto the blankvtmfile.

blankvtmfile
Path to the VTM file that the data is loaded onto. Must match the "blank" VTM file format.
barfiledir
Path to directory where the *bar file(s) are located.
timestep
The timestep(s) of the *bar file(s) to be loaded. For time windows, a - is used to delimit between the beginning and ending timestep.

By default, the loaded VTM file will be output to the current directory and it's name will be [blankvtmfile]_[timestep].vtm. This can be changed using the utility options.

Example:

bar2vtk cli vtkFiles/example_blank.vtm data/ 10000 
  • Searches for {vel,sts}bar*.10000* in ./data
  • Outputs example_blank_10000.vtm to the vtkFiles/ directory

*bar File Searching

When searching for the *bar file(s) in barfiledir, bar2vtk uses a glob of {vel,sts}bar*.{timestep}* to find them. If the glob matches more than one file, it will return an error.

If setting the *bar file paths explicitly using --velbar and --stsbar, barfiledir will be ignored and no globing will occur.

Time Windows

Splitting time windows of the *bar files is done my specifying a timestep with a - to delimit the two timesteps. This will also require the --ts0 flag to define at what timestep the *bar files were reset at.

Example:

bar2vtk cli vtkFiles/example_blank.vtm data/ 10000-20000 --ts0 5000 
  • Searches for {vel,sts}bar*.10000* and {vel,sts}bar*.20000* in ./data
  • Outputs example_blank_10000-20000.vtm to the vtkFiles/ directory

Options

--velbar and --stsbar

These flags allow for explicit setting the path(s) to the velbar and stsbar files. They can take a maximum of two arguments.

When given two paths, it will assume that a time window is to be created, with the first file corresponding to the first timestep in the timestep range.

Examples:

  • bar2vtk [vtmfile] [dataPath] 10000 --velbar /data/path/velbar.file --stsbar /data/path/stsbar.file
    • Will use the files given to do a "single timestep" VTM creation
  • bar2vtk [vtmfile] [dataPath] 10000-20000 --ts0=0 --velbar /data/path/velbar_first.file /data/path/velbar_second.file --stsbar /data/path/stsbar_first.file /data/path/stsbar_second.file
    • Will create a time step window using the /data/path/*bar_first.file files as timestep 10000 and /data/path/*bar_second.file as timestep 20000

--ascii

Ordinarily, the *bar files are assumed to be Fortran binary array files. Using this flag, the file(s) will instead be assumed to be space-delimited plain-text files (ie. ASCII files).

--debug

This flag will add in the raw values from the stsbar file, allowing for better debugging of the files if any strange data comes out from them.

--velonly

Will only load the velbar file(s) into the VTM file.

--vptpath

Path to vtkpytools in case of a desire to do custom testing with a separate module. Not generally recommended to use, mostly for testing/development purposes.

--outpath

Specify the path that the "loaded" VTM file is output to (instead of being saved to the current working directory by default).

-f/--new-file-prefix

Choosing a new file prefix for the "loaded" VTM file. By default, the name of the blank VTM file will be used with _[timestep] being appended to it. If this flag is given, then it's argument will be used as the file prefix.

Examples:

bar2vtk example_blank.vtm data/ 10000 -f otherprefix 
    # output file name is "otherprefix_10000.vtm"