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 
12 
18 {
19 public:
20  double scalingFactor;
21 
23 
24  LineResultWriter(std::string, LineMesh mesh);
25  void createOmegaResultFile();
26  void createSigmaZResultFile(std::string name, int type);
27  void createTauResultFile(std::string tag, int type);
28 
29  bool openTXT();
30  bool openVTK();
31  void save();
32  void writeNormalStress();
33 
34  void writeScalarData(std::string, std::vector<double>);
35  void writeSingleValue(std::string, double);
36  void writeBoundaryNodes(int, std::vector<int>);
37 
38  // *************** VTK ***************
39  void writeVtkHeader();
40  void writeLinearMeshTopology(std::vector<Node>& nodes, std::vector<LineElement*>& elements, std::vector<double> data, std::vector<std::vector<double>> intersectionPoints, std::vector<bool> intersection);
41  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);
42  void writePointScalarData(std::string name, std::vector<double> data, std::vector<std::vector<double>> intersectionPoints, std::vector<std::vector<double>> midPoints);
43  void writeQuadraticPointScalarData(std::string name, std::vector<double> data, std::vector<double> extraData, std::vector<std::vector<double>> midPoints);
44 
45  void writeQuadraticPointVectorData(std::string name, std::vector<double> data, std::vector<double> extraData, std::vector<std::vector<double>> midPoints);
46  void writeLinearPointVectorData(std::string name, std::vector<double> data, std::vector<std::vector<double>> intersectionPoints, std::vector<std::vector<double>> midPoints);
47 
48  double findScalingFactor(std::vector<double> data);
49 
50  // *************** TXT ***************
51  void createTextFile(std::string fileNameNoExt);
52 
53 private:
55  std::string fileName;
56 
57 };
58 
59 #endif
void createTauResultFile(std::string tag, int type)
Creates a result file for .
Definition: LineResultWriter.cpp:60
Writes results to file for thin-wall analysis.
Definition: LineResultWriter.h:17
void writeVtkHeader()
Writes header for VTK result file, with version information.
Definition: LineResultWriter.cpp:170
bool openVTK()
Opens the file given by the filename.
Definition: LineResultWriter.cpp:86
void writeNormalStress()
Writes the normal stresses to the result VTK file.
Definition: LineResultWriter.cpp:111
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:472
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:163
LineMesh mesh
Reference to Mesh object containg mesh data.
Definition: LineResultWriter.h:54
void createTextFile(std::string fileNameNoExt)
Creates a .txt file with output values.
Definition: LineResultWriter.cpp:515
void writeScalarData(std::string, std::vector< double >)
Writes scalar data.
Definition: LineResultWriter.cpp:132
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:176
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:404
std::string fileName
File name of file to write results.
Definition: LineResultWriter.h:55
void writeSingleValue(std::string, double)
Writes single value.
Definition: LineResultWriter.cpp:122
void writeQuadraticPointVectorData(std::string name, std::vector< double > data, std::vector< double > extraData, std::vector< std::vector< double >> midPoints)
Writes quadratic point vector data to result VTK file.
Definition: LineResultWriter.cpp:451
double scalingFactor
Factor that scales the VTK results visually.
Definition: LineResultWriter.h:20
void createOmegaResultFile()
Creates a result file for - diagram.
Definition: LineResultWriter.cpp:28
double findScalingFactor(std::vector< double > data)
Scales the result polygons (only visual scaling) based on the highest numerical value and the area of...
Definition: LineResultWriter.cpp:499
void writeBoundaryNodes(int, std::vector< int >)
Writes the boundary nodes to the VTK result file.
Definition: LineResultWriter.cpp:146
Contains mesh data for thin-wall analysis. Performs stress analysis on this mesh. ...
Definition: LineMesh.h:11
void createSigmaZResultFile(std::string name, int type)
Creates a result file for .
Definition: LineResultWriter.cpp:44
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:242
bool openTXT()
Opens the file given by the filename.
Definition: LineResultWriter.cpp:96
void writeQuadraticPointScalarData(std::string name, std::vector< double > data, std::vector< double > extraData, std::vector< std::vector< double >> midPoints)
Writes quadratic scalar values to result VTK file.
Definition: LineResultWriter.cpp:426