Commit 856b81b9 authored by Thomas Witkowski's avatar Thomas Witkowski

Moved IO-related files to new io-directory.

parent 36a3ffe1
......@@ -54,7 +54,7 @@ endif(Boost_FOUND)
SET(LIB_DIR ./lib)
SET(SOURCE_DIR ${AMDiS_SOURCE_DIR})
SET(AMDIS_SRC ${SOURCE_DIR}/DOFIndexed.cc
${SOURCE_DIR}/GNUPlotWriter.cc
${SOURCE_DIR}/io/GNUPlotWriter.cc
${SOURCE_DIR}/VertexVector.cc
${SOURCE_DIR}/PeriodicBC.cc
${SOURCE_DIR}/Recovery.cc
......@@ -73,9 +73,9 @@ SET(AMDIS_SRC ${SOURCE_DIR}/DOFIndexed.cc
${SOURCE_DIR}/CreatorMap.cc
${SOURCE_DIR}/ProblemInterpolScal.cc
${SOURCE_DIR}/ProblemInterpolVec.cc
${SOURCE_DIR}/MacroInfo.cc
${SOURCE_DIR}/MacroReader.cc
${SOURCE_DIR}/ValueReader.cc
${SOURCE_DIR}/io/MacroInfo.cc
${SOURCE_DIR}/io/MacroReader.cc
${SOURCE_DIR}/io/ValueReader.cc
${SOURCE_DIR}/Projection.cc
${SOURCE_DIR}/SubAssembler.cc
${SOURCE_DIR}/ZeroOrderAssembler.cc
......@@ -89,8 +89,8 @@ SET(AMDIS_SRC ${SOURCE_DIR}/DOFIndexed.cc
${SOURCE_DIR}/BoundaryManager.cc
${SOURCE_DIR}/DirichletBC.cc
${SOURCE_DIR}/RobinBC.cc
${SOURCE_DIR}/FileWriter.cc
${SOURCE_DIR}/ElementFileWriter.cc
${SOURCE_DIR}/io/FileWriter.cc
${SOURCE_DIR}/io/ElementFileWriter.cc
${SOURCE_DIR}/ElInfo.cc
${SOURCE_DIR}/ElInfoStack.cc
${SOURCE_DIR}/OperatorTerm.cc
......@@ -126,7 +126,7 @@ SET(AMDIS_SRC ${SOURCE_DIR}/DOFIndexed.cc
${SOURCE_DIR}/Lagrange.cc
${SOURCE_DIR}/Line.cc
${SOURCE_DIR}/MacroElement.cc
${SOURCE_DIR}/MacroWriter.cc
${SOURCE_DIR}/io/MacroWriter.cc
${SOURCE_DIR}/Parameters.cc
${SOURCE_DIR}/Parametric.cc
${SOURCE_DIR}/Quadrature.cc
......@@ -139,19 +139,18 @@ SET(AMDIS_SRC ${SOURCE_DIR}/DOFIndexed.cc
${SOURCE_DIR}/Traverse.cc
${SOURCE_DIR}/TraverseParallel.cc
${SOURCE_DIR}/Triangle.cc
${SOURCE_DIR}/TecPlotWriter.cc
${SOURCE_DIR}/ValueWriter.cc
${SOURCE_DIR}/VtkWriter.cc
${SOURCE_DIR}/PngWriter.cc
${SOURCE_DIR}/PovrayWriter.cc
${SOURCE_DIR}/DataCollector.cc
${SOURCE_DIR}/io/ValueWriter.cc
${SOURCE_DIR}/io/VtkWriter.cc
${SOURCE_DIR}/io/PngWriter.cc
${SOURCE_DIR}/io/PovrayWriter.cc
${SOURCE_DIR}/io/DataCollector.cc
${SOURCE_DIR}/ScalableQuadrature.cc
${SOURCE_DIR}/SubElInfo.cc
${SOURCE_DIR}/parallel/InteriorBoundary.cc
${SOURCE_DIR}/ElementDofIterator.cc
${SOURCE_DIR}/Debug.cc
${SOURCE_DIR}/ArhReader.cc
${SOURCE_DIR}/ArhWriter.cc
${SOURCE_DIR}/io/ArhReader.cc
${SOURCE_DIR}/io/ArhWriter.cc
${SOURCE_DIR}/time/RosenbrockAdaptInstationary.cc
${SOURCE_DIR}/time/RosenbrockStationary.cc
${SOURCE_DIR}/time/RosenbrockMethod.cc
......
......@@ -62,7 +62,7 @@ endif
libamdis_la_SOURCES = \
$(PARALLEL_AMDIS_SOURCES) \
$(SOURCE_DIR)/DOFIndexed.h $(SOURCE_DIR)/DOFIndexed.cc \
$(SOURCE_DIR)/GNUPlotWriter.h $(SOURCE_DIR)/GNUPlotWriter.cc \
$(SOURCE_DIR)/io/GNUPlotWriter.h $(SOURCE_DIR)/io/GNUPlotWriter.cc \
$(SOURCE_DIR)/VertexVector.h $(SOURCE_DIR)/VertexVector.cc \
$(SOURCE_DIR)/PeriodicBC.h $(SOURCE_DIR)/PeriodicBC.cc \
$(SOURCE_DIR)/Recovery.h $(SOURCE_DIR)/Recovery.cc \
......@@ -87,9 +87,9 @@ $(SOURCE_DIR)/ProblemInterpolVec.h $(SOURCE_DIR)/ProblemInterpolVec.cc \
$(SOURCE_DIR)/Serializable.h \
$(SOURCE_DIR)/BallProject.h \
$(SOURCE_DIR)/CylinderProject.h \
$(SOURCE_DIR)/MacroInfo.h $(SOURCE_DIR)/MacroInfo.cc \
$(SOURCE_DIR)/MacroReader.h $(SOURCE_DIR)/MacroReader.cc \
$(SOURCE_DIR)/ValueReader.h $(SOURCE_DIR)/ValueReader.cc \
$(SOURCE_DIR)/io/MacroInfo.h $(SOURCE_DIR)/io/MacroInfo.cc \
$(SOURCE_DIR)/io/MacroReader.h $(SOURCE_DIR)/io/MacroReader.cc \
$(SOURCE_DIR)/io/ValueReader.h $(SOURCE_DIR)/io/ValueReader.cc \
$(SOURCE_DIR)/Projection.h $(SOURCE_DIR)/Projection.cc \
$(SOURCE_DIR)/SubAssembler.h $(SOURCE_DIR)/SubAssembler.cc \
$(SOURCE_DIR)/ZeroOrderAssembler.h $(SOURCE_DIR)/ZeroOrderAssembler.cc \
......@@ -108,8 +108,8 @@ $(SOURCE_DIR)/RobinBC.h $(SOURCE_DIR)/RobinBC.cc \
$(SOURCE_DIR)/AbstractFunction.h \
$(SOURCE_DIR)/ProblemStatBase.h \
$(SOURCE_DIR)/DOFContainer.h \
$(SOURCE_DIR)/FileWriter.h $(SOURCE_DIR)/FileWriter.hh $(SOURCE_DIR)/FileWriter.cc \
$(SOURCE_DIR)/ElementFileWriter.h $(SOURCE_DIR)/ElementFileWriter.cc \
$(SOURCE_DIR)/io/FileWriter.h $(SOURCE_DIR)/io/FileWriter.hh $(SOURCE_DIR)/io/FileWriter.cc \
$(SOURCE_DIR)/io/ElementFileWriter.h $(SOURCE_DIR)/io/ElementFileWriter.cc \
$(SOURCE_DIR)/ElInfo.cc \
$(SOURCE_DIR)/ElInfoStack.h $(SOURCE_DIR)/ElInfoStack.cc \
$(SOURCE_DIR)/OperatorTerm.h $(SOURCE_DIR)/OperatorTerm.cc \
......@@ -155,7 +155,6 @@ $(SOURCE_DIRe)/RefinementManager.h \
$(SOURCE_DIR)/RefinementManager1d.h \
$(SOURCE_DIR)/RefinementManager2d.h \
$(SOURCE_DIR)/RefinementManager3d.h \
$(SOURCE_DIR)/TecPlotWriter.h $(SOURCE_DIR)/TecPlotWriter.hh \
$(SOURCE_DIR)/Tetrahedron.h \
$(SOURCE_DIR)/Traverse.h \
$(SOURCE_DIR)/Triangle.h \
......@@ -166,8 +165,8 @@ $(SOURCE_DIR)/ProblemNonLin.h $(SOURCE_DIR)/ProblemNonLin.cc \
$(SOURCE_DIR)/NonLinUpdater.h $(SOURCE_DIR)/NonLinUpdater.cc \
$(SOURCE_DIR)/Newton.h $(SOURCE_DIR)/Newton.hh \
$(SOURCE_DIR)/NewtonFS.h $(SOURCE_DIR)/NewtonFS.hh \
$(SOURCE_DIR)/GridWriter.h $(SOURCE_DIR)/GridWriter.hh \
$(SOURCE_DIR)/ValueWriter.h \
$(SOURCE_DIR)/io/GridWriter.h $(SOURCE_DIR)/io/GridWriter.hh \
$(SOURCE_DIR)/io/ValueWriter.h \
$(SOURCE_DIR)/QPsiPhi.cc \
$(SOURCE_DIR)/BasisFunction.cc \
$(SOURCE_DIR)/Boundary.cc \
......@@ -187,7 +186,7 @@ $(SOURCE_DIR)/Global.cc \
$(SOURCE_DIR)/Lagrange.cc \
$(SOURCE_DIR)/Line.cc \
$(SOURCE_DIR)/MacroElement.cc \
$(SOURCE_DIR)/MacroWriter.cc \
$(SOURCE_DIR)/io/MacroWriter.cc \
$(SOURCE_DIR)/Parameters.cc \
$(SOURCE_DIR)/Parametric.cc \
$(SOURCE_DIR)/Quadrature.cc \
......@@ -200,12 +199,11 @@ $(SOURCE_DIR)/Tetrahedron.cc \
$(SOURCE_DIR)/Traverse.cc \
$(SOURCE_DIR)/TraverseParallel.h $(SOURCE_DIR)/TraverseParallel.cc \
$(SOURCE_DIR)/Triangle.cc \
$(SOURCE_DIR)/TecPlotWriter.cc \
$(SOURCE_DIR)/ValueWriter.cc \
$(SOURCE_DIR)/VtkWriter.h $(SOURCE_DIR)/VtkWriter.cc \
$(SOURCE_DIR)/PngWriter.h $(SOURCE_DIR)/PngWriter.cc \
$(SOURCE_DIR)/PovrayWriter.h $(SOURCE_DIR)/PovrayWriter.cc \
$(SOURCE_DIR)/DataCollector.h $(SOURCE_DIR)/DataCollector.cc \
$(SOURCE_DIR)/io/ValueWriter.cc \
$(SOURCE_DIR)/io/VtkWriter.h $(SOURCE_DIR)/io/VtkWriter.cc \
$(SOURCE_DIR)/io/PngWriter.h $(SOURCE_DIR)/io/PngWriter.cc \
$(SOURCE_DIR)/io/PovrayWriter.h $(SOURCE_DIR)/io/PovrayWriter.cc \
$(SOURCE_DIR)/io/DataCollector.h $(SOURCE_DIR)/io/DataCollector.cc \
$(SOURCE_DIR)/ElementInfo.h \
$(SOURCE_DIR)/VertexInfo.h \
$(SOURCE_DIR)/PeriodicInfo.h \
......@@ -216,8 +214,8 @@ $(SOURCE_DIR)/SolutionDataStorage.h $(SOURCE_DIR)/SolutionDataStorage.hh \
$(SOURCE_DIR)/ElementDofIteartor.h $(SOURCE_DIR)/ElementDofIterator.cc \
$(SOURCE_DIR)/parallel/InteriorBoundary.h $(SOURCE_DIR)/parallel/InteriorBoundary.cc \
$(SOURCE_DIR)/Debug.h $(SOURCE_DIR)/Debug.cc \
$(SOURCE_DIR)/ArhReader.h $(SOURCE_DIR)/ArhReader.cc \
$(SOURCE_DIR)/ArhWriter.h $(SOURCE_DIR)/ArhWriter.cc \
$(SOURCE_DIR)/io/ArhReader.h $(SOURCE_DIR)/io/ArhReader.cc \
$(SOURCE_DIR)/io/ArhWriter.h $(SOURCE_DIR)/io/ArhWriter.cc \
$(SOURCE_DIR)/time/RosenbrockAdaptInstationary.h $(SOURCE_DIR)/time/RosenbrockAdaptInstationary.cc \
$(SOURCE_DIR)/time/RosenbrockStationary.h $(SOURCE_DIR)/time/RosenbrockStationary.cc \
$(SOURCE_DIR)/time/RosenbrockMethod.h $(SOURCE_DIR)/time/RosenbrockMethod.cc
......
......@@ -5,8 +5,6 @@
#include "AdaptInfo.h"
#include "AdaptInstationary.h"
#include "AdaptStationary.h"
#include "ArhReader.h"
#include "ArhWriter.h"
#include "Assembler.h"
#include "BasisFunction.h"
#include "Boundary.h"
......@@ -36,20 +34,17 @@
#include "ElementDofIterator.h"
#include "Error.h"
#include "Estimator.h"
#include "FileWriter.h"
#include "FiniteElemSpace.h"
#include "FirstOrderTerm.h"
#include "FixVec.h"
#include "Flag.h"
#include "Global.h"
#include "GridWriter.h"
#include "ITL_Preconditioner.h"
#include "ITL_Solver.h"
#include "Lagrange.h"
#include "LeafData.h"
#include "Line.h"
#include "MacroElement.h"
#include "MacroWriter.h"
#include "Marker.h"
#include "MathFunctions.h"
#include "MatrixVector.h"
......@@ -67,8 +62,6 @@
#include "Parametric.h"
#include "PeriodicMap.h"
#include "PeriodicBC.h"
#include "PngWriter.h"
#include "PovrayWriter.h"
#include "ProblemScal.h"
#include "ProblemVec.h"
#include "ProblemInstat.h"
......@@ -92,16 +85,24 @@
#include "SurfaceOperator.h"
#include "SurfaceQuadrature.h"
#include "SystemVector.h"
#include "TecPlotWriter.h"
#include "Tetrahedron.h"
#include "TimedObject.h"
#include "Traverse.h"
#include "Triangle.h"
#include "ValueWriter.h"
#include "VertexVector.h"
#include "VtkWriter.h"
#include "ZeroOrderTerm.h"
#include "io/ArhReader.h"
#include "io/ArhWriter.h"
#include "io/FileWriter.h"
#include "io/GNUPlotWriter.h"
#include "io/GridWriter.h"
#include "io/MacroWriter.h"
#include "io/PngWriter.h"
#include "io/PovrayWriter.h"
#include "io/ValueWriter.h"
#include "io/VertexVector.h"
#include "io/VtkWriter.h"
#include "time/RosenbrockAdaptInstationary.h"
#include "time/RosenbrockStationary.h"
......
......@@ -4,9 +4,9 @@
#include "Debug.h"
#include "DOFVector.h"
#include "MacroElement.h"
#include "VtkWriter.h"
#include "ElementFileWriter.h"
#include "ElementDofIterator.h"
#include "io/VtkWriter.h"
#include "io/ElementFileWriter.h"
namespace AMDiS {
......
......@@ -4,14 +4,16 @@
#include "time.h"
#include "io/MacroReader.h"
#include "io/MacroInfo.h"
#include "io/MacroWriter.h"
#include "AdaptStationary.h"
#include "AdaptInstationary.h"
#include "FiniteElemSpace.h"
#include "ElementData.h"
#include "ElementDofIterator.h"
#include "MacroElement.h"
#include "MacroReader.h"
#include "MacroInfo.h"
#include "Mesh.h"
#include "Traverse.h"
#include "Parameters.h"
......@@ -20,7 +22,6 @@
#include "CoarseningManager.h"
#include "DOFIterator.h"
#include "VertexVector.h"
#include "MacroWriter.h"
#include "PeriodicMap.h"
#include "Projection.h"
#include "ElInfoStack.h"
......
#include "ProblemInstat.h"
#include "FileWriter.h"
#include "io/FileWriter.h"
#include "AdaptStationary.h"
#include "AdaptInstationary.h"
#include "Estimator.h"
......
......@@ -15,13 +15,13 @@
#include "Marker.h"
#include "AdaptInfo.h"
#include "ElInfo.h"
#include "FileWriter.h"
#include "io/FileWriter.h"
#include "RefinementManager.h"
#include "CoarseningManager.h"
#include "Lagrange.h"
#include "PeriodicBC.h"
#include "ValueReader.h"
#include "ElementFileWriter.h"
#include "io/ValueReader.h"
#include "io/ElementFileWriter.h"
#include "ProblemVec.h"
#include "Debug.h"
......
......@@ -11,7 +11,7 @@
#include "Estimator.h"
#include "Marker.h"
#include "AdaptInfo.h"
#include "FileWriter.h"
#include "io/FileWriter.h"
#include "CoarseningManager.h"
#include "RefinementManager.h"
#include "DualTraverse.h"
......@@ -23,8 +23,8 @@
#include "Lagrange.h"
#include "Flag.h"
#include "TraverseParallel.h"
#include "VtkWriter.h"
#include "ValueReader.h"
#include "io/VtkWriter.h"
#include "io/ValueReader.h"
#include "ProblemVecDbg.h"
#include "Debug.h"
......
......@@ -30,7 +30,7 @@
#include "Boundary.h"
#include "MatrixVector.h"
#include "StandardProblemIteration.h"
#include "ElementFileWriter.h"
#include "io/ElementFileWriter.h"
#include "ComponentTraverseInfo.h"
#include "AbstractFunction.h"
#include "SolverMatrix.h"
......
......@@ -25,7 +25,7 @@
#include <map>
#include "boost/lexical_cast.hpp"
#include "FileWriter.h"
#include "io/FileWriter.h"
#include "Parameters.h"
#include "AdaptInfo.h"
......
#include "TecPlotWriter.h"
#include "DOFVector.h"
#include "SystemVector.h"
namespace AMDiS {
template<>
int TecPlotWriter<DOFVector<double> >::writeValuesFct(ElInfo* elinfo)
{
const DOFAdmin* admin = values->getFeSpace()->getAdmin();
int n0 = admin->getNumberOfPreDOFs(VERTEX);
const DegreeOfFreedom **dof = elinfo->getElement()->getDof();
int dim = elinfo->getMesh()->getDim();
int dow = Global::getGeo(WORLD);
// for every vertex
for(int i=0; i < dim+1; i++) {
// search for coords of this vertex in the coord-list of this dof
DOFCoords::iterator coords = find(dofCoords[dof[i][n0]].begin(),
dofCoords[dof[i][n0]].end(),
elinfo->getCoord(i));
if(coords == dofCoords[dof[i][n0]].end()) { // coords not found
// add coords to list
VertexInfo newCoords;
newCoords.coord = elinfo->getCoord(i);
newCoords.vertex_index = nv++;
dofCoords[dof[i][n0]].push_back(newCoords);
// write coords of vertex
if(writeCoords) {
for(int j=0; j < dow; j++) {
(*outFile) << elinfo->getCoord(i)[j] << " ";
}
}
// write value
(*outFile) << (*values)[dof[i][n0]] << std::endl;
}
}
return 0;
}
template<>
int TecPlotWriter<SystemVector>::writeValuesFct(ElInfo* elinfo)
{
const DOFAdmin* admin = values->getDOFVector(0)->getFeSpace()->getAdmin();
int n0 = admin->getNumberOfPreDOFs(VERTEX);
const DegreeOfFreedom **dof = elinfo->getElement()->getDof();
int dim = elinfo->getMesh()->getDim();
int dow = Global::getGeo(WORLD);
// for every vertex
for(int i=0; i < dim+1; i++) {
// search for coords of this vertex in the coord-list of this dof
DOFCoords::iterator coords = find(dofCoords[dof[i][n0]].begin(),
dofCoords[dof[i][n0]].end(),
elinfo->getCoord(i));
if(coords == dofCoords[dof[i][n0]].end()) { // coords not found
// add coords to list
VertexInfo newCoords;
newCoords.coord = elinfo->getCoord(i);
newCoords.vertex_index = nv++;
dofCoords[dof[i][n0]].push_back(newCoords);
// write coords of vertex
if(writeCoords) {
for(int j=0; j < dow; j++) {
(*outFile) << elinfo->getCoord(i)[j] << " ";
}
}
// write value
for(int j=0; j < values->getNumVectors(); j++) {
(*outFile) << (*(values->getDOFVector(i)))[dof[i][n0]] << " ";
}
(*outFile) << std::endl;
}
}
return 0;
}
template<>
void TecPlotWriter<DOFVector<double> >::writeVarName(int dim)
{
switch(Global::getGeo(WORLD)) {
case 1:
(*outFile) << "VARIABLES = \"x\"";
break;
case 2:
(*outFile) << "VARIABLES = \"x\",\"y\"";
break;
case 3:
(*outFile) << "VARIABLES = \"x\",\"y\",\"z\"";
break;
default:
ERROR_EXIT("invalid dim of world\n");
}
(*outFile) << ",\"" << values->getName() << "\"" << std::endl;
}
template<>
void TecPlotWriter<SystemVector>::writeVarName(int dim)
{
switch(Global::getGeo(WORLD)) {
case 1:
(*outFile) << "VARIABLES = \"x\"";
break;
case 2:
(*outFile) << "VARIABLES = \"x\",\"y\"";
break;
case 3:
(*outFile) << "VARIABLES = \"x\",\"y\",\"z\"";
break;
default:
ERROR_EXIT("invalid dim of world\n");
}
int i, number = values->getNumVectors();
for(i = 0; i < number; i++) {
(*outFile) << ",\"" << values->getDOFVector(i)->getName() << "\"";
}
(*outFile) << std::endl;
}
}
// ============================================================================
// == ==
// == AMDiS - Adaptive multidimensional simulations ==
// == ==
// ============================================================================
// == ==
// == TU Dresden ==
// == ==
// == Institut fr Wissenschaftliches Rechnen ==
// == Zellescher Weg 12-14 ==
// == 01069 Dresden ==
// == germany ==
// == ==
// ============================================================================
// == ==
// == https://gforge.zih.tu-dresden.de/projects/amdis/ ==
// == ==
// ============================================================================
/** \file TecPlotWriter.h */
#ifndef AMDIS_TEC_PLOT_WRITER_H
#define AMDIS_TEC_PLOT_WRITER_H
#include <fstream>
#include <vector>
#include "FixVec.h"
#include "AMDiS_fwd.h"
namespace AMDiS {
/** \ingroup Output
* \brief
* Writes a DOFVector in TecPlot format to a ascii file
*/
template<typename T>
class TecPlotWriter
{
public:
/** \brief
* Writes the DOFVector values to the file with given name. Different
* DOFVectors belonging to the same triangulation can be written to one
* file by setting additional=true for all DOFVectors except for the first
* one.
*/
static void writeValues(T* values,
const char* filename,
const char* plotTitle,
bool additional=false);
private:
static int writeValuesFct(ElInfo* elinfo);
static int writeIndicesFct(ElInfo* elinfo);
static void writeVarName(int dim);
private:
class VertexInfo {
public:
WorldVector<double> coord;
int vertex_index;
public:
inline bool operator==(const WorldVector<double>& coor)
{
return (coor == coord);
}
inline bool operator!=(const WorldVector<double>& coor)
{
return !(*this == coor);
}
};
typedef std::vector<VertexInfo> DOFCoords;
static T* values;
static int nv;
static std::ofstream* outFile;
static bool writeCoords;
static std::vector<DOFCoords> dofCoords;
};
}
#include "TecPlotWriter.hh"
#endif
#include <fstream>
#include <algorithm>
#include "FixVec.h"
#include "Mesh.h"
#include "Flag.h"
namespace AMDiS {
template<typename T> T* TecPlotWriter<T>::values = NULL;
template<typename T> int TecPlotWriter<T>::nv = 1;
template<typename T> std::ofstream* TecPlotWriter<T>::outFile = NULL;
template<typename T> bool TecPlotWriter<T>::writeCoords = false;
template<typename T> std::vector<typename TecPlotWriter<T>::DOFCoords>
TecPlotWriter<T>::dofCoords;
template<typename T>
int TecPlotWriter<T>::writeIndicesFct(ElInfo* elinfo)
{
const DOFAdmin* admin = values->getFeSpace()->getAdmin();
int n0 = admin->getNumberOfPreDOFs(VERTEX);
const DegreeOfFreedom **dof = elinfo->getElement()->getDof();
int dim = elinfo->getMesh()->getDim();
// int dow = Global::getGeo(WORLD);
for (int i=0; i < dim+1; i++) {
typename DOFCoords::iterator coords = find(dofCoords[dof[i][n0]].begin(),
dofCoords[dof[i][n0]].end(),
elinfo->getCoord(i));
TEST_EXIT(coords != dofCoords[dof[i][n0]].end())("coords not found");
(*outFile) << coords->vertex_index << " ";
if (dim == 1 && i == 1) {
(*outFile) << coords->vertex_index;
}
}
(*outFile) << std::endl;
return 0;
}
template<typename T>
void TecPlotWriter<T>::writeValues(T* val,
const char* filename,
const char* plotTitle,
bool additional)
{
FUNCNAME("TecPlotWriter<T>::writeValues()");
values = val;
TEST_EXIT(values)("no values\n");
TEST_EXIT(filename)("no filename\n");
TEST_EXIT(plotTitle)("no plotTitle\n");
TEST_EXIT(values->getFeSpace())("no fe-space\n");
TEST_EXIT(values->getFeSpace()->getMesh())("no mesh\n");
if (!additional)
outFile = new std::ofstream(filename);
else
outFile = new std::ofstream(filename, std::ios::app);
TEST_EXIT(outFile)("can't open file %s\n", filename);
outFile->setf(std::ios::scientific,std::ios::floatfield);
const DOFAdmin* admin = values->getFeSpace()->getAdmin();
Mesh* mesh = values->getFeSpace()->getMesh();
mesh->dofCompress();
dofCoords.resize(admin->getUsedSize());
int dim = mesh->getDim();
int dow = Global::getGeo(WORLD);
writeCoords = !additional;
if (dim == 1 && dow == 1) { // use ordered plot
if (!additional)
(*outFile) << "TITLE = \"" << plotTitle << "\"" << std::endl;
// write file header
if (!additional)
writeVarName(dim);
(*outFile) << "ZONE T=\"" << values->getName() << "\", I=" <<
mesh->getNumberOfVertices();
(*