Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer, es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Ein Anmelden über dieses erzeugt ein neues Konto. Das alte Konto ist über den Reiter "Standard" erreichbar. Die Administratoren

Dear Gitlab user, it is now possible to log in to our service using the ZIH login/LDAP. Logging in via this will create a new account. The old account can be accessed via the "Standard" tab. The administrators

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

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