Liebe Gitlab-Nutzer, lieber Gitlab-Nutzer,
es ist nun möglich sich mittels des ZIH-Logins/LDAP an unserem Dienst anzumelden. Die Konten der externen Nutzer:innen sind ü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. The accounts of external users can be accessed via the "Standard" tab.
The administrators

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

Work on PETSc solver structur. Removed all OpenMP stuff.

parent 2ddb447b
......@@ -121,7 +121,6 @@ SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc
${SOURCE_DIR}/RefinementManager2d.cc
${SOURCE_DIR}/RefinementManager3d.cc
${SOURCE_DIR}/ResidualEstimator.cc
${SOURCE_DIR}/ResidualParallelEstimator.cc
${SOURCE_DIR}/RobinBC.cc
${SOURCE_DIR}/ScalableQuadrature.cc
${SOURCE_DIR}/SecondOrderAssembler.cc
......@@ -134,7 +133,6 @@ SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc
${SOURCE_DIR}/SurfaceQuadrature.cc
${SOURCE_DIR}/Tetrahedron.cc
${SOURCE_DIR}/Traverse.cc
${SOURCE_DIR}/TraverseParallel.cc
${SOURCE_DIR}/Triangle.cc
${SOURCE_DIR}/VertexVector.cc
${SOURCE_DIR}/ZeroOrderAssembler.cc
......
......@@ -44,7 +44,7 @@ available_tags=" CXX F77"
# ### BEGIN LIBTOOL CONFIG
# Libtool was configured on host p1q024:
# Libtool was configured on host deimos101:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
......@@ -6760,7 +6760,7 @@ build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
# End:
# ### BEGIN LIBTOOL TAG CONFIG: CXX
# Libtool was configured on host p1q024:
# Libtool was configured on host deimos101:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
......@@ -7065,7 +7065,7 @@ include_expsyms=""
# ### BEGIN LIBTOOL TAG CONFIG: F77
# Libtool was configured on host p1q024:
# Libtool was configured on host deimos101:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
......
......@@ -18,7 +18,6 @@
#include "Element.h"
#include "QPsiPhi.h"
#include "DOFVector.h"
#include "OpenMP.h"
namespace AMDiS {
......
......@@ -32,13 +32,12 @@
#define AMDIS_ASSEMBLER_H
#include <vector>
#include "AMDiS_fwd.h"
#include "FixVec.h"
#include "ZeroOrderAssembler.h"
#include "FirstOrderAssembler.h"
#include "SecondOrderAssembler.h"
#include "ElInfo.h"
#include "OpenMP.h"
#include "AMDiS_fwd.h"
namespace AMDiS {
......
......@@ -16,7 +16,6 @@
#include "DOFVector.h"
#include "BasisFunction.h"
#include "Lagrange.h"
#include "OpenMP.h"
namespace AMDiS {
......
......@@ -207,15 +207,10 @@ namespace AMDiS {
TEST_EXIT(dofIndexed)("no dofIndexed\n");
#ifdef _OPENMP
#pragma omp critical (dofIndexAccess)
#endif
{
if (dofIndexed->getSize() < size)
dofIndexed->resize(size);
dofIndexedList.push_back(dofIndexed);
}
if (dofIndexed->getSize() < size)
dofIndexed->resize(size);
dofIndexedList.push_back(dofIndexed);
}
......@@ -224,18 +219,13 @@ namespace AMDiS {
FUNCNAME("DOFAdmin::removeDOFIndexed()");
bool removed = false;
#ifdef _OPENMP
#pragma omp critical (dofIndexAccess)
#endif
{
std::list<DOFIndexedBase*>::iterator it;
std::list<DOFIndexedBase*>::iterator end = dofIndexedList.end();
for (it = dofIndexedList.begin(); it != end; ++it) {
if (*it == dofIndexed) {
dofIndexedList.erase(it);
removed = true;
break;
}
std::list<DOFIndexedBase*>::iterator it;
std::list<DOFIndexedBase*>::iterator end = dofIndexedList.end();
for (it = dofIndexedList.begin(); it != end; ++it) {
if (*it == dofIndexed) {
dofIndexedList.erase(it);
removed = true;
break;
}
}
......
......@@ -35,7 +35,6 @@
#include "Global.h"
#include "FixVec.h"
#include "Serializable.h"
#include "OpenMP.h"
#include "AMDiS_fwd.h"
namespace AMDiS {
......
......@@ -157,10 +157,6 @@ namespace AMDiS {
{
FUNCNAME("DOFVector<double>::getRecoveryGradient()");
#ifdef _OPENMP
ERROR_EXIT("Using static variable while using OpenMP parallelization!\n");
#endif
// define result vector
static DOFVector<WorldVector<double> > *vec = NULL;
......@@ -614,10 +610,6 @@ namespace AMDiS {
{
FUNCNAME("DOFVector<double>::getGradient()");
#ifdef _OPENMP
ERROR_EXIT("Using static variable while using OpenMP parallelization!\n");
#endif
Mesh *mesh = feSpace->getMesh();
int dim = mesh->getDim();
int dow = Global::getGeo(WORLD);
......
......@@ -826,26 +826,9 @@ namespace AMDiS {
("y.size = %d too small: admin->size = %d\n", y.getSize(),
admin->getUsedSize());
// This is the old implementation of the mv-multiplication. It have been changed
// because of the OpenMP-parallelization:
// typename DOFVector<T>::Iterator xIterator(dynamic_cast<DOFIndexed<T>*>(const_cast<DOFVector<T>*>(&x)), USED_DOFS);
// typename DOFVector<T>::Iterator yIterator(dynamic_cast<DOFIndexed<T>*>(&y), USED_DOFS);
// for(xIterator.reset(), yIterator.reset();
// !xIterator.end();
// ++xIterator, ++yIterator)
// {
// *yIterator += alpha * (*xIterator);
// };
int i;
int maxI = y.getSize();
#ifdef _OPENMP
#pragma omp parallel for schedule(dynamic, 25000) default(shared) private(i)
#endif
for (i = 0; i < maxI; i++)
if (!admin->isDofFree(i))
y[i] += alpha * x[i];
for (int i = 0; i < y.getSize(); i++)
if (!admin->isDofFree(i))
y[i] += alpha * x[i];
}
template<typename T>
......@@ -892,26 +875,9 @@ namespace AMDiS {
("y.size = %d too small: admin->size = %d\n", y.getSize(),
admin->getUsedSize());
// This is the old implementation of the mv-multiplication. It have been changed
// because of the OpenMP-parallelization:
// typename DOFVector<T>::Iterator xIterator(dynamic_cast<DOFIndexed<T>*>(const_cast<DOFVector<T>*>(&x)), USED_DOFS);
// typename DOFVector<T>::Iterator yIterator(dynamic_cast<DOFIndexed<T>*>(&y), USED_DOFS);
// for(xIterator.reset(), yIterator.reset();
// !xIterator.end();
// ++xIterator, ++yIterator)
// {
// *yIterator = alpha *(*yIterator)+ (*xIterator);
// };
int i;
int maxI = y.getSize();
#ifdef _OPENMP
#pragma omp parallel for schedule(dynamic, 25000) default(shared) private(i)
#endif
for (i = 0; i < maxI; i++)
if (!admin->isDofFree(i))
y[i] = alpha * y[i] + x[i];
for (int i = 0; i < y.getSize(); i++)
if (!admin->isDofFree(i))
y[i] = alpha * y[i] + x[i];
}
template<typename T>
......
......@@ -19,7 +19,6 @@
#include "FiniteElemSpace.h"
#include "Quadrature.h"
#include "DOFVector.h"
#include "OpenMP.h"
namespace AMDiS {
......@@ -266,16 +265,11 @@ namespace AMDiS {
const double *values;
if (firstCall) {
#ifdef _OPENMP
#pragma omp critical
#endif
{
q10 = Q10PsiPhi::provideQ10PsiPhi(rowFeSpace->getBasisFcts(),
colFeSpace->getBasisFcts(),
quadrature);
q1 = Q1Psi::provideQ1Psi(rowFeSpace->getBasisFcts(), quadrature);
firstCall = false;
}
q10 = Q10PsiPhi::provideQ10PsiPhi(rowFeSpace->getBasisFcts(),
colFeSpace->getBasisFcts(),
quadrature);
q1 = Q1Psi::provideQ1Psi(rowFeSpace->getBasisFcts(), quadrature);
firstCall = false;
}
const int **nEntries = q10->getNumberEntries();
......@@ -353,16 +347,11 @@ namespace AMDiS {
void Quad01::calculateElementMatrix(const ElInfo *elInfo, ElementMatrix& mat)
{
if (firstCall) {
#ifdef _OPENMP
#pragma omp critical
#endif
{
const BasisFunction *basFcts = rowFeSpace->getBasisFcts();
psiFast = updateFastQuadrature(psiFast, basFcts, INIT_PHI);
basFcts = colFeSpace->getBasisFcts();
phiFast = updateFastQuadrature(phiFast, basFcts, INIT_GRD_PHI);
firstCall = false;
}
const BasisFunction *basFcts = rowFeSpace->getBasisFcts();
psiFast = updateFastQuadrature(psiFast, basFcts, INIT_PHI);
basFcts = colFeSpace->getBasisFcts();
phiFast = updateFastQuadrature(phiFast, basFcts, INIT_GRD_PHI);
firstCall = false;
}
int nPoints = quadrature->getNumPoints();
......@@ -406,16 +395,11 @@ namespace AMDiS {
const double *values;
if (firstCall) {
#ifdef _OPENMP
#pragma omp critical
#endif
{
q01 = Q01PsiPhi::provideQ01PsiPhi(rowFeSpace->getBasisFcts(),
colFeSpace->getBasisFcts(),
quadrature);
q1 = Q1Psi::provideQ1Psi(rowFeSpace->getBasisFcts(), quadrature);
firstCall = false;
}
q01 = Q01PsiPhi::provideQ01PsiPhi(rowFeSpace->getBasisFcts(),
colFeSpace->getBasisFcts(),
quadrature);
q1 = Q1Psi::provideQ1Psi(rowFeSpace->getBasisFcts(), quadrature);
firstCall = false;
}
const int **nEntries = q01->getNumberEntries();
......@@ -447,16 +431,11 @@ namespace AMDiS {
const double *values;
if (firstCall) {
#ifdef _OPENMP
#pragma omp critical
#endif
{
q10 = Q10PsiPhi::provideQ10PsiPhi(rowFeSpace->getBasisFcts(),
colFeSpace->getBasisFcts(),
quadrature);
q1 = Q1Psi::provideQ1Psi(rowFeSpace->getBasisFcts(), quadrature);
firstCall = false;
}
q10 = Q10PsiPhi::provideQ10PsiPhi(rowFeSpace->getBasisFcts(),
colFeSpace->getBasisFcts(),
quadrature);
q1 = Q1Psi::provideQ1Psi(rowFeSpace->getBasisFcts(), quadrature);
firstCall = false;
}
const int *nEntries = q1->getNumberEntries();
......
......@@ -932,9 +932,6 @@ namespace AMDiS {
if (indices) {
result = indices;
} else {
#ifdef _OPENMP
ERROR_EXIT("Using static variable while using OpenMP parallelization!\n");
#endif
if (localVec && nBasFcts > localVecSize) {
delete [] localVec;
localVec = new DegreeOfFreedom[nBasFcts];
......
......@@ -152,7 +152,6 @@ NonLinSolver.h \
NonLinSolver.hh \
NonLinUpdater.h \
OEMSolver.h \
OpenMP.h \
Operator.h \
Operator.hh \
OperatorTerm.h \
......@@ -187,7 +186,6 @@ RefinementManager1d.h \
RefinementManager2d.h \
RefinementManager3d.h \
ResidualEstimator.h \
ResidualParallelEstimator.h \
RobinBC.h \
RobinBC.hh \
ScalableQuadrature.h \
......@@ -211,7 +209,6 @@ SystemVector.h \
Tetrahedron.h \
TimedObject.h \
Traverse.h \
TraverseParallel.h \
Triangle.h \
UmfPackSolver.h \
VertexInfo.h \
......@@ -354,7 +351,6 @@ RefinementManager1d.cc \
RefinementManager2d.cc \
RefinementManager3d.cc \
ResidualEstimator.cc \
ResidualParallelEstimator.cc \
RobinBC.cc \
ScalableQuadrature.cc \
SecondOrderAssembler.cc \
......@@ -367,7 +363,6 @@ SubQuadrature.cc \
SurfaceQuadrature.cc \
Tetrahedron.cc \
Traverse.cc \
TraverseParallel.cc \
Triangle.cc \
VertexVector.cc \
ZeroOrderAssembler.cc \
......
......@@ -118,18 +118,17 @@ am__libamdis_la_SOURCES_DIST = parallel/CheckerPartitioner.cc \
RCNeighbourList.cc Recovery.cc RecoveryEstimator.cc \
RefinementManager.cc RefinementManager1d.cc \
RefinementManager2d.cc RefinementManager3d.cc \
ResidualEstimator.cc ResidualParallelEstimator.cc RobinBC.cc \
ScalableQuadrature.cc SecondOrderAssembler.cc \
SecondOrderTerm.cc Serializer.cc StandardProblemIteration.cc \
SubAssembler.cc SubElInfo.cc SubQuadrature.cc \
SurfaceQuadrature.cc Tetrahedron.cc Traverse.cc \
TraverseParallel.cc Triangle.cc VertexVector.cc \
ZeroOrderAssembler.cc ZeroOrderTerm.cc io/ArhReader.cc \
io/ArhWriter.cc io/DataCollector.cc io/DofWriter.cc \
io/ElementFileWriter.cc io/FileWriter.cc io/GNUPlotWriter.cc \
io/MacroInfo.cc io/MacroReader.cc io/MacroWriter.cc \
io/PngWriter.cc io/PovrayWriter.cc io/ValueReader.cc \
io/ValueWriter.cc io/VtkWriter.cc parallel/InteriorBoundary.cc \
ResidualEstimator.cc RobinBC.cc ScalableQuadrature.cc \
SecondOrderAssembler.cc SecondOrderTerm.cc Serializer.cc \
StandardProblemIteration.cc SubAssembler.cc SubElInfo.cc \
SubQuadrature.cc SurfaceQuadrature.cc Tetrahedron.cc \
Traverse.cc Triangle.cc VertexVector.cc ZeroOrderAssembler.cc \
ZeroOrderTerm.cc io/ArhReader.cc io/ArhWriter.cc \
io/DataCollector.cc io/DofWriter.cc io/ElementFileWriter.cc \
io/FileWriter.cc io/GNUPlotWriter.cc io/MacroInfo.cc \
io/MacroReader.cc io/MacroWriter.cc io/PngWriter.cc \
io/PovrayWriter.cc io/ValueReader.cc io/ValueWriter.cc \
io/VtkWriter.cc parallel/InteriorBoundary.cc \
time/RosenbrockAdaptInstationary.cc time/RosenbrockMethod.cc \
time/RosenbrockStationary.cc
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@am__objects_1 = libamdis_la-CheckerPartitioner.lo \
......@@ -187,26 +186,24 @@ am_libamdis_la_OBJECTS = $(am__objects_3) libamdis_la-AdaptBase.lo \
libamdis_la-RefinementManager1d.lo \
libamdis_la-RefinementManager2d.lo \
libamdis_la-RefinementManager3d.lo \
libamdis_la-ResidualEstimator.lo \
libamdis_la-ResidualParallelEstimator.lo \
libamdis_la-RobinBC.lo libamdis_la-ScalableQuadrature.lo \
libamdis_la-ResidualEstimator.lo libamdis_la-RobinBC.lo \
libamdis_la-ScalableQuadrature.lo \
libamdis_la-SecondOrderAssembler.lo \
libamdis_la-SecondOrderTerm.lo libamdis_la-Serializer.lo \
libamdis_la-StandardProblemIteration.lo \
libamdis_la-SubAssembler.lo libamdis_la-SubElInfo.lo \
libamdis_la-SubQuadrature.lo libamdis_la-SurfaceQuadrature.lo \
libamdis_la-Tetrahedron.lo libamdis_la-Traverse.lo \
libamdis_la-TraverseParallel.lo libamdis_la-Triangle.lo \
libamdis_la-VertexVector.lo libamdis_la-ZeroOrderAssembler.lo \
libamdis_la-ZeroOrderTerm.lo libamdis_la-ArhReader.lo \
libamdis_la-ArhWriter.lo libamdis_la-DataCollector.lo \
libamdis_la-DofWriter.lo libamdis_la-ElementFileWriter.lo \
libamdis_la-FileWriter.lo libamdis_la-GNUPlotWriter.lo \
libamdis_la-MacroInfo.lo libamdis_la-MacroReader.lo \
libamdis_la-MacroWriter.lo libamdis_la-PngWriter.lo \
libamdis_la-PovrayWriter.lo libamdis_la-ValueReader.lo \
libamdis_la-ValueWriter.lo libamdis_la-VtkWriter.lo \
libamdis_la-InteriorBoundary.lo \
libamdis_la-Triangle.lo libamdis_la-VertexVector.lo \
libamdis_la-ZeroOrderAssembler.lo libamdis_la-ZeroOrderTerm.lo \
libamdis_la-ArhReader.lo libamdis_la-ArhWriter.lo \
libamdis_la-DataCollector.lo libamdis_la-DofWriter.lo \
libamdis_la-ElementFileWriter.lo libamdis_la-FileWriter.lo \
libamdis_la-GNUPlotWriter.lo libamdis_la-MacroInfo.lo \
libamdis_la-MacroReader.lo libamdis_la-MacroWriter.lo \
libamdis_la-PngWriter.lo libamdis_la-PovrayWriter.lo \
libamdis_la-ValueReader.lo libamdis_la-ValueWriter.lo \
libamdis_la-VtkWriter.lo libamdis_la-InteriorBoundary.lo \
libamdis_la-RosenbrockAdaptInstationary.lo \
libamdis_la-RosenbrockMethod.lo \
libamdis_la-RosenbrockStationary.lo
......@@ -475,7 +472,6 @@ NonLinSolver.h \
NonLinSolver.hh \
NonLinUpdater.h \
OEMSolver.h \
OpenMP.h \
Operator.h \
Operator.hh \
OperatorTerm.h \
......@@ -510,7 +506,6 @@ RefinementManager1d.h \
RefinementManager2d.h \
RefinementManager3d.h \
ResidualEstimator.h \
ResidualParallelEstimator.h \
RobinBC.h \
RobinBC.hh \
ScalableQuadrature.h \
......@@ -534,7 +529,6 @@ SystemVector.h \
Tetrahedron.h \
TimedObject.h \
Traverse.h \
TraverseParallel.h \
Triangle.h \
UmfPackSolver.h \
VertexInfo.h \
......@@ -677,7 +671,6 @@ RefinementManager1d.cc \
RefinementManager2d.cc \
RefinementManager3d.cc \
ResidualEstimator.cc \
ResidualParallelEstimator.cc \
RobinBC.cc \
ScalableQuadrature.cc \
SecondOrderAssembler.cc \
......@@ -690,7 +683,6 @@ SubQuadrature.cc \
SurfaceQuadrature.cc \
Tetrahedron.cc \
Traverse.cc \
TraverseParallel.cc \
Triangle.cc \
VertexVector.cc \
ZeroOrderAssembler.cc \
......@@ -911,7 +903,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-RefinementManager2d.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-RefinementManager3d.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-ResidualEstimator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-ResidualParallelEstimator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-RobinBC.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-RosenbrockAdaptInstationary.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-RosenbrockMethod.Plo@am__quote@
......@@ -928,7 +919,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-SurfaceQuadrature.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-Tetrahedron.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-Traverse.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-TraverseParallel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-Triangle.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-ValueReader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libamdis_la-ValueWriter.Plo@am__quote@
......@@ -1569,13 +1559,6 @@ libamdis_la-ResidualEstimator.lo: ResidualEstimator.cc
@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-ResidualEstimator.lo `test -f 'ResidualEstimator.cc' || echo '$(srcdir)/'`ResidualEstimator.cc
libamdis_la-ResidualParallelEstimator.lo: ResidualParallelEstimator.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-ResidualParallelEstimator.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-ResidualParallelEstimator.Tpo" -c -o libamdis_la-ResidualParallelEstimator.lo `test -f 'ResidualParallelEstimator.cc' || echo '$(srcdir)/'`ResidualParallelEstimator.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-ResidualParallelEstimator.Tpo" "$(DEPDIR)/libamdis_la-ResidualParallelEstimator.Plo"; else rm -f "$(DEPDIR)/libamdis_la-ResidualParallelEstimator.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ResidualParallelEstimator.cc' object='libamdis_la-ResidualParallelEstimator.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-ResidualParallelEstimator.lo `test -f 'ResidualParallelEstimator.cc' || echo '$(srcdir)/'`ResidualParallelEstimator.cc
libamdis_la-RobinBC.lo: RobinBC.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-RobinBC.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-RobinBC.Tpo" -c -o libamdis_la-RobinBC.lo `test -f 'RobinBC.cc' || echo '$(srcdir)/'`RobinBC.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-RobinBC.Tpo" "$(DEPDIR)/libamdis_la-RobinBC.Plo"; else rm -f "$(DEPDIR)/libamdis_la-RobinBC.Tpo"; exit 1; fi
......@@ -1660,13 +1643,6 @@ libamdis_la-Traverse.lo: Traverse.cc
@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-Traverse.lo `test -f 'Traverse.cc' || echo '$(srcdir)/'`Traverse.cc
libamdis_la-TraverseParallel.lo: TraverseParallel.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-TraverseParallel.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-TraverseParallel.Tpo" -c -o libamdis_la-TraverseParallel.lo `test -f 'TraverseParallel.cc' || echo '$(srcdir)/'`TraverseParallel.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-TraverseParallel.Tpo" "$(DEPDIR)/libamdis_la-TraverseParallel.Plo"; else rm -f "$(DEPDIR)/libamdis_la-TraverseParallel.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='TraverseParallel.cc' object='libamdis_la-TraverseParallel.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-TraverseParallel.lo `test -f 'TraverseParallel.cc' || echo '$(srcdir)/'`TraverseParallel.cc
libamdis_la-Triangle.lo: Triangle.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-Triangle.lo -MD -MP -MF "$(DEPDIR)/libamdis_la-Triangle.Tpo" -c -o libamdis_la-Triangle.lo `test -f 'Triangle.cc' || echo '$(srcdir)/'`Triangle.cc; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libamdis_la-Triangle.Tpo" "$(DEPDIR)/libamdis_la-Triangle.Plo"; else rm -f "$(DEPDIR)/libamdis_la-Triangle.Tpo"; exit 1; fi
......
// ============================================================================
// == ==
// == 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 OpenMP.h */
#ifndef AMDIS_OPENMP_H
#define AMDIS_OPENMP_H
#ifdef _OPENMP
#include <algorithm>
#include <omp.h>
const bool amdisHaveOpenMP = true;
inline int omp_get_overall_max_threads()
{
return std::max(omp_get_max_threads(), omp_get_num_threads());
}
#else
const bool amdisHaveOpenMP = false;
inline int omp_get_max_threads()
{
return 1;
}
inline int omp_get_num_procs()
{
return 1;
}
inline int omp_get_num_threads()
{
return 1;
}
inline int omp_get_thread_num()
{
return 0;
}
inline int omp_get_overall_max_threads()
{
return 1;
}
#endif
#endif
......@@ -30,7 +30,6 @@
#include "MatrixVector.h"
#include "ElInfo.h"
#include "AbstractFunction.h"
#include "OpenMP.h"
#include "SubAssembler.h"
#include "OperatorTerm.h"
#include "ZeroOrderTerm.h"
......
......@@ -243,23 +243,14 @@ namespace AMDiS {
return;
}
#ifdef _OPENMP
double wtime = omp_get_wtime();
#endif
clock_t first = clock();
SolverMatrix<DOFMatrix> solverMatrix;
solverMatrix.setMatrix(*systemMatrix);
solver->solveSystem(solverMatrix, *solution, *rhs);
#ifdef _OPENMP
INFO(info, 8)("solution of discrete system needed %.5f seconds system time / %.5f seconds wallclock time\n",
TIME_USED(first, clock()),
omp_get_wtime() - wtime);
#else
INFO(info, 8)("solution of discrete system needed %.5f seconds\n",
TIME_USED(first, clock()));
#endif
adaptInfo->setSolverIterations(solver->getIterations());
adaptInfo->setMaxSolverIterations(solver->getMaxIterations());
......
......@@ -34,7 +34,6 @@
#include "PeriodicBC.h"
#include "Lagrange.h"
#include "Flag.h"
#include "TraverseParallel.h"
#include "io/VtkWriter.h"
#include "io/ValueReader.h"
#include "ProblemVecDbg.h"
......@@ -510,21 +509,12 @@ namespace AMDiS {