Skip to content
Snippets Groups Projects
Commit 187b7922 authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

FETI-DP and Rosenbrock methods work now together.

parent b26c7ec3
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment