My Project
LineResultWriter.h
1 #include "stdafx.h"
2 #include "Node.h"
3 #include <vector>
4 #include "LineMesh.h"
5 
6 #define EIGEN_NO_DEBUG
7 
8 #ifndef LINERESULTWRITER
9 #define LINERESULTWRITER
10 class LineResultWriter
12 {
13 public:
14  double scalingFactor;
15 
17 
18  LineResultWriter(std::string, LineMesh mesh);
19  void createOmegaResultFile();
20  void createSigmaXResultFile(std::string name, int type);
21  void createTauResultFile(std::string tag, int type);
22 
23  bool openTXT();
24  bool openVTK();
25  void save();
26  void writeNormalStress();
27 
28  void writeScalarData(std::string, std::vector<double>);
29  void writeSingleValue(std::string, double);
30  void writeBoundaryNodes(int, std::vector<int>);
31 
32  // *************** VTK ***************
33  void writeVtkHeader();
34  void writeLinearMeshTopology(std::vector<Node>& nodes, std::vector<LineElement*>& elements, std::vector<double> data, std::vector<std::vector<double>> intersectionPoints, std::vector<bool> intersection);
35  void writeQuadraticMeshTopology(std::vector<Node>& nodes, std::vector<LineElement*>& elements, std::vector<double> data, std::vector<double> tauData, std::vector<std::vector<double>> intersectionPoints, int type);
36  void writePointScalarData(std::string name, std::vector<double> data, std::vector<std::vector<double>> intersectionPoints, std::vector<std::vector<double>> midPoints);
37  void writeQuadraticPointScalarData(std::string name, std::vector<double> data, std::vector<double> extraData, std::vector<std::vector<double>> midPoints);
38 
39  void writeQuadraticPointVectorData(std::string name, std::vector<double> data, std::vector<double> extraData, std::vector<std::vector<double>> midPoints);
40  void writeLinearPointVectorData(std::string name, std::vector<double> data, std::vector<std::vector<double>> intersectionPoints, std::vector<std::vector<double>> midPoints);
41 
42  double findScalingFactor(std::vector<double> data, double scale);
43 
44 
45  void createTextFile();
46 
47 private:
48  LineMesh mesh;
49  std::string fileName;
50 };
51 
52 #endif
void createTauResultFile(std::string tag, int type)
Creates a result file for tau.
Definition: LineResultWriter.cpp:61
Writes results to file.
Definition: LineResultWriter.h:11
void writeVtkHeader()
Writes header for VTK result file, with version information.
Definition: LineResultWriter.cpp:172
bool openVTK()
Opens the file given by the filename.
Definition: LineResultWriter.cpp:88
void writeNormalStress()
Writes the normal stresses to the result VTK file.
Definition: LineResultWriter.cpp:113
void writeLinearPointVectorData(std::string name, std::vector< double > data, std::vector< std::vector< double >> intersectionPoints, std::vector< std::vector< double >> midPoints)
Writes point vector data to result VTK file.
Definition: LineResultWriter.cpp:474
LineResultWriter(std::string, LineMesh mesh)
Constructor taking the filename and mesh as parameters.
Definition: LineResultWriter.cpp:8
void save()
Closes the file.
Definition: LineResultWriter.cpp:165
void createSigmaXResultFile(std::string name, int type)
Creates a result file for Sigma_x.
Definition: LineResultWriter.cpp:45
void writeScalarData(std::string, std::vector< double >)
Writes scalar data.
Definition: LineResultWriter.cpp:134
void writeLinearMeshTopology(std::vector< Node > &nodes, std::vector< LineElement * > &elements, std::vector< double > data, std::vector< std::vector< double >> intersectionPoints, std::vector< bool > intersection)
Writes the mesh topology for linear variation over the element.
Definition: LineResultWriter.cpp:178
void writePointScalarData(std::string name, std::vector< double > data, std::vector< std::vector< double >> intersectionPoints, std::vector< std::vector< double >> midPoints)
Writes Scalar values to result VTK file.
Definition: LineResultWriter.cpp:406
double findScalingFactor(std::vector< double > data, double scale)
Scales the result polygons (only visual scaling) based on the highest value.
Definition: LineResultWriter.cpp:501
void writeSingleValue(std::string, double)
Writes single value.
Definition: LineResultWriter.cpp:124
void writeQuadraticPointVectorData(std::string name, std::vector< double > data, std::vector< double > extraData, std::vector< std::vector< double >> midPoints)
Writes point vector data to result VTK file.
Definition: LineResultWriter.cpp:453
void createTextFile()
Creates a .txt file with output values.
Definition: LineResultWriter.cpp:517
double scalingFactor
Factor that scales the VTK results visually.
Definition: LineResultWriter.h:14
void createOmegaResultFile()
Creates a result file for omega-diagram.
Definition: LineResultWriter.cpp:29
void writeBoundaryNodes(int, std::vector< int >)
Writes the boundary nodes to the VTK result file.
Definition: LineResultWriter.cpp:148
Contains mesh data and has function to calculate and retrieve mesh properties.
Definition: LineMesh.h:11
void writeQuadraticMeshTopology(std::vector< Node > &nodes, std::vector< LineElement * > &elements, std::vector< double > data, std::vector< double > tauData, std::vector< std::vector< double >> intersectionPoints, int type)
Writes the mesh topology for quadratic variation over the element.
Definition: LineResultWriter.cpp:244
bool openTXT()
Opens the file given by the filename.
Definition: LineResultWriter.cpp:98
void writeQuadraticPointScalarData(std::string name, std::vector< double > data, std::vector< double > extraData, std::vector< std::vector< double >> midPoints)
Writes Scalar values to result VTK file.
Definition: LineResultWriter.cpp:428