Skip to content
Snippets Groups Projects
Commit 22a92481 authored by Oliver Sander's avatar Oliver Sander Committed by sander@PCPOOL.MI.FU-BERLIN.DE
Browse files

mind the verbosity setting

[[Imported from SVN: r1614]]
parent efddce47
No related branches found
No related tags found
No related merge requests found
...@@ -216,17 +216,20 @@ void RodSolver<GridType>::solve() ...@@ -216,17 +216,20 @@ void RodSolver<GridType>::solve()
// ///////////////////////////////////////////////////// // /////////////////////////////////////////////////////
for (int i=0; i<maxTrustRegionSteps_; i++) { for (int i=0; i<maxTrustRegionSteps_; i++) {
std::cout << "----------------------------------------------------" << std::endl; if (this->verbosity_ == FULL) {
std::cout << " Trust-Region Step Number: " << i << std::endl; std::cout << "----------------------------------------------------" << std::endl;
std::cout << "----------------------------------------------------" << std::endl; std::cout << " Trust-Region Step Number: " << i << std::endl;
std::cout << "----------------------------------------------------" << std::endl;
std::cout << "### Trust-Region Radius: " << trustRegionRadius << " ###" << std::endl;
std::cout << "### Trust-Region Radius: " << trustRegionRadius << " ###" << std::endl;
}
CorrectionType rhs; CorrectionType rhs;
CorrectionType corr(x_.size()); CorrectionType corr(x_.size());
corr = 0; corr = 0;
std::cout << "Rod energy: " <<rodAssembler_->computeEnergy(x_) << std::endl; if (this->verbosity_ == FULL)
std::cout << "Rod energy: " <<rodAssembler_->computeEnergy(x_) << std::endl;
//rodAssembler_->assembleGradient(x_, rhs); //rodAssembler_->assembleGradient(x_, rhs);
rodAssembler_->assembleGradientFD(x_, rhs); rodAssembler_->assembleGradientFD(x_, rhs);
//rodAssembler_->assembleMatrix(x_, *hessianMatrix_); //rodAssembler_->assembleMatrix(x_, *hessianMatrix_);
...@@ -323,10 +326,15 @@ void RodSolver<GridType>::solve() ...@@ -323,10 +326,15 @@ void RodSolver<GridType>::solve()
} }
if (this->verbosity_ == FULL)
printf("infinity norm of the correction: %g\n", corr.infinity_norm());
printf("infinity norm of the correction: %g\n", corr.infinity_norm());
if (corr.infinity_norm() < tolerance_) { if (corr.infinity_norm() < tolerance_) {
std::cout << "CORRECTION IS SMALL ENOUGH" << std::endl; if (this->verbosity_ == FULL)
std::cout << "CORRECTION IS SMALL ENOUGH" << std::endl;
if (this->verbosity_ != QUIET)
std::cout << i+1 << " trust-region steps were taken." << std::endl;
break; break;
} }
...@@ -359,19 +367,23 @@ void RodSolver<GridType>::solve() ...@@ -359,19 +367,23 @@ void RodSolver<GridType>::solve()
hessianMatrix_->umv(corr, tmp); hessianMatrix_->umv(corr, tmp);
double modelDecrease = (rhs*corr) - 0.5 * (corr*tmp); double modelDecrease = (rhs*corr) - 0.5 * (corr*tmp);
std::cout << "Model decrease: " << modelDecrease if (this->verbosity_ == FULL)
<< ", functional decrease: " << oldEnergy - energy << std::endl; std::cout << "Model decrease: " << modelDecrease
<< ", functional decrease: " << oldEnergy - energy << std::endl;
assert(modelDecrease >= 0); assert(modelDecrease >= 0);
if (energy >= oldEnergy) { if (energy >= oldEnergy) {
printf("Richtung ist keine Abstiegsrichtung!\n"); if (this->verbosity_ == FULL)
// std::cout << "old energy: " << oldEnergy << " new energy: " << energy << std::endl; printf("Richtung ist keine Abstiegsrichtung!\n");
// exit(0);
} }
if (std::abs(oldEnergy-energy) < 1e-12 || modelDecrease < 1e-10) { if (std::abs(oldEnergy-energy) < 1e-12 || modelDecrease < 1e-10) {
std::cout << "Suspecting rounding problems" << std::endl; if (this->verbosity_ == FULL)
std::cout << "Suspecting rounding problems" << std::endl;
if (this->verbosity_ != QUIET)
std::cout << i+1 << " trust-region steps were taken." << std::endl;
break; break;
} }
...@@ -392,11 +404,13 @@ void RodSolver<GridType>::solve() ...@@ -392,11 +404,13 @@ void RodSolver<GridType>::solve()
} else { } else {
// unsuccessful iteration // unsuccessful iteration
trustRegionRadius /= 2; trustRegionRadius /= 2;
std::cout << "Unsuccessful iteration!" << std::endl; if (this->verbosity_ == FULL)
std::cout << "Unsuccessful iteration!" << std::endl;
} }
// Write current energy // Write current energy
std::cout << "--- Current energy: " << energy << " ---" << std::endl; if (this->verbosity_ == FULL)
std::cout << "--- Current energy: " << energy << " ---" << std::endl;
// ///////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////
// Write the iterate to disk for later convergence rate measurement // Write the iterate to disk for later convergence rate measurement
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment