Skip to content
Snippets Groups Projects
Commit 12ce2c58 authored by Elias Pipping's avatar Elias Pipping
Browse files

[Algorit] Kill damping

parent f592a86a
No related branches found
No related tags found
No related merge requests found
......@@ -60,8 +60,6 @@ verbosity = quiet
[v.fpi]
tolerance = 1e-10
maximumIterations = 10000
relaxation = 0.5
requiredReduction = 0.5
lambda = 0.5
[solver.tnnmg.linear]
......
......@@ -340,8 +340,7 @@ int main(int argc, char *argv[]) {
dirichletNodes);
auto multigridStep = factory.getSolver();
std::fstream iterationWriter("iterations", std::fstream::out),
relaxationWriter("relaxation", std::fstream::out);
std::fstream iterationWriter("iterations", std::fstream::out);
auto timeSteppingScheme = initTimeStepper(
parset.get<Config::scheme>("timeSteps.scheme"),
......@@ -363,10 +362,7 @@ int main(int argc, char *argv[]) {
parset.get<size_t>("v.solver.maximumIterations");
auto const tau = parset.get<double>("problem.finalTime") / timeSteps,
tolerance = parset.get<double>("v.solver.tolerance"),
fixedPointTolerance = parset.get<double>("v.fpi.tolerance"),
relaxation = parset.get<double>("v.fpi.relaxation"),
requiredReduction =
parset.get<double>("v.fpi.requiredReduction");
fixedPointTolerance = parset.get<double>("v.fpi.tolerance");
auto const printProgress = parset.get<bool>("io.printProgress");
auto const verbosity =
parset.get<Solver::VerbosityMode>("v.solver.verbosity");
......@@ -413,8 +409,6 @@ int main(int argc, char *argv[]) {
Vector u;
Vector v_saved;
ScalarVector alpha_saved;
double lastStateCorrection;
for (size_t stateFPI = 1; stateFPI <= maximumStateFPI; ++stateFPI) {
timeSteppingScheme->extractOldVelocity(v_m);
v_m *= 1.0 - lambda;
......@@ -423,22 +417,6 @@ int main(int argc, char *argv[]) {
stateUpdater->solve(v_m);
stateUpdater->extractAlpha(alpha);
if (stateFPI == 1)
relaxationWriter << "N ";
else {
double const stateCorrection =
stateEnergyNorm.diff(alpha, alpha_saved);
if (stateFPI <= 2 // lastStateCorrection is only set for stateFPI > 2
or stateCorrection < requiredReduction * lastStateCorrection)
relaxationWriter << "N ";
else {
alpha *= (1.0 - relaxation);
Arithmetic::addProduct(alpha, relaxation, alpha_saved);
relaxationWriter << "Y ";
}
lastStateCorrection = stateCorrection;
}
solveVelocityProblem(velocityIterate, alpha);
timeSteppingScheme->postProcess(velocityIterate);
timeSteppingScheme->extractDisplacement(u);
......@@ -456,7 +434,6 @@ int main(int argc, char *argv[]) {
if (stateFPI == maximumStateFPI)
DUNE_THROW(Dune::Exception, "FPI failed to converge");
alpha_saved = alpha;
v_saved = v;
}
if (printProgress)
......@@ -470,7 +447,6 @@ int main(int argc, char *argv[]) {
report(ur, vr, alpha);
iterationWriter << std::endl;
relaxationWriter << std::endl;
{
BasisGridFunction<typename MyAssembler::VertexBasis, Vector>
......@@ -489,7 +465,6 @@ int main(int argc, char *argv[]) {
}
}
iterationWriter.close();
relaxationWriter.close();
Python::stop();
}
......
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