You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
3.2 KiB
68 lines
3.2 KiB
#ifndef VTKWRITER_H
|
|
#define VTKWRITER_H
|
|
#include <list>
|
|
#include "node.h"
|
|
#include "edge.h"
|
|
#include "face.h"
|
|
#include "tetra.h"
|
|
#include "../dgtd-performance.hpp"
|
|
|
|
class vtkUnstructuredGrid;
|
|
|
|
const int EMOFFICE_TO_VTK_TRI2_NODES[6] = {0, 1, 2, 3, 5, 4};
|
|
const int EMOFFICE_TO_VTK_TET2_NODES[10] = {0, 1, 2, 3, 4, 6, 7, 5, 8, 9};
|
|
|
|
class VtkWriter {
|
|
public:
|
|
VtkWriter(fp_t unit = 1.);
|
|
~VtkWriter();
|
|
|
|
void writeMesh(char* outFilePrefix, const int nodeNum, node** nodeArray, const int tetNum, tetra** tetArray);
|
|
void writeMesh(char* outFilePrefix, const int nodeNum, node* nodeArray, const int tetNum, tetra* tetArray);
|
|
|
|
void writeField(char* outFilePrefix, const int nodeNum, node* nodeArray, const int tetNum, tetra* tetArray, vtr* eField, vtr* hField, int* polyOrder = 0, int* LTS_Flag = 0, int* Ghost_Flag = 0);
|
|
|
|
void InteractiveFieldViz(char* outFilePrefix, const int nodeNum, node* nodeArray, const int tetNum, tetra* tetArray, vtr* eField, vtr* hField, int* polyOrder, int* LTS_Flag, int* Ghost_Flag);
|
|
|
|
// write surface mesh with E and H fields
|
|
void writeTriUg(char* outFilePrefix, const int nodeNum, node** nodeArray, const int faceNum, face** faceArray, vtr* eField = 0, vtr* hField = 0, int order = 2);
|
|
|
|
void writeTriUg(char* outFilePrefix, const int nodeNum, node** nodeArray, const int faceNum, face** faceArray, int order);
|
|
// write point mesh with E and H fields
|
|
void writePointUg(char* outFilePrefix, const int nodeNum, node** nodeArray, vtr* eField = 0, vtr* hField = 0);
|
|
|
|
void addCells(vtkUnstructuredGrid* mesh, const int faceNum, face** faceList,
|
|
int order);
|
|
// 2D Plot
|
|
// void Plot_XY(int Xdim, int Ydim, fp_t* Xdata, fp_t* Ydata);
|
|
|
|
private:
|
|
fp_t unit_;
|
|
|
|
void addNodes(vtkUnstructuredGrid* mesh, const int nodeNum, node* nodeList);
|
|
void addNodes(vtkUnstructuredGrid* mesh, const int nodeNum, node** nodeList);
|
|
|
|
void addCells(vtkUnstructuredGrid* mesh, const int tetNum, tetra* tetArray);
|
|
void addCells(vtkUnstructuredGrid* mesh, const int tetNum, tetra** tetArray);
|
|
void addCells(vtkUnstructuredGrid* mesh, list<tetra*>& tetList);
|
|
|
|
void addCells(vtkUnstructuredGrid* mesh, const int faceNum, face* faceList);
|
|
// point mesh
|
|
void addCells(vtkUnstructuredGrid* mesh, const unsigned int nodeNum);
|
|
|
|
void addPointVector(vtkUnstructuredGrid* mesh, const unsigned int pointNum, vtr* data, const string& dataName);
|
|
|
|
void addPointScalars(vtkUnstructuredGrid* mesh, const unsigned int pointNum, vtr* data, const string& dataName);
|
|
|
|
void addCellScalar(vtkUnstructuredGrid* mesh, const int cellNum, int* data, const string& dataName);
|
|
|
|
void addCellMaterial(vtkUnstructuredGrid* mesh, const int tetraNum, tetra* tetraList);
|
|
void addCellMaterial(vtkUnstructuredGrid* mesh, const int tetraNum, tetra** tetraList);
|
|
void addCellMaterial(vtkUnstructuredGrid* mesh, list<tetra*>& tetList);
|
|
|
|
void addCellOrder(vtkUnstructuredGrid* mesh, const int tetraNum, tetra* tetraList);
|
|
void addCellOrder(vtkUnstructuredGrid* mesh, const int tetraNum, tetra** tetraList);
|
|
void addCellOrder(vtkUnstructuredGrid* mesh, list<tetra*>& tetList);
|
|
};
|
|
|
|
#endif
|
|
|