This repository has been archived on 2023-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
foam-extend4.1-coherent-io/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/multiplefiles.cpp
2010-08-25 22:42:57 +01:00

214 lines
6.1 KiB
C++

/* This example illustrates working with TecFil to create multiple
* plt files simultaneously.
*/
#if defined _MSC_VER
#pragma warning (disable: 4996) /* Windows strcpy warning off */
#endif
/* DOCSTART:mulitplefiles.txt */
#include "TECIO.h"
#include "MASTER.h" /* for defintion of NULL */
#include <string.h>
int main()
{
/*
* Open the file and write the tecplot datafile
* header information
*/
INTEGER4 Debug = 1;
INTEGER4 VIsDouble = 0;
INTEGER4 FileType = 0;
INTEGER4 I = 0; /* Used to check the return value */
I = TECINI112((char*)"SIMPLE DATASET", /* Name of the entire dataset.*/
(char*)"X1 Y1 P1", /* Defines the variables for the data
* file. Each zone must contain each of
* the variables listed here. The order
* of the variables in the list is used
* to define the variable number (e.g.
* X1 is Var 1).
*/
(char*)"file1.plt",
(char*)".", /* Scratch Directory */
&FileType,
&Debug,
&VIsDouble);
/* Set the parameters for TecZne */
INTEGER4 ZoneType = 0; /* sets the zone type to
* ordered
*/
INTEGER4 IMax = 2; /* Create an IJ-ordered zone,
* by using IMax and JMax
* values that are greater
* than one, and setting KMax
* to one.
*/
INTEGER4 JMax = 2;
INTEGER4 KMax = 1;
double SolTime = 0;
INTEGER4 StrandID = 0; /* StaticZone */
INTEGER4 ParentZn = 0; /* used for surface streams */
INTEGER4 ICellMax = 0; /* not used */
INTEGER4 JCellMax = 0; /* not used */
INTEGER4 KCellMax = 0; /* not used */
INTEGER4 IsBlock = 1; /* Block */
INTEGER4 NFConns = 0; /* this example does not use
* face neighbors */
INTEGER4 FNMode = 0;
INTEGER4 TotalNumFaceNodes = 1;
INTEGER4 TotalNumBndryFaces = 1;
INTEGER4 TotalNumBndryConn = 1;
INTEGER4 ShrConn = 0;
/* Create an Ordered Zone */
I = TECZNE112((char*)"Ordered Zone",
&ZoneType,
&IMax,
&JMax,
&KMax,
&ICellMax,
&JCellMax,
&KCellMax,
&SolTime,
&StrandID,
&ParentZn,
&IsBlock,
&NFConns,
&FNMode,
&TotalNumFaceNodes,
&TotalNumBndryFaces,
&TotalNumBndryConn,
NULL,
NULL,
NULL,
&ShrConn);
/* Set the variable values for the ordered zone. */
float X1[4];
float Y1[4];
float P1[4];
X1[0] = 0.125;
Y1[0] = 0.5;
P1[0] = 7.5;
X1[1] = 0.625;
Y1[1] = 0.5;
P1[1] = 10.0;
X1[2] = 0.125;
Y1[2] = 0.875;
P1[2] = 5.0;
X1[3] = 0.625;
Y1[3] = 0.875;
P1[3] = 7.5;
INTEGER4 DIsDouble = 0; /* set DIsDouble to 0, for float
* values.
*/
INTEGER4 III = IMax * JMax * KMax;
I = TECDAT112(&III, X1, &DIsDouble);
I = TECDAT112(&III, Y1, &DIsDouble);
I = TECDAT112(&III, P1, &DIsDouble);
/* Open a new data file. note: the first file is still open
* because TecEnd was not called.
*/
I = TECINI112((char*)"Auxiliary Data",
(char*)"X1 Y1 P1",
(char*)"file2.plt",
(char*)".",
&FileType,
&Debug,
&VIsDouble);
/* Switch the active file to the newly created data file
* (file2.plt) which is the second file opened with TECINI112
* so we use 2.
*/
INTEGER4 WhichFile = 2;
I = TECFIL112(&WhichFile);
/* Create a second zone, using many of the values from the first
* zone, and write it to the second data file.
*/
I = TECZNE112((char*)"Ordered Zone2",
&ZoneType,
&IMax,
&JMax,
&KMax,
&ICellMax,
&JCellMax,
&KCellMax,
&SolTime,
&StrandID,
&ParentZn,
&IsBlock,
&NFConns,
&FNMode,
&TotalNumFaceNodes,
&TotalNumBndryFaces,
&TotalNumBndryConn,
NULL,
NULL,
NULL,
&ShrConn);
/* set the variable values for the second zone */
float X2[4];
float Y2[4];
float P2[4];
X2[0] = 0.375;
Y2[0] = 0.125;
P2[0] = 5;
X2[1] = 0.875;
Y2[1] = 0.125;
P2[1] = 7.5;
X2[2] = 0.375;
Y2[2] = 0.5;
P2[2] = 10;
Y2[3] = 0.5;
X2[3] = 0.875;
P2[3] = 7.5;
III = IMax * JMax * KMax;
I = TECDAT112(&III, X2, &DIsDouble);
I = TECDAT112(&III, Y2, &DIsDouble);
I = TECDAT112(&III, P2, &DIsDouble);
/* Switch to the first file. */
WhichFile = 1;
I = TECFIL112(&WhichFile);
/* Create an auxiliary data value and write it to the file */
char DeformationValue[128];
strcpy(DeformationValue, "0.98");
I = TECAUXSTR112((char*)"DeformationValue",
DeformationValue);
/* Close the first file */
I = TECEND112();
/* The remaining file will become the active file. As such,
* TecFil does not need to be called again to close the second
* file.
*/
I = TECEND112();
return 0;
}
/* DOCEND */