<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Oxygen Mono'; font-size:9pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Thanks Matt,</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">I use the "natural scaling"  of the Laplacian Lapl * x  = b. The grid is *still* uniform.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">I give you a couple of results:</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1 ) This is e.g. gmres + gamg + 4 levels. As you can see it converges after 2 iterations which is totally strange. The solution is incorrect.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2 ) This is mg + galerkin matrices + levels. Result is incorrect</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3 ) Default: works fine</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4) LU: works fine</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">I remove the constant nullspace as usual.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">I use the usual setcomputeoperator business and compute rhs.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Instead, if I scale to Lapl * dx * dy * x = b * dx * dy (things work fine also with MG). This is fine with uniform grid but  I do not know how to do that properly on nonuniform.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Let me know if you need code pieces or other details.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1)</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'monospace'; color:#000000; background-color:#ffffff;"> 0 KSP Residual norm 1.793027353791e-05  </span><span style=" font-family:'monospace';"><br /> 0 KSP preconditioned resid norm 1.793027353791e-05 true resid norm 7.912994695029e-03 ||r(i)||/||b|| 1.000000000000e+00 <br /> 1 KSP Residual norm 2.662212708666e-20  <br /> 1 KSP preconditioned resid norm 2.662212708666e-20 true resid norm 3.120963188535e-02 ||r(i)||/||b|| 3.944098674167e+00 <br />Linear solve converged due to CONVERGED_RTOL iterations 1 <br />KSP Object: 1 MPI processes <br /> type: gmres <br />   GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />   GMRES: happy breakdown tolerance 1e-30 <br /> maximum iterations=10000, initial guess is zero <br /> tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br /> left preconditioning <br /> using PRECONDITIONED norm type for convergence test <br />PC Object: 1 MPI processes <br /> type: gamg <br />   MG: type is MULTIPLICATIVE, levels=4 cycles=v <br />     Cycles per PCApply=1 <br />     Using Galerkin computed coarse grid matrices <br />     GAMG specific options <br />       Threshold for dropping small values from graph 0 <br />       AGG specific options <br />         Symmetric graph false <br /> Coarse grid solver -- level ------------------------------- <br />   KSP Object:    (mg_coarse_)     1 MPI processes <br />     type: gmres <br />       GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />       GMRES: happy breakdown tolerance 1e-30 <br />     maximum iterations=1, initial guess is zero <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_coarse_)     1 MPI processes <br />     type: bjacobi <br />       block Jacobi: number of blocks = 1 <br />       Local solve is same for all blocks, in the following KSP and PC objects: <br />       KSP Object:        (mg_coarse_sub_)         1 MPI processes <br />         type: preonly <br />         maximum iterations=1, initial guess is zero <br />         tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />         left preconditioning <br />         using NONE norm type for convergence test <br />       PC Object:        (mg_coarse_sub_)         1 MPI processes <br />         type: lu <br />           LU: out-of-place factorization <br />           tolerance for zero pivot 2.22045e-14 <br />           using diagonal shift on blocks to prevent zero pivot [INBLOCKS] <br />           matrix ordering: nd <br />           factor fill ratio given 5, needed 1.10953 <br />             Factored matrix follows: <br />               Mat Object:                 1 MPI processes <br />                 type: seqaij <br />                 rows=33, cols=33 <br />                 package used to perform factorization: petsc <br />                 total: nonzeros=1013, allocated nonzeros=1013 <br />                 total number of mallocs used during MatSetValues calls =0 <br />                   using I-node routines: found 21 nodes, limit used is 5 <br />         linear system matrix = precond matrix: <br />         Mat Object:           1 MPI processes <br />           type: seqaij <br />           rows=33, cols=33 <br />           total: nonzeros=913, allocated nonzeros=913 <br />           total number of mallocs used during MatSetValues calls =0 <br />             not using I-node routines <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=33, cols=33 <br />       total: nonzeros=913, allocated nonzeros=913 <br />       total number of mallocs used during MatSetValues calls =0 <br />         not using I-node routines <br /> Down solver (pre-smoother) on level 1 ------------------------------- <br />   KSP Object:    (mg_levels_1_)     1 MPI processes <br />     type: chebyshev <br />       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br />       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br />       KSP Object:        (mg_levels_1_esteig_)         1 MPI processes <br />         type: gmres <br />           GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />           GMRES: happy breakdown tolerance 1e-30 <br />         maximum iterations=10, initial guess is zero <br />         tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />         left preconditioning <br />         using NONE norm type for convergence test <br />     maximum iterations=2 <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using nonzero initial guess <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_levels_1_)     1 MPI processes <br />     type: sor <br />       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=401, cols=401 <br />       total: nonzeros=9777, allocated nonzeros=9777 <br />       total number of mallocs used during MatSetValues calls =0 <br />         not using I-node routines <br /> Up solver (post-smoother) same as down solver (pre-smoother) <br /> Down solver (pre-smoother) on level 2 ------------------------------- <br />   KSP Object:    (mg_levels_2_)     1 MPI processes <br />     type: chebyshev <br />       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br />       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br />       KSP Object:        (mg_levels_2_esteig_)         1 MPI processes <br />         type: gmres <br />           GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />           GMRES: happy breakdown tolerance 1e-30 <br />         maximum iterations=10, initial guess is zero <br />         tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />         left preconditioning <br />         using NONE norm type for convergence test <br />     maximum iterations=2 <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using nonzero initial guess <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_levels_2_)     1 MPI processes <br />     type: sor <br />       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=2296, cols=2296 <br />       total: nonzeros=25038, allocated nonzeros=25038 <br />       total number of mallocs used during MatSetValues calls =0 <br />         not using I-node routines <br /> Up solver (post-smoother) same as down solver (pre-smoother) <br /> Down solver (pre-smoother) on level 3 ------------------------------- <br />   KSP Object:    (mg_levels_3_)     1 MPI processes <br />     type: chebyshev <br />       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br />       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br />       KSP Object:        (mg_levels_3_esteig_)         1 MPI processes <br />         type: gmres <br />           GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />           GMRES: happy breakdown tolerance 1e-30 <br />         maximum iterations=10, initial guess is zero <br />         tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />         left preconditioning <br />         using NONE norm type for convergence test <br />     maximum iterations=2 <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using nonzero initial guess <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_levels_3_)     1 MPI processes <br />     type: sor <br />       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=16384, cols=16384 <br />       total: nonzeros=81920, allocated nonzeros=81920 <br />       total number of mallocs used during MatSetValues calls =0 <br />         has attached null space <br />         not using I-node routines <br /> Up solver (post-smoother) same as down solver (pre-smoother) <br /> linear system matrix = precond matrix: <br /> Mat Object:   1 MPI processes <br />   type: seqaij <br />   rows=16384, cols=16384 <br />   total: nonzeros=81920, allocated nonzeros=81920 <br />   total number of mallocs used during MatSetValues calls =0 <br />     has attached null space <br />     not using I-node routines<br /></span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'monospace';">2)</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'monospace'; color:#000000; background-color:#ffffff;"> 0 KSP Residual norm 1.010294060491e-05  </span><span style=" font-family:'monospace';"><br /> 0 KSP preconditioned resid norm 1.010294060491e-05 true resid norm 1.086379257868e-03 ||r(i)||/||b|| 1.000000000000e+00 <br /> 1 KSP Residual norm 8.803303876758e-20  <br /> 1 KSP preconditioned resid norm 8.803303876758e-20 true resid norm 2.101751936637e-03 ||r(i)||/||b|| 1.934639235254e+00 <br />Linear solve converged due to CONVERGED_RTOL iterations 1 <br />KSP Object: 1 MPI processes <br /> type: gmres <br />   GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />   GMRES: happy breakdown tolerance 1e-30 <br /> maximum iterations=10000, initial guess is zero <br /> tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br /> left preconditioning <br /> using PRECONDITIONED norm type for convergence test <br />PC Object: 1 MPI processes <br /> type: mg <br />   MG: type is MULTIPLICATIVE, levels=4 cycles=v <br />     Cycles per PCApply=1 <br />     Using Galerkin computed coarse grid matrices <br /> Coarse grid solver -- level ------------------------------- <br />   KSP Object:    (mg_coarse_)     1 MPI processes <br />     type: preonly <br />     maximum iterations=1, initial guess is zero <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_coarse_)     1 MPI processes <br />     type: lu <br />       LU: out-of-place factorization <br />       tolerance for zero pivot 2.22045e-14 <br />       using diagonal shift on blocks to prevent zero pivot [INBLOCKS] <br />       matrix ordering: nd <br />       factor fill ratio given 5, needed 4.83507 <br />         Factored matrix follows: <br />           Mat Object:             1 MPI processes <br />             type: seqaij <br />             rows=256, cols=256 <br />             package used to perform factorization: petsc <br />             total: nonzeros=11140, allocated nonzeros=11140 <br />             total number of mallocs used during MatSetValues calls =0 <br />               not using I-node routines <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=256, cols=256 <br />       total: nonzeros=2304, allocated nonzeros=2304 <br />       total number of mallocs used during MatSetValues calls =0 <br />         not using I-node routines <br /> Down solver (pre-smoother) on level 1 ------------------------------- <br />   KSP Object:    (mg_levels_1_)     1 MPI processes <br />     type: chebyshev <br />       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br />       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br />       KSP Object:        (mg_levels_1_esteig_)         1 MPI processes <br />         type: gmres <br />           GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />           GMRES: happy breakdown tolerance 1e-30 <br />         maximum iterations=10, initial guess is zero <br />         tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />         left preconditioning <br />         using NONE norm type for convergence test <br />     maximum iterations=2 <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using nonzero initial guess <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_levels_1_)     1 MPI processes <br />     type: sor <br />       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=1024, cols=1024 <br />       total: nonzeros=9216, allocated nonzeros=9216 <br />       total number of mallocs used during MatSetValues calls =0 <br />         not using I-node routines <br /> Up solver (post-smoother) same as down solver (pre-smoother) <br /> Down solver (pre-smoother) on level 2 ------------------------------- <br />   KSP Object:    (mg_levels_2_)     1 MPI processes <br />     type: chebyshev <br />       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br />       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br />       KSP Object:        (mg_levels_2_esteig_)         1 MPI processes <br />         type: gmres <br />           GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />           GMRES: happy breakdown tolerance 1e-30 <br />         maximum iterations=10, initial guess is zero <br />         tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />         left preconditioning <br />         using NONE norm type for convergence test <br />     maximum iterations=2 <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using nonzero initial guess <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_levels_2_)     1 MPI processes <br />     type: sor <br />       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=4096, cols=4096 <br />       total: nonzeros=36864, allocated nonzeros=36864 <br />       total number of mallocs used during MatSetValues calls =0 <br />         not using I-node routines <br /> Up solver (post-smoother) same as down solver (pre-smoother) <br /> Down solver (pre-smoother) on level 3 ------------------------------- <br />   KSP Object:    (mg_levels_3_)     1 MPI processes <br />     type: chebyshev <br />       Chebyshev: eigenvalue estimates:  min = -1.79769e+307, max = -inf <br />       Chebyshev: eigenvalues estimated using gmres with translations  [0 0.1; 0 1.1] <br />       KSP Object:        (mg_levels_3_esteig_)         1 MPI processes <br />         type: gmres <br />           GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />           GMRES: happy breakdown tolerance 1e-30 <br />         maximum iterations=10, initial guess is zero <br />         tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />         left preconditioning <br />         using NONE norm type for convergence test <br />     maximum iterations=2 <br />     tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br />     left preconditioning <br />     using nonzero initial guess <br />     using NONE norm type for convergence test <br />   PC Object:    (mg_levels_3_)     1 MPI processes <br />     type: sor <br />       SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1 <br />     linear system matrix = precond matrix: <br />     Mat Object:       1 MPI processes <br />       type: seqaij <br />       rows=16384, cols=16384 <br />       total: nonzeros=81920, allocated nonzeros=81920 <br />       total number of mallocs used during MatSetValues calls =0 <br />         has attached null space <br />         not using I-node routines <br /> Up solver (post-smoother) same as down solver (pre-smoother) <br /> linear system matrix = precond matrix: <br /> Mat Object:   1 MPI processes <br />   type: seqaij <br />   rows=16384, cols=16384 <br />   total: nonzeros=81920, allocated nonzeros=81920 <br />   total number of mallocs used during MatSetValues calls =0 <br />     has attached null space <br />     not using I-node routines<br /><br />3)</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'monospace'; color:#000000; background-color:#ffffff;">0 KSP Residual norm 2.990548680394e-08  </span><span style=" font-family:'monospace';"><br /> 0 KSP preconditioned resid norm 2.990548680394e-08 true resid norm 2.966915112865e-04 ||r(i)||/||b|| 1.000000000000e+00 <br /> 1 KSP Residual norm 2.368703753809e-08  <br /> 1 KSP preconditioned resid norm 2.368703753809e-08 true resid norm 3.109667150576e-04 ||r(i)||/||b|| 1.048114634993e+00 <br /> 2 KSP Residual norm 2.236515515253e-08  <br /> 2 KSP preconditioned resid norm 2.236515515253e-08 true resid norm 2.655771471955e-04 ||r(i)||/||b|| 8.951289035670e-01 <br /> 3 KSP Residual norm 1.957630940223e-08  <br /> 3 KSP preconditioned resid norm 1.957630940223e-08 true resid norm 2.158250768646e-04 ||r(i)||/||b|| 7.274393390250e-01 <br /> 4 KSP Residual norm 1.771416739221e-08  <br /> 4 KSP preconditioned resid norm 1.771416739221e-08 true resid norm 2.075204223802e-04 ||r(i)||/||b|| 6.994484657830e-01 <br /> 5 KSP Residual norm 1.617056152936e-08  <br /> 5 KSP preconditioned resid norm 1.617056152936e-08 true resid norm 1.908090487285e-04 ||r(i)||/||b|| 6.431227098516e-01 <br /> 6 KSP Residual norm 1.467170521607e-08  <br /> 6 KSP preconditioned resid norm 1.467170521607e-08 true resid norm 1.683698119419e-04 ||r(i)||/||b|| 5.674911668750e-01 <br /> 7 KSP Residual norm 1.321526248809e-08  <br /> 7 KSP preconditioned resid norm 1.321526248809e-08 true resid norm 1.473617884651e-04 ||r(i)||/||b|| 4.966835344432e-01 <br /> 8 KSP Residual norm 1.174828665876e-08  <br /> 8 KSP preconditioned resid norm 1.174828665876e-08 true resid norm 1.458902362707e-04 ||r(i)||/||b|| 4.917236615167e-01 <br /> 9 KSP Residual norm 1.012151625603e-08  <br /> 9 KSP preconditioned resid norm 1.012151625603e-08 true resid norm 1.303866699420e-04 ||r(i)||/||b|| 4.394688253015e-01 <br />10 KSP Residual norm 7.876439970777e-09  <br />10 KSP preconditioned resid norm 7.876439970777e-09 true resid norm 1.162414266035e-04 ||r(i)||/||b|| 3.917922224990e-01 <br />11 KSP Residual norm 4.981821461221e-09  <br />11 KSP preconditioned resid norm 4.981821461221e-09 true resid norm 9.075981784793e-05 ||r(i)||/||b|| 3.059063518683e-01 <br />12 KSP Residual norm 2.426217812448e-09  <br />12 KSP preconditioned resid norm 2.426217812448e-09 true resid norm 5.145334699067e-05 ||r(i)||/||b|| 1.734237247556e-01 <br />13 KSP Residual norm 1.049060114422e-09  <br />13 KSP preconditioned resid norm 1.049060114422e-09 true resid norm 2.107527819651e-05 ||r(i)||/||b|| 7.103431475044e-02 <br />14 KSP Residual norm 5.887222551677e-10  <br />14 KSP preconditioned resid norm 5.887222551677e-10 true resid norm 9.047187295472e-06 ||r(i)||/||b|| 3.049358323817e-02 <br />15 KSP Residual norm 4.536407095834e-10  <br />15 KSP preconditioned resid norm 4.536407095834e-10 true resid norm 6.032647097712e-06 ||r(i)||/||b|| 2.033306268708e-02 <br />16 KSP Residual norm 3.564018350025e-10  <br />16 KSP preconditioned resid norm 3.564018350025e-10 true resid norm 5.116056274149e-06 ||r(i)||/||b|| 1.724368941991e-02 <br />17 KSP Residual norm 2.744968239957e-10  <br />17 KSP preconditioned resid norm 2.744968239957e-10 true resid norm 3.648248676660e-06 ||r(i)||/||b|| 1.229643767306e-02 <br />18 KSP Residual norm 2.281847233955e-10  <br />18 KSP preconditioned resid norm 2.281847233955e-10 true resid norm 2.900148270786e-06 ||r(i)||/||b|| 9.774962074955e-03 <br />19 KSP Residual norm 1.881670741813e-10  <br />19 KSP preconditioned resid norm 1.881670741813e-10 true resid norm 2.473850917169e-06 ||r(i)||/||b|| 8.338125032436e-03 <br />20 KSP Residual norm 1.581922522755e-10  <br />20 KSP preconditioned resid norm 1.581922522755e-10 true resid norm 1.965254213304e-06 ||r(i)||/||b|| 6.623897680059e-03 <br />21 KSP Residual norm 1.349952347592e-10  <br />21 KSP preconditioned resid norm 1.349952347592e-10 true resid norm 1.709953736235e-06 ||r(i)||/||b|| 5.763406336838e-03 <br />22 KSP Residual norm 1.148754892680e-10  <br />22 KSP preconditioned resid norm 1.148754892680e-10 true resid norm 1.452723184020e-06 ||r(i)||/||b|| 4.896409667135e-03 <br />23 KSP Residual norm 9.889008860663e-11  <br />23 KSP preconditioned resid norm 9.889008860663e-11 true resid norm 1.259317356950e-06 ||r(i)||/||b|| 4.244534504846e-03 <br />24 KSP Residual norm 8.468070834423e-11  <br />24 KSP preconditioned resid norm 8.468070834423e-11 true resid norm 1.097968496396e-06 ||r(i)||/||b|| 3.700707484468e-03 <br />25 KSP Residual norm 7.340678871498e-11  <br />25 KSP preconditioned resid norm 7.340678871498e-11 true resid norm 9.388293102378e-07 ||r(i)||/||b|| 3.164328181036e-03 <br />26 KSP Residual norm 6.452497596580e-11  <br />26 KSP preconditioned resid norm 6.452497596580e-11 true resid norm 7.907509627807e-07 ||r(i)||/||b|| 2.665229481464e-03 <br />27 KSP Residual norm 5.817349095331e-11  <br />27 KSP preconditioned resid norm 5.817349095331e-11 true resid norm 6.712549222809e-07 ||r(i)||/||b|| 2.262467568992e-03 <br />28 KSP Residual norm 5.382715584394e-11  <br />28 KSP preconditioned resid norm 5.382715584394e-11 true resid norm 5.883671521302e-07 ||r(i)||/||b|| 1.983093987351e-03 <br />29 KSP Residual norm 5.072666199584e-11  <br />29 KSP preconditioned resid norm 5.072666199584e-11 true resid norm 5.417512216577e-07 ||r(i)||/||b|| 1.825974795533e-03 <br />30 KSP Residual norm 4.806650672230e-11  <br />30 KSP preconditioned resid norm 4.806650672230e-11 true resid norm 5.151866485899e-07 ||r(i)||/||b|| 1.736438789084e-03 <br />31 KSP Residual norm 4.675001898732e-11  <br />31 KSP preconditioned resid norm 4.675001898732e-11 true resid norm 4.825947510614e-07 ||r(i)||/||b|| 1.626587659919e-03 <br />32 KSP Residual norm 4.530536181592e-11  <br />32 KSP preconditioned resid norm 4.530536181592e-11 true resid norm 4.648650267512e-07 ||r(i)||/||b|| 1.566829548764e-03 <br />33 KSP Residual norm 4.357157235509e-11  <br />33 KSP preconditioned resid norm 4.357157235509e-11 true resid norm 4.567209908707e-07 ||r(i)||/||b|| 1.539380041209e-03 <br />34 KSP Residual norm 4.135715715343e-11  <br />34 KSP preconditioned resid norm 4.135715715343e-11 true resid norm 4.469703503011e-07 ||r(i)||/||b|| 1.506515465721e-03 <br />35 KSP Residual norm 3.851871986267e-11  <br />35 KSP preconditioned resid norm 3.851871986267e-11 true resid norm 4.364097171314e-07 ||r(i)||/||b|| 1.470920806730e-03 <br />36 KSP Residual norm 3.526035391634e-11  <br />36 KSP preconditioned resid norm 3.526035391634e-11 true resid norm 4.065382561286e-07 ||r(i)||/||b|| 1.370238920439e-03 <br />37 KSP Residual norm 3.144895012756e-11  <br />37 KSP preconditioned resid norm 3.144895012756e-11 true resid norm 3.810168560499e-07 ||r(i)||/||b|| 1.284218932985e-03 <br />38 KSP Residual norm 2.735239124106e-11  <br />38 KSP preconditioned resid norm 2.735239124106e-11 true resid norm 3.407338934429e-07 ||r(i)||/||b|| 1.148445036278e-03 <br />39 KSP Residual norm 2.306734554159e-11  <br />39 KSP preconditioned resid norm 2.306734554159e-11 true resid norm 2.940484127641e-07 ||r(i)||/||b|| 9.910914251948e-04 <br />40 KSP Residual norm 1.924842110922e-11  <br />40 KSP preconditioned resid norm 1.924842110922e-11 true resid norm 2.443693779909e-07 ||r(i)||/||b|| 8.236480273107e-04 <br />41 KSP Residual norm 1.618672399310e-11  <br />41 KSP preconditioned resid norm 1.618672399310e-11 true resid norm 2.034502467604e-07 ||r(i)||/||b|| 6.857299215548e-04 <br />42 KSP Residual norm 1.378885267147e-11  <br />42 KSP preconditioned resid norm 1.378885267147e-11 true resid norm 1.689714775892e-07 ||r(i)||/||b|| 5.695190834970e-04 <br />43 KSP Residual norm 1.179601185051e-11  <br />43 KSP preconditioned resid norm 1.179601185051e-11 true resid norm 1.483783124701e-07 ||r(i)||/||b|| 5.001097329234e-04 <br />44 KSP Residual norm 9.928908801463e-12  <br />44 KSP preconditioned resid norm 9.928908801463e-12 true resid norm 1.276885725440e-07 ||r(i)||/||b|| 4.303748765523e-04 <br />45 KSP Residual norm 8.512555069524e-12  <br />45 KSP preconditioned resid norm 8.512555069524e-12 true resid norm 1.020939171370e-07 ||r(i)||/||b|| 3.441079817022e-04 <br />46 KSP Residual norm 7.600214409478e-12  <br />46 KSP preconditioned resid norm 7.600214409478e-12 true resid norm 8.873369034852e-08 ||r(i)||/||b|| 2.990772805186e-04 <br />47 KSP Residual norm 6.577382322417e-12  <br />47 KSP preconditioned resid norm 6.577382322417e-12 true resid norm 8.285748008098e-08 ||r(i)||/||b|| 2.792714888326e-04 <br />48 KSP Residual norm 5.701374824383e-12  <br />48 KSP preconditioned resid norm 5.701374824383e-12 true resid norm 6.754179947516e-08 ||r(i)||/||b|| 2.276499222452e-04 <br />49 KSP Residual norm 5.201909133133e-12  <br />49 KSP preconditioned resid norm 5.201909133133e-12 true resid norm 5.807496359589e-08 ||r(i)||/||b|| 1.957419116714e-04 <br />50 KSP Residual norm 4.803415857522e-12  <br />50 KSP preconditioned resid norm 4.803415857522e-12 true resid norm 5.648916764539e-08 ||r(i)||/||b|| 1.903969796791e-04 <br />51 KSP Residual norm 4.213404847970e-12  <br />51 KSP preconditioned resid norm 4.213404847970e-12 true resid norm 5.312367187239e-08 ||r(i)||/||b|| 1.790535618699e-04 <br />52 KSP Residual norm 3.583723287544e-12  <br />52 KSP preconditioned resid norm 3.583723287544e-12 true resid norm 4.482581392980e-08 ||r(i)||/||b|| 1.510855964009e-04 <br />53 KSP Residual norm 3.055433343791e-12  <br />53 KSP preconditioned resid norm 3.055433343791e-12 true resid norm 3.733365588478e-08 ||r(i)||/||b|| 1.258332458617e-04 <br />54 KSP Residual norm 2.632415195178e-12  <br />54 KSP preconditioned resid norm 2.632415195178e-12 true resid norm 3.259461418510e-08 ||r(i)||/||b|| 1.098602856676e-04 <br />55 KSP Residual norm 2.358953414259e-12  <br />55 KSP preconditioned resid norm 2.358953414259e-12 true resid norm 2.755891784400e-08 ||r(i)||/||b|| 9.288744974367e-05 <br />56 KSP Residual norm 2.131084837625e-12  <br />56 KSP preconditioned resid norm 2.131084837625e-12 true resid norm 2.435335186857e-08 ||r(i)||/||b|| 8.208307599694e-05 <br />57 KSP Residual norm 1.906113965754e-12  <br />57 KSP preconditioned resid norm 1.906113965754e-12 true resid norm 2.234444331024e-08 ||r(i)||/||b|| 7.531204116139e-05 <br />58 KSP Residual norm 1.666029207693e-12  <br />58 KSP preconditioned resid norm 1.666029207693e-12 true resid norm 2.187608862971e-08 ||r(i)||/||b|| 7.373344971974e-05 <br />59 KSP Residual norm 1.397594452516e-12  <br />59 KSP preconditioned resid norm 1.397594452516e-12 true resid norm 1.884281030995e-08 ||r(i)||/||b|| 6.350977224879e-05 <br />60 KSP Residual norm 1.000720808126e-12  <br />60 KSP preconditioned resid norm 1.000720808126e-12 true resid norm 1.495264965711e-08 ||r(i)||/||b|| 5.039796923166e-05 <br />61 KSP Residual norm 8.368281175845e-13  <br />61 KSP preconditioned resid norm 8.368281175845e-13 true resid norm 1.198110007063e-08 ||r(i)||/||b|| 4.038234871863e-05 <br />62 KSP Residual norm 6.975866756145e-13  <br />62 KSP preconditioned resid norm 6.975866756145e-13 true resid norm 8.713139114636e-09 ||r(i)||/||b|| 2.936767242465e-05 <br />63 KSP Residual norm 6.055685829863e-13  <br />63 KSP preconditioned resid norm 6.055685829863e-13 true resid norm 7.208696201852e-09 ||r(i)||/||b|| 2.429694119186e-05 <br />64 KSP Residual norm 5.321880026091e-13  <br />64 KSP preconditioned resid norm 5.321880026091e-13 true resid norm 6.450668328122e-09 ||r(i)||/||b|| 2.174200502115e-05 <br />65 KSP Residual norm 4.652520314729e-13  <br />65 KSP preconditioned resid norm 4.652520314729e-13 true resid norm 5.767198491137e-09 ||r(i)||/||b|| 1.943836703022e-05 <br />66 KSP Residual norm 4.095554125778e-13  <br />66 KSP preconditioned resid norm 4.095554125778e-13 true resid norm 5.117612129931e-09 ||r(i)||/||b|| 1.724893343844e-05 <br />67 KSP Residual norm 3.575261581129e-13  <br />67 KSP preconditioned resid norm 3.575261581129e-13 true resid norm 4.479181564454e-09 ||r(i)||/||b|| 1.509710050359e-05 <br />68 KSP Residual norm 3.109053579360e-13  <br />68 KSP preconditioned resid norm 3.109053579360e-13 true resid norm 3.779777902208e-09 ||r(i)||/||b|| 1.273975748689e-05 <br />69 KSP Residual norm 2.721884401030e-13  <br />69 KSP preconditioned resid norm 2.721884401030e-13 true resid norm 3.393605957929e-09 ||r(i)||/||b|| 1.143816330711e-05 <br />Linear solve converged due to CONVERGED_RTOL iterations 69 <br />KSP Object: 1 MPI processes <br /> type: gmres <br />   GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement <br />   GMRES: happy breakdown tolerance 1e-30 <br /> maximum iterations=10000, initial guess is zero <br /> tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br /> left preconditioning <br /> using PRECONDITIONED norm type for convergence test <br />PC Object: 1 MPI processes <br /> type: ilu <br />   ILU: out-of-place factorization <br />   0 levels of fill <br />   tolerance for zero pivot 2.22045e-14 <br />   matrix ordering: natural <br />   factor fill ratio given 1, needed 1 <br />     Factored matrix follows: <br />       Mat Object:         1 MPI processes <br />         type: seqaij <br />         rows=16384, cols=16384 <br />         package used to perform factorization: petsc <br />         total: nonzeros=81920, allocated nonzeros=81920 <br />         total number of mallocs used during MatSetValues calls =0 <br />           not using I-node routines <br /> linear system matrix = precond matrix: <br /> Mat Object:   1 MPI processes <br />   type: seqaij <br />   rows=16384, cols=16384 <br />   total: nonzeros=81920, allocated nonzeros=81920 <br />   total number of mallocs used during MatSetValues calls =0 <br />     has attached null space <br />     not using I-node routines<br /><br />4)</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'monospace'; color:#000000; background-color:#ffffff;">Linear solve converged due to CONVERGED_ITS iterations 1 </span><span style=" font-family:'monospace';"><br />KSP Object: 1 MPI processes <br /> type: preonly <br /> maximum iterations=10000, initial guess is zero <br /> tolerances:  relative=1e-05, absolute=1e-50, divergence=10000 <br /> left preconditioning <br /> using NONE norm type for convergence test <br />PC Object: 1 MPI processes <br /> type: lu <br />   LU: out-of-place factorization <br />   tolerance for zero pivot 2.22045e-14 <br />   matrix ordering: nd <br />   factor fill ratio given 5, needed 9.6582 <br />     Factored matrix follows: <br />       Mat Object:         1 MPI processes <br />         type: seqaij <br />         rows=16384, cols=16384 <br />         package used to perform factorization: petsc <br />         total: nonzeros=791200, allocated nonzeros=791200 <br />         total number of mallocs used during MatSetValues calls =0 <br />           not using I-node routines <br /> linear system matrix = precond matrix: <br /> Mat Object:   1 MPI processes <br />   type: seqaij <br />   rows=16384, cols=16384 <br />   total: nonzeros=81920, allocated nonzeros=81920 <br />   total number of mallocs used during MatSetValues calls =0 <br />     has attached null space <br />     not using I-node routines<br /><br /></span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">On Tuesday 01 September 2015 03:40:14 Matthew Knepley wrote:</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> On Tue, Sep 1, 2015 at 2:22 AM, Filippo Leonardi <</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> filippo.leonardi@sam.math.ethz.ch> wrote:</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > Dear PETSc Users,</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > I want to use multigrid to solve uniform (just Laplace) poisson in 2D/3D</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > on cartesian, non-uniform meshes with a standard 5 (7)-points stencil FD.</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > I always scaled my Poisson matrix like in the doc examples, i.e.</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > multiplying by dx*dy (so that in ComputeRHS I need to scale b, in A*x = b,</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > as well). This always worked properly with both MG/GAMG and with galerkin</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > matrices.</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > Now I'd like to use non-uniform meshes, therefore the scaling is</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > non-uniform. However I cannot get my matrices to scale properly with any</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > sort of multigrid.</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > One would think that without scaling, i.e. solving the original system, at</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > least MG+galerkin or GAMG should work anyways provided the matrix A and b</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > are consistent.</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > I tried without boundaries (i.e. torus), so this is not the problem.</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> The point of that scaling is to make the boundary values the same size as</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> the residuals. If you have</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> no boundary values, the problem is scale invariant since its linear. It</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> would be nice to scale it so everything</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> is about size 1.</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> When asking about convergence always run with -ksp_view</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> -ksp_monitor_true_residual -ksp_converged_reason</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">>   Thanks,</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">>      Matt</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > Anyone did/knows how to do this properly?</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > Thanks,</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">> > F</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p></body></html>