diff --git a/AMDiS/CMakeLists.txt b/AMDiS/CMakeLists.txt index 5a0b88c58c3fa491084c0aa4571bce2f141acd07..c9ab23047aa1cd284ad851b7d4700d4286fc52aa 100644 --- a/AMDiS/CMakeLists.txt +++ b/AMDiS/CMakeLists.txt @@ -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 diff --git a/AMDiS/bin/Makefile.am b/AMDiS/bin/Makefile.am index dfd523bd2103f5a486d68eeb2a3515048a18f74c..ce0437f83b61419a43a6c0536fe766965afb07e7 100644 --- a/AMDiS/bin/Makefile.am +++ b/AMDiS/bin/Makefile.am @@ -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 diff --git a/AMDiS/src/AMDiS.h b/AMDiS/src/AMDiS.h index 74da8b19f0ec4fc0643fae8ea37f4931c95fa0cb..293fb5b65cbf6e7c0214e753f8e58ef2a24a63e7 100644 --- a/AMDiS/src/AMDiS.h +++ b/AMDiS/src/AMDiS.h @@ -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" diff --git a/AMDiS/src/Debug.cc b/AMDiS/src/Debug.cc index ce62634053ff0c1f2367581c2343fc97c5f35ba4..f73cd02d343c4cf4ea601d0a4d07f182c1cc187c 100644 --- a/AMDiS/src/Debug.cc +++ b/AMDiS/src/Debug.cc @@ -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 { diff --git a/AMDiS/src/Mesh.cc b/AMDiS/src/Mesh.cc index 10001b8082e279b69cd53e1fbe053f21b75ffdcb..e1b7573ff9f41e7f51c26ad373a03e6b343b57c4 100644 --- a/AMDiS/src/Mesh.cc +++ b/AMDiS/src/Mesh.cc @@ -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" diff --git a/AMDiS/src/ProblemInstat.cc b/AMDiS/src/ProblemInstat.cc index e7d6ffeb009b1b854d6e49425092ddb4c8431bb7..4bdf5b45d4bd1b51afc147d7329ac8f0b726cf37 100644 --- a/AMDiS/src/ProblemInstat.cc +++ b/AMDiS/src/ProblemInstat.cc @@ -1,5 +1,5 @@ #include "ProblemInstat.h" -#include "FileWriter.h" +#include "io/FileWriter.h" #include "AdaptStationary.h" #include "AdaptInstationary.h" #include "Estimator.h" diff --git a/AMDiS/src/ProblemScal.cc b/AMDiS/src/ProblemScal.cc index 9e9f90ac18fc71adddaa2e325e57cb44f2481e59..18157ce64adad26c65d5e30c6e613f5f2bac9720 100644 --- a/AMDiS/src/ProblemScal.cc +++ b/AMDiS/src/ProblemScal.cc @@ -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" diff --git a/AMDiS/src/ProblemVec.cc b/AMDiS/src/ProblemVec.cc index e917dddd2a3c3415c2e6bc60eca1c1be9e2adf73..0e5f5017e57ccd69e090dce1f7abe864b3aef9a9 100644 --- a/AMDiS/src/ProblemVec.cc +++ b/AMDiS/src/ProblemVec.cc @@ -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" diff --git a/AMDiS/src/ProblemVec.h b/AMDiS/src/ProblemVec.h index 26b22f507dd6c6697e6218ba651e36b4be186c60..b93778049b61a366238e7c5c974e6bf1e132c74a 100644 --- a/AMDiS/src/ProblemVec.h +++ b/AMDiS/src/ProblemVec.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" diff --git a/AMDiS/src/Serializer.h b/AMDiS/src/Serializer.h index 3a059ba92053b46553c4dcce822bd48aa8b67069..f4858edbe55f4a954bbcf0915dea69ce271c9d52 100644 --- a/AMDiS/src/Serializer.h +++ b/AMDiS/src/Serializer.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" diff --git a/AMDiS/src/TecPlotWriter.cc b/AMDiS/src/TecPlotWriter.cc deleted file mode 100644 index e0535934f7281ab149afc61a394a26e1119234ed..0000000000000000000000000000000000000000 --- a/AMDiS/src/TecPlotWriter.cc +++ /dev/null @@ -1,133 +0,0 @@ -#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; - } - -} - diff --git a/AMDiS/src/TecPlotWriter.h b/AMDiS/src/TecPlotWriter.h deleted file mode 100644 index c7ea4625fc6e59d768c4b53c9ce8901434c69dd3..0000000000000000000000000000000000000000 --- a/AMDiS/src/TecPlotWriter.h +++ /dev/null @@ -1,88 +0,0 @@ -// ============================================================================ -// == == -// == AMDiS - Adaptive multidimensional simulations == -// == == -// ============================================================================ -// == == -// == TU Dresden == -// == == -// == Institut f�r 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 diff --git a/AMDiS/src/TecPlotWriter.hh b/AMDiS/src/TecPlotWriter.hh deleted file mode 100644 index 49d1df1e5feb3d05cfe5521ecfc7dc1bc3339791..0000000000000000000000000000000000000000 --- a/AMDiS/src/TecPlotWriter.hh +++ /dev/null @@ -1,141 +0,0 @@ -#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(); - (*outFile) << ", F=POINT"; - if (additional) - (*outFile) << ", D=(1)"; - - (*outFile) << std::endl << std::endl; - - - // write data - ERROR_EXIT("Reimplement mesh traverse for TecPlot writer!\n"); - // mesh->traverse(-1, Mesh::CALL_LEAF_EL|Mesh::FILL_COORDS, writeValuesFct); - - } else { // dow !=1 => use FE-plot - for (int i=0; i < 150; i++) - (*outFile) << " "; - (*outFile) << std::endl; - - // write data - nv = 1; - ERROR_EXIT("Reimplement mesh traverse for TecPlot writer!\n"); - // mesh->traverse(-1, Mesh::CALL_LEAF_EL|Mesh::FILL_COORDS, writeValuesFct); - (*outFile) << std::endl; - ERROR_EXIT("Reimplement mesh traverse for TecPlot writer!\n"); - // mesh->traverse(-1, Mesh::CALL_LEAF_EL|Mesh::FILL_COORDS, writeIndicesFct); - - // write file header - outFile->seekp(0); - - if (!additional) { - (*outFile) << "TITLE = \"" << plotTitle << "\"" << std::endl; - writeVarName(dim); - } - - (*outFile) << "ZONE T=\"" << values->getName() << "\", N=" << nv-1; - (*outFile) << ", E=" << mesh->getNumberOfLeaves(); - (*outFile) << ", F=FEPOINT"; - (*outFile) << ((dim==3) ? ", ET=TETRAHEDRON" : ", ET=TRIANGLE"); - if (additional) { - (*outFile) << ", D=("; - (*outFile) << ((dim==3) ? "1,2,3" : "1,2"); - (*outFile) << ",FECONNECT)"; - } - (*outFile) << std::endl; - - } - - dofCoords.resize(0); - delete outFile; - } - -} diff --git a/AMDiS/src/ArhReader.cc b/AMDiS/src/io/ArhReader.cc similarity index 100% rename from AMDiS/src/ArhReader.cc rename to AMDiS/src/io/ArhReader.cc diff --git a/AMDiS/src/ArhReader.h b/AMDiS/src/io/ArhReader.h similarity index 100% rename from AMDiS/src/ArhReader.h rename to AMDiS/src/io/ArhReader.h diff --git a/AMDiS/src/ArhWriter.cc b/AMDiS/src/io/ArhWriter.cc similarity index 100% rename from AMDiS/src/ArhWriter.cc rename to AMDiS/src/io/ArhWriter.cc diff --git a/AMDiS/src/ArhWriter.h b/AMDiS/src/io/ArhWriter.h similarity index 100% rename from AMDiS/src/ArhWriter.h rename to AMDiS/src/io/ArhWriter.h diff --git a/AMDiS/src/DataCollector.cc b/AMDiS/src/io/DataCollector.cc similarity index 100% rename from AMDiS/src/DataCollector.cc rename to AMDiS/src/io/DataCollector.cc diff --git a/AMDiS/src/DataCollector.h b/AMDiS/src/io/DataCollector.h similarity index 100% rename from AMDiS/src/DataCollector.h rename to AMDiS/src/io/DataCollector.h diff --git a/AMDiS/src/ElementFileWriter.cc b/AMDiS/src/io/ElementFileWriter.cc similarity index 100% rename from AMDiS/src/ElementFileWriter.cc rename to AMDiS/src/io/ElementFileWriter.cc diff --git a/AMDiS/src/ElementFileWriter.h b/AMDiS/src/io/ElementFileWriter.h similarity index 100% rename from AMDiS/src/ElementFileWriter.h rename to AMDiS/src/io/ElementFileWriter.h diff --git a/AMDiS/src/FileWriter.cc b/AMDiS/src/io/FileWriter.cc similarity index 100% rename from AMDiS/src/FileWriter.cc rename to AMDiS/src/io/FileWriter.cc diff --git a/AMDiS/src/FileWriter.h b/AMDiS/src/io/FileWriter.h similarity index 100% rename from AMDiS/src/FileWriter.h rename to AMDiS/src/io/FileWriter.h diff --git a/AMDiS/src/GNUPlotWriter.cc b/AMDiS/src/io/GNUPlotWriter.cc similarity index 100% rename from AMDiS/src/GNUPlotWriter.cc rename to AMDiS/src/io/GNUPlotWriter.cc diff --git a/AMDiS/src/GNUPlotWriter.h b/AMDiS/src/io/GNUPlotWriter.h similarity index 100% rename from AMDiS/src/GNUPlotWriter.h rename to AMDiS/src/io/GNUPlotWriter.h diff --git a/AMDiS/src/GridWriter.h b/AMDiS/src/io/GridWriter.h similarity index 100% rename from AMDiS/src/GridWriter.h rename to AMDiS/src/io/GridWriter.h diff --git a/AMDiS/src/GridWriter.hh b/AMDiS/src/io/GridWriter.hh similarity index 100% rename from AMDiS/src/GridWriter.hh rename to AMDiS/src/io/GridWriter.hh diff --git a/AMDiS/src/MacroInfo.cc b/AMDiS/src/io/MacroInfo.cc similarity index 100% rename from AMDiS/src/MacroInfo.cc rename to AMDiS/src/io/MacroInfo.cc diff --git a/AMDiS/src/MacroInfo.h b/AMDiS/src/io/MacroInfo.h similarity index 100% rename from AMDiS/src/MacroInfo.h rename to AMDiS/src/io/MacroInfo.h diff --git a/AMDiS/src/MacroReader.cc b/AMDiS/src/io/MacroReader.cc similarity index 100% rename from AMDiS/src/MacroReader.cc rename to AMDiS/src/io/MacroReader.cc diff --git a/AMDiS/src/MacroReader.h b/AMDiS/src/io/MacroReader.h similarity index 100% rename from AMDiS/src/MacroReader.h rename to AMDiS/src/io/MacroReader.h diff --git a/AMDiS/src/MacroWriter.cc b/AMDiS/src/io/MacroWriter.cc similarity index 100% rename from AMDiS/src/MacroWriter.cc rename to AMDiS/src/io/MacroWriter.cc diff --git a/AMDiS/src/MacroWriter.h b/AMDiS/src/io/MacroWriter.h similarity index 100% rename from AMDiS/src/MacroWriter.h rename to AMDiS/src/io/MacroWriter.h diff --git a/AMDiS/src/PngWriter.cc b/AMDiS/src/io/PngWriter.cc similarity index 100% rename from AMDiS/src/PngWriter.cc rename to AMDiS/src/io/PngWriter.cc diff --git a/AMDiS/src/PngWriter.h b/AMDiS/src/io/PngWriter.h similarity index 100% rename from AMDiS/src/PngWriter.h rename to AMDiS/src/io/PngWriter.h diff --git a/AMDiS/src/PovrayWriter.cc b/AMDiS/src/io/PovrayWriter.cc similarity index 100% rename from AMDiS/src/PovrayWriter.cc rename to AMDiS/src/io/PovrayWriter.cc diff --git a/AMDiS/src/PovrayWriter.h b/AMDiS/src/io/PovrayWriter.h similarity index 100% rename from AMDiS/src/PovrayWriter.h rename to AMDiS/src/io/PovrayWriter.h diff --git a/AMDiS/src/ValueReader.cc b/AMDiS/src/io/ValueReader.cc similarity index 100% rename from AMDiS/src/ValueReader.cc rename to AMDiS/src/io/ValueReader.cc diff --git a/AMDiS/src/ValueReader.h b/AMDiS/src/io/ValueReader.h similarity index 100% rename from AMDiS/src/ValueReader.h rename to AMDiS/src/io/ValueReader.h diff --git a/AMDiS/src/ValueWriter.cc b/AMDiS/src/io/ValueWriter.cc similarity index 100% rename from AMDiS/src/ValueWriter.cc rename to AMDiS/src/io/ValueWriter.cc diff --git a/AMDiS/src/ValueWriter.h b/AMDiS/src/io/ValueWriter.h similarity index 100% rename from AMDiS/src/ValueWriter.h rename to AMDiS/src/io/ValueWriter.h diff --git a/AMDiS/src/VtkWriter.cc b/AMDiS/src/io/VtkWriter.cc similarity index 100% rename from AMDiS/src/VtkWriter.cc rename to AMDiS/src/io/VtkWriter.cc diff --git a/AMDiS/src/VtkWriter.h b/AMDiS/src/io/VtkWriter.h similarity index 100% rename from AMDiS/src/VtkWriter.h rename to AMDiS/src/io/VtkWriter.h diff --git a/AMDiS/src/VtkWriter.hh b/AMDiS/src/io/VtkWriter.hh similarity index 100% rename from AMDiS/src/VtkWriter.hh rename to AMDiS/src/io/VtkWriter.hh diff --git a/AMDiS/src/parallel/MeshDistributor.cc b/AMDiS/src/parallel/MeshDistributor.cc index f1804c2e877a28b85c51a8e94f1ecc18b79d0afd..9262d3e168279df05895a9a89daca6cc05ba084c 100644 --- a/AMDiS/src/parallel/MeshDistributor.cc +++ b/AMDiS/src/parallel/MeshDistributor.cc @@ -11,6 +11,9 @@ #include "parallel/ParallelDebug.h" #include "parallel/StdMpi.h" #include "parallel/ParMetisPartitioner.h" +#include "io/ElementFileWriter.h" +#include "io/MacroInfo.h" +#include "io/VtkWriter.h" #include "Mesh.h" #include "Traverse.h" #include "ElInfo.h" @@ -19,17 +22,14 @@ #include "DOFMatrix.h" #include "DOFVector.h" #include "SystemVector.h" -#include "VtkWriter.h" #include "ElementDofIterator.h" #include "ProblemStatBase.h" #include "StandardProblemIteration.h" -#include "ElementFileWriter.h" #include "VertexVector.h" #include "MeshStructure.h" #include "ProblemVec.h" #include "ProblemInstat.h" #include "Debug.h" -#include "MacroInfo.h" namespace AMDiS {