Commit cd4895db authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

New structure for PETSc solver objects.

parent aee5a801
...@@ -36,7 +36,8 @@ else ...@@ -36,7 +36,8 @@ else
endif endif
PARMETIS_LIB = -L$(PARMETIS_DIR) -lparmetis -lmetis PARMETIS_LIB = -L$(PARMETIS_DIR) -lparmetis -lmetis
ZOLTAN_LIB = -L$(AMDIS_DIR)/lib/zoltan_build/lib -lzoltan #ZOLTAN_LIB = -L$(AMDIS_DIR)/lib/zoltan_build/lib -lzoltan
ZOLTAN_LIB =
LIBS += $(AMDIS_LIB) $(PNG_LIB) LIBS += $(AMDIS_LIB) $(PNG_LIB)
LIBS += -lboost_iostreams -lboost_filesystem -lboost_system -lboost_date_time LIBS += -lboost_iostreams -lboost_filesystem -lboost_system -lboost_date_time
......
...@@ -399,7 +399,7 @@ namespace AMDiS { ...@@ -399,7 +399,7 @@ namespace AMDiS {
void serialize(std::ostream &out); void serialize(std::ostream &out);
/// Reads a matrix from an input stream. /// Reads a matrix from an input stream.
void deserialize(::std::istream &in); void deserialize(std::istream &in);
/// ///
int memsize(); int memsize();
......
...@@ -52,7 +52,7 @@ namespace AMDiS { ...@@ -52,7 +52,7 @@ namespace AMDiS {
public: public:
/// The constructor reads needed parameters and sets solvers \ref name. /// The constructor reads needed parameters and sets solvers \ref name.
ITL_OEMSolver(::std::string name) : OEMSolver(name) {} ITL_OEMSolver(std::string name) : OEMSolver(name) {}
~ITL_OEMSolver() {} ~ITL_OEMSolver() {}
...@@ -102,7 +102,7 @@ namespace AMDiS { ...@@ -102,7 +102,7 @@ namespace AMDiS {
typedef DOFMatrix::value_type value_type; typedef DOFMatrix::value_type value_type;
public: public:
/// The constructor reads needed parameters and sets solvers \ref name. /// The constructor reads needed parameters and sets solvers \ref name.
ITL_OEMSolver_para(::std::string name) ITL_OEMSolver_para(std::string name)
: OEMSolver(name), ell(OEMSolver::max_iter) : OEMSolver(name), ell(OEMSolver::max_iter)
{ {
GET_PARAMETER(0, name + "->ell", "%d", &ell); GET_PARAMETER(0, name + "->ell", "%d", &ell);
......
...@@ -20,8 +20,8 @@ if USE_PARALLEL_DOMAIN_AMDIS ...@@ -20,8 +20,8 @@ if USE_PARALLEL_DOMAIN_AMDIS
parallel/ParallelDebug.cc \ parallel/ParallelDebug.cc \
parallel/ParallelProblemStatBase.cc \ parallel/ParallelProblemStatBase.cc \
parallel/ParMetisPartitioner.cc \ parallel/ParMetisPartitioner.cc \
parallel/PetscProblemStat.cc \
parallel/PetscSolver.cc \ parallel/PetscSolver.cc \
parallel/PetscSolverSchur.cc \
parallel/StdMpi.cc parallel/StdMpi.cc
libamdis_la_CXXFLAGS += -DHAVE_PARALLEL_DOMAIN_AMDIS=1 libamdis_la_CXXFLAGS += -DHAVE_PARALLEL_DOMAIN_AMDIS=1
AMDIS_INCLUDES += -I$(PARMETIS_DIR) AMDIS_INCLUDES += -I$(PARMETIS_DIR)
...@@ -252,8 +252,8 @@ parallel/MpiHelper.h \ ...@@ -252,8 +252,8 @@ parallel/MpiHelper.h \
parallel/ParallelDebug.h \ parallel/ParallelDebug.h \
parallel/ParallelProblemStatBase.h \ parallel/ParallelProblemStatBase.h \
parallel/ParMetisPartitioner.h \ parallel/ParMetisPartitioner.h \
parallel/PetscProblemStat.h \
parallel/PetscSolver.h \ parallel/PetscSolver.h \
parallel/PetscSolverSchur.h \
parallel/StdMpi.h \ parallel/StdMpi.h \
parallel/ZoltanPartitioner.h \ parallel/ZoltanPartitioner.h \
reinit/BoundaryElementDist.h \ reinit/BoundaryElementDist.h \
......
...@@ -46,8 +46,8 @@ host_triplet = @host@ ...@@ -46,8 +46,8 @@ host_triplet = @host@
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ParallelDebug.cc \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ParallelDebug.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ParallelProblemStatBase.cc \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ParallelProblemStatBase.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ParMetisPartitioner.cc \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ParMetisPartitioner.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/PetscProblemStat.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/PetscSolver.cc \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/PetscSolver.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/PetscSolverSchur.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/StdMpi.cc @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/StdMpi.cc
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@am__append_2 = -DHAVE_PARALLEL_DOMAIN_AMDIS=1 @USE_PARALLEL_DOMAIN_AMDIS_TRUE@am__append_2 = -DHAVE_PARALLEL_DOMAIN_AMDIS=1
...@@ -91,8 +91,8 @@ am__libamdis_la_SOURCES_DIST = parallel/ElementObjectData.cc \ ...@@ -91,8 +91,8 @@ am__libamdis_la_SOURCES_DIST = parallel/ElementObjectData.cc \
parallel/MeshDistributor.cc parallel/MeshManipulation.cc \ parallel/MeshDistributor.cc parallel/MeshManipulation.cc \
parallel/MeshPartitioner.cc parallel/MpiHelper.cc \ parallel/MeshPartitioner.cc parallel/MpiHelper.cc \
parallel/ParallelDebug.cc parallel/ParallelProblemStatBase.cc \ parallel/ParallelDebug.cc parallel/ParallelProblemStatBase.cc \
parallel/ParMetisPartitioner.cc parallel/PetscSolver.cc \ parallel/ParMetisPartitioner.cc parallel/PetscProblemStat.cc \
parallel/PetscSolverSchur.cc parallel/StdMpi.cc \ parallel/PetscSolver.cc parallel/StdMpi.cc \
parallel/ZoltanPartitioner.cc AdaptBase.cc AdaptInfo.cc \ parallel/ZoltanPartitioner.cc AdaptBase.cc AdaptInfo.cc \
AdaptInstationary.cc AdaptStationary.cc Assembler.cc \ AdaptInstationary.cc AdaptStationary.cc Assembler.cc \
BasisFunction.cc Boundary.cc BoundaryManager.cc Cholesky.cc \ BasisFunction.cc Boundary.cc BoundaryManager.cc Cholesky.cc \
...@@ -137,8 +137,8 @@ am__libamdis_la_SOURCES_DIST = parallel/ElementObjectData.cc \ ...@@ -137,8 +137,8 @@ am__libamdis_la_SOURCES_DIST = parallel/ElementObjectData.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-ParallelDebug.lo \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-ParallelDebug.lo \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-ParallelProblemStatBase.lo \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-ParallelProblemStatBase.lo \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-ParMetisPartitioner.lo \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-ParMetisPartitioner.lo \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-PetscProblemStat.lo \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-PetscSolver.lo \ @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-PetscSolver.lo \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-PetscSolverSchur.lo \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-StdMpi.lo @USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-StdMpi.lo
@USE_ZOLTAN_TRUE@am__objects_2 = libamdis_la-ZoltanPartitioner.lo @USE_ZOLTAN_TRUE@am__objects_2 = libamdis_la-ZoltanPartitioner.lo
am__objects_3 = $(am__objects_1) $(am__objects_2) am__objects_3 = $(am__objects_1) $(am__objects_2)
...@@ -574,8 +574,8 @@ parallel/MpiHelper.h \ ...@@ -574,8 +574,8 @@ parallel/MpiHelper.h \
parallel/ParallelDebug.h \ parallel/ParallelDebug.h \
parallel/ParallelProblemStatBase.h \ parallel/ParallelProblemStatBase.h \
parallel/ParMetisPartitioner.h \ parallel/ParMetisPartitioner.h \
parallel/PetscProblemStat.h \
parallel/PetscSolver.h \ parallel/PetscSolver.h \
parallel/PetscSolverSchur.h \
parallel/StdMpi.h \ parallel/StdMpi.h \
parallel/ZoltanPartitioner.h \ parallel/ZoltanPartitioner.h \
reinit/BoundaryElementDist.h \ reinit/BoundaryElementDist.h \
...@@ -879,8 +879,8 @@ distclean-compile: ...@@ -879,8 +879,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-Parameters.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-Parameters.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-Parametric.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-Parametric.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PeriodicBC.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PeriodicBC.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PetscProblemStat.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PetscSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PetscSolver.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PetscSolverSchur.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PngWriter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PngWriter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PovrayWriter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-PovrayWriter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-ProblemImplicit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-ProblemImplicit.Plo@am__quote@
...@@ -1029,6 +1029,13 @@ libamdis_la-ParMetisPartitioner.lo: parallel/ParMetisPartitioner.cc ...@@ -1029,6 +1029,13 @@ libamdis_la-ParMetisPartitioner.lo: parallel/ParMetisPartitioner.cc
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -c -o libamdis_la-ParMetisPartitioner.lo `test -f 'parallel/ParMetisPartitioner.cc' || echo '$(srcdir)/'`parallel/ParMetisPartitioner.cc @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -c -o libamdis_la-ParMetisPartitioner.lo `test -f 'parallel/ParMetisPartitioner.cc' || echo '$(srcdir)/'`parallel/ParMetisPartitioner.cc
libamdis_la-PetscProblemStat.lo: parallel/PetscProblemStat.cc
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -MT libamdis_la-PetscProblemStat.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-PetscProblemStat.Tpo" -c -o libamdis_la-PetscProblemStat.lo `test -f 'parallel/PetscProblemStat.cc' || echo '$(srcdir)/'`parallel/PetscProblemStat.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-PetscProblemStat.Tpo" "$(DEPDIR)/libamdis_la-PetscProblemStat.Plo"; else rm -f "$(DEPDIR)/libamdis_la-PetscProblemStat.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='parallel/PetscProblemStat.cc' object='libamdis_la-PetscProblemStat.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -c -o libamdis_la-PetscProblemStat.lo `test -f 'parallel/PetscProblemStat.cc' || echo '$(srcdir)/'`parallel/PetscProblemStat.cc
libamdis_la-PetscSolver.lo: parallel/PetscSolver.cc libamdis_la-PetscSolver.lo: parallel/PetscSolver.cc
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -MT libamdis_la-PetscSolver.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-PetscSolver.Tpo" -c -o libamdis_la-PetscSolver.lo `test -f 'parallel/PetscSolver.cc' || echo '$(srcdir)/'`parallel/PetscSolver.cc; \ @am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -MT libamdis_la-PetscSolver.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-PetscSolver.Tpo" -c -o libamdis_la-PetscSolver.lo `test -f 'parallel/PetscSolver.cc' || echo '$(srcdir)/'`parallel/PetscSolver.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-PetscSolver.Tpo" "$(DEPDIR)/libamdis_la-PetscSolver.Plo"; else rm -f "$(DEPDIR)/libamdis_la-PetscSolver.Tpo"; exit 1; fi @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-PetscSolver.Tpo" "$(DEPDIR)/libamdis_la-PetscSolver.Plo"; else rm -f "$(DEPDIR)/libamdis_la-PetscSolver.Tpo"; exit 1; fi
...@@ -1036,13 +1043,6 @@ libamdis_la-PetscSolver.lo: parallel/PetscSolver.cc ...@@ -1036,13 +1043,6 @@ libamdis_la-PetscSolver.lo: parallel/PetscSolver.cc
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -c -o libamdis_la-PetscSolver.lo `test -f 'parallel/PetscSolver.cc' || echo '$(srcdir)/'`parallel/PetscSolver.cc @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -c -o libamdis_la-PetscSolver.lo `test -f 'parallel/PetscSolver.cc' || echo '$(srcdir)/'`parallel/PetscSolver.cc
libamdis_la-PetscSolverSchur.lo: parallel/PetscSolverSchur.cc
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -MT libamdis_la-PetscSolverSchur.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-PetscSolverSchur.Tpo" -c -o libamdis_la-PetscSolverSchur.lo `test -f 'parallel/PetscSolverSchur.cc' || echo '$(srcdir)/'`parallel/PetscSolverSchur.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-PetscSolverSchur.Tpo" "$(DEPDIR)/libamdis_la-PetscSolverSchur.Plo"; else rm -f "$(DEPDIR)/libamdis_la-PetscSolverSchur.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='parallel/PetscSolverSchur.cc' object='libamdis_la-PetscSolverSchur.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -c -o libamdis_la-PetscSolverSchur.lo `test -f 'parallel/PetscSolverSchur.cc' || echo '$(srcdir)/'`parallel/PetscSolverSchur.cc
libamdis_la-StdMpi.lo: parallel/StdMpi.cc libamdis_la-StdMpi.lo: parallel/StdMpi.cc
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -MT libamdis_la-StdMpi.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-StdMpi.Tpo" -c -o libamdis_la-StdMpi.lo `test -f 'parallel/StdMpi.cc' || echo '$(srcdir)/'`parallel/StdMpi.cc; \ @am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libamdis_la_CXXFLAGS) $(CXXFLAGS) -MT libamdis_la-StdMpi.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-StdMpi.Tpo" -c -o libamdis_la-StdMpi.lo `test -f 'parallel/StdMpi.cc' || echo '$(srcdir)/'`parallel/StdMpi.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-StdMpi.Tpo" "$(DEPDIR)/libamdis_la-StdMpi.Plo"; else rm -f "$(DEPDIR)/libamdis_la-StdMpi.Tpo"; exit 1; fi @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-StdMpi.Tpo" "$(DEPDIR)/libamdis_la-StdMpi.Plo"; else rm -f "$(DEPDIR)/libamdis_la-StdMpi.Tpo"; exit 1; fi
......
...@@ -39,6 +39,8 @@ ...@@ -39,6 +39,8 @@
namespace AMDiS { namespace AMDiS {
using namespace std;
struct OperatorPos struct OperatorPos
{ {
int row, col; int row, col;
...@@ -51,14 +53,14 @@ namespace AMDiS { ...@@ -51,14 +53,14 @@ namespace AMDiS {
{ {
protected: protected:
// Defines a mapping type from dof indices to world coordinates. // Defines a mapping type from dof indices to world coordinates.
typedef std::map<DegreeOfFreedom, WorldVector<double> > DofToCoord; typedef map<DegreeOfFreedom, WorldVector<double> > DofToCoord;
// Defines a mapping type from dof indices to world coordinates. // Defines a mapping type from dof indices to world coordinates.
typedef std::map<WorldVector<double>, DegreeOfFreedom> CoordToDof; typedef map<WorldVector<double>, DegreeOfFreedom> CoordToDof;
public: public:
/// Constructor /// Constructor
ProblemVec(std::string nameStr, ProblemVec(string nameStr,
ProblemIterationInterface *problemIteration = NULL) ProblemIterationInterface *problemIteration = NULL)
: StandardProblemIteration(this), : StandardProblemIteration(this),
name(nameStr), name(nameStr),
...@@ -227,7 +229,7 @@ namespace AMDiS { ...@@ -227,7 +229,7 @@ namespace AMDiS {
void writeFiles(AdaptInfo &adaptInfo, bool force); void writeFiles(AdaptInfo &adaptInfo, bool force);
/// Interpolates fct to \ref solution. /// Interpolates fct to \ref solution.
void interpolInitialSolution(std::vector<AbstractFunction<double, WorldVector<double> >*> *fct); void interpolInitialSolution(vector<AbstractFunction<double, WorldVector<double> >*> *fct);
/// Adds an operator to \ref A. /// Adds an operator to \ref A.
void addMatrixOperator(Operator *op, int i, int j, void addMatrixOperator(Operator *op, int i, int j,
...@@ -346,7 +348,7 @@ namespace AMDiS { ...@@ -346,7 +348,7 @@ namespace AMDiS {
} }
/// Returns \ref meshes /// Returns \ref meshes
inline std::vector<Mesh*> getMeshes() inline vector<Mesh*> getMeshes()
{ {
return meshes; return meshes;
} }
...@@ -361,19 +363,19 @@ namespace AMDiS { ...@@ -361,19 +363,19 @@ namespace AMDiS {
} }
/// Returns \ref feSpaces. /// Returns \ref feSpaces.
inline std::vector<FiniteElemSpace*> getFeSpaces() inline vector<FiniteElemSpace*> getFeSpaces()
{ {
return feSpaces; return feSpaces;
} }
/// Returns \ref componentSpaces; /// Returns \ref componentSpaces;
inline std::vector<FiniteElemSpace*> getComponentFeSpaces() inline vector<FiniteElemSpace*> getComponentFeSpaces()
{ {
return componentSpaces; return componentSpaces;
} }
/// Returns \ref estimator. /// Returns \ref estimator.
inline std::vector<Estimator*> getEstimators() inline vector<Estimator*> getEstimators()
{ {
return estimator; return estimator;
} }
...@@ -409,13 +411,13 @@ namespace AMDiS { ...@@ -409,13 +411,13 @@ namespace AMDiS {
} }
/// Returns \ref marker. /// Returns \ref marker.
inline std::vector<Marker*> getMarkers() inline vector<Marker*> getMarkers()
{ {
return marker; return marker;
} }
/// Returns the name of the problem /// Returns the name of the problem
inline virtual std::string getName() inline virtual string getName()
{ {
return name; return name;
} }
...@@ -445,7 +447,7 @@ namespace AMDiS { ...@@ -445,7 +447,7 @@ namespace AMDiS {
*/ */
/// Sets \ref estimator. /// Sets \ref estimator.
inline void setEstimator(std::vector<Estimator*> est) inline void setEstimator(vector<Estimator*> est)
{ {
estimator = est; estimator = est;
} }
...@@ -511,17 +513,17 @@ namespace AMDiS { ...@@ -511,17 +513,17 @@ namespace AMDiS {
* Outputs the mesh of the given component, but the values are taken from the * Outputs the mesh of the given component, but the values are taken from the
* residual error estimator. * residual error estimator.
*/ */
void writeResidualMesh(int comp, AdaptInfo *adaptInfo, std::string name); void writeResidualMesh(int comp, AdaptInfo *adaptInfo, string name);
/// Function that implements the serialization procedure. /// Function that implements the serialization procedure.
virtual void serialize(std::ostream &out); virtual void serialize(ostream &out);
/// Function that implements the deserialization procedure. /// Function that implements the deserialization procedure.
virtual void deserialize(std::istream &in); virtual void deserialize(istream &in);
/// Returns \ref fileWriters. /// Returns \ref fileWriters.
std::vector<FileWriterInterface*>& getFileWriterList() vector<FileWriterInterface*>& getFileWriterList()
{ {
return fileWriters; return fileWriters;
} }
...@@ -536,7 +538,7 @@ namespace AMDiS { ...@@ -536,7 +538,7 @@ namespace AMDiS {
protected: protected:
/// Name of this problem. /// Name of this problem.
std::string name; string name;
/// Number of problem components /// Number of problem components
int nComponents; int nComponents;
...@@ -549,16 +551,16 @@ namespace AMDiS { ...@@ -549,16 +551,16 @@ namespace AMDiS {
int nMeshes; int nMeshes;
/// FE spaces of this problem. /// FE spaces of this problem.
std::vector<FiniteElemSpace*> feSpaces; vector<FiniteElemSpace*> feSpaces;
/// Meshes of this problem. /// Meshes of this problem.
std::vector<Mesh*> meshes; vector<Mesh*> meshes;
/// Pointer to the fe spaces for the different problem components /// Pointer to the fe spaces for the different problem components
std::vector<FiniteElemSpace*> componentSpaces; vector<FiniteElemSpace*> componentSpaces;
/// Pointer to the meshes for the different problem components /// Pointer to the meshes for the different problem components
std::vector<Mesh*> componentMeshes; vector<Mesh*> componentMeshes;
/** \brief /** \brief
* Stores information about which meshes must be traversed to assemble the * Stores information about which meshes must be traversed to assemble the
...@@ -568,10 +570,10 @@ namespace AMDiS { ...@@ -568,10 +570,10 @@ namespace AMDiS {
ComponentTraverseInfo traverseInfo; ComponentTraverseInfo traverseInfo;
/// Responsible for element marking. /// Responsible for element marking.
std::vector<Marker*> marker; vector<Marker*> marker;
/// Estimator of this problem. Used in \ref estimate(). /// Estimator of this problem. Used in \ref estimate().
std::vector<Estimator*> estimator; vector<Estimator*> estimator;
/// Linear solver of this problem. Used in \ref solve(). /// Linear solver of this problem. Used in \ref solve().
OEMSolver *solver; OEMSolver *solver;
...@@ -595,7 +597,7 @@ namespace AMDiS { ...@@ -595,7 +597,7 @@ namespace AMDiS {
* be assembled only once. All other matrices will be assembled at every * be assembled only once. All other matrices will be assembled at every
* time step. * time step.
*/ */
std::vector< std::vector< bool > > assembleMatrixOnlyOnce; vector<vector<bool> > assembleMatrixOnlyOnce;
/** \brief /** \brief
* If [i][j] of this field is set to true, the corresponding DOFMatrix of * If [i][j] of this field is set to true, the corresponding DOFMatrix of
...@@ -603,13 +605,13 @@ namespace AMDiS { ...@@ -603,13 +605,13 @@ namespace AMDiS {
* to determine, if assembling of a matrix can be ommitted, if it is set * to determine, if assembling of a matrix can be ommitted, if it is set
* to be assembled only once. * to be assembled only once.
*/ */
std::vector< std::vector< bool > > assembledMatrix; vector<vector<bool> > assembledMatrix;
/// Determines whether domain boundaries should be considered at assembling. /// Determines whether domain boundaries should be considered at assembling.
bool useGetBound; bool useGetBound;
/// Writes the meshes and solution after the adaption loop. /// Writes the meshes and solution after the adaption loop.
std::vector<FileWriterInterface*> fileWriters; vector<FileWriterInterface*> fileWriters;
/** \brief /** \brief
* All actions of mesh refinement are performed by refinementManager. * All actions of mesh refinement are performed by refinementManager.
...@@ -636,7 +638,7 @@ namespace AMDiS { ...@@ -636,7 +638,7 @@ namespace AMDiS {
* the problem. This may be used to compute the real error of the computed * the problem. This may be used to compute the real error of the computed
* solution. * solution.
*/ */
std::vector<AbstractFunction<double, WorldVector<double> >*> exactSolutionFcts; vector<AbstractFunction<double, WorldVector<double> >*> exactSolutionFcts;
/** \brief /** \brief
* If true, the error is not estimated but computed from the exact solution * If true, the error is not estimated but computed from the exact solution
...@@ -654,9 +656,9 @@ namespace AMDiS { ...@@ -654,9 +656,9 @@ namespace AMDiS {
/// If true, AMDiS prints information about the assembling procedure to the screen. /// If true, AMDiS prints information about the assembling procedure to the screen.
bool writeAsmInfo; bool writeAsmInfo;
std::map<Operator*, std::vector<OperatorPos> > operators; map<Operator*, vector<OperatorPos> > operators;
std::map<Operator*, Flag> opFlags; map<Operator*, Flag> opFlags;
}; };
} }
......
...@@ -60,9 +60,9 @@ namespace AMDiS { ...@@ -60,9 +60,9 @@ namespace AMDiS {
} }
MeshDistributor::MeshDistributor(string str) MeshDistributor::MeshDistributor()
: probStat(0), : probStat(0),
name(str), name("parallel"),
feSpace(NULL), feSpace(NULL),
mesh(NULL), mesh(NULL),
refineManager(NULL), refineManager(NULL),
......
...@@ -72,13 +72,13 @@ namespace AMDiS { ...@@ -72,13 +72,13 @@ namespace AMDiS {
typedef map<const DegreeOfFreedom*, DegreeOfFreedom> DofIndexMap; typedef map<const DegreeOfFreedom*, DegreeOfFreedom> DofIndexMap;
/// Mapps a boundar type, i.e., a boundary identifier index, to a periodic /// Mapps a boundar type, i.e., a boundary identifier index, to a periodic
/// dof mapping. /// DOF mapping.
typedef map<BoundaryType, DofMapping> PeriodicDofMap; typedef map<BoundaryType, DofMapping> PeriodicDofMap;
typedef vector<MeshStructure> MeshCodeVec; typedef vector<MeshStructure> MeshCodeVec;
public: public:
MeshDistributor(string str); MeshDistributor();
virtual ~MeshDistributor() {} virtual ~MeshDistributor() {}
...@@ -106,7 +106,7 @@ namespace AMDiS { ...@@ -106,7 +106,7 @@ namespace AMDiS {
* This function checks if the mesh has changed on at least on rank. In this case, * This function checks if the mesh has changed on at least on rank. In this case,
* the interior boundaries are adapted on all ranks such that they fit together on * the interior boundaries are adapted on all ranks such that they fit together on
* all ranks. Furthermore the function \ref updateLocalGlobalNumbering() is called * all ranks. Furthermore the function \ref updateLocalGlobalNumbering() is called
* to update the dof numberings and mappings on all rank due to the new mesh * to update the DOF numberings and mappings on all rank due to the new mesh
* structure. * structure.
* *
* \param[in] tryRepartition If this parameter is true, repartitioning may be * \param[in] tryRepartition If this parameter is true, repartitioning may be
...@@ -160,7 +160,7 @@ namespace AMDiS { ...@@ -160,7 +160,7 @@ namespace AMDiS {
return mapLocalGlobalDofs; return mapLocalGlobalDofs;
} }
/// Maps a local dof to its global index. /// Maps a local DOF to its global index.
inline DegreeOfFreedom mapLocalToGlobal(DegreeOfFreedom dof) inline DegreeOfFreedom mapLocalToGlobal(DegreeOfFreedom dof)
{ {
return mapLocalGlobalDofs[dof]; return mapLocalGlobalDofs[dof];
...@@ -168,7 +168,7 @@ namespace AMDiS { ...@@ -168,7 +168,7 @@ namespace AMDiS {
DegreeOfFreedom mapGlobalToLocal(DegreeOfFreedom dof); DegreeOfFreedom mapGlobalToLocal(DegreeOfFreedom dof);
/// Maps a local dof to its local index. /// Maps a local DOF to its local index.
inline DegreeOfFreedom mapLocalToDofIndex(DegreeOfFreedom dof) inline DegreeOfFreedom mapLocalToDofIndex(DegreeOfFreedom dof)
{ {
return mapLocalDofIndex[dof]; return mapLocalDofIndex[dof];
......
This diff is collapsed.
// ============================================================================
// == ==
// == AMDiS - Adaptive multidimensional simulations ==
// == ==
// == http://www.amdis-fem.org ==
// == ==
// ============================================================================
//
// Software License for AMDiS
//
// Copyright (c) 2010 Dresden University of Technology
// All rights reserved.
// Authors: Simon Vey, Thomas Witkowski et al.
//
// This file is part of AMDiS
//
// See also license.opensource.txt in the distribution.
/** \file PetscProblemStat.h */
#ifndef AMDIS_PETSC_PROBLEM_STAT_H
#define AMDIS_PETSC_PROBLEM_STAT_H
#include "AMDiS_fwd.h"
#include "Global.h"
#include "MeshDistributor.h"
#include "ProblemVec.h"
#include "ProblemInstat.h"
#include "ParallelProblemStatBase.h"
#include "petsc.h"
#include "petscsys.h"
#include "petscao.h"