This repository serve as a backup for my Maxwell-TD code
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

#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