diff --git a/src/sand-wedge-data/parset.cfg b/src/sand-wedge-data/parset.cfg index f6ad4f3442f4258666eca9aeadc4bcb503a27638..0becf2b53bd71ae9765a8b5df39cbdb7be77ba96 100644 --- a/src/sand-wedge-data/parset.cfg +++ b/src/sand-wedge-data/parset.cfg @@ -61,6 +61,7 @@ tolerance = 1e-10 maximumIterations = 10000 relaxation = 0.5 requiredReduction = 0.5 +lambda = 0.5 [solver.tnnmg.linear] maxiumumIterations = 100000 diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc index c58817d7c07172122977187f7535d68e0486efb7..65f2ec000da34f3f63e5b0a3959827f42b2f9b65 100644 --- a/src/sand-wedge.cc +++ b/src/sand-wedge.cc @@ -369,6 +369,7 @@ int main(int argc, char *argv[]) { auto const printProgress = parset.get<bool>("io.printProgress"); auto const verbosity = parset.get<Solver::VerbosityMode>("v.solver.verbosity"); + auto const lambda = parset.get<double>("v.fpi.lambda"); for (size_t timeStep = 1; timeStep <= timeSteps; ++timeStep) { if (printProgress) std::cout << std::setw(7) << timeStep << " " << std::flush; @@ -415,8 +416,8 @@ int main(int argc, char *argv[]) { double lastStateCorrection; for (size_t stateFPI = 1; stateFPI <= maximumStateFPI; ++stateFPI) { timeSteppingScheme->extractOldVelocity(v_m); - v_m *= 0.5; - Arithmetic::addProduct(v_m, 0.5, v); + v_m *= 1.0 - lambda; + Arithmetic::addProduct(v_m, lambda, v); stateUpdater->solve(v_m); stateUpdater->extractLogState(alpha);