#include "AdaptStationary.h" #include "Parameters.h" #include "Estimator.h" #include "TecPlotWriter.h" #include "ProblemIterationInterface.h" #include <math.h> namespace AMDiS { AdaptStationary::AdaptStationary(const char *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(); } // adaption loop while (!adaptInfo_->spaceToleranceReached() && (adaptInfo_->getSpaceIteration() < adaptInfo_->getMaxSpaceIteration() || adaptInfo_->getMaxSpaceIteration() < 0) ) { problemIteration_->beginIteration(adaptInfo_); Flag adapted = problemIteration_->oneIteration(adaptInfo_, FULL_ITERATION); problemIteration_->endIteration(adaptInfo_); if (!adapted) break; adaptInfo_->incSpaceIteration(); } return 0; } void AdaptStationary::initialize() { FUNCNAME("AdaptStationary::initialize()"); GET_PARAMETER(0, name_ + "->info", "%d", &info_); } }