[cig-commits] [commit] master: Update comments in a couple of places. (afc56e9)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Fri Nov 14 14:12:19 PST 2014
Repository : https://github.com/geodynamics/aspect
On branch : master
Link : https://github.com/geodynamics/aspect/compare/4812dd65891608db0aa2a1b96dd6c083d000fd89...822ab1757dd06d1edde2754abfa69ba0a0774b9e
>---------------------------------------------------------------
commit afc56e964367dbaace65af96df92d43750fc9f6f
Author: Wolfgang Bangerth <bangerth at math.tamu.edu>
Date: Fri Nov 14 14:35:02 2014 -0600
Update comments in a couple of places.
>---------------------------------------------------------------
afc56e964367dbaace65af96df92d43750fc9f6f
source/simulator/solver.cc | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/source/simulator/solver.cc b/source/simulator/solver.cc
index dac5a13..6e7711c 100644
--- a/source/simulator/solver.cc
+++ b/source/simulator/solver.cc
@@ -264,6 +264,8 @@ namespace aspect
{
LinearAlgebra::Vector utmp(src.block(0));
+ // first solve with the bottom left block, which we have built
+ // as a mass matrix with the inverse of the viscosity
{
SolverControl solver_control(1000, 1e-6 * src.block(1).l2_norm());
@@ -294,7 +296,7 @@ namespace aspect
{
if (Utilities::MPI::this_mpi_process(src.block(0).get_mpi_communicator()) == 0)
AssertThrow (false,
- ExcMessage (std::string("The iterative solver in BlockSchurPreconditioner::vmult "
+ ExcMessage (std::string("The iterative (bottom right) solver in BlockSchurPreconditioner::vmult "
"did not converge. It reported the following error:\n\n")
+
exc.what()))
@@ -306,12 +308,16 @@ namespace aspect
dst.block(1) *= -1.0;
}
+ // apply the top right block
{
stokes_matrix.block(0,1).vmult(utmp, dst.block(1)); //B^T
utmp*=-1.0;
utmp.add(src.block(0));
}
+ // now either solve with the top left block (if do_solve_A==true)
+ // or just apply one preconditioner sweep (for the first few
+ // iterations of our two-stage outer GMRES iteration)
if (do_solve_A == true)
{
SolverControl solver_control(1000, utmp.l2_norm()*1e-2);
@@ -333,7 +339,7 @@ namespace aspect
{
if (Utilities::MPI::this_mpi_process(src.block(0).get_mpi_communicator()) == 0)
AssertThrow (false,
- ExcMessage (std::string("The iterative solver in BlockSchurPreconditioner::vmult "
+ ExcMessage (std::string("The iterative (top left) solver in BlockSchurPreconditioner::vmult "
"did not converge. It reported the following error:\n\n")
+
exc.what()))
More information about the CIG-COMMITS
mailing list