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 187b7922 authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

FETI-DP and Rosenbrock methods work now together.

parent b26c7ec3
......@@ -12,7 +12,6 @@
#include "boost/lexical_cast.hpp"
#include "FileWriter.h"
#include "SystemVector.h"
#include "Initfile.h"
#include "ValueWriter.h"
#include "MacroWriter.h"
......
......@@ -160,7 +160,7 @@ namespace AMDiS {
DataCollector dc(values->getFeSpace(), values);
std::vector<DataCollector*> dcList(0);
dcList.push_back(&dc);
writeFile(dcList,filename,writeParallel);
writeFile(dcList, filename, writeParallel);
}
......
......@@ -13,6 +13,7 @@
#include <vector>
#include <set>
#include "io/VtkWriter.h"
#include "parallel/PetscProblemStat.h"
#include "parallel/PetscSolver.h"
#include "parallel/MpiHelper.h"
......
......@@ -1500,7 +1500,9 @@ namespace AMDiS {
solveFetiMatrix(vec);
} else {
solveReducedFetiMatrix(vec);
}
}
MeshDistributor::globalMeshDistributor->synchVector(vec);
}
......
......@@ -35,6 +35,7 @@ namespace AMDiS {
initConstructor(problemStat);
}
RosenbrockAdaptInstationary::RosenbrockAdaptInstationary(std::string name,
RosenbrockStationary &problemStat,
AdaptInfo &info,
......@@ -54,6 +55,7 @@ namespace AMDiS {
initConstructor(&problemStat);
}
void RosenbrockAdaptInstationary::initConstructor(RosenbrockStationary *problemStat)
{
std::string str;
......@@ -73,6 +75,7 @@ namespace AMDiS {
problemStat->setTau(&tau);
}
void RosenbrockAdaptInstationary::oneTimestep()
{
FUNCNAME("RosenbrockAdaptInstationary::oneTimestep()");
......@@ -162,7 +165,7 @@ namespace AMDiS {
INFO(info, 6)("time estimate for component %d = %e\n",
i, adaptInfo->getTimeEstSum(i));
if(errorEst > timeTol)
if (errorEst > timeTol)
WARNING("Accepted timestep but tolerance not reached \n" );
} else {
......@@ -192,6 +195,8 @@ namespace AMDiS {
adaptInfo->setLastProcessedTimestep(adaptInfo->getTimestep());
adaptInfo->incTimestepNumber();
MSG("ONE TIMESTEP!\n");
}
}
......@@ -17,6 +17,10 @@
#include "OEMSolver.h"
#include "Debug.h"
#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
#include "parallel/MeshDistributor.h"
#endif
namespace AMDiS {
void RosenbrockStationary::acceptTimestep()
......@@ -25,6 +29,7 @@ namespace AMDiS {
*unVec = *newUn;
}
void RosenbrockStationary::init()
{
stageSolution = new SystemVector(*solution);
......@@ -59,7 +64,7 @@ namespace AMDiS {
*newUn = *unVec;
*lowSol = *unVec;
for (int i = 0; i < rm->getStages(); i++) {
*stageSolution = *unVec;
for (int j = 0; j < i; j++) {
......@@ -79,7 +84,7 @@ namespace AMDiS {
*tmp *= (rm->getC(i, j) / *tauPtr);
*timeRhsVec += *tmp;
}
ProblemStat::buildAfterCoarsen(adaptInfo, flag, (i == 0), asmVector);
ProblemStat::solve(adaptInfo, i == 0, i + 1 < rm->getStages());
......@@ -87,6 +92,7 @@ namespace AMDiS {
*tmp = *solution;
*tmp *= rm->getM1(i);
*newUn += *tmp;
*tmp = *solution;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment