Newer
Older
#include "AdaptStationary.h"
#include "Parameters.h"
#include "Estimator.h"
#include "TecPlotWriter.h"
#include "ProblemIterationInterface.h"
#include <math.h>
namespace AMDiS {
ProblemIterationInterface *prob,
: AdaptBase(name, prob, info)
{
FUNCNAME("AdaptStationary::AdaptStationary()");
// MSG("You make use of the obsolete constructor AdaptStationary::AdaptStationary(...)!\n");
// MSG("Please use the constructor that uses references instead of pointers!\n");
initialize();
}
AdaptStationary::AdaptStationary(std::string name,
ProblemIterationInterface& prob,
AdaptInfo& info)
: AdaptBase(name, &prob, &info)
{
initialize();
}
int AdaptStationary::adapt()
{
FUNCNAME("AdaptStationary::adapt()");
// initial iteration
if (adaptInfo->getSpaceIteration() == -1) {
problemIteration_->beginIteration(adaptInfo);
problemIteration_->oneIteration(adaptInfo, NO_ADAPTION);
problemIteration_->endIteration(adaptInfo);
adaptInfo->incSpaceIteration();
while (!adaptInfo->spaceToleranceReached() &&
(adaptInfo->getSpaceIteration() < adaptInfo->getMaxSpaceIteration() ||
adaptInfo->getMaxSpaceIteration() < 0) ) {

Thomas Witkowski
committed
problemIteration_->beginIteration(adaptInfo);
Flag adapted = problemIteration_->oneIteration(adaptInfo, FULL_ITERATION);
problemIteration_->endIteration(adaptInfo);

Thomas Witkowski
committed
if (!adapted)
break;

Thomas Witkowski
committed
}
return 0;
}
void AdaptStationary::initialize()
{
FUNCNAME("AdaptStationary::initialize()");